Herramientas SAM

Herramientas SAM
Autor(es) original(es)Heng Li
Desarrollador(es)John Marshall y Petr Danecek et al. [1]
Lanzamiento inicial2009
Versión estable
1.20 / 15 de abril de 2024 ; hace 6 meses [2] ( 15/04/2024 )
Repositorio
  • github.com/samtools/samtools
Escrito endo
Sistema operativoSimilar a Unix
TipoBioinformática
LicenciaBSD , MIT
Sitio webwww.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]

Uso y comandos

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

Comandos de SAMtools

SAMtools proporciona los siguientes comandos, cada uno invocado como " samtools some_command ".

vista
El comando view filtra datos con formato SAM o BAM. Mediante opciones y argumentos, entiende qué datos seleccionar (posiblemente todos) y pasa solo esos datos. La entrada suele ser un archivo sam o bam especificado como argumento, pero podría ser datos sam o bam canalizados desde cualquier otro comando. Los posibles usos incluyen la extracción de un subconjunto de datos en un nuevo archivo, la conversión entre formatos BAM y SAM y simplemente la observación del contenido del archivo sin procesar. Se conserva el orden de las lecturas extraídas.
clasificar
El comando sort ordena un archivo BAM en función de su posición en la referencia, según lo determina su alineación. El elemento + la coordenada en la referencia con la que se alinea la primera base coincidente en la lectura se utiliza como clave para ordenarlo. [TODO: verificar]. La salida ordenada se vuelca a un nuevo archivo de forma predeterminada, aunque se puede dirigir a stdout (usando la opción -o). Como la ordenación requiere mucha memoria y los archivos BAM pueden ser grandes, este comando admite un modo de seccionamiento (con las opciones -m) para usar como máximo una cantidad determinada de memoria y generar varios archivos de salida. Estos archivos se pueden fusionar para producir un archivo BAM ordenado completo [TODO: investigue los detalles de esto con más cuidado].
índice
El comando index crea un nuevo archivo de índice que permite realizar búsquedas rápidas de datos en un SAM o BAM (ordenado). Al igual que un índice en una base de datos, el archivo *.sam.sai o *.bam.bai generado permite que los programas que pueden leerlo trabajen de manera más eficiente con los datos en los archivos asociados.
vista de televisión
El comando tview inicia un visualizador interactivo basado en ASCII que se puede utilizar para visualizar cómo se alinean las lecturas con pequeñas regiones específicas del genoma de referencia. En comparación con un visualizador basado en gráficos como IGV, [6] tiene pocas funciones. Dentro de la vista, es posible saltar a diferentes posiciones a lo largo de los elementos de referencia (usando 'g') y mostrar información de ayuda ('?').
compilar
El comando mpileup genera un archivo con formato pileup (o BCF) que proporciona, para cada coordenada genómica, las bases de lectura superpuestas y las indels en esa posición en los archivos BAM de entrada. Esto se puede utilizar para llamadas de SNP, por ejemplo.
estado de bandera

Ejemplos

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

vista de televisión
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.

clasificar
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 ]

índice
samtools index sorted.bam

Crea un archivo de índice, sorted.bam.bai, para el archivo sorted.bam .

Véase también

Referencias

  1. ^ "Herramientas SAM". SourceForge .
  2. ^ "Lanzamientos · samtools/samtools". github.com . Consultado el 29 de julio de 2024 .
  3. ^ Li H , Handsaker B, Wysoker A, Fennell T, Ruan J, Homer N, et al. (agosto de 2009). "El formato de alineación/mapa de secuencias y SAMtools" (PDF) . Bioinformática . 25 (16): 2078–9. doi :10.1093/bioinformatics/btp352. PMC 2723002. PMID  19505943 . 
  4. ^ Bonfield JK, Marshall J, Danecek P, Li H, Ohan V, Whitwham A, et al. (febrero de 2021). "HTSlib: biblioteca C para leer/escribir datos de secuenciación de alto rendimiento". GigaScience . 10 (2). doi :10.1093/gigascience/giab007. PMC 7931820 . PMID  33594436. 
  5. ^ Danecek P, Bonfield JK, Liddle J, Marshall J, Ohan V, Pollard MO, et al. (febrero de 2021). "Doce años de SAMtools y BCFtools". GigaCiencia . 10 (2). doi : 10.1093/gigascience/giab008. PMC 7931819 . PMID  33590861. 
  6. ^ VIG
  • Página de inicio del proyecto SAMtools
  • Comandos de SAMtools
  • Página wiki en SeqAnswers para el software SAMtools (stub a fecha de 2012-02-26.) enlace roto
  • Notas matemáticas sobre los algoritmos de SAMtools de su autor principal
  • Tutorial breve y algo especializado sobre SAMtools de EMBL.
Obtenido de "https://es.wikipedia.org/w/index.php?title=SAMtools&oldid=1237469662"