Pregunta:
¿Por qué cutadapt elimina las bases de baja calidad de los extremos de las lecturas únicamente?
charlesdarwin
2018-02-26 18:07:33 UTC
view on stackexchange narkive permalink

Utilizo cutadapt para eliminar bases de baja calidad de mis lecturas de Illumina. El algoritmo solo elimina las bases de baja calidad desde el final hasta que alcanza una base de buena calidad. Si hay una base de mala calidad más allá de eso, no se recorta. ¿Por qué? ¿Por qué el algoritmo no elimina todas las bases de baja calidad? Podría reemplazar bases de baja calidad en medio de una lectura por una N, por ejemplo. ¿O es que la base de baja calidad sigue siendo probablemente correcta y, por lo tanto, no se desea perder la información de la base para el mapeo?

Tres respuestas:
benn
2018-02-26 18:45:40 UTC
view on stackexchange narkive permalink

Si comprueba las estadísticas de CC leídas de una ejecución de Illumina en p. ej. fastQC, verá que al final de la lectura la calidad disminuye. Esto se debe al agotamiento de los productos químicos al final de la carrera. Esta es una tendencia general que se observa en todas las carreras, por lo tanto, puede eliminar estas bases de baja calidad al final de su carrera. Si, por cierto, tiene una base de mala calidad en medio de una lectura, esta no es la misma tendencia general, pero es esporádica. Lo cual es difícil de eliminar automáticamente con herramientas como cutadapt. Si realmente desea una N para cada base de baja calidad dentro de la lectura, puede hacer un programa simple para eso, pero ¿por qué lo necesitaría? La mayoría de los alineadores pueden manejar algunas bases de mala calidad dentro de una lectura, y para llamadas de variantes necesitará muchas lecturas (por lo que la base de errores incidentales será anulada por las buenas).

También vale la pena señalar que muchos alineadores penalizan a una N de forma predeterminada, por lo que no es como si reemplazar las bases de muy baja calidad con una N aumentará enormemente las puntuaciones de alineación.
user172818
2018-02-26 22:13:07 UTC
view on stackexchange narkive permalink

Estoy comentando esta parte:

El algoritmo solo elimina las bases de baja calidad desde el final hasta que alcanza una base de buena calidad. Si hay una base de mala calidad más allá de eso, no se recorta.

Según su guía del usuario, cutadap está diseñado de esta manera: recorta las bases desde el extremo 3 'hasta que ve una base con una calidad superior a un umbral. Este no es un buen algoritmo. Por ejemplo, cuando vemos una cadena de calidad 30,30,30,3,3,3,3,3,20,3,3 , preferiríamos recortarla a 30 , 30,30 porque una cola de 3,3,3,3,3,20 todavía no es útil.

Algunas herramientas como trimmomatic utilizan una ventana deslizante para evitar este problema. En mi opinión, un algoritmo mejor es el llamado " algoritmo Mott modificado" utilizado por phred hace 20 años. seqtk entre otros implementa este algoritmo. Tenga en cuenta que el algoritmo Mott siempre recorta desde ambos extremos, lo que a veces no es lo preferido. BWA implementa una variante de este algoritmo, recortando solo desde el extremo 3 '.

Sin embargo, en la práctica, los algoritmos de recorte de calidad diferentes probablemente funcionan igual de bien porque es relativamente raro ver una base de alta calidad en la mitad de una cola de baja calidad. Además, los alineadores modernos pueden manejar bien colas de baja calidad; los ensambladores y los correctores de errores también pueden corregir a través de tales colas. Por lo general, no es necesario aplicar un recorte de calidad.

Podría reemplazar las bases de baja calidad en medio de una lectura por una N, por ejemplo. ¿O es que lo más probable es que la base de baja calidad siga siendo correcta y, por tanto, no se quiera perder la información de la base para el mapeo?

Con una base de baja calidad, es posible que tenga un error / desajuste, pero con una N, siempre tiene un desajuste. Enmascarar bases de baja calidad a N no es tan bueno.

EDITAR: respondiendo al siguiente comentario de OP:

¿Qué pasa si la base es de baja calidad y luego coincide con la referencia por error? ¿No sería mejor si no coincidiera y fuera sancionado? Supongo que esto debería modelarse matemáticamente.

Si una lectura puede no coincidir debido a un error de secuenciación, su verdadera ubicación suele estar en el genoma. En este caso, un mapeador competente le dará a la alineación una baja calidad de mapeo (mapQ). Un mapeador consciente de la calidad como novoalign penalizará aún más a mapQ. En comparación, si enmascara este error de secuencia a "N", obtendrá un mapQ = 0. Puede ver que la diferencia entre los dos enfoques proviene principalmente de mapQ.

En los datos modernos de Illumina, es bastante frecuente ver una base Q8 en medio de bases de alta calidad. > 80% de ellos (en teoría) siguen siendo correctos. Mi corazonada es que si se enmascaran todos ellos, se produciría una pérdida considerable de datos.

¿Es posible ampliar la última parte? 'Con una base de baja calidad, es posible que tenga un error / desajuste, pero con una N, siempre tendrá un desajuste. Enmascarar bases de baja calidad a N no es tan bueno ”. ¿Qué pasa si la base es de baja calidad y luego coincide con la referencia por error? ¿No sería mejor si no coincidiera y fuera sancionado? Supongo que esto debería modelarse matemáticamente.
Edward Kirton
2018-03-01 12:58:45 UTC
view on stackexchange narkive permalink

Para las lecturas de Illumina (y 454), la calidad disminuye con la longitud de la lectura. No es lineal y depende de la ejecución / biblioteca. Tiene menos que ver con el agotamiento de los reactivos y más con que las hebras en un punto estén desfasadas debido a una incorporación de base incompleta / perdida durante la secuenciación.

Es una práctica común recortar los extremos de 3 'de baja calidad como primer paso en el control de calidad. La mayoría de los análisis y la mayoría pueden lidiar con algunos pocos errores en el medio de la lectura y lo que haga con respecto a dichos errores de secuenciación puede variar según el tipo y uso de los datos. Pero, en general, nadie quiere la basura al final de las lecturas.

P.S. Incluso para la misma preparación de biblioteca, las ejecuciones fwd / rev tendrán diferentes curvas de calidad. A veces, las primeras dos bases también son malas.

"en general, nadie quiere la basura al final de las lecturas". Para RNA-seq, el recorte de calidad puede estar bien, pero para el ensamblaje de novo, el recorte puede reducir N50.
Si no recorta antes del ensamblaje, un ensamblador DBG tendrá muchos kmers adicionales, lo que hará explotar la RAM. Según mi experiencia, recortar con aumento de N50, no disminuirlo. Aunque no creo que N50 sea una gran métrica para evaluar la calidad del ensamblaje. Supongo que como alternativa al recorte final, se podría hacer una corrección de errores, p. con bfc.
Los ensambladores modernos (por ejemplo, allpaths, sga y spades) a menudo vienen con un paso de corrección de errores. Solo recortan un extremo cuando no pueden corregirlo. Solo una pequeña fracción de los k-mers basura puede entrar en el gráfico.
Gracias, usuario172818, probablemente tengas razón. Pero nos ha resultado beneficioso utilizar bfc antes de las metaspades.


Esta pregunta y respuesta fue traducida automáticamente del idioma inglés.El contenido original está disponible en stackexchange, a quien agradecemos la licencia cc by-sa 3.0 bajo la que se distribuye.
Loading...