Que peut-on faire en 48 heures? Entretien avec le vainqueur du hackathon bioinformatique BioHack 2019

Le quatrième hackathon bioinformatique BioHack 2020 démarre le 27 mars à Saint-Pétersbourg . Pendant l'existence du hackathon, plus de 300 jeunes spécialistes de différents pays y ont participé et 58 solutions ont été développées. Les principaux organismes de recherche ont présenté leurs projets pour travailler au hackathon: Institute of Physiology nommé d'après I.P. Pavlova, Institut de cytologie RAS, Université d'État de Saint-Pétersbourg, Centre scientifique fédéral de médecine physique, JetBrains BioLabs, Protein Institute RAS, Genotek, MIPT, iBinom et autres.

En 2019, l'équipe Garlic a remporté le prix principal de 150000 roubles. Pendant 48 heures allouées au travail, l'équipe a créé un outil qui vous permet de rechercher des réarrangements génomiques d'une structure donnée. Nous avons demandé au commissaire du projet, Dmitry Konanov, de parler du projet, du hackathon et, en général, de la vie de la bioinformatique.



- Dites-moi, que faisiez-vous à ce moment où vous étiez membre du hackathon?
- Au moment de ma participation au hackathon, je travaillais dans le laboratoire de bioinformatique du Centre fédéral scientifique et pratique de médecine physique-chimique de la FMBA de Russie (Centre scientifique et clinique fédéral de médecine physique et chimique de l'Agence fédérale médicale et biologique) - y a rédigé un diplôme. Maintenant, je continue de travailler dans le centre.

- Pourquoi avez-vous décidé de participer à BioHack?
- D'une manière ou d'une autre, c'est arrivé si spontanément. La date limite approchait déjà - l'un des derniers jours de réception des projets était lancé, le laboratoire m'a demandé si je voulais participer au hackathon: je devais juste envoyer le projet. J'ai écrit quelque chose en 15 minutes environ et envoyé une demande.



- Alors c'était un projet sur lequel tu travaillais déjà en laboratoire?
- Je voulais y travailler, j'ai commencé à travailler dessus, mais c'était très inachevé. Au hackathon, nous l'avons amené à l'état dans lequel je voulais apporter - l'algorithme est devenu plus automatisé.

- Dites-moi comment l'idée du projet est née.
- En général, l'idée initiale n'est pas la mienne, mais Alexander Manolov, Ph.D. laboratoires de bioinformatique. C'est la personne qui était à l'époque le chef de mon diplôme.

On sait que les génomes des bactéries sont très plastiques. De nombreux événements peuvent s'y produire: le transfert de gènes d'une bactérie à une autre, un changement dans leur séquence, l'insertion et l'élimination de fragments du génome. L'idée est la suivante: qu'il y ait 4 génomes bactériens. Chaque génome se compose de 5 gènes: le premier génome XYZTF, le deuxième génome XRLAF, le troisième génome XYKTF et le quatrième XYLTF. (Figure «Perestroïka dans les graphiques»). Dans notre exemple, les mêmes lettres dans les génomes correspondent à des gènes homologues (on pourrait dire les mêmes). La séquence de lettres montre la séquence des gènes dans les génomes.

Nous définissons chaque gène de l'échantillon de génomes comme un nœud du graphique et dessinons des bords entre les gènes-nœuds qui sont situés séquentiellement dans au moins l'un des génomes de l'échantillon.



Ainsi, nous obtenons un graphique qui contient des informations sur toutes les variantes possibles de l'alternance des gènes dans les génomes sélectionnés. Et avec cette structure graphique, vous pouvez déjà faire tout ce que votre cœur désire.

Notre première tâche a été de rechercher des régions avec une forte implication locale dans les graphiques qui surviennent dans les soi-disant points chauds des réarrangements génomiques - des endroits où, pour des raisons qui ne sont pas toujours comprises, le génome change intensivement de souche en souche. Nous avons appelé la mesure de l'intrication au voisinage de la complexité du génome du nœud. Cette valeur montre essentiellement numériquement la fréquence de la perestroïka dans certaines régions.

- Et quelle est l'essence du problème que vous avez résolu avec l'équipe lors du hackathon?
- Lors du hackathon, nous avons mis en évidence une tâche plus belle mathématiquement ou quelque chose.
Tout réarrangement du génome, que ce soit une suppression (environ la perte d'un site chromosomique), une insertion ou une inversion (environ l'ordre inverse des gènes d'un site chromosomique), conduit à la formation de sous-graphiques d'une certaine topologie dans notre grand graphique de réarrangements. Et je pensais que ce serait bien si nous pouvions rechercher des sous-graphes spécifiques correspondant en structure à la perestroïka qui nous intéresse. Cela permettrait de trouver efficacement dans le génome des points où les événements se produisent le plus souvent et de comparer la fréquence entre différentes espèces et genres de bactéries. On sait, par exemple, que certaines parties du génome sont interdites pour les inversions et les zones où les inversions se produisent le plus souvent.

Un intérêt purement fondamental était d'examiner les profils de distribution de fréquence le long du génome et d'autres types de réarrangements. Si nous parlons de signification pratique, cette histoire est directement liée à la biotechnologie: nous pensons que, connaissant la sensibilité de différents fragments du génome aux inserts, nous pouvons supposer à l'avance où il est plus probable qu'un fragment aléatoire d'ADN étranger soit inséré. Mais nous ne l'avons pas vérifié.

Même avant le hackathon, j'ai manipulé quelque chose avec des stylos, écrit un algorithme plutôt tordu qui chercherait un modèle spécifique (nom de code Smile, en raison de son apparence caractéristique). J'ai trouvé la fréquence et la distribution le long du génome pour de nombreuses espèces, même des choses amusantes ont été découvertes, par exemple, dans des bactéries avec un grand nombre de smileys, des réarrangements de tout type se sont produits tout aussi probablement le long du génome entier, et dans des bactéries avec un petit nombre de smileys que dans un nombre limité de points chauds (à intégrale proche dans la fréquence du génome). Bien sûr, je voulais faire quelque chose de plus universel afin de pouvoir demander tous les sous-graphiques possibles pour la recherche. J'ai apporté cette idée au hackathon.

À la suite de deux jours de travail, nous avons obtenu un outil appelé GARLIC-Finder - un outil pour étudier les réarrangements génomiques d'une structure donnée. Nous avons écrit un langage universel pour spécifier les sous-graphes à rechercher, mais comme une telle tâche est compliquée en NP, la recherche "frontale" ne s'est avérée être que de petits sous-graphes statiques. Par conséquent, nous avons ajouté la possibilité pour l'utilisateur d'ajouter des algorithmes personnalisés optimisés pour la recherche de modèles spécifiques. Lors du hackathon, nous nous sommes installés sur trois modèles - une paire de gènes entre lesquels des inserts (Ail), des transpositions d'un fragment de génome (Pingouin) et un gène avec un environnement très riche (Spider) se produisent souvent (Fig. «Recherche de sous-graphe-réarrangements»). L'ail a été le premier et a donc donné le nom à notre Tulu. C'est devenu un acronyme: G enome re AR rangementsL gagnant I nterfa C e.



J'en ai même profité un peu plus tard.

- Peu? Autrement dit, ce projet n'a pas avancé plus loin que le hackathon?
- Maintenant, le problème est que nous sommes encore au stade de la publication d'un grand article sur les graphiques et sur la complexité génomique. Une personne qui rédige une dissertation sur ce sujet s'y engage. Nous avons envoyé la première option au cours de l'été, mais elle a malheureusement été rejetée. L'autre jour envoyé à nouveau, déjà dans une autre édition. Si tout se passe bien, nous continuerons peut-être à creuser dans cette direction.

- Qu'est-ce que le hackathon vous a apporté?
- Le projet est devenu une grande partie de ma thèse. De nouvelles idées d'optimisation sont apparues. Eh bien, en général, j'ai moi-même appris beaucoup de nouvelles choses.

- Sur quoi avez-vous dépensé de l'argent, sinon secret?
- Ce n'est pas un secret, un bon joueur avec des écouteurs :).

- Quel langage de programmation a été utilisé pour résoudre le problème?
- Python, exclusivement Python. Et différentes bibliothèques. Pour travailler avec des graphiques NetworkX, pour visualiser Graphviz et sa liaison à un Python. Eh bien, le Matplotlib classique et Pandas pour travailler avec des données. Et une bibliothèque auto-écrite est gene-graph-lib .

- Et qui était dans ton équipe?
- Deux programmeurs et un biologiste. Tout le monde s'est avéré très utile.
Quel était votre objectif global, pourquoi avez-vous décidé d'envoyer le projet à un hackathon?
Je voulais résoudre un problème et le résoudre efficacement. J'avais prévu de le faire moi-même, mais ici une opportunité unique s'est présentée et j'ai décidé de l'utiliser. Eh bien, je voulais juste voir ce qu'est un hackathon.

- Aimes-tu?
- Merveilleux, tout simplement merveilleux! L'organisation, la nourriture, la pièce où tout cela s'est passé, les gens sont merveilleux. Il n'y avait rien à redire du tout.

Ce serait très bien s'ils me permettaient d'utiliser des moniteurs locaux, de l'équipement du personnel, si je comprends bien - le hackathon a eu lieu au bureau de l'EPAM - mais, bien sûr, nous n'étions pas autorisés.

- Comment t'es-tu préparé pour le hackathon? Que faut-il faire, en plus de prendre votre équipement?
- Aux dirigeants (approx. Commissaires)il fallait préparer une présentation de 1,5 à 2 minutes sur le projet. Il est important que les participants lisent attentivement les termes des projets afin de voir quelles exigences les dirigeants ont pour les membres de l'équipe. Il peut arriver qu'une personne sur un ordinateur portable soit entièrement équipée de l'environnement du deuxième Python et du conservateur, par exemple, le troisième. Cela n'a pas d'importance, mais cela peut prendre plus de temps pour réinstaller l'environnement, et vous avez juste dû lire attentivement que vous avez besoin d'un troisième Python.

Mais en termes de savoir comment se préparer, tout n'est pas clair ici. Naturellement, vous devez pouvoir programmer dans les langues requises et tâtonner un peu dans le contexte du problème qui vous est proposé comme projet. Bien que nous ayons eu un membre de l'équipe qui ne connaissait pas du tout la biologie, mais qui était très utile - c'est lui qui a écrit l'analyseur de langage pour définir les sous-graphes, cette tâche lui incombait entièrement.

- Vous avez déjà parlé de l'organisation, des locaux, de la nourriture. Où as-tu dormi? Et tu as dormi du tout?
"Pendant 48 heures, j'ai dormi pendant quatre heures, je suppose." J'étais toujours sur le site, la dernière nuit je suis juste parti pour l'hôtel.

- Autrement dit, les participants doivent être préparés mentalement à cela.
- Et moralement et physiquement surtout. Si une personne a de l'expérience dans la préparation de certaines séances terribles, lorsque vous ne dormez pas pendant deux nuits, c'est une bonne préparation. J'ai eu de tels cas pendant mes études, alors j'étais prêt.

- Quel est votre objectif global? Pourquoi faites-vous de la bioinformatique?
- En général, je suis accidentellement entré dans la bioinformatique. J'ai étudié à la faculté de l'Académie des sciences agronomiques de la RAS. Là, les étudiants, à partir de la deuxième année, sont tenus de se rendre à des travaux scientifiques un jour par semaine dans l'un des instituts de l'Académie russe des sciences. J'ai répondu à la proposition du RAS IBCh, sans aucune idée de ce que j'aurais à faire. J'y suis venu et il s'est avéré que je ferais une analyse des données NGS et de la protéomique. Ensuite, j'ai commencé à apprendre le Python et à comprendre la bioinformatique. Il y a travaillé pendant deux ans, le projet semblait un peu au point mort et je suis allé là où je travaille maintenant.
Je l'aime. J'ai toujours aimé les mathématiques et la biologie, c'est arrivé en quelque sorte.

- Quels livres, cours, conférences, films recommandez-vous aux enfants de regarder?
- Il y a un cours sur les algorithmes bioinformatiques à Coursera de l'Université de San Diego, à la création duquel j'ai participéPavel Pevzner , sur Stepic, il l'est aussi. J'y ai résolu quelques problèmes - très utiles. Ils vous permettent de pomper des connaissances tant en biologie moléculaire qu'en codage. L'essence de la plupart des tâches est que vous devez programmer une sorte d'analyse de séquence simple ou similaire. Je sais que l'Institut de bioinformatique organise des conférences invitées qui peuvent être consultées sur YouTube, en plus, il a des cours sur Stepic . En Python, j'ai lu fidèlement environ 500 des premières pages de Learning Python de Mark Lutz , puis j'ai simplement lu la documentation, les journaux des modifications et la pratique.

La chose la plus importante est de résoudre les problèmes. Il est inutile de lire la théorie et, dans le processus de résolution de problèmes, vous apprenez à résoudre de vrais problèmes.

- Envisagez-vous de participer au hackathon cette année?
"Oui, je pense que oui."

- Avec quoi? Ou est-ce encore un secret?
- Il y a deux options, tandis que des idées se forment. Je ne vais pas l'exprimer. J'ai encore un mois entier. Je vais le donner, probablement, comme toujours au dernier moment :)

- Et de quoi parle-t-on actuellement dans le monde de la bioinformatique?
- Aime souvent les thèmes de battage médiatique. J'ai un étudiant de l'Université technique russe de chimie qui écrit un diplôme sur un sujet graphique, alors il a décidé de construire un graphique sur le génome récemment publié du coronavirus et de ses proches.

- Intrigué. Nous attendrons de nouvelles découvertes et de nouveaux projets intéressants de votre part et de vos collègues!

Vous pouvez soumettre le projet jusqu'au 28 février et vous inscrire en tant que participant jusqu'au 5 mars sur biohack.ru .

All Articles