"Je n'y connais rien en informatique", "C'est trop compliqué pour moi" ou "Je ne sais pas par où commencer" sont des phrases qui nous servent souvent d'excuse pour ne pas nous lancer dans le grand bain de la bioinformatique. Biologiste de formation, j'ai moi-même à plusieurs reprises repoussé l'échéance avant de sauter, ne sachant comment m'y prendre ou voulant commencer directement par des choses trop complexes.
Cet article est donc là pour vous aider à vous lancer, trouver par où commencer et vous donner des indications sur ce que vous pourriez arriver à faire en assez peu de temps.
Je n'aurai pas la prétention de vous transformer en bioinformaticien avec cet article, mais je vais poser des bases essentielles pour commencer et vous montrer quelques exemples de ce qu'il est possible de faire en bioinformatique.
La bioinformatique est aujourd'hui un outil indispensable à la biologie et est utile à n'importe quel biologiste souhaitant élargir son horizon. Elle touche aussi, bien sûr, les informaticiens qui s'intéressent à la biologie. Cette discipline va du simple traducteur de format (voir mon article sur Blast2Gb.pl) à des gros tunnels informatiques de traitement de données (voir l'article de Nisaea sur Galaxy). Les domaines dans lesquels on la retrouve sont aussi divers que, entre autres, la génétique, l'évolution ou l'écologie. Elle peut être utilisée par un biologiste comme par un informaticien, le bioinformaticien étant un hybride, connaissant la biologie et l'informatique.
[lien cassé vers une vidéo]
La bioinformatique est un domaine de recherche et d'expertise laquelle peut être appliquée par des chercheurs et des ingénieurs. Par exemple, cette vidéo de France5, sur laquelle on nous voit apparaitre, présente quelques possibilités de carrière :
[lien cassé vers une vidéo]
Quel système d'exploitation pour le bioinformaticien ?
Windows, Mac OS ou GNU/Linux : le choix du système d'exploitation sur lequel travailler relève en premier lieu du goût de l'utilisateur, mais pourra vite se retrouver orienté par les serveurs sur lesquels il va travailler. Car aujourd'hui, l'avènement des techniques de séquençage à haut débit apporte une quantité de données rarement traitable sur un ordinateur de bureau. La plupart des serveurs de calcul étant sous GNU/Linux, je vous orienterai plutôt vers Mac OS ou une distribution de la famille GNU/Linux. Il est possible de travailler sur Windows, mais ça sera plus contraignant. Et les systèmes GNU/Linux sont habituellement gratuits (même sans acheter d'ordinateur avec), le plus facile à utiliser et user-friendly est Ubuntu, alors lancez-vous !
Mais alors : que fait un bioinformaticien ?
Eh bien, il utilise ou crée des logiciels pour traiter des données, les mettre en forme, les représenter, les ranger, les maintenir, etc. Il crée des logiciels ? Oui, et des liens entre logiciels, des outils simples ou complexes, des traducteurs, des bases de données sont dans le bouquet.
Mais il existe aussi des bioinformaticiens plus orientés biologie, qui ne codent pas ou peu et qui utilisent des logiciels déjà prêts, font quelques scripts pour automatiser et peuvent être plus axés sur l'analyse des données. Il existe même une espèce de bioinformaticiens qui ne codent plus du tout, et eux disent que ce qu'ils font est la vraie bioinformatique, que seuls les informaticiens codent.
Chaque bioinformaticien a donc sa propre définition, il suffit de venir sur notre canal IRC demander la différence entre un bon et un mauvais chasseur… euh… bioinformaticien pour s'en convaincre !
En tout cas, les bioinformaticiens sont des gens qui comprennent la biologie et utilisent l'informatique principalement pour faciliter le travail des biologistes, en automatisant des tâches lourdes et rébarbatives. Ainsi, le billet de tadaima sur l'API Perl montre un exemple d'une telle aide : ici, les outils bioinformatiques sont utilisés pour récupérer une grande quantité d'informations à partir d'une grosse base de données sans faire du copier-coller pendant 2 jours.
Un contre-exemple est le billet de Guillaume Collet sur les calculs de conservation : il nous explique une façon différente d'aborder la bioinformatique. Guillaume est un expert à mi-chemin entre l'applicatif et l'algorithmique. Il apporte à la biologie une formalisation plus théorique tout en permettant d'expliquer l'observation historique qui mène à la divergence de séquences par l'utilisation des scores de conservation.
Puisque j'ai mentionné la programmation, parlons maintenant un peu langages de programmation. Je vous invite à lire l'article de Gophys sur les différents langages de programmation pour plus de détails. Mon focus est de vous donner des exemples concrets à titre d'illustration.
Perl et Python
Pour bien commencer — et de façon simple — commençons par parler des deux vedettes de la bioinformatique, frères ennemis, que sont les langages Perl et Python. Ils sont spécialement utilisés pour leur puissance de traitement de texte. En effet, la plupart des informations biologiques sont sous forme de texte, et ces deux langages, en plus d'être relativement facile à appréhender, ont été faits pour traiter du texte, rapidement et efficacement.
Voici un exemple de code écrit en Perl :
1 2 |
#!/usr/bin/perl print "Hello World!\n"; |
Voici le même code en Python :
1 2 |
#!/usr/bin/python print('Hello World!') |
Vous remarquerez que ces deux langages sont extrêmement proches de premier abord. Ils présentent cependant de grosses différences, le premier étant plus laxiste, le deuxième plus précis. Je vous invite à lire le livre Learning Perl aux éditions O'Reilly ou bien la documentation en ligne de Perl pour commencer en Perl. Côté Python, le très bon Dive into python, en français pour mes lecteurs préférés, est idéal pour commencer en Python. Vous trouverez aussi de bons didacticiels en français sur le Site du Zéro, comme par exemple comment programmer avec Python avec même des vidéos à la clé !
Pour la biologie, des modules appelés BioPerl et BioPython ont été développés et permettent par exemple de télécharger plusieurs séquences au format fasta sur GeneBank sans avoir à les faire une par une à la main, de récupérer des informations et de les trier. Un exemple de BioPython, par exemple ? En voilà : pour annoter une liste d'ID de gènes sur la base Entrez du NCBI.
L'interpréteur de commande
Pour lancer un programme, aussi bien sous Windows que sous Mac OS ou GNU/Linux, il faut passer par un interpréteur de commandes, respectivement cmd.exe et shell. Ce sont les interfaces permettant à l'utilisateur de s'adresser directement à l'ordinateur. Chaque interface a ses spécificités : il faut lui parler dans une langue qu'elle comprend et sait interpréter. Dans le cas du shell sous GNU/Linux, par exemple, la langue la plus fréquemment utilisée est le bash.
Avec ces détails, nous pouvons lancer un programme écrit Perl par exemple :
1 |
perl programme.pl |
De nombreuses fonctions sont disponibles sous bash, moins sous cmd.exe, mais il est possible d'utiliser bash sous Windows avec un logiciel comme putty ou cygwin.
Depuis Windows 7, PowerShell vient en complément de cmd.exe. C'est un shell s'approchant des possibilités de bash.
L'interpréteur de commande, en plus de lancer des programmes, permet de définir les chemins, les droits d'accès, l'environnement, etc. de votre ordinateur.
On peut encore faire des boucles et les commandes awk et sed permettent des faire des manipulations avancées sur des textes, à la manière de Perl ou Python, en étant cependant moins souples et puissants. On peut par exemple remplacer un caractère "_" par un "-" dans la chaine de caractères $chaine qui a pour valeur "bioinfo_fr" avec la commande suivante :
1 |
echo $chaine | sed -e "s/_/-/" |
(La forme "s/x/y/" est d'ailleurs reprise en Perl par exemple.)
Vous trouverez des détails sur les différences entre Perl, Python ou encore awk et sed sur cette page (en anglais).
C'est tout ?
Eh bien non, le monde de la bioinformatique est tellement vaste que j'aurais bien du mal à vous en présenter les limites. Ainsi, je me contenterai d'élargir un peu la vision présentée jusqu'ici.
Par exemple, dans le cadre de la bioinformatique entrent les statistiques et la modélisation, qu'il est possible d'appréhender avec des logiciels comme R ou Matlab. Ces deux logiciels sont proches dans leurs fonctionnalités et utilisent un langage de programmation qui leur est propre. R a l'avantage d'être gratuit. Ils vous permettront aussi de faire de beaux graphiques. Un exemple très simple en R, permettant de faire une représentation 3D, est le suivant :
1 2 3 4 5 |
install.packages("onion") require(onion) data(bunny) p3d(bunny,theta=3,phi=104,box=FALSE) |
Je vous laisse le bonheur de découvrir ce que fait ce petit code !
La plupart des graphs que vous voyez dans les grands journaux sont faits sous R. À la différence des tableurs, comme Excel ou Numbers qui permettent de faire des graphs automatiquement, dans R vous contrôlez absolument tout. Vous pouvez automatiser la création de graphes tout comme vous automatiseriez un traitement de données. La bible de R est le R book.
Aller plus loin
Enfin, un petit article en anglais pour saisir quelques ficelles du métier : Hello — I used to think I was good with a computer. Dans cette discussion, Jon_Keats expose ses débuts en bioinformatique et donne les démarches et solutions entreprises pour arriver à ses fins. Par exemple, il donnera le conseil suivant : "Mon patron aurait dû me faire lire le tutoriel "Unix and Perl for Biologists" des années auparavant". Il vous donnera aussi les premières bases de l'installation d'un programme sous GNU/Linux ou encore comment utiliser le gestionnaire de version git pour éviter l'accumulation inutile de mon-fichier1.txt, mon-fichier2.txt, etc.
Un outil utile pour apprendre différents langages est disponible ici. Il vous permettra d'apprendre comment passer d'un langage à un autre.
La conclusion serait que pour devenir bioinformaticien, il faut avoir de bonnes bases en biologie ou en informatique et s'intéresser fortement à l'autre discipline, celle que l'on connaît le moins, afin de pouvoir discuter et se comprendre.
Voilà déjà de quoi vous occuper quelques temps et vous permettre d'accéder au monde magique de l'automatisation. Si vous avez la moindre question, n'hésitez pas à venir nous la poser des questions sur le canal IRC ("le chan" pour les intimes), nous nous ferons un plaisir d'y répondre ! Ah, vous ne savez pas ce qu'est un chan ? Allez voir là !
A bientôt sur le chan !
Merci à Malicia, Guillaume, Yoann et Nicolas pour leurs relectures et commentaires pré-publication.
Crédit image : Isabelle Stévant (Art Libre)
Laisser un commentaire