Vale la pena tener en cuenta que al generar BAM comprimido, como lo hacen la mayoría de las herramientas por defecto, es posible que estén usando diferentes niveles de compresión y / o diferentes bibliotecas, o versiones de dichas bibliotecas para hacer (des) compresión que dan como resultado diferentes tamaños de archivo. Además, el BAM ordenado por coordenadas comprimirá más que el BAM sin clasificar. La versión actual de Picard usa HTSJDK que a su vez usa java.util.zip.Deflater / Inflater, las versiones actuales de samtools deben usar la biblioteca HTSlib que a su vez depende de la biblioteca zlib estándar. Puede ver el efecto de diferentes implementaciones de zlib en el tamaño del archivo y el tiempo de ejecución en la evaluación comparativa realizada por el equipo de samtools.
Sin embargo, en su caso, la mejor manera de ver si Si existe alguna diferencia entre los archivos BAM es descartar el efecto de diferentes niveles de compresión o bibliotecas utilizadas para la compresión y guardar ambos archivos BAM como sin comprimir. Tanto samtools como Picard tienen opciones para deshabilitar o cambiar los niveles de compresión, dado que el estándar de compresión BAM BGZF se implementa sobre el formato gzip, ha heredado la capacidad, al igual que con gzip, de cambiar el nivel de compresión de 0 a 9.
samtools view -bu
le permitirá producir una salida BAM sin comprimir (que también es útil para conectar con otros programas, ya que ahorra tiempo perdido comprimiendo descomprimiendo lo que es esencialmente un flujo). También tenga en cuenta que samtools sort
tiene una configuración -l INT
donde INT se puede establecer entre 0 (compresión desactivada, como con -u
) 1 ( para una compresión más rápida, pero un tamaño de archivo aumentado) o -9 (para una compresión máxima, con un mayor tiempo de ejecución). Algunos de los efectos de un mayor tiempo de ejecución para configuraciones de compresión más altas pueden mejorarse usando el argumento - @
que le permite establecer el número de subprocesos adicionales usados para la compresión BAM, por defecto samtools no usará ninguno.
Las herramientas Picard tienen una configuración general COMPRESSION_LEVEL
que es aplicable a la mayoría de sus herramientas estableciendo esto en 0, COMPRESSION_LEVEL = 0
debería deshabilitar la compresión.
Por lo tanto, volver a ejecutar cualquier herramienta de Picard que usó en la primera instancia con COMPRESSION_LEVEL = 0
le permitirá verificar que el archivo no sea modificado por samtools view -bu
. La suposición aquí es que si ambos archivos tienen exactamente el mismo contenido, deberían tener el mismo tamaño sin comprimir, por supuesto, si tienen diferencias triviales con respecto al formato de espacios en blanco, las cosas aún pueden diferir.