- Le blog participatif de bioinformatique francophone depuis 2012 -

Caricature de la bioinformatique pour mon collègue IT

Ce blog n'est pas tou­jours lisible pour ma mère. Ce blog n'est pas lisible pour mes grands-parents, mais sur­tout, il ne l'est pas pour toi, mon col­lègue infor­ma­ti­cien. Toi qui ne me com­prends pas quand je te dis que je tra­vaille sur des don­nées de grande dimen­sion et qui ima­gines des images ou du texte. Toi, mon col­lègue, qui ne sais pas ce qu'est un gène. Voi­ci un petit lexique de base de quelques cli­chés de notre monde.

Bien sûr, comme nous sommes dans un article et non un livre, tout ne sera pas dit. Mais, je suis sûr que vous serez pré­sents dans les com­men­taires pour com­plé­ter !

Autre aver­tis­se­ment, ATTENTION, ce texte est TRÈS SUBJECTIF. Il ne reflète que mon inter­pré­ta­tion de cette com­mu­nau­té à laquelle j'estime appar­te­nir. L'intégralité de ce qui est dit ici pour­rait être remise en ques­tion et démon­tée.

Les compétences types du bioinformaticien

Si vous me lisez régu­liè­re­ment sur ce blog, vous le savez, j'aime ces articles qui se résu­me­raient à une conver­sa­tion autour d'une brioche avec un col­lègue. Dans ce style, nom­breux sont ceux qui ont essayé de défi­nir ce qu’est un bio­in­for­ma­ti­cien pour en poser une ébauche de contour. À toi, infor­ma­ti­cien qui viens du machine lear­ning et qui ne jure que par Python (ou pire go..), voi­là un petit moyen de nous repé­rer.

Les mas­ters de bio­in­for­ma­tique existent de manière stable en France depuis main­te­nant 20 ans. Les ensei­gnants qu'on y trouve sont variés. Nous avons des infor­ma­ti­ciens pré­sents pour for­mer au bash (beau­coup de mas­ters ont un module de bash). Nous avons aus­si tous eu un gros cours de bio­sta­tis­tique en R pour savoir com­ment gérer un data frame et quel test sta­tis­tique faire sur nos don­nées. La majo­ri­té d’entre nous ont éga­le­ment appris le Python en che­min, la plu­part du temps pour jouer avec Sci­kit-learn (une biblio­thèque de machine lear­ning). Qu’ils viennent de l’informatique ou de la bio­in­for­ma­tique, ils parlent tous Unix et Linux (Ubun­tu ou Fedo­ra selon la fac). D’un autre côté, les plus bio­lo­gistes d’entre nous conti­nuent de vive sous Win­dows ou Mac, et en sont très heu­reux. Le SQL est TRÈS cou­rant mais pas obli­ga­toire dans l'ensemble des par­cours que j'ai pu voir. Cer­tains d'entre nous parlent le Perl, le Java ou le C selon les besoins, car un outil l'utilisait et qu'ils ont appris comme ça. Il y a même des férus de Rust ou d'OCaml. Comme dans toute com­mu­nau­té, cer­tains sont plus inves­tis que d’autres dans l’apprentissage des tech­no­lo­gies de pointe.

Aucun de nous n'est égal en com­pé­tences sta­tis­tique, modé­li­sa­tion, déve­lop­pe­ment de code logi­ciel, com­pré­hen­sion de la bio­lo­gie, phy­sique sta­tis­tique, ges­tion des don­nées haut débit, mani­pu­la­tion expé­ri­men­tale, etc. Tous, nous avons nos propres affi­ni­tés avec ces domaines, en fonc­tion de notre par­cours et des expé­riences acquises. De manière géné­rale, nous sommes tous de bons scrip­teurs. Nous savons géné­rer un script et trans­for­mant une ana­lyse en quelque chose de concret, qui a du sens, bien inter­pré­té, et juste dans la fina­li­té. »

Terminologie des mots barbares de notre domaine et communauté associé

Quitte à conti­nuer dans le cli­ché un grand coup, je vais ten­ter de résu­mer la bio­in­for­ma­tique en une grand sacs de mots asso­ciés à dif­fé­rentes com­mu­nau­tés d'expertises. Étant pas­sion­né par le NGS (next gene­ra­tion sequen­cing), ma vision sera biai­sée par ce prisme.

Chro­ma­tine (épi­gé­né­tique) -> ADN (omique) -> ARN (trans­crip­to­mique) : 6 mots, mais ils englobent de nom­breuses per­sonnes dif­fé­rentes qui uti­lisent tous le séquen­çage de nou­velle géné­ra­tion, une tech­nique de séquen­çage à haut débit. Ces tech­no­lo­gies per­mettent de récu­pé­rer de gros fichiers à par­tir d'une expé­rience spé­ci­fique menée par un bio­lo­giste, afin de réa­li­ser des ana­lyses sta­tis­tiques des­sus. L'ADN est facile à com­prendre, il s'agit de la séquence de lettres pré­sente dans ton corps qui te per­met de coder à peu près tout (tes gènes et de nom­breux autres élé­ments pour les régu­ler). Pour obte­nir ces infor­ma­tions, on uti­lise des tech­no­lo­gies omiques (terme pour dire beau­coup de don­née bio) qui ren­voient de très gros fichiers texte conte­nant tes séquences. Une fois ces séquences récu­pé­rées, on uti­lise une série de trans­for­ma­tions et de méthodes, allant de l'algorithmique du texte aux sta­tis­tiques telles que l'ANOVA/PCA, pour extraire les infor­ma­tions essen­tielles.

Exemple de séquence bien hor­rible qu’on récu­père, mais ca c’est un tout petit bout de pro­téine via wiki­pe­dia

Si tu com­prends ces lignes, pas­ser à l'ARN est facile, c'est le même type de pro­blème (je pré­cise pour les néo­phytes), mais cette fois-ci au lieu de regar­der direc­te­ment la séquence de lettres qui défi­nit ton gène, tu vas obser­ver si elle est uti­li­sée ou non dans tout ton ADN. En consé­quence, il existe des méthodes spé­ci­fiques pour trai­ter ce signal, une série de sta­tis­tiques dédiées et sur­tout UN MILLIARD d'expériences dif­fé­rentes pour mieux ana­ly­ser ton signal en fonc­tion de ta ques­tion bio­lo­gique ini­tiale*.

Avec la chro­ma­tine tu ne regardes plus seule­ment ton ADN, mais aus­si toutes les modi­fi­ca­tions de ton ADN ain­si que tout ce qui se forme autour pour for­mer tes chro­mo­somes. C'est le niveau entre l'ADN et les chro­mo­somes (c'est pour­quoi j'ai mis un chro­mo­some dans mon des­sin du haut), et il se passe de nom­breuses choses car c'est l'état de base de ton ADN (il est constam­ment asso­cié) avec de nom­breux élé­ments dans tes cel­lules.

ADN -> ARN -> Pro­téine (pro­téo­mique) :

Si tu veux aller plus loin que l'expression de ton gène et com­prendre à quoi il sert, tu dois étu­dier les pro­téines avec encore un ensemble d'expériences dédiées, ultra spé­ci­fiques et com­plexes. Lorsqu'on s'intéresse aux pro­téines, on parle de pro­téo­mique ou d'étude de la struc­ture. Ces termes ne sont pas inter­chan­geables, bien que je n'aie jamais cher­ché à com­prendre pour­quoi (j'avoue), ils se rap­portent à des aspects dif­fé­rents des pro­téines. Pour résu­mer ce groupe gros­siè­re­ment, on y trouve des experts en concep­tion de médi­ca­ments et d'autres qui étu­dient le replie­ment des pro­téines. L'intérêt pour eux est de pré­dire ce replie­ment ou du moins à le comprendre/​caractériser. Cette com­mu­nau­té est très proche de la phy­si­co-chi­mie et uti­lise toute une gamme de méthodes spé­cia­li­sées que nous ne connais­sons pas tous. On y retrouve des termes amu­sants comme la dyna­mique molé­cu­laire (ten­ta­tive de simu­la­tion de la phy­sique d'une molé­cule) ou des jeux de replie­ment de pro­téines.

Phy­lo­gé­nie, évo­lu­tion, assem­blage de génome :

Si tu récu­pères un petit bout d'ADN humain (disons 1%) et que tu essaies de trou­ver sa posi­tion dans l'ensemble de ton pool d'ADN, com­ment faire ? Fon­da­men­ta­le­ment, en tant qu'être humain moyen, tu peux uti­li­ser la bonne vieille fonc­tion de recherche (control+F) pour trou­ver ta séquence ini­tiale dans l'ensemble. Ce résu­mé rapide doit être ima­gi­né comme étant effec­tué des mil­liards de fois dans le cadre des sujets NGS. Main­te­nant, si tu as plu­sieurs petits mor­ceaux d'ADN qui se che­vauchent par­tiel­le­ment et que cela forme un puzzle à assem­bler, com­ment faire ? Eh bien, cette ques­tion concerne l'assemblage des génomes. Il s'agit lit­té­ra­le­ment de ten­ter de recons­ti­tuer les mor­ceaux de toutes tes séquences de texte à par­tir d'une mani­pu­la­tion plus ou moins effi­cace. Main­te­nant, si tu t'intéresses à l'évolution et que tu veux mon­trer que tu ne res­sembles pas à un singe mais plu­tôt à un magni­fique élé­phant, com­ment faire ? Tu prends tous tes mor­ceaux de séquences, tout ce que tu peux com­pa­rer (comme les carac­tères expri­més, par exemple, est-ce que ton ani­mal a des ailes) et tu mélanges tout cela avec des méthodes de regrou­pe­ment (clus­te­ring) pour obte­nir des arbres de liens entre les enti­tés étu­diées. Ces vastes tech­niques impliquent des groupes de cher­cheurs dédiés, par­fois très dif­fé­rents mis ensemble selon les magies des uni­tés de recherche uni­ver­si­taires.

Dans tous ces sujets, bien sûr, il y a par­fois aus­si des besoins en ima­ge­rie, en sta­tis­tique de pointe dédiée, qui peuvent se retrou­ver dans cha­cun de ces gros sacs de mots un peu résu­més. Un excellent moyen d'avoir une vue rapide de la com­mu­nau­té, je trouve, est de lire les grands thèmes des confé­rences Jobim année après année.

Les problèmes courant et besoins d'infrastructure

Devant cette immense varié­té de pro­blèmes, n'importe quel lec­teur se dira pro­ba­ble­ment que les machines pour résoudre ces sou­cis ne sont pas tou­jours les mêmes. A vrai dire, comme la bio­in­for­ma­tique est très sou­vent une com­mu­nau­té de recherche, tout se résout la plu­part du temps grâce à la magie d'un gros clus­ter de cal­cul. Les GPU ne sont un point blo­quant que pour les adeptes du deep lear­ning. Pour la majo­ri­té des sou­cis en grande dimen­sion, le besoin prin­ci­pal reste notre bon ami le CPU pour lan­cer des cal­culs en paral­lèle et trai­ter un grand flux de don­née en même temps (et tou­jours plus de RAM!!). Nous avons donc pour la plu­part une expé­rience de com­mence lan­cer un code sur un clus­ter. Nous fai­sons pour la plu­part beau­coup de cal­cul, mais j’avoue ne pas connaitre beau­coup de bio­in­for­ma­ti­ciens sachant opti­mi­ser un code pour le rendre plus per­for­mant.

Le fait d’avoir des gros fichiers de séquences bio­lo­giques nous force a mettre en place des longues chaines de trai­te­ment (pipe­lines). Cela sert à pou­voir trai­ter le bon signal issu d’une expé­rience X ou Y avec les bonnes méthodes (car chaque petit coup de pipette que le bio­lo­giste fera ou pas peut modi­fier cette chaine pour être plus per­ti­nent). Un énorme enjeu actuel est la science repro­duc­tible. Cela fait que BEAUCOUP d'ego dépla­cé se sont dit "ma méthode est mieux, je vais reprendre tout ce qui a été fait depuis 20 ans, relan­cer tout avec ma méthode et le sto­cker quelque part".

Exemple de pipe­line pris au hasard sur un site de réfé­rence.

Un pro­blème qui fait cou­ram­ment PETER LES PLOMBS des col­lègues IT est la quan­ti­té de don­nées que nous avons à sto­cker. En thèse je ne pou­vais pas tra­vailler sans ma petite tour de 10To (et je rous­pé­tais si quelqu'un la cou­pais dans la nuit !). Une grande par­tie des bio­in­for­ma­ti­ciens ont besoins de trans­for­mer 20, 40Go régu­liè­re­ment et d'avoir 200go d'espace pour faire des fichiers tem­po­raires de manière quo­ti­dienne.

Note * : j’ai l’impression d’écrire 10 fois le mot bio­lo­gique comme mon col­lègue de mas­ter de bio­in­for­ma­tique qui n’y com­pre­nais rien a la bio­lo­gie et vou­lais juste faire des maths.

En remer­ciant relec­teurs et admin m'ayant aidé sur cet article : aze­rin, samuel ortion et sebas­tien gra­dit.

Mer­ci a notre super admin : Zazo0o !




Commentaires

Laisser un commentaire