Autor(es) original(es) | Heng Li |
---|---|
Desarrollador(es) | John Marshall y Petr Danecek et al. [1] |
Lanzamiento inicial | 2009 |
Versión estable | 1.20 / 15 de abril de 2024 ( 15/04/2024 ) [2] |
Repositorio |
|
Escrito en | do |
Sistema operativo | Similar a Unix |
Tipo | Bioinformática |
Licencia | BSD , MIT |
Sitio web | www.htslib.org |
SAMtools es un conjunto de utilidades para interactuar con y posprocesar alineaciones de lectura de secuencias cortas de ADN en los formatos SAM (Sequence Alignment/Map), BAM (Binary Alignment/Map) y CRAM , escrito por Heng Li . Estos archivos se generan como salida por alineadores de lectura corta como BWA . Se proporcionan herramientas simples y avanzadas, que admiten tareas complejas como la llamada de variantes y la visualización de alineaciones, así como la clasificación, la indexación, la extracción de datos y la conversión de formatos . [3] Los archivos SAM pueden ser muy grandes (decenas de Gigabytes es común), por lo que se utiliza la compresión para ahorrar espacio. Los archivos SAM son archivos de texto legibles por humanos, y los archivos BAM son simplemente su equivalente binario, mientras que los archivos CRAM son un formato de contenedor binario orientado a columnas reestructurado. Los archivos BAM generalmente están comprimidos y son más eficientes para que el software trabaje con ellos que SAM. SAMtools permite trabajar directamente con un archivo BAM comprimido, sin tener que descomprimir todo el archivo. Además, dado que el formato de un archivo SAM/BAM es algo complejo (contiene lecturas, referencias, alineaciones, información de calidad y anotaciones especificadas por el usuario), SAMtools reduce el esfuerzo necesario para usar archivos SAM/BAM al ocultar detalles de bajo nivel.
Como proyectos de terceros intentaban usar el código de SAMtools a pesar de que no estaba diseñado para integrarse de esa manera, en agosto de 2014 se tomó la decisión de dividir el paquete SAMtools en una biblioteca de software independiente con una API bien definida (HTSlib), [4] un proyecto para la llamada de variantes y la manipulación de datos de variantes (BCFtools) y el paquete SAMtools independiente para trabajar con datos de alineación de secuencias . [5]
Al igual que muchos comandos de Unix , los comandos de SAMtool siguen un modelo de flujo , donde los datos pasan por cada comando como si estuvieran en una cinta transportadora . Esto permite combinar varios comandos en una secuencia de procesamiento de datos. Aunque el resultado final puede ser muy complejo, solo se necesita un número limitado de comandos simples para producirlo. Si no se especifica, se asumen los flujos estándar (stdin, stdout y stderr). Los datos enviados a stdout se imprimen en la pantalla de forma predeterminada, pero se redirigen fácilmente a otro archivo utilizando los redirectores normales de Unix (> y >>), o a otro comando a través de una barra vertical (|).
SAMtools proporciona los siguientes comandos, cada uno invocado como " samtools some_command ".
samtools view sample.bam > sample.sam
Convierte un archivo bam en un archivo sam.
samtools view -bS sample.sam > sample.bam
Convierte un archivo sam en un archivo bam. La opción -b comprime o deja comprimidos los datos de entrada.
samtools view sample_sorted.bam "chr1:10-13"
Extrae todas las lecturas alineadas con el rango especificado, que son aquellas que están alineadas con el elemento de referencia llamado chr1 y cubren su base 10, 11, 12 o 13. Los resultados se guardan en un archivo BAM que incluye el encabezado. Se requiere un índice del archivo de entrada para extraer lecturas según su posición de mapeo en el genoma de referencia, tal como lo crea samtools index .
samtools view -h -b sample_sorted.bam "chr1:10-13" > tiny_sorted.bam
Extrae las mismas lecturas que antes, pero en lugar de mostrarlas, las escribe en un nuevo archivo bam, tiny_sorted.bam . La opción -b comprime la salida y la opción -h hace que también se muestren los encabezados SAM. Estos encabezados incluyen una descripción de la referencia con la que se alinearon las lecturas en sample_sorted.bam y serán necesarios si el archivo tiny_sorted.bam se va a utilizar con algunos de los comandos SAMtools más avanzados. Se conserva el orden de las lecturas extraídas.
samtools tview sample_sorted.bam
Inicie un visor interactivo para visualizar una pequeña región de la referencia, las lecturas alineadas y los desajustes. Dentro de la vista, puede saltar a una nueva ubicación escribiendo g: y una ubicación, como g:chr1:10,000,000 . Si el nombre del elemento de referencia y los dos puntos siguientes se reemplazan con = , se utiliza el elemento de referencia actual, es decir, si se escribe g:=10,000,200 después del comando "goto" anterior, el visor salta a la región 200 pares de bases más abajo en chr1 . Al escribir ? se muestra información de ayuda para el movimiento de desplazamiento, colores, vistas, etc.
samtools tview -p chrM:1 sample_chrM.bam UCSC_hg38.fa
Establezca la posición inicial y compare.
samtools tview -d T -p chrY:10,000,000 sample_chrY.bam UCSC_hg38.fa >> save.txt
samtools tview -d H -p chrY:10,000,000 sample_chrY.bam UCSC_hg38.fa >> save.html
Guardar pantalla en .txt o .html.
samtools sort -o sorted_out unsorted_in.bam
Lee el archivo unsorted_in.bam especificado como entrada, ordénalo por posición de lectura alineada y escríbelo en sorted_out . El tipo de salida puede ser sam, bam o cram y se determinará automáticamente según la extensión de archivo de sorted_out.
samtools sort -m 5000000 unsorted_in.bam sorted_out
Lee el unsorted_in.bam especificado como entrada, ordénalo en bloques de hasta 5 millones de k (5 Gb) [ se necesita verificación de unidades ] y escribe la salida en una serie de archivos bam llamados sorted_out.0000.bam , sorted_out.0001.bam , etc., donde todas las lecturas bam 0 vienen antes de cualquier lectura bam 1, etc. [ se necesita verificación ]
samtools index sorted.bam
Crea un archivo de índice, sorted.bam.bai, para el archivo sorted.bam .