Metabarcoding de comunidades de eucariontes
  • Sesiones
  • Lecturas recomendadas
  1. Día 4
  2. Dada2 - Unión de lecturas paired-end
  • Día 1
    • Conexión a Zoom
    • Conexión al servidor
  • Día 2
    • Introducción a Linux y R
    • Introducción al pipeline DADA2
    • Nuestros datos: eDNA de peces del Golfo de California
    • Clonación de repositorio Github
    • Preparación del entorno
  • Día 3
    • Archivos FASTQ: estructura y organización
    • Control de calidad y recorte de primers con Cutadapt
    • DADA2 — Filtrado inicial
  • Día 4
    • Dada2 - Dereplicación e Inferencia de Errores
    • Dada2 - Unión de lecturas paired-end
    • Dada2 - Remoción de quimeras y seguimiento de lecturas
    • Dada2 - Asignación taxonómica y guardado de resultados
  • Día 5
    • Análisis ecológico de comunidades de peces
    • OTUs: agrupamiento por similitud con VSEARCH
    • Detección y remoción de contaminantes con decontam
    • Bases de datos de referencia personalizadas
  • Lecturas recomendadas
    • Referencias
  1. Día 4
  2. Dada2 - Unión de lecturas paired-end

Dada2 - Unión de lecturas paired-end

En secuenciación paired-end cada fragmento de ADN se lee desde ambos extremos: una lectura forward (R1) y una reverse (R2). Para obtener la secuencia completa del amplicón, ambas lecturas deben ensamblarse aprovechando la región de solapamiento que comparten en el centro.

El merge ocurre después del denoising — es decir, trabaja con lecturas ya corregidas, no con las crudas. Esto es importante: DADA2 no une lecturas con errores y luego las corrige, sino al revés.


Paso 1 — Ensamblar pares con mergePairs()

Qué hace: alinea cada par R1–R2 denoiseado buscando la región de solapamiento. Si R1 y R2 coinciden en esa zona, los une en una sola secuencia. Si no coinciden (o el solapamiento es insuficiente), el par se descarta — lo que actúa como filtro adicional de calidad.

mergers <- mergePairs(
  dadaFs, derepFs,
  dadaRs, derepRs,
  minOverlap = 12,
  maxMismatch = 0,
  verbose = TRUE
)

Parámetros clave:

  • minOverlap = 12 — mínimo de bases solapantes requeridas para aceptar el ensamblaje. Valores menores aumentan el número de merges pero también el riesgo de ensamblajes erróneos. Para 12S (~62 bp) con truncLen ajustado, 12 bp es el mínimo razonable.
  • maxMismatch = 0 — no se permiten desajustes en la zona de solapamiento. Un solo mismatch descarta el par. Esto es estricto pero correcto: si el solapamiento tiene diferencias, al menos una de las dos lecturas tiene un error que el denoising no pudo corregir.
# Inspeccionar el resultado del merge para la primera muestra
head(mergers[[1]])

Qué significa la tabla resultante: cada fila es una secuencia ensamblada única. Las columnas más importantes:

Columna Descripción
abundance Número de lecturas con esa secuencia ensamblada
accept TRUE si el par fue ensamblado correctamente
nmatch Bases coincidentes en la zona de solapamiento
nmismatch Desajustes encontrados (debe ser 0 con maxMismatch = 0)

Paso 2 — Construir la tabla de secuencias

Qué hace: organiza todos los mergers en una matriz donde las filas son muestras y las columnas son secuencias únicas (futuras ASVs). Esta es la tabla de abundancias antes de remover quimeras.

seqtab <- makeSequenceTable(mergers)
dim(seqtab)  # filas = muestras, columnas = ASVs únicos
# Distribución de longitudes de las secuencias ensambladas
table(nchar(getSequences(seqtab)))

Qué chequear: la distribución de longitudes debe estar centrada en la longitud esperada del amplicón (para 12S, ~62 bp). Un pico limpio y estrecho indica un merge exitoso. Si hay muchas secuencias de longitudes muy diferentes, puede indicar artefactos de PCR o problemas en el ensamblaje.


Paso 3 — Verificar eficiencia del merge

# Porcentaje de lecturas ensambladas por muestra
merge_pct <- sapply(mergers, function(m) {
  round(sum(m$abundance[m$accept]) / sum(m$abundance) * 100, 1)
})
summary(merge_pct)

Qué chequear:

% de merge Interpretación
> 80% Normal
60–80% Aceptable — revisar truncLen
< 60% Bajo — truncLen probablemente muy agresivo

Si el merge es bajo, el problema casi siempre está en los puntos de truncamiento del paso anterior. La regla es: truncLen_F + truncLen_R - longitud_amplicón > 12 bp. Si esa diferencia es menor a 12 bp, el solapamiento no es suficiente.


Causas comunes de merge fallido

Problema Causa probable Solución
Merge bajo en todas las muestras Solapamiento insuficiente por truncLen agresivo Reducir truncLen o verificar longitud del amplicón
Merge bajo en una sola muestra Baja calidad o contaminación en esa muestra Revisar QC de la muestra
Muchas longitudes inesperadas en seqtab Artefactos de PCR o amplificación inespecífica Aplicar filtro de longitud en el paso de quimeras

TipPara el curso
  1. ¿Qué porcentaje de lecturas se ensamblan por muestra? ¿Hay muestras con < 60%?
  2. Revisa la distribución de longitudes de seqtab — ¿coincide con la longitud esperada del amplicón 12S (~62 bp)?
  3. ¿Cuántos ASVs hay antes de remover quimeras (ncol(seqtab))? ¿Y después?
Dada2 - Dereplicación e Inferencia de Errores
Dada2 - Remoción de quimeras y seguimiento de lecturas

© Dra. Tania Valdivia Carrillo — Todos los derechos reservados