Bien commencer en bioinformatique

"Je n'y connais rien en infor­ma­tique", "C'est trop com­pli­qué pour moi" ou "Je ne sais pas par où com­men­cer" sont des phrases qui nous servent sou­vent d'excuse pour ne pas nous lan­cer dans le grand bain de la bio­in­for­ma­tique. Bio­lo­giste de for­ma­tion, j'ai moi-même à plu­sieurs reprises repous­sé l'échéance avant de sau­ter, ne sachant com­ment m'y prendre ou vou­lant com­men­cer direc­te­ment par des choses trop com­plexes.

Cet article est donc là pour vous aider à vous lan­cer, trou­ver par où com­men­cer et vous don­ner des indi­ca­tions sur ce que vous pour­riez arri­ver à faire en assez peu de temps.

Je n'aurai pas la pré­ten­tion de vous trans­for­mer en bio­in­for­ma­ti­cien avec cet article, mais je vais poser des bases essen­tielles pour com­men­cer et vous mon­trer quelques exemples de ce qu'il est pos­sible de faire en bio­in­for­ma­tique.

La bio­in­for­ma­tique est aujourd'hui un outil indis­pen­sable à la bio­lo­gie et est utile à n'importe quel bio­lo­giste sou­hai­tant élar­gir son hori­zon. Elle touche aus­si, bien sûr, les infor­ma­ti­ciens qui s'intéressent à la bio­lo­gie. Cette dis­ci­pline va du simple tra­duc­teur de for­mat (voir mon article sur Blast2Gb​.pl) à des gros tun­nels infor­ma­tiques de trai­te­ment de don­nées (voir l'article de Nisaea sur Galaxy). Les domaines dans les­quels on la retrouve sont aus­si divers que, entre autres, la géné­tique, l'évolution ou l'écologie. Elle peut être uti­li­sée par un bio­lo­giste comme par un infor­ma­ti­cien, le bio­in­for­ma­ti­cien étant un hybride, connais­sant la bio­lo­gie et l'informatique.

La bio­in­for­ma­tique est un domaine de recherche et d'expertise laquelle peut être appli­quée par des cher­cheurs et des ingé­nieurs. Par exemple, cette vidéo de France5, sur laquelle on nous voit appa­raitre, pré­sente quelques pos­si­bi­li­tés de car­rière :

Quel système d'exploitation pour le bioinformaticien ?

Win­dows, Mac OS ou GNU/​Linux : le choix du sys­tème d'exploitation sur lequel tra­vailler relève en pre­mier lieu du goût de l'utilisateur, mais pour­ra vite se retrou­ver orien­té par les ser­veurs sur les­quels il va tra­vailler. Car aujourd'hui, l'avènement des tech­niques de séquen­çage à haut débit apporte une quan­ti­té de don­nées rare­ment trai­table sur un ordi­na­teur de bureau. La plu­part des ser­veurs de cal­cul étant sous GNU/​Linux, je vous orien­te­rai plu­tôt vers Mac OS ou une dis­tri­bu­tion de la famille GNU/​Linux. Il est pos­sible de tra­vailler sur Win­dows, mais ça sera plus contrai­gnant. Et les sys­tèmes GNU/​Linux sont habi­tuel­le­ment gra­tuits (même sans ache­ter d'ordinateur avec), le plus facile à uti­li­ser et user-friend­ly est Ubun­tu, alors lan­cez-vous !

Mais alors : que fait un bioinformaticien ?

Eh bien, il uti­lise ou crée des logi­ciels pour trai­ter des don­nées, les mettre en forme, les repré­sen­ter, les ran­ger, les main­te­nir, etc. Il crée des logi­ciels ? Oui, et des liens entre logi­ciels, des outils simples ou com­plexes, des tra­duc­teurs, des bases de don­nées sont dans le bou­quet.

Mais il existe aus­si des bio­in­for­ma­ti­ciens plus orien­tés bio­lo­gie, qui ne codent pas ou peu et qui uti­lisent des logi­ciels déjà prêts, font quelques scripts pour auto­ma­ti­ser et peuvent être plus axés sur l'analyse des don­nées. Il existe même une espèce de bio­in­for­ma­ti­ciens qui ne codent plus du tout, et eux disent que ce qu'ils font est la vraie bio­in­for­ma­tique, que seuls les infor­ma­ti­ciens codent.

Chaque bio­in­for­ma­ti­cien a donc sa propre défi­ni­tion, il suf­fit de venir sur notre canal IRC deman­der la dif­fé­rence entre un bon et un mau­vais chas­seur… euh… bio­in­for­ma­ti­cien pour s'en convaincre !

En tout cas, les bio­in­for­ma­ti­ciens sont des gens qui com­prennent la bio­lo­gie et uti­lisent l'informatique prin­ci­pa­le­ment pour faci­li­ter le tra­vail des bio­lo­gistes, en auto­ma­ti­sant des tâches lourdes et rébar­ba­tives. Ain­si, le billet de tadai­ma sur l'API Perl montre un exemple d'une telle aide : ici, les outils bio­in­for­ma­tiques sont uti­li­sés pour récu­pé­rer une grande quan­ti­té d'informations à par­tir d'une grosse base de don­nées sans faire du copier-col­ler pen­dant 2 jours.

Un contre-exemple est le billet de Guillaume Col­let sur les cal­culs de conser­va­tion : il nous explique une façon dif­fé­rente d'aborder la bio­in­for­ma­tique. Guillaume est un expert à mi-che­min entre l'applicatif et l'algorithmique. Il apporte à la bio­lo­gie une for­ma­li­sa­tion plus théo­rique tout en per­met­tant d'expliquer l'observation his­to­rique qui mène à la diver­gence de séquences par l'utilisation des scores de conser­va­tion.

Puisque j'ai men­tion­né la pro­gram­ma­tion, par­lons main­te­nant un peu lan­gages de pro­gram­ma­tion. Je vous invite à lire l'article de Gophys sur les dif­fé­rents lan­gages de pro­gram­ma­tion pour plus de détails. Mon focus est de vous don­ner des exemples concrets à titre d'illustration.

Perl et Python

Pour bien com­men­cer — et de façon simple — com­men­çons par par­ler des deux vedettes de la bio­in­for­ma­tique, frères enne­mis, que sont les lan­gages Perl et Python. Ils sont spé­cia­le­ment uti­li­sés pour leur puis­sance de trai­te­ment de texte. En effet, la plu­part des infor­ma­tions bio­lo­giques sont sous forme de texte, et ces deux lan­gages, en plus d'être rela­ti­ve­ment facile à appré­hen­der, ont été faits pour trai­ter du texte, rapi­de­ment et effi­ca­ce­ment.

Voi­ci un exemple de code écrit en Perl :

Voi­ci le même code en Python :

Vous remar­que­rez que ces deux lan­gages sont extrê­me­ment proches de pre­mier abord. Ils pré­sentent cepen­dant de grosses dif­fé­rences, le pre­mier étant plus laxiste, le deuxième plus pré­cis. Je vous invite à lire le livre Lear­ning Perl aux édi­tions O'Reilly ou bien la docu­men­ta­tion en ligne de Perl pour com­men­cer en Perl. Côté Python, le très bon Dive into python, en fran­çais pour mes lec­teurs pré­fé­rés, est idéal pour com­men­cer en Python. Vous trou­ve­rez aus­si de bons didac­ti­ciels en fran­çais sur le Site du Zéro, comme par exemple com­ment pro­gram­mer avec Python avec même des vidéos à la clé !

Pour la bio­lo­gie, des modules appe­lés Bio­Perl et Bio­Py­thon ont été déve­lop­pés et per­mettent par exemple de télé­char­ger plu­sieurs séquences au for­mat fas­ta sur Gene­Bank sans avoir à les faire une par une à la main, de récu­pé­rer des infor­ma­tions et de les trier. Un exemple de Bio­Py­thon, par exemple ? En voi­là : pour anno­ter une liste d'ID de gènes sur la base Entrez du NCBI.

L'interpréteur de commande

Pour lan­cer un pro­gramme, aus­si bien sous Win­dows que sous Mac OS ou GNU/​Linux, il faut pas­ser par un inter­pré­teur de com­mandes, res­pec­ti­ve­ment cmd.exe et shell. Ce sont les inter­faces per­met­tant à l'utilisateur de s'adresser direc­te­ment à l'ordinateur. Chaque inter­face a ses spé­ci­fi­ci­tés : il faut lui par­ler dans une langue qu'elle com­prend et sait inter­pré­ter. Dans le cas du shell sous GNU/​Linux, par exemple, la langue la plus fré­quem­ment uti­li­sée est le bash.

Avec ces détails, nous pou­vons lan­cer un pro­gramme écrit Perl par exemple :

<

p style="text-align : justify;">De nom­breuses fonc­tions sont dis­po­nibles sous bash, moins sous cmd.exe, mais il est pos­sible d'utiliser bash sous Win­dows avec un logi­ciel comme put­ty ou cyg­win.
Depuis Win­dows 7, Power­Shell vient en com­plé­ment de cmd.exe. C'est un shell s'approchant des pos­si­bi­li­tés de bash.

<

p style="text-align : justify;">L'interpréteur de com­mande, en plus de lan­cer des pro­grammes, per­met de défi­nir les che­mins, les droits d'accès, l'environnement, etc. de votre ordi­na­teur.
On peut encore faire des boucles et les com­mandes awk et sed per­mettent des faire des mani­pu­la­tions avan­cées sur des textes, à la manière de Perl ou Python, en étant cepen­dant moins souples et puis­sants. On peut par exemple rem­pla­cer un carac­tère "_​" par un "-" dans la chaine de carac­tères $chaine qui a pour valeur "bioinfo_​fr" avec la com­mande sui­vante :

(La forme "s/​x/​y/​" est d'ailleurs reprise en Perl par exemple.)

Vous trou­ve­rez des détails sur les dif­fé­rences entre Perl, Python ou encore awk et sed sur cette page (en anglais).

C'est tout ?

Eh bien non, le monde de la bio­in­for­ma­tique est tel­le­ment vaste que j'aurais bien du mal à vous en pré­sen­ter les limites. Ain­si, je me conten­te­rai d'élargir un peu la vision pré­sen­tée jusqu'ici.

Par exemple, dans le cadre de la bio­in­for­ma­tique entrent les sta­tis­tiques et la modé­li­sa­tion, qu'il est pos­sible d'appréhender avec des logi­ciels comme R ou Mat­lab. Ces deux logi­ciels sont proches dans leurs fonc­tion­na­li­tés et uti­lisent un lan­gage de pro­gram­ma­tion qui leur est propre. R a l'avantage d'être gra­tuit. Ils vous per­met­tront aus­si de faire de beaux gra­phiques. Un exemple très simple en R, per­met­tant de faire une repré­sen­ta­tion 3D, est le sui­vant :

Je vous laisse le bon­heur de décou­vrir ce que fait ce petit code !

La plu­part des graphs que vous voyez dans les grands jour­naux sont faits sous R. À la dif­fé­rence des tableurs, comme Excel ou Num­bers qui per­mettent de faire des graphs auto­ma­ti­que­ment, dans R vous contrô­lez abso­lu­ment tout. Vous pou­vez auto­ma­ti­ser la créa­tion de graphes tout comme vous auto­ma­ti­se­riez un trai­te­ment de don­nées. La bible de R est le R book.

Aller plus loin

Enfin, un petit article en anglais pour sai­sir quelques ficelles du métier : Hel­lo — I used to think I was good with a com­pu­ter. Dans cette dis­cus­sion, Jon_​Keats expose ses débuts en bio­in­for­ma­tique et donne les démarches et solu­tions entre­prises pour arri­ver à ses fins. Par exemple, il don­ne­ra le conseil sui­vant : "Mon patron aurait dû me faire lire le tuto­riel "Unix and Perl for Bio­lo­gists" des années aupa­ra­vant". Il vous don­ne­ra aus­si les pre­mières bases de l'installation d'un pro­gramme sous GNU/​Linux ou encore com­ment uti­li­ser le ges­tion­naire de ver­sion git pour évi­ter l'accumulation inutile de mon-fichier1.txt, mon-fichier2.txt, etc.

Un outil utile pour apprendre dif­fé­rents lan­gages est dis­po­nible ici. Il vous per­met­tra d'apprendre com­ment pas­ser d'un lan­gage à un autre.

La conclu­sion serait que pour deve­nir bio­in­for­ma­ti­cien, il faut avoir de bonnes bases en bio­lo­gie ou en infor­ma­tique et s'intéresser for­te­ment à l'autre dis­ci­pline, celle que l'on connaît le moins, afin de pou­voir dis­cu­ter et se com­prendre.

Voi­là déjà de quoi vous occu­per quelques temps et vous per­mettre d'accéder au monde magique de l'automatisation. Si vous avez la moindre ques­tion, n'hésitez pas à venir nous la poser des ques­tions sur le canal IRC ("le chan" pour les intimes), nous nous ferons un plai­sir d'y répondre ! Ah, vous ne savez pas ce qu'est un chan ? Allez voir  !

A bien­tôt sur le chan !

Mer­ci à Mali­cia, Guillaume, Yoann et Nico­las pour leurs relec­tures et com­men­taires pré-publi­ca­tion.
Cré­dit image : Isa­belle Sté­vant (Art Libre)



Pour continuer la lecture :


Commentaires

14 réponses à “Bien commencer en bioinformatique”

  1. Avatar de Yoann M.
    Yoann M.

    J'aime beau­coup.
    Je pense que tu as bien réus­si à mon­trer ce qu'est notre monde pro­fes­sion­nel, et ce n'était pas du tout une tache aisée. Bra­vo !
    Bien­sur comme tu le sou­lignes, tout n'est pas expli­qué dans ton article, mais là la tache est rude. On y arri­ve­ra, un jour 😉

    1. J'espère que ça sera utile aux per­sonnes qui s'intéressent à notre monde pro­fes­sion­nel, et qui n'osent pas se lan­cer. Mer­ci à tous ceux qui m'ont aidé à la rédac­tion de cet article, qui n'a pas été simple à rédi­ger.
      Et mer­ci de ton com­men­taire, Yoann !

  2. Bon­jour Auré­lien et mer­ci pour ce bel article. Comme tu le dis, le sujet est vaste et cha­cun a sa défi­ni­tion, son vécu et un quo­ti­dien par­fois très dif­fé­rent. Quand tu dis décris la bio­in­for­ma­tique comme 'un outil indis­pen­sable à la bio­lo­gie', ça me fait sau­ter en l'air .. ;-p Bon d'accord c'est aus­si vrai, mais (heu­reu­se­ment) pas seule­ment. Pour moi c'est un domaine de recherche à part entière. Alors je pré­fère ce que tu dis ensuite 'un domaine de recherche et d’expertise' qui est plus vaste et inclue sans doute le recours des bio­lo­gistes à l'expertise des bio­in­for­ma­ti­ciens pour répondre à leurs ques­tions. Pour cer­tains, les bio­in­for­ma­ti­ciens sont des bio­lo­gistes, juste un domaine par­ti­cu­lier. J'aime bien cette idée. Bref, la bio­in­for­ma­tique c'est vaste et c'est un domaine extrê­me­ment pas­sion­nant ! 🙂

  3. Avatar de Blondel King
    Blondel King

    Bon­jour, j'ai lu tout ce que vous avez ecris mais j'aimerais savoir car c est beau­coup plus pour des gens qui ont fait la bio­lo­gie bon pour ce que j ai com­pris, mais es ce que ca va aus­si pour quelqu'un qui a fait l infor­ma­tique car sans vous men­tir je ne connais rien a la bio­lo­gie mais je vou­drais vrai­ment me lan­cer dans ce domaine, vrai­ment besoin de conseil.
    mer­ci…

    1. Bon­jour Blon­del King,

      il est vrai qu'il y a une majo­ri­té de bio­in­for­ma­ti­ciens qui ont un back­ground de bio­lo­giste, mais on trouve aus­si l'inverse !
      Par­mis nous, il me semble qu'il y en a, comme Nico M. (http://​bioin​fo​-fr​.net/​a​u​t​h​o​r​/​g​l​o​c​k21) par exemple.
      J'imagine qu'il ne doit pas être aisé d'apprendre la bio­lo­gie sans avoir pas­ser des heures dans un amphi mais je pense que bien entou­ré et avec les bons bou­quins c'est tout à fait pos­sible.

      D'ailleurs, comme bou­quin, j'ai l'habitude de conseiller celui-ci : http://www.amazon.fr/Biologie-mol%C3%A9culaire-cellule-Bruce-Alberts/dp/225700096X (oui, il est cher, mais tout est dedans).

      N'hésite pas à nous poser tes ques­tions !

      1. Avatar de Blondel King
        Blondel King

        Bon­soir ZaZo0o,
        Mer­ci de me repondre aus­si vite, pour tout dire je suis aux USA et je me pre­pare pour la ren­tree de l annee pro­chaine et je cherche toutes les infor­ma­tions neces­saire qui me pour­rait m'aider a me fami­lia­ri­ser a ce milieu avant de me lan­cer, bien que je sais que ca ne sera pas aus­si facile, je vou­drai aus­si savoir si ca sera mieux de com­men­cer depuis la pre­miere annee en bio­in­for­ma­tique et finir ou alors finir toute la for­ma­tion en (infor­ma­tique) avant de com­men­cer la bio­in­for­ma­tique…

        1. Alors, tout dépend de où tu en es. Si tu es arri­vé au niveau équi­valent à la licence en Europe, alors tu peux com­men­cer un Mas­ter de Bio­in­for­ma­tique. Le Mas­ter de Rennes en tout cas est ouvert aus­si bien aux infor­ma­ti­ciens qu'aux bio­lo­gistes. Au cours du mas­ter, les infor­ma­ti­ciens vont suivre des cours de bio­lo­gie pen­dant que les bio­lo­gistes suivent une for­ma­tion d'informatique, en plus du tronc com­mun.
          Je ne sais pas s'il en est de même dans d'autres mas­ter, il faut se ren­sei­gner.
          Après, un Mas­ter ça n'est que 2 ans, si tu penses que tu peux te per­mettre de prendre deux ans d'études sup­plé­men­taires, vas‑y, ça sera de toute façon béné­fique.

          1. Avatar de Yoann M.

            Je me per­met de rajou­ter ça pour info : le Mas­ter de Bor­deaux n'accepte pas d'informaticiens, uni­que­ment des bio­lo­gistes prêts à vendre leur âme 🙂
            Bon cou­rage à toi Blon­del King. Va faire un tour sur notre rubrique "For­ma­tions" tu y ver­ras déjà quelques exemples.

        2. Pour info, vu que tout le monde le fait, le Mas­ter BIBS d'Orsay (voir des­crip­tion sur ce blog, la flemme de cher­cher là) accepte les infor­ma­ti­ciens (j'en étais un en licence) et est vrai­ment très bien comme for­ma­tion, com­plète et avec des mises a niveau en bio­lo­gie.

  4. Bon­jour Blon­del King,

    Je rebon­dis sur vos échanges pour infor­mer que le mas­ter en Bio­in­for­ma­tique de Rouen ( http://​mas​ter​bioin​fo​.for​ma​tions​.univ​-rouen​.fr/ ) est depuis cette année ouvert aux infor­ma­ti­ciens et mathé­ma­ti­ciens en plus des bio­lo­gistes. Sur le même prin­cipe que le mas­ter de Rennes, les cours sont adap­tés en fonc­tion de la Licence obte­nue. Si tu as/​obtiens une licence en infor­ma­tique, tu auras des cours plus orien­té bio.
    La pla­quette du mas­ter est dis­po­nible à l'adresse ci-des­sus.
    Cette for­ma­tion a l'avantage d'être en alter­nance "mais" de ce fait, se fait en 3 ans au lieu de 2 pour les mas­ters tra­di­tion­nels.
    Bon cou­rage dans tes recherches.

  5. Avatar de Blondel King
    Blondel King

    Bon­jour,
    Mer­ci d abord de vos reponses, il y a une chose dont j aime­rais vrai­ment savoir,
    est-il pos­sible de com­men­cer cette filiere des la pre­miere annee ou alors on doit
    d'abord avoir une license ou un mas­ter avant, parce que dans mon cas je n'ai pas encore fini ma licence, je viens juste de demar­rer.
    Encore mer­ci…

    1. Bon­jour Blon­del King,
      A ma connais­sance, il y a des for­ma­tions types DUT qui per­mettent de com­men­cer rapi­de­ment la bio­in­for­ma­tique (il y a d'ailleurs un article concer­nant l'IUT d'Aurillac sur ce site). Sinon, il existe éga­le­ment des licences pro­fes­son­nelles qui per­mettent d'accéder ou monde du tra­vail mais aus­si de pou­voir conti­nuer sur un mas­ter en bioin­fo.
      Si tu veux com­men­cer en pre­mière année, il serait envi­sa­geable de te réorien­ter vers un DUT. Il en existe plu­sieurs.
      J'espère avoir répon­due à tes attentes.

  6. Avatar de Blondel King
    Blondel King

    Bon­jour Lee­loo,
    Mer­ci de ta reponse, en effet c est la reponse dont j'esperais. Main­te­nant, je crois que j opte­rai pour une license pro­fes­sion­nelle comme tu l as dis qu'elle per­met d acce­der a un monde de tra­vail et apres je verai com­ment faire pour le mas­ter plu­tard.
    Encore un grand mer­ci a vous tous pour ces infor­ma­tions…

  7. Avatar de Djitcham
    Djitcham

    Bon­jour , j'ai une pas­sion pour la bio­lo­gie mais bon je vou­drais faire dans la bio-infor­ma­tique mais hon­nê­te­ment je me trouve pas du tout com­mode en infor­ma­tique je ne sais pas si c'est pas un pro­blème tel­le­ment grasse

Laisser un commentaire