¡Asi que! ¡Quiere buscar todos los metagenomas públicos con una secuencia genómica!

mié 31 agosto 2022

Por C. Titus Brown

En la ciencia.

Etiquetas: SourmashMAGsearchSRAsoftwarek-mersminhashmastiff

Imagina que tienes un genoma (microbiano). O un contig. Y desea encontrar secuencias similares, ya sea en genomas o en metagenomas.

Es posible buscarlo en los genomas, aunque no siempre es fácil: puede ir a NCBI y hacer un BLAST de algún tipo, pero BLAST está diseñado para coincidencias más sensibles y más cortas. Pero hay otras herramientas, incluyendo
Sour Mashuna herramienta que hemos estado desarrollando durante algunos años, que felizmente lo hará por ti.

buscando algo en metagenomas es más difícil Los metagenomas son cientos, miles o incluso millones de veces más grandes que los genomas, y cualquier cosa con ellos rápidamente es difícil. sourmash admite hacerlo metagenoma a la vez, pero es lento y consume mucha memoria;
serrato lo hará por usted utilizando el poder de la nube, pero le costará (al menos) unos pocos miles de dólares.

Si está interesado en cómo estamos haciendo la búsqueda de secuencias de ADN, aquí hay un extracto de una publicación de blog anterior sobre el uso de SQLite para almacenar nuestros datos:

La idea básica es que tomamos largas secuencias de ADN, extraemos subsecuencias de una longitud fija (digamos k=31), las trituramos y luego las esbozamos conservando solo aquellas que caen por debajo de cierto valor de umbral. Luego buscamos coincidencias entre bocetos en función del número de hashes superpuestos. Este es un proxy para el número de subsecuencias superpuestas k = 31, que a su vez se puede convertir en varias métricas de similitud de secuencia.

¡MAGsearch existe! ¡Funciona! Pero es difícil de compartir.

Desde hace un par de años, hemos tenido algo llamado MAGsearch trabajando en nuestra propia infraestructura privada. MAGsearch es sourmash con esteroides: utiliza la misma biblioteca Rust subyacente que sourmash y carga y busca los metagenomas rápidamente. Y hará todo esto en hardware básico al que muchas personas tienen acceso: una búsqueda de hasta mil genomas contra SRA requiere menos de 12 GB de RAM y menos de 11 horas, utilizando 32 núcleos.

MAGsearch hace algo bastante sencillo: carga todos los genomas de consulta en la memoria y luego carga iterativamente cada uno de los ~700 000 bocetos de metagenoma, informando cualquier superposición. Lo hace en paralelo, por lo que es tan rápido: hacer esto con Sourmash llevaría unas 40 veces más, porque Sourmash no está paralelizado.

Un problema con MAGsearch es que no es en tiempo real. ¡10 horas es genial!, especialmente para 1000 genomas, pero eso sigue siendo solo alrededor de dos genomas por minuto. Y es demasiado lento para nosotros proporcionar MAGsearch como servicio.

Otro problema es que los datos subyacentes son de unos 10 TB en este momento, y realmente no tenemos una forma de compartir esos datos.

Así que hemos estado usando MAGsearch bastante durante los últimos dos años para hacer búsquedas de otros, pero siempre se hace en una especie de modo por lotes donde lo ejecutamos entre otras cosas que estamos haciendo.

Ingrese ‘mastiff’ – usando RocksDB para hacer las cosas más rápido

Para el
Reunión de usuarios de JGI 2022
El Dr. Luiz Irber fue invitado a hablar sobre su trabajo en MAGsearch y se inspiró para probar una solución alternativa.

Decidió implementar un índice invertido usando
RocasDB, una base de datos integrable. no he profundizado la implementación, pero creo que Mastiff usa hashes individuales como claves y almacena un vector de ID de conjunto de datos como valores. Por lo tanto, una búsqueda de superposiciones en la base de datos se realiza mediante el uso de valores hash de una consulta como claves y, luego, se intersectan los valores hash en los valores para encontrar qué ID de conjunto de datos tienen suficiente superposición estimada para informar.

Luiz informó que tomó un poco menos de tres semanas construir un índice RocksDB para 500 000 conjuntos de datos en k = 21, escalado = 1000. La base de datos resultante tiene unos 700 GB. Luego escribió un servidor web para permitir consultas en la base de datos.

¡mastiff permite la búsqueda en tiempo real de conjuntos de datos a escala SRA!

Así que… es rápido. Como, muy rápido.

Es tan rápido que puede probarlo usted mismo: le he proporcionado un cuaderno simple
aquí
en
este repositorio de githuby puede ejecutarlo directamente haciendo clic en el botón a continuación:
Aglutinante

Este cuaderno hace lo siguiente:

  • descarga algunos metadatos SRA (una vez)
  • carga y esboza una consulta del genoma de Shewanella en una firma sourmash (~45 KB, para un genoma de ~5,3 Mbp)
  • serializa las firmas y las envía al servidor mastiff para ejecutarlas contra el SRA
  • recibe el CSV resultante del conjunto de datos + estimaciones de contención
  • interpreta el CSV a la luz de los metadatos SRA

Lo que verá en la parte inferior del cuaderno es que este genoma en particular tiende a aparecer en agua dulce y aguas residuales.

Lo bueno es que puede ejecutar sus propias consultas si lo desea, simplemente reemplace el shewanella.fa.gz archiva referencias con tus propias consultas de interés!

(También hay
un flujo de trabajo de creación de serpientes para consultar mastiff si desea ejecutar muchas consultas, y un programa de línea de comandos de mastiff que dibujará y consultará todo de una vez).

¿Para qué se puede utilizar el mastín?

MAGsearch ya está siendo utilizado por personas para
análisis de brotes
y estudios de biogeografía, entre otras cosas. Tenemos algunos proyectos de investigación activos diferentes en el laboratorio que están explorando su utilidad para varias preguntas. Así que pronto podremos hacer esas cosas mucho más rápido. ¡Hurra!

Personalmente, estoy ansioso por profundizar en la dinámica de la tensión y las alertas basadas en el contenido de nuevos metagenomas, entre otras cosas.

También podemos habilitar otros proyectos geniales, incluidas (quizás lo más importante) cosas en las que no pensamos.

Una regla general que me gusta es que una tecnología será más útil para los investigadores cuando un estudiante universitario de verano pueda usarla casualmente para explorar ideas descabelladas e iniciar proyectos de verano basados ​​en resultados exploratorios generados rápidamente, y tengo mucha curiosidad por ver lo que podemos permitir que otros hagan con esto;). Puedo imaginar que una vez que las personas puedan buscar casualmente en la SRA con consultas, se les ocurrirán muchas ideas y harán muchos descubrimientos. (Por supuesto, también se necesitaría mucho trabajo de seguimiento, persiguiendo qué significa la detección de un genoma en un metagenoma biológicamente ¡es duro!)

No se nos ha escapado que esto también se puede usar para bases de datos mucho más pequeñas. Así que estamos deseando habilitar la búsqueda en tiempo real de todos los genomas microbianos del NCBI, así como… bueno, todo lo que podamos tener en nuestras manos :).

mastiff eventualmente (ver más abajo, «¿Qué mastín?») se integrará en sourmash y/o se fortalecerá, y luego también admitirá bases de datos privadas.

Bueno, pero espera, dijiste «en tiempo real»

Correcto, lo hice: lleva entre 2 y 10 segundos hacer una búsqueda, y el servidor IIRC puede manejar hasta 200 consultas simultáneas a la vez.

Y debo ser honesto… al principio no entendí que esto era en tiempo real. Y habilitado para la web.

Se lo estaba describiendo a algunos colaboradores, y mientras lo describía me di cuenta, oh, genial, en realidad también podemos hacer esto en JavaScript a través de WebAssembly, por supuesto.

Entonces, también próximamente (si no, como mañana), espero que proporcionemos un sitio web donde pueda dibujar un genoma del lado del cliente (por ejemplo, en el navegador, vea
Sourmash#1973), y luego recibir informes casi instantáneos sobre las similitudes con cualquier genoma conocido, así como la presencia dentro de los metagenomas públicos.

Y, una vez que se resuelven varias cosas espero que podamos proporcionar esto como un servicio genérico para que otros lo usen.

Así que eso parece limpio, ¿verdad?

Precauciones, reservas y limitaciones

Hay algunas cosas que debe saber antes de emocionarse demasiado. Quiero decir, deberías estar totalmente emocionado, pero… sigue leyendo.

En primer lugar, esta es una prueba de concepto. ¡Muestra que se puede hacer, pero (todavía) no es algo que nadie más que Luiz pueda ejecutar! La ingeniería, las pruebas y el lanzamiento deben suceder, y eso llevará tiempo.

En segundo lugar, existen limitaciones razonablemente significativas para esto desde el punto de vista científico. La búsqueda solo funcionará hasta aproximadamente
90 % de identidad de nucleótidos promedio (ANI): una contención de .01-.05, lo que significa que puede encontrar coincidencias sólidas hasta el nivel de género, pero no más allá. Esa es una limitación de los nucleótidos k-mers y es algo en lo que estamos trabajando.

Las consultas pequeñas tampoco funcionan bien: podemos encontrar de manera sólida coincidencias exactas con fragmentos de secuencia de 10 kb, pero no más cortos.

En tercer lugar, el mastín está diseñado principalmente para buscar pequeña
consultas Los tiempos de consulta deben escalar de forma aproximadamente lineal con el tamaño de la consulta. Luiz ha limitado el servidor a una consulta de 5 MB por este motivo.

Y por último pero de ninguna manera menos, esto es no toda la SRA, son solo alrededor de 480,000 registros (de alrededor de 700,000). Lo actualizaremos eventualmente, pero por ahora es una prueba de concepto suficiente;).

¿Mastín del adónde?

Nosotros (principalmente Luiz;) estamos trabajando para integrar la funcionalidad de mastín en sourmash. Hay una brecha bastante amplia entre una implementación de prueba de concepto y un software maduro, sólido y utilizable por el usuario final, por supuesto, pero sabemos cómo hacerlo.

Probablemente haya otros enfoques de back-end geniales que podríamos usar, y nos encantaría hablar con usted sobre ellos si está interesado en probar implementaciones alternativas. En este punto, tenemos una comprensión bastante buena de las operaciones conceptuales e incluso podemos transmitirlas en fragmentos de código en funcionamiento :).

También debo decirles que no sabemos exactamente cómo respaldar este tipo de trabajo. Esto se desarrolló a partir del trabajo de tesis de Luiz, pero ahora él lo hace de forma voluntaria. JGI está apoyando el desarrollo del servidor durante un año (¡gracias!) pero estamos un poco atascados en el soporte de UX y el desarrollo de backend/frontend. Así que escríbanos si tiene algún cambio de repuesto: estaríamos buscando 3-5 años de soporte.

(También me interesaría explorar los problemas de gobernanza y sostenibilidad en torno a este tipo de cosas).

Agradecimientos

El trabajo de la Dra. Tessa Pierce-Ward (ANI), el Dr. Adrian Viehweger (brotes de patógenos), la Dra. Jessica Lumian (biogeografía), la Dra. Christy Grettenberger (biogeografía y más) ha ayudado enormemente a la interpretación y comprensión de los resultados de MAGsearch. , y otros. ¡¡Gracias!!



Fuente del artículo

¿Que te ha parecido?

Deja un comentario