¿Qué se puede hacer en 48 horas? Entrevista con el ganador del hackathon de bioinformática BioHack 2019

El cuarto hackathon bioinformático BioHack 2020 comienza el 27 de marzo en San Petersburgo . Durante la existencia del hackathon, más de 300 jóvenes especialistas de diferentes países participaron y se desarrollaron 58 soluciones. Las principales organizaciones de investigación presentaron sus proyectos para trabajar en el hackathon: el Instituto de Fisiología lleva el nombre de I.P. Pavlova, Instituto de Citología RAS, Universidad Estatal de San Petersburgo, Centro Científico Federal de Medicina Física, JetBrains BioLabs, Instituto de Proteínas RAS, Genotek, MIPT, iBinom y otros.

En 2019, el equipo de Garlic se llevó el premio principal de 150,000 rublos. Durante 48 horas asignadas al trabajo, el equipo creó una herramienta que le permite buscar reordenamientos genómicos de una estructura dada. Le pedimos al curador del proyecto, Dmitry Konanov, que hablara sobre el proyecto, el hackatón y, en general, la vida de la bioinformática.



- Dime, ¿qué estabas haciendo en ese momento cuando eras miembro del hackathon?
- En el momento de mi participación en el hackathon, trabajaba en el laboratorio de bioinformática en el Centro Federal Científico y Práctico de Medicina Físico-Química de la FMBA de Rusia (Centro Federal Científico y Clínico de Medicina Física y Química de la Agencia Médica y Biológica Federal) - escribió un diploma allí. Ahora sigo trabajando en el centro.

- ¿Por qué decidiste participar en BioHack?
- De alguna manera sucedió tan espontáneamente. La fecha límite ya se acercaba: uno de los últimos días de recepción de proyectos estaba en marcha, el laboratorio me preguntó si quería participar en el hackathon: solo tenía que enviar el proyecto. Escribí algo en unos 15 minutos y envié una solicitud.



- ¿Entonces fue un proyecto en el que ya trabajaste en el laboratorio?
- Quería trabajar en ello, comencé a trabajar en él, pero estaba muy inacabado. En el hackathon, lo llevamos al estado que quería llevar: el algoritmo se ha vuelto más automatizado.

- Dime cómo surgió la idea del proyecto.
- En general, la idea inicial no es mía, sino de Alexander Manolov, Ph.D. laboratorios de bioinformática. Esta es la persona que en ese momento era la cabeza de mi diploma.

Se sabe que los genomas de las bacterias son muy plásticos. Pueden ocurrir muchos eventos en ellos: la transferencia de genes de una bacteria a otra, un cambio en su secuencia, inserción y eliminación de fragmentos del genoma. La idea es esta: que haya 4 genomas bacterianos. Cada genoma consta de 5 genes: el primer genoma XYZTF, el segundo genoma XRLAF, el tercer genoma XYKTF y el cuarto XYLTF. (Figura "Perestroika en los gráficos"). En nuestro ejemplo, las mismas letras en los genomas corresponden a genes homólogos (uno podría decir, lo mismo). La secuencia de letras muestra la secuencia de genes en los genomas.

Definimos cada gen de la muestra de genomas como un nodo del gráfico y dibujamos bordes entre esos nodos de genes que se encuentran secuencialmente en al menos uno de los genomas de la muestra.



Por lo tanto, obtenemos un gráfico que contiene información sobre todas las variantes posibles de la alternancia de genes en los genomas seleccionados. Y con esta estructura gráfica ya puedes hacer lo que tu corazón desee.

Nuestra primera tarea fue buscar regiones con alta participación local en los gráficos que surgen en los llamados puntos calientes de reordenamientos genómicos, lugares donde, por razones no siempre claras, el genoma cambia intensamente de una cepa a otra. Llamamos a la medida del enredo en la vecindad de la complejidad del genoma del nodo. Este valor esencialmente muestra numéricamente con qué frecuencia ocurre la perestroika en ciertas regiones.

- ¿Y cuál es la esencia del problema que resolviste con el equipo en el hackathon?
- En el hackathon sacamos una tarea matemáticamente más bella o algo así.
Cualquier reordenamiento genómico, ya sea una eliminación (pérdida de un sitio cromosómico), inserción o inversión (orden inverso de genes de un sitio cromosómico), conduce a la formación de subgrafías de una determinada topología en nuestro gran gráfico de reordenamientos. Y pensé que sería bueno si pudiéramos buscar subgrafías específicas que se correspondan en estructura con la perestroika que nos interesa. Esto permitiría encontrar eficientemente puntos en el genoma en los que los eventos ocurren con mayor frecuencia, y comparar la frecuencia entre diferentes especies y géneros de bacterias. Se sabe, por ejemplo, que hay partes del genoma que están prohibidas para las inversiones, y áreas donde las inversiones ocurren con mayor frecuencia.

Un interés puramente fundamental era mirar los perfiles de distribución de frecuencia a lo largo del genoma y para otros tipos de reordenamientos. Si hablamos de importancia práctica, entonces esta historia está directamente relacionada con la biotecnología: creemos que, conociendo la susceptibilidad de los diferentes fragmentos del genoma a los insertos, podemos suponer de antemano dónde es más probable que se inserte un fragmento aleatorio de ADN extraño. Pero no lo comprobamos.

Incluso antes del hackathon, manejé algo con bolígrafos, escribí un algoritmo bastante torcido que buscaría un patrón específico (nombre en clave Smile, debido a su apariencia característica). Encontré la frecuencia y la distribución a lo largo del genoma para muchas especies, incluso se descubrieron algunas cosas divertidas, por ejemplo, en bacterias con una gran cantidad de smileys, las reorganizaciones de cualquier tipo ocurrieron igualmente en todo el genoma y en bacterias con una pequeña cantidad de smileys solo en un número limitado de puntos calientes (en integral cercano en frecuencia genómica). Por supuesto, quería hacer algo más universal para poder solicitar posibles subgrafías para la búsqueda. Traje esta idea al hackathon.

Como resultado de dos días de trabajo, obtuvimos una herramienta llamada GARLIC-Finder, una herramienta para estudiar reordenamientos genómicos de una estructura dada. Escribimos un lenguaje universal para especificar subgráficos para la búsqueda, pero dado que tal tarea es complicada en NP, la búsqueda "frontal" resultó ser solo pequeños subgráficos estáticos. Por lo tanto, agregamos la capacidad para que el usuario agregue algoritmos personalizados que están optimizados para la búsqueda de patrones específicos. En el hackathon, nos basamos en tres patrones: un par de genes entre los que a menudo se producen insertos (ajo), transposiciones de un fragmento del genoma (pingüino) y un gen con un entorno muy rico (araña) (Fig. "Buscar reordenamientos de subgrafo"). El ajo fue el primero y, por lo tanto, le dio el nombre a nuestro Tulu. Se ha convertido en un acrónimo: G enome re AR rangementsL a ganar Me nterfa C e.



Incluso aproveché esto un poco más tarde.

- ¿Pequeño? Es decir, ¿este proyecto no avanzó más que el hackathon?
- Ahora el problema es que todavía estamos en la etapa de publicación de un gran artículo sobre gráficos y complejidad genómica. Una persona que escribe una disertación sobre este tema está involucrada en esto. Enviamos la primera opción en el verano, pero desafortunadamente fue rechazada. El otro día volvió a enviar, ya en otra edición. Si todo va bien, quizás continuaremos cavando en esa dirección.

- ¿Qué te dio el hackathon?
- El proyecto se ha convertido en una gran parte de mi tesis. Han surgido nuevas ideas de optimización. Bueno, en general, yo mismo aprendí muchas cosas nuevas.

- ¿En qué gastaste dinero, si no en secreto?
- No es ningún secreto, un buen jugador con auriculares :).

- ¿Qué lenguaje de programación se utilizó para resolver el problema?
- Python, exclusivamente Python. Y diferentes bibliotecas para ello. Para trabajar con gráficos de NetworkX, para visualizar Graphviz y su enlace a Python. Bueno, los clásicos Matplotlib y Pandas para trabajar con datos. Y una biblioteca autoescrita es gene-graph-lib .

- ¿Y quién estaba en tu equipo?
- Dos programadores y un biólogo. Todos resultaron ser muy útiles.
¿Cuál era su objetivo global? ¿Por qué decidió enviar el proyecto a un hackathon?
Quería resolver un problema y resolverlo de manera efectiva. Planeé hacerlo yo mismo, pero aquí surgió una oportunidad única y decidí usarla. Bueno, solo quería ver qué es un hackathon.

- ¿Te gusta?
- Maravilloso, simplemente maravilloso! La organización, la comida, la sala donde sucedió todo esto, la gente es maravillosa. No había nada de qué quejarse en absoluto.

Sería muy bueno si me permitieran usar monitores locales, equipo de personal, tal como lo entiendo, el hackathon se llevó a cabo en la oficina de EPAM, pero, por supuesto, no se nos permitió.

- ¿Cómo te preparaste para el hackathon? ¿Qué hay que hacer, además de llevar su equipo?
- A los líderes (curadores aprox.)existía el requisito de preparar una presentación de 1.5 a 2 minutos sobre el proyecto. Es importante que los participantes lean cuidadosamente los términos de los proyectos para ver qué requisitos tienen los líderes para los miembros del equipo. Puede suceder que una persona en una computadora portátil esté totalmente equipada con el entorno del segundo Python y el curador, por ejemplo, el tercero. Esto no importa, pero puede llevar más tiempo volver a instalar el entorno, y solo debe leer detenidamente que necesita un tercer Python.

Pero en términos de conocimiento de cómo prepararse, no todo está claro aquí. Naturalmente, debe poder programar en los idiomas requeridos y buscar un poco en el contexto del problema que se propone como proyecto. Aunque teníamos un miembro del equipo que no conocía la biología en absoluto, pero fue muy útil: fue él quien escribió el analizador de lenguaje para definir los subgrafos, esta tarea recayó completamente en sus hombros.

- Ya hablaste de la organización, el local, la comida. ¿Dónde dormiste? ¿Y dormiste en absoluto?
"Durante 48 horas, dormí durante cuatro horas, supongo". Siempre estuve en el sitio, la última noche que me fui al hotel.

- Es decir, los participantes deben estar mentalmente preparados para esto.
- Y moral y físicamente especialmente. Si una persona tiene experiencia en la preparación de algunas sesiones terribles, cuando no duerme durante dos noches, esta es una buena preparación. Tuve tales casos durante mis estudios, así que estaba listo.

- ¿Cuál es tu objetivo global? ¿Por qué haces bioinformática?
- En general, accidentalmente llegué a la bioinformática. Estudié en la facultad de la Academia de Ciencias Agrícolas de RAS. Allí, los estudiantes, a partir del segundo año, deben realizar un trabajo científico un día a la semana en uno de los institutos de la Academia de Ciencias de Rusia. Respondí a la propuesta del IBCh RAS, sin tener idea de lo que tendría que hacer. Llegué allí y resultó que haría un análisis de los datos NGS y la proteómica. Entonces comencé a aprender Python y a entender la bioinformática. Trabajó allí durante dos años, el proyecto pareció detenerse un poco y fui a donde estoy trabajando ahora.
Me gusta. Siempre amé las matemáticas y la biología, de alguna manera sucedió.

- ¿Qué libros, cursos, conferencias, películas recomiendas para que los niños vean?
- Hay un curso sobre algoritmos bioinformáticos en Coursera de la Universidad de San Diego, en cuya creación participéPavel Pevzner , en Stepic también lo es. Resolví algunos problemas allí, bastante útil. Le permiten bombear conocimiento tanto en biología molecular como en codificación. La esencia de la mayoría de las tareas es que necesita programar algún tipo de análisis de secuencia simple o similar. Sé que el Instituto de Bioinformática conduce conferencias invitadas que se pueden ver en YouTube, además, tienen cursos sobre Stepic . En Python, leí fielmente alrededor de 500 de las primeras páginas de Learning Python de Mark Lutz , y luego solo leí la documentación, los registros de cambios y la práctica.

Lo más importante es resolver problemas. Es inútil leer la teoría, y en el proceso de resolver problemas aprendes a resolver problemas reales.

- ¿Planeas participar en el hackathon este año?
"Sí, eso creo".

- ¿Con que? ¿O sigue siendo un secreto?
- Hay dos opciones, mientras se forman las ideas. No lo expresaré. Todavía tengo un mes entero. Lo daré, probablemente, como siempre en el último momento :)

- ¿Y ahora qué se está discutiendo en el mundo de la bioinformática?
- A menudo me encantan los temas publicitarios. Tengo un estudiante de la Russian Technical Technical University que escribe un diploma sobre un tema gráfico, por lo que decidió construir un gráfico sobre el genoma recientemente publicado del coronavirus y sus parientes.

- Intrigado. ¡Esperaremos nuevos descubrimientos y nuevos proyectos interesantes de usted y sus colegas!

Puede enviar el proyecto hasta el 28 de febrero y registrarse como participante hasta el 5 de marzo en biohack.ru .

All Articles