Articulo de referencia

ensambladora de terciopelo

{{Cite book | pmid = 20836074 | year = 2010 | last1 = Zerbino | first1 = D. R. | title = Using the Velvet de novo assembler for short-read sequencing technologies |editor=Andrea...

Velvet es un paquete de algoritmos diseñado para el ensamblaje de genomas de novo y la alineación de secuencias de lectura corta . Esto se logra mediante la manipulación de grafos de De Bruijn para el ensamblaje de secuencias genómicas, eliminando errores y simplificando regiones repetidas. [ 2 ] Velvet también se ha implementado en paquetes comerciales como Sequencher , Geneious , MacVector y BioNumerics .

Introducción

El desarrollo de secuenciadores de nueva generación (NGS) permitió una mayor rentabilidad en la secuenciación de lecturas muy cortas. La manipulación de grafos de De Bruijn como método de alineación se volvió más viable, pero se necesitaban más avances para abordar los problemas de errores y repeticiones. [ 3 ] Esto condujo al desarrollo de Velvet por Daniel Zerbino y Ewan Birney en el Instituto Europeo de Bioinformática en el Reino Unido. [ 4 ]

Velvet manipula de forma eficiente los grafos de De Bruijn mediante simplificación y compresión, sin pérdida de información, al converger las rutas que no se intersecan en nodos únicos. Elimina errores y resuelve repeticiones utilizando primero un algoritmo de corrección de errores que fusiona secuencias. Posteriormente, las repeticiones se eliminan de la secuencia mediante un solucionador de repeticiones que separa las rutas que comparten solapamientos locales.

La combinación de lecturas cortas y pares de lecturas permite a Velvet resolver pequeñas repeticiones y generar contigs de longitud razonable. Esta aplicación de Velvet puede producir contigs con una longitud N50 de 50 kb en datos procariotas de extremos apareados y de 3 kb para regiones de datos de mamíferos .

Algoritmo

Como ya se mencionó, Velvet utiliza el grafo de De Bruijn para ensamblar lecturas cortas. Más específicamente, Velvet representa cada k-mer diferente obtenido de las lecturas mediante un nodo único en el grafo. Dos nodos están conectados si sus k-mers se superponen en k-1 caracteres. En otras palabras, existe un arco del nodo A al nodo B si los últimos k-1 caracteres del k-mer representado por A son los primeros k-1 caracteres del k-mer representado por B. La siguiente figura muestra un ejemplo de un grafo de De Bruijn generado con Velvet:

Figura 1: Ejemplo de hash de lectura y grafo de De Bruijn correspondiente

El mismo proceso se realiza simultáneamente con el complemento inverso de todos los k-meros para tener en cuenta las superposiciones entre las lecturas de hebras opuestas. Se pueden realizar diversas optimizaciones sobre el grafo, incluyendo la simplificación y la eliminación de errores.

Simplificación

Una forma sencilla de ahorrar memoria es fusionar los nodos que no afectan la ruta generada en el grafo. Por ejemplo, cuando un nodo A tiene un único arco saliente que apunta al nodo B, con un único arco entrante, ambos nodos pueden fusionarse. Es posible representar ambos nodos como uno solo, combinando su información. La siguiente figura ilustra este proceso en la simplificación del ejemplo inicial.

Figura 2: Gráfico de De Bruijn simplificado

Eliminación de errores

Los errores en el gráfico pueden deberse al proceso de secuenciación o simplemente a que la muestra biológica contiene errores (por ejemplo, polimorfismos ). Velvet reconoce tres tipos de errores: puntas, burbujas y conexiones erróneas.

Consejos

Un nodo se considera una punta y debe eliminarse si está desconectado en uno de sus extremos, si la información que almacena es menor de 2k y si el arco que conduce a él tiene una multiplicidad baja (número de veces que se encontró durante la construcción del grafo) y, por lo tanto, no se puede comparar con otras rutas alternativas. Una vez corregidos estos errores, el grafo se simplifica nuevamente.

Figura 3: Ejemplo de consejos

Burbujas

Se generan burbujas cuando dos rutas distintas comienzan y terminan en los mismos nodos. Normalmente, las burbujas se deben a errores o variantes biológicas. Estos errores se eliminan mediante el algoritmo Tour Bus, similar al algoritmo de Dijkstra , una búsqueda en amplitud que detecta la mejor ruta a seguir y determina cuáles deben eliminarse. En la figura 4 se muestra un ejemplo sencillo.

Figura 4: Ejemplo de borrado de burbujas

Este proceso también se muestra en la figura 5, a partir de los ejemplos mostrados en las figuras 1 y 2.

Figura 5: Ejemplo de detección de burbujas

Conexiones erróneas

Se trata de conexiones que no generan rutas correctas ni crean estructuras reconocibles dentro del grafo. Velvet borra estos errores tras la finalización del algoritmo Tour Bus, aplicando un umbral de cobertura sencillo que debe definir el usuario.

Órdenes de terciopelo

Velvet ofrece las siguientes funciones:

terciopelo
Este comando ayuda a construir el conjunto de datos (calcula el hash de las lecturas) para velvetg e incluye información sobre el significado de cada archivo de secuencia.
terciopelo
Este comando construye el grafo de De Bruijn a partir de los k-meros obtenidos por velveth y realiza una simplificación y corrección de errores sobre el grafo. A continuación, extrae los contigs.

Después de ejecutar velvetg se generan varios archivos. Lo más importante es que un archivo de contigs contiene las secuencias de los contigs más largos que 2k, donde k es la longitud de palabra utilizada en velveth .

Para obtener más detalles y ejemplos, consulte el Manual de Velvet [ 5 ].

Motivación

Las tecnologías actuales de secuenciación de ADN, incluida la NGS, tienen limitaciones debido a que los genomas son mucho más grandes que cualquier longitud de lectura. Por lo general, la NGS opera con lecturas cortas, de menos de 400 pb, y tiene un costo por lectura mucho menor que las máquinas de primera generación anteriores . También son más sencillas de operar, con mayor paralelismo y mayor rendimiento. [ 3 ]

Sin embargo, las lecturas cortas contienen menos información que las lecturas largas, lo que requiere una mayor cobertura de lectura en el ensamblaje para detectar solapamientos. Esto, a su vez, aumenta la complejidad de la secuenciación y los requisitos computacionales. Un mayor número de lecturas también incrementa el tamaño del grafo de solapamiento, lo que dificulta y prolonga su cálculo. Las conexiones entre las lecturas se vuelven menos nítidas debido a la disminución de las secciones solapadas, lo que conlleva una mayor probabilidad de errores.

Para superar estos problemas, se desarrollaron programas de secuenciación dinámica que son eficientes, muy rentables y capaces de resolver errores y repeticiones. Los algoritmos Velvet se diseñaron para esto y son capaces de realizar alineamientos de secuenciación de novo de lecturas cortas en un tiempo de cálculo relativamente corto y con un menor uso de memoria en comparación con otros ensambladores. [ 6 ]

Interfaz gráfica

Uno de los principales inconvenientes del uso de Velvet es la interfaz de línea de comandos y las dificultades que encuentran los usuarios, especialmente los principiantes, al introducir sus datos. En 2012 se desarrolló una interfaz gráfica de usuario para el ensamblador Velvet, diseñada para solucionar este problema y simplificar su ejecución. [ 7 ]

Véase también

Referencias

  1. Zerbino, DR (2010). "Uso del ensamblador Velvetde novo para tecnologías de secuenciación de lectura corta". En Andreas D. Baxevanis (ed.). Uso del ensamblador Velvet de novo para tecnologías de secuenciación de lectura corta . Vol.  31. pp.  Unidad 11.5. doi : 10.1002/0471250953.bi1105s31 . ISBN 978-0-471-25095-1. PMC 2952100 . PMID 20836074 .  {{cite book}}: |journal=ignorado ( ayuda )
  2. Zerbino, DR; Birney, E. (2008). "Velvet: ensamblaje de novo utilizando lecturas muy cortas" . Recuperado el 18 de octubre de 2013.
  3. 1 2 Miller, JR; Koren, S; Sutton, G (2010). " Algoritmos de ensamblaje para datos de secuenciación de próxima generación" . Genomics . 95 (6): 315– 27. doi : 10.1016/j.ygeno.2010.03.001 . PMC 2874646. PMID 20211242 .  
  4. Zerbino, DR; Birney, E. (2008). "Velvet: Algoritmos para el ensamblaje de lecturas cortas de novo utilizando grafos de De Bruijn" . Genome Research . 18 (5): 821– 829. doi : 10.1101/gr.074492.107 . PMC 2336801. PMID 18349386 .  
  5. "Manual de terciopelo" Consultado el 18 de octubre de 2013
  6. Zhang, W.; Chen, J.; Yang, Y.; Tang, Y.; Shang, J.; Shen, B. (2011). "Una comparación práctica de herramientas de software de ensamblaje de genomas de novo para tecnologías de secuenciación de próxima generación" . PLOS ONE . 6 (3) e17915. Bibcode : 2011PLoSO...617915Z . doi : 10.1371/journal.pone.0017915 . PMC 3056720. PMID 21423806 .  
  7. Powell, DR; Seemann, T (2013). "VAGUE: Una interfaz gráfica de usuario para el ensamblador Velvet" . Bioinformatics . 29 (2): 264– 5. doi : 10.1093/bioinformatics/bts664 . PMID 23162059 .