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.