Ce blog n'est pas toujours lisible pour ma mère. Ce blog n'est pas lisible pour mes grands-parents, mais surtout, il ne l'est pas pour toi, mon collègue informaticien. Toi qui ne me comprends pas quand je te dis que je travaille sur des données de grande dimension et qui imagines des images ou du texte. Toi, mon collègue, qui ne sais pas ce qu'est un gène. Voici un petit lexique de base de quelques cliché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 commentaires pour compléter !
Autre avertissement, ATTENTION, ce texte est TRÈS SUBJECTIF. Il ne reflète que mon interprétation de cette communauté à laquelle j'estime appartenir. L'intégralité de ce qui est dit ici pourrait être remise en question et démontée.
Les compétences types du bioinformaticien
Si vous me lisez régulièrement sur ce blog, vous le savez, j'aime ces articles qui se résumeraient à une conversation autour d'une brioche avec un collègue. Dans ce style, nombreux sont ceux qui ont essayé de définir ce qu’est un bioinformaticien pour en poser une ébauche de contour. À toi, informaticien qui viens du machine learning et qui ne jure que par Python (ou pire go..), voilà un petit moyen de nous repérer.
Les masters de bioinformatique existent de manière stable en France depuis maintenant 20 ans. Les enseignants qu'on y trouve sont variés. Nous avons des informaticiens présents pour former au bash (beaucoup de masters ont un module de bash). Nous avons aussi tous eu un gros cours de biostatistique en R pour savoir comment gérer un data frame et quel test statistique faire sur nos données. La majorité d’entre nous ont également appris le Python en chemin, la plupart du temps pour jouer avec Scikit-learn (une bibliothèque de machine learning). Qu’ils viennent de l’informatique ou de la bioinformatique, ils parlent tous Unix et Linux (Ubuntu ou Fedora selon la fac). D’un autre côté, les plus biologistes d’entre nous continuent de vive sous Windows ou Mac, et en sont très heureux. Le SQL est TRÈS courant mais pas obligatoire dans l'ensemble des parcours que j'ai pu voir. Certains 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 communauté, certains sont plus investis que d’autres dans l’apprentissage des technologies de pointe.
Aucun de nous n'est égal en compétences statistique, modélisation, développement de code logiciel, compréhension de la biologie, physique statistique, gestion des données haut débit, manipulation expérimentale, etc. Tous, nous avons nos propres affinités avec ces domaines, en fonction de notre parcours et des expériences acquises. De manière générale, nous sommes tous de bons scripteurs. Nous savons générer un script et transformant une analyse en quelque chose de concret, qui a du sens, bien interprété, et juste dans la finalité. »
Terminologie des mots barbares de notre domaine et communauté associé
Quitte à continuer dans le cliché un grand coup, je vais tenter de résumer la bioinformatique en une grand sacs de mots associés à différentes communautés d'expertises. Étant passionné par le NGS (next generation sequencing), ma vision sera biaisée par ce prisme.
Chromatine (épigénétique) -> ADN (omique) -> ARN (transcriptomique) : 6 mots, mais ils englobent de nombreuses personnes différentes qui utilisent tous le séquençage de nouvelle génération, une technique de séquençage à haut débit. Ces technologies permettent de récupérer de gros fichiers à partir d'une expérience spécifique menée par un biologiste, afin de réaliser des analyses statistiques dessus. L'ADN est facile à comprendre, il s'agit de la séquence de lettres présente dans ton corps qui te permet de coder à peu près tout (tes gènes et de nombreux autres éléments pour les réguler). Pour obtenir ces informations, on utilise des technologies omiques (terme pour dire beaucoup de donnée bio) qui renvoient de très gros fichiers texte contenant tes séquences. Une fois ces séquences récupérées, on utilise une série de transformations et de méthodes, allant de l'algorithmique du texte aux statistiques telles que l'ANOVA/PCA, pour extraire les informations essentielles.
Si tu comprends ces lignes, passer à l'ARN est facile, c'est le même type de problème (je précise pour les néophytes), mais cette fois-ci au lieu de regarder directement la séquence de lettres qui définit ton gène, tu vas observer si elle est utilisée ou non dans tout ton ADN. En conséquence, il existe des méthodes spécifiques pour traiter ce signal, une série de statistiques dédiées et surtout UN MILLIARD d'expériences différentes pour mieux analyser ton signal en fonction de ta question biologique initiale*.
Avec la chromatine tu ne regardes plus seulement ton ADN, mais aussi toutes les modifications de ton ADN ainsi que tout ce qui se forme autour pour former tes chromosomes. C'est le niveau entre l'ADN et les chromosomes (c'est pourquoi j'ai mis un chromosome dans mon dessin du haut), et il se passe de nombreuses choses car c'est l'état de base de ton ADN (il est constamment associé) avec de nombreux éléments dans tes cellules.
ADN -> ARN -> Protéine (protéomique) :
Si tu veux aller plus loin que l'expression de ton gène et comprendre à quoi il sert, tu dois étudier les protéines avec encore un ensemble d'expériences dédiées, ultra spécifiques et complexes. Lorsqu'on s'intéresse aux protéines, on parle de protéomique ou d'étude de la structure. Ces termes ne sont pas interchangeables, bien que je n'aie jamais cherché à comprendre pourquoi (j'avoue), ils se rapportent à des aspects différents des protéines. Pour résumer ce groupe grossièrement, on y trouve des experts en conception de médicaments et d'autres qui étudient le repliement des protéines. L'intérêt pour eux est de prédire ce repliement ou du moins à le comprendre/caractériser. Cette communauté est très proche de la physico-chimie et utilise toute une gamme de méthodes spécialisées que nous ne connaissons pas tous. On y retrouve des termes amusants comme la dynamique moléculaire (tentative de simulation de la physique d'une molécule) ou des jeux de repliement de protéines.
Phylogénie, évolution, assemblage de génome :
Si tu récupères un petit bout d'ADN humain (disons 1%) et que tu essaies de trouver sa position dans l'ensemble de ton pool d'ADN, comment faire ? Fondamentalement, en tant qu'être humain moyen, tu peux utiliser la bonne vieille fonction de recherche (control+F) pour trouver ta séquence initiale dans l'ensemble. Ce résumé rapide doit être imaginé comme étant effectué des milliards de fois dans le cadre des sujets NGS. Maintenant, si tu as plusieurs petits morceaux d'ADN qui se chevauchent partiellement et que cela forme un puzzle à assembler, comment faire ? Eh bien, cette question concerne l'assemblage des génomes. Il s'agit littéralement de tenter de reconstituer les morceaux de toutes tes séquences de texte à partir d'une manipulation plus ou moins efficace. Maintenant, si tu t'intéresses à l'évolution et que tu veux montrer que tu ne ressembles pas à un singe mais plutôt à un magnifique éléphant, comment faire ? Tu prends tous tes morceaux de séquences, tout ce que tu peux comparer (comme les caractères exprimés, par exemple, est-ce que ton animal a des ailes) et tu mélanges tout cela avec des méthodes de regroupement (clustering) pour obtenir des arbres de liens entre les entités étudiées. Ces vastes techniques impliquent des groupes de chercheurs dédiés, parfois très différents mis ensemble selon les magies des unités de recherche universitaires.
Dans tous ces sujets, bien sûr, il y a parfois aussi des besoins en imagerie, en statistique de pointe dédiée, qui peuvent se retrouver dans chacun de ces gros sacs de mots un peu résumés. Un excellent moyen d'avoir une vue rapide de la communauté, 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 problèmes, n'importe quel lecteur se dira probablement que les machines pour résoudre ces soucis ne sont pas toujours les mêmes. A vrai dire, comme la bioinformatique est très souvent une communauté de recherche, tout se résout la plupart du temps grâce à la magie d'un gros cluster de calcul. Les GPU ne sont un point bloquant que pour les adeptes du deep learning. Pour la majorité des soucis en grande dimension, le besoin principal reste notre bon ami le CPU pour lancer des calculs en parallèle et traiter un grand flux de donnée en même temps (et toujours plus de RAM!!). Nous avons donc pour la plupart une expérience de commence lancer un code sur un cluster. Nous faisons pour la plupart beaucoup de calcul, mais j’avoue ne pas connaitre beaucoup de bioinformaticiens sachant optimiser un code pour le rendre plus performant.
Le fait d’avoir des gros fichiers de séquences biologiques nous force a mettre en place des longues chaines de traitement (pipelines). Cela sert à pouvoir traiter le bon signal issu d’une expérience X ou Y avec les bonnes méthodes (car chaque petit coup de pipette que le biologiste fera ou pas peut modifier cette chaine pour être plus pertinent). Un énorme enjeu actuel est la science reproductible. Cela fait que BEAUCOUP d'ego déplacé se sont dit "ma méthode est mieux, je vais reprendre tout ce qui a été fait depuis 20 ans, relancer tout avec ma méthode et le stocker quelque part".
Un problème qui fait couramment PETER LES PLOMBS des collègues IT est la quantité de données que nous avons à stocker. En thèse je ne pouvais pas travailler sans ma petite tour de 10To (et je rouspétais si quelqu'un la coupais dans la nuit !). Une grande partie des bioinformaticiens ont besoins de transformer 20, 40Go régulièrement et d'avoir 200go d'espace pour faire des fichiers temporaires de manière quotidienne.
Note * : j’ai l’impression d’écrire 10 fois le mot biologique comme mon collègue de master de bioinformatique qui n’y comprenais rien a la biologie et voulais juste faire des maths.
En remerciant relecteurs et admin m'ayant aidé sur cet article : azerin, samuel ortion et sebastien gradit.
Merci a notre super admin : Zazo0o !
Laisser un commentaire