Pregunta:
¿En qué etapa del ensamblaje de un transcriptoma es mejor realizar un filtro de contaminantes de lectura?
LinuxBlanket
2018-08-21 19:18:19 UTC
view on stackexchange narkive permalink

Estoy intentando ensamblar un transcriptoma bivalvo. Dado que los bivalvos se alimentan por filtración, sus transcriptomas tienden a estar altamente contaminados por bacterias, algas y otras cosas. Dado que reuní varias transcriptomas, tengo una gran cantidad de lecturas (> 2B lecturas). También tengo un genoma de referencia de calidad no tan alta.

Ahora, no estoy seguro de cuándo realizar un filtro basado en BLAST en estas lecturas:

  • Hacer ¿Filtro las lecturas con BLAST antes de ensamblarlas?
  • ¿Ensamblo el transcriptoma y luego filtro los contigs contaminantes?
  • Ya que tengo un genoma de referencia, simplemente no me importan las lecturas de contaminantes porque no se alinearán con él?

Teniendo esta cantidad de lecturas, me inclinaría a filtrar primero aquellas lecturas que no coinciden con Metazoa, y luego realizar un segundo filtro después del ensamblaje para poder retenga solo aquellos contigs que coincidan con Lophotrochozoa.

Si conoce recursos sobre cómo manejar la contaminación de lectura, no dude en compartirlos.

One responder:
conchoecia
2018-08-22 05:22:20 UTC
view on stackexchange narkive permalink

Primero, para responder a su pregunta sobre la asignación a una referencia de baja calidad:

1. Mapeo

Para el mapeo, la contigüidad del genoma baja (N50 bajo) realmente no importa. Utilizará un alineador empalmado y lecturas cortas, por lo que incluso pequeñas porciones de sus lecturas se mapearán si coinciden con el genoma de referencia. Sin embargo, lo que importa es que está seguro de que el borrador del ensamblaje del genoma no contiene ningún andamio de especies contaminantes como bacterias, algas, etc.

2. Razones para no BLAST tus lecturas sin procesar

Hay algunas razones por las que no sugiero comenzar con BLAST, pero otras opciones pueden adaptarse mejor a tus necesidades.

  • BLASTing 2 billones las lecturas tardarán varias semanas o meses incluso en una máquina con muchos núcleos (90+).
  • Dado que no está trabajando con un organismo modelo, habrá muchas lecturas que no tengan un golpe BLAST pero probablemente todavía se deriven de su bivalvo. No sugiero usar BLAST para filtrar sus lecturas por esa razón.
  • De manera similar, muchas lecturas contaminantes no afectarán a nada en las bases de datos del NCBI, por lo que también perderá muchos de los contaminantes. Dejarlos por ahora y eliminar con la estrategia que describo en # 4 , luego volver a ensamblar, puede funcionar mejor.

3. Usando múltiples individuos de especies altamente heterocigóticas en ensamblaje.

Lo más importante para organismos no modelo y especies altamente heterocigotas: no ensamblar un transcriptoma usando datos de más de un individuo La cantidad de diferencias alélicas en especies altamente heterocigóticas hará que los gráficos de transcripciones sean un desastre y terminará con un montón de transcripciones parciales y erróneas. Puede fusionar transcriptomas de varias personas más adelante con herramientas como orthoFinder.

4. Una estrategia para filtrar las transcripciones según el mapeo y BLAST

Teniendo en cuenta los n. ° 1 , n. ° 2 y n. ° 3 anteriores, propongo la siguiente estrategia para filtrar sus lecturas que pueden evitar eliminar las verdaderas lecturas bivalvas y garantizará la eliminación de lecturas de especies contaminantes conocidas.

Intentaría esto:

  • Reúna el transcriptoma de cada individuo por separado.
    • Este evita ensamblajes incorrectos debido a sitios heterocigotos y el filtrado excesivo por parte de Trinity u otros ensambladores.
  • Concatenar todos los transcriptomos en un archivo. A partir de este momento, utilizaremos la información de todas las personas para ayudar a filtrar.
    • Use algo como cat txome_individual1.fasta txome_individual2.fasta > all_individuals.fasta .
  • Asigne todas las transcripciones a la referencia genomas usando un alineador empalmado como STAR o HISAT2.
  • Obtenga un archivo bam de todas las transcripciones que no se asignaron al genoma de referencia. Estos pueden provenir de contaminantes.
    • Utilice samtools view -f 4 -b mapped_transcripts.bam | samtools sort: > output.sorted.bam para conservar únicamente las transcripciones que no se asignan a la referencia. -f 4 es la bandera mágica que guarda las cosas que no se asignaron.
  • Haga una lista de todas las transcripciones que no se asignó a la referencia ...
    • samtools view output.sorted.bam | cut -f1 | ordenar | uniq > unmapped_transcripts.txt
  • ... y obtenga solo las transcripciones de su archivo fasta que son contaminantes potenciales.
    • seqtk subseq all_transcripts.fa unmapped_transcripts.txt > unmapped.fasta
  • BLAST todos los unmapped.fasta e identifique cuáles están de especies contaminantes. blobtools funciona bien para esto si hay demasiadas para realizar un seguimiento.
  • Use seqtk nuevamente para obtener solo las secuencias contaminantes conocidas de BLAST o blobtools. Supongamos que llama a esto known_contaminants.fasta
  • Asigne todas las lecturas de todas las personas al known_contaminants.fasta .
  • Obtenga todas las lecturas que se asignan a transcripciones contaminantes conocidas, known_contaminants.fasta usando:
    • samtools view -F 4 all_reads_to_contams .bam | cut -f1 | ordenar | uniq > contaminating_reads.txt
  • Ahora elimine todas las lecturas contaminantes de sus archivos fastq individuales usando bbmap filterbyname.sh.
  • Vuelva a ensamblar los archivos fastq filtrados.

Esta estrategia tiene los siguientes beneficios:

  • No requiere semanas / meses de tiempo de cálculo para BLAST 2 mil millones de lecturas.
  • Garantiza que todas las lecturas del genoma de referencia no se modifiquen.
  • Garantiza que todas las lecturas de contaminantes conocidos se eliminen.
  • Hojas en lecturas sin coincidencias con BLAST, que podrían ser de partes no ensambladas del genoma de referencia.
  • Evita el filtrado potencial de contaminantes de baja abundancia al no ingresar los 2 mil millones de lecturas en el ensamblador de transcriptomas, sino ensamblar en un -de forma individual.
  • Aprovecha los contaminantes de diferentes individuos para filtrar las lecturas de todos los individuos.
Gracias por tu respuesta, hay algunas ideas interesantes. Quiero usar BLAST principalmente para filtrar aquellas lecturas / transcripciones que tienen un impacto bacteriano / de algas; en mi primer intento de ensamblaje, terminé con transcripciones de más de 20 kb que eran solo genomas bacterianos. ¿Las diferencias alélicas distorsionan los gráficos incluso con un ensamblaje basado en el genoma? Si primero reúno individuos individuales, tendré 35 individuos, sin contar los transcriptomas de larvas agrupados, que en sí mismos contienen 50 mil individuos.
Las diferencias alélicas también distorsionan el gráfico con el ensamblaje basado en el genoma, lo que provoca muchos ensamblajes incorrectos y fragmenta la salida. ¿Puedo preguntar qué tipo de análisis está haciendo después de los transcriptomas? Solo tomará una pequeña cantidad de tiempo hacer un script de shell para ensamblar 35 transcriptomas en comparación con la cantidad de tiempo que tomará descubrir todas las transcripciones incompletas e incorrectas si todas las lecturas se agrupan en un ensamblaje, en mi humilde opinión. He actualizado la respuesta para dar instrucciones más específicas y el razonamiento detrás de cada paso. ¡Espero eso ayude!
¡Vaya, esa es una respuesta muy completa! Muchas gracias, ¡parece una estrategia muy inteligente! Quiero usar estos transcriptomas para una variedad de análisis, motivos GSEA, 3'-UTR y otros.
@conchoecia lo siento por haber negado esta publicación, pero ¿el punto 3 también es válido para el ensamblaje del transcriptoma de novo? (Porque parece que sus comentarios insinúan que esto es relevante para el ensamblaje basado en el genoma).
Hola @Dunois - Creo que estaba siendo un poco dramático arriba, pero sí, el punto # 3 es específicamente relevante para el ensamblaje de transcriptomas de novo. Obtendrá resultados más precisos si un transcriptoma solo se ensambla a partir de las lecturas de 1 persona. Si necesita diferentes etapas de la vida o tipos de tejidos, mi sugerencia es reunir las transcriptomas de diferentes individuos de forma independiente y luego eliminar las transcripciones duplicadas utilizando orthofinder. Dicho esto, si tiene varias bibliotecas de diferentes tejidos del mismo individuo, reúna todas ellas.


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 4.0 bajo la que se distribuye.
Loading...