Pregunta:
¿Cómo puedo reducir la resolución de un archivo BAM manteniendo ambas lecturas en pares?
medbe
2017-06-03 04:44:45 UTC
view on stackexchange narkive permalink

Sé cómo reducir la resolución de un archivo BAM para reducir la cobertura. Sé que puedo seleccionar líneas al azar en SAM, pero este procedimiento no puede garantizar que dos lecturas en un par siempre se muestreen al mismo tiempo. ¿Existe alguna forma de reducir la resolución de BAM sin modificar la información de emparejamiento?

¿Podría dar una explicación un poco más de * por qué * sería útil reducir la resolución de las lecturas? Hay algunas formas diferentes de hacerlo, y las respuestas dependerán de su objetivo. Por ejemplo, puede realizar una normalización digital para reducir el recuento de lecturas de entrada para el ensamblaje del genoma, pero ese método no sería apropiado para un análisis cuantitativo de lecturas (por ejemplo, para RNASeq).
Tres respuestas:
#1
+14
rightskewed
2017-06-03 06:08:48 UTC
view on stackexchange narkive permalink

samtools tiene una opción de submuestreo:

-s FLOAT: La parte entera se usa para inicializar el generador de números aleatorios [0]. La parte después del punto decimal establece la fracción de plantillas / pares en submuestreo [sin submuestreo]

  samtools view -bs 42.1 in.bam > subsampled.bam  

submuestreará un 10 por ciento de lecturas mapeadas con 42 como semilla para el generador de números aleatorios.

Para evitar posibles confusiones en el futuro, debe tenerse en cuenta que esto funciona mediante el hash del nombre leído. Si por alguna terrible razón los compañeros no tienen exactamente el mismo nombre (por ejemplo, `/ 1` y` / 2` no fueron eliminados) entonces esto se romperá.
Y también debido a la forma en que esto funciona, no se garantiza que el número de entradas submuestreadas sea el porcentaje exacto requerido: alguna transformación del hash que reside en el intervalo [0,1] se compara con la proporción de muestreo. Dependiendo de los nombres de lectura presentes en el archivo, el número de entradas sam efectivamente muestreadas variará.
#2
+4
ATpoint
2018-12-12 05:12:02 UTC
view on stackexchange narkive permalink

Con esta función, puede submuestrear un archivo BAM dado a un número de lecturas especificado por el usuario usando SamBamba. La función calcula automáticamente el factor de escala. Ideas tomadas en parte de aquí

  function SubSample {## Calcule el factor de muestreo en función del número previsto de lecturas: FACTOR =  $ (samtools idxstats $  1 | cut -f3 | awk -v COUNT =  $ 2 'BEGIN {total = 0} {total + = $  1 } END {print COUNT / total} ') if [[ $ FACTOR > 1]] then echo' [ERROR]: El número solicitado de lecturas excede el total de lecturas en '$  span > 1 '- saliendo' && exit 1fisambamba view -s  $ FACTOR -f bam -l 5 $  1} ## Ejemplo de uso, seleccionando 100.000 lecturas: SubSample in. bam 100000 > subsampled.bam  

Tenga en cuenta que $ 2 es el número de lecturas. Supongamos que elige 10000 lecturas pero tiene datos de extremo emparejado, terminará con 5000 fragmentos.

#3
+1
swbarnes2
2018-12-13 00:31:35 UTC
view on stackexchange narkive permalink

Una táctica totalmente diferente ... es útil si no es muy exigente con la cantidad de lecturas que tiene al final.

Los nombres de lectura de Illumina contienen las coordenadas de carril, mosaico y xy del leer en ellos. Si filtra por estos, se le garantiza que obtendrá ambos miembros de un par, o ninguno. Recomendaría intentar evitar los bordes de la celda de flujo.



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...