Alineamiento*de*secuencias*cortas* y*manejo*de*la...
Transcript of Alineamiento*de*secuencias*cortas* y*manejo*de*la...
Alineamiento de secuencias cortas y manejo de la herramienta
SAM/BAM tools Leticia Vega Alvarado, Dra.
CCADET -‐ UNAM
Brindar los conceptos básicos de los programas Bowtie2, BWA y SMALT, para que los asistentes puedan utilizarlos en el alinemaiento de secuencias cortas. Así como las herramientas SAMTOOLS y BAMTOOLS, para el manejo de los archivos obtenidos con los alineadores.
Objetivos
1. Introducción 2. Definiciones
1. Concepto de inserción, deleción, etc. 2. Alineamiento local 3. Alineamiento global
3. Bowtie2 4. BWA 5. SMALT 6. SAMTOOLS 7. BAMTOOLS
TEMARIO
Explicaremos el concepto de alineamiento considerando el siguiente ejemplo:
1. Introducción
http://bygadrian.blogspot.mx/2016/05/proyecto-‐genoma-‐humano.html
3.3 GB de pb
≈3.3 billones de caracteres
Consideremos un libro mucho más pequeño, por ejemplo la biblia.
1. Introducción
4 MB de pb ≈ 4 millones de caracteres
“En verdad os digo: Quien esté libre de pecado que arroje la primera piedra”
Supongamos que encontramos una frase en una hoja, y queremos buscar o “alinear” dicha frase en la Biblia completa.
Es importante resaltar que: 1) Podemos no encontrar la frase exactamente EN VERDAD LES DIGO QUIEN ESTE LIBRE DE PECADO QUE ARROJE LA PRIMERA PIEDRA EN VERDAD OS DIGO QUIEN ESTE LIBRE DE PECADO QUE ARROJE LA PRIMERA PIEDRA De 60 caracteres, 58 son exactos y dos son errores (mismatchs). Semejanza al ~97% 2) La frase a buscar aparece en más de un lugar
a) La frase está repetida más de una vez o b) Los fragmentos a buscar son demasiado cortos
3) Los procesos de alineamientos de secuencias cortas, el número de secuencias cortas a buscar , está en el orden de millones, por lo tanto eleva la complejidad de la búsqueda.
1. Introducción
1. Introducción En resumen podemos decir que un alineamiento de secuencias es: Un proceso, que recibe como datos de entrada un conjunto secuencias y una referencia (genoma completo, transcritos, entre otros) y cuyo objetivo es localizar la posición donde se encuentra la máxima semejanzas entre cada una de las secuencias cortas respecto a la referencia.
Referencia
reads
paired -‐ end single -‐ read
1. Introducción Existen diversos (+90) programas para realizar alineamientos
http://www.ebi.ac.uk/~nf/hts_mappers/
DNA mappers RNA mappers miRNA mappers Bisulfite mappers
2. Definiciones Al momento de alinear se pueden presentar las siguientes situaciones:
1) Una sustitución es un cambio de una base por otra.
2) Cuando falta una base decimos que hay un gap
3) U n g a p p u e d e pertenecer tanto a una deleción como a una inserción.
1 2
2
2. Definiciones Pueden existir diferentes alineamientos dependiendo del número de gaps que permitamos introducir
El alineamiento con mejor puntuac ión debería ser el más razonable desde un p u n t o d e v i s t a b io lóg ico , e l que alinea más posiciones homólogas. ¿Puntuación?
2. Definiciones Para comparar distintos alineamientos entre si se pueden asignar puntuaciones, es decir, medidas objetivas.
2. Definiciones Hay dos tipos de alineamientos principales: locales y globales. En el alineamiento local se alinean sólo las zonas más parecidas
2. Definiciones En el alineamiento global se intenta que el alineamiento cubra las dos secuencias completamente introduciendo los gaps que sean necesarios.
2. Definiciones Concepto de k-‐mero l Tamaño de palabra k l N-‐k+1 = número total de palabras contenidas en un read (N es la longitud del read)
l Los k-‐meros nos permiten conectar reads l Se encuentra un camino “único” donde pueda colocar todos los reads
¿Cómo funcionan los alineadores?
Naive – Mapeo Buscar el “Query-‐read” en cada posición del
“Target-‐referencia”
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
Organizar la información de tal forma que podamos acceder a ella de manera rápida y certera.
Para buscar información en un libro, referente a un determinado tema, consultamos el índice.
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=W6UL3UVdZDw
Existen diversos métodos para indizar la información.
Hash index Suffix tree FM index (BWT)
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=1ZyoI-‐4ObSA
¿Cómo funcionan los alineadores?
https://www.youtube.com/watch?v=1ZyoI-‐4ObSA
Burrows-‐Wheeler vs Hashing
Fortalezas y Debilidades: Burrows-Wheeler ex. BWA, BOWTIE • Rápido • Alta sensibilidad a regiones repetidas • Menos robusto en genomas con alta variabilidad Hashing ex. SMALT, SSAHA2 • Lento (mayor cantidad de memoria) • Baja sensibilidad a regiones repetidas • Tolera genomas con alta variabilidad
Smalt vs BWA vs Bowtie
Cuál es el mejor ?, Cuál utilizar ?, dependerá de lo que Definamos por mejor: Tipo de datos Tiempo Recursos (Hardware) Opciones Sensibilidad Especificidad.
Los datos que utilizaremos para trabajar con los 3 programas de alineamiento, que veremos. Se encuentran el la carpeta: /Data/Modulo4/ Previo a utilizarlos, les echaremos un vistazo
2. Revisando los datos para los alineamientos
Los datos que utilizaremos para trabajar con los 3 programas de alineamiento, que veremos. Se encuentran el la carpeta: /Data/Modulo4/ Ch_strain_1.fastq Ch_200kref.fna Referencia Ch_strain_2.fastq Previo a utilizarlos, les echaremos un vistazo
2. Revisando los datos para los alineamientos
1. ¿Cuánto mide nuestra referencia? 2. ¿El tamaño será aproximado al tamaño en bytes del archivo? 3. ¿Cuántas secuencias tenemos en los archivos fastq? 4. ¿De qué tamaño son las secuencias?
2. Revisando los datos para los alineamientos
3. Bowtie2
Bowtie2 Es una herramienta muy rápida y eficiente en el uso de memoria para alinear secuencias cortas a genomas de referencias. Bowtie2 Realiza la indexación del genoma basado en las transformadas de Burrows-‐Wheeler. Paralelizable (lograr muy buena velocidad)
http://bowtie-‐bio.sourceforge.net/bowtie2/index.shtml
3. Bowtie2
3. Bowtie2
vegal@cursouusmb:~$ bowtie2
En la terminal escribimos
Como podemos observar al escribir el comando y dar “enter” obtenemos la ayuda y descripción de Bowtie2. Usage: bowtie2 [options]* -‐x <bt2-‐idx> {-‐1 <m1> -‐2 <m2> | -‐U <r>} [-‐S <sam>] <bt2-‐idx> Index filename prefix (minus trailing .X.bt2).
3. Bowtie2
vegal@cursouusmb:~$ bowtie2-‐build
Para indexar la referencia utilizamos
Nuevamente, al escribir el comando y dar “enter” obtenemos la ayuda y descripción del mismo . Para indexar nuestra referencia utilizamos el siguiente comando: vegal@cursouusmb:~$ bowtie2-‐build /Data/Modulo4/Ch_200kref.fna Bowtie2/bowtie2index
Escibamos!!!
3. Bowtie2
bowtie2index.4.bt2 bowtie2index.3.bt2 bowtie2index.2.bt2 bowtie2index.1.bt2 bowtie2index.rev.2.bt2 bowtie2index.rev.1.bt2
Se van a generar 6 archivos con el prefijo que le dimos
Una vez generado el indexado de la referencia podemos alinear las secuencias.
3. Bowtie2 Nuevamente, escribiremos el comando bowtie2 para ver la ayuda.
vegal@cursouusmb:~$ bowtie2
Usage: bowtie2 [options]* -‐x <bt2-‐idx> {-‐1 <m1> -‐2 <m2> | -‐U <r>} [-‐S <sam>] <bt2-‐idx> Index filename prefix (minus trailing .X.bt2). NOTE: Bowtie 1 and Bowtie 2 indexes are not compatible. <m1> Files with #1 mates, paired with files in <m2>. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2). <m2> Files with #2 mates, paired with files in <m1>. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2). <r> Files with unpaired reads. Could be gzip'ed (extension: .gz) or bzip2'ed (extension: .bz2). <sam> File for SAM output (default: stdout)
3. Bowtie2 Para alinear los archivos fastq “Ch_strain_1.fastq” y “Ch_strain_2.fastq
vegal@cursouusmb:~$ bowtie2 –x Bowtie2/bowtie2index -‐1 /Data/Modulo4/Ch_strain_1.fastq -‐2 /Data/Modulo4/Ch_strain_2.fastq -‐S Bowtie2/bowtie2.sam
Escibamos!!!
Bowtie2 Time loading reference: 00:00:00 Time loading forward index: 00:00:00 Time loading mirror index: 00:00:00 Multiseed full-‐index search: 00:00:15 69008 reads; of these: 69008 (100.00%) were paired; of these: 4683 (6.79%) aligned concordantly 0 times 64304 (93.18%) aligned concordantly exactly 1 time 21 (0.03%) aligned concordantly >1 times -‐-‐-‐-‐ 4683 pairs aligned concordantly 0 times; of these: 0 (0.00%) aligned discordantly 1 time -‐-‐-‐-‐ 4683 pairs aligned 0 times concordantly or discordantly; of these: 9366 mates make up the pairs; of these: 9366 (100.00%) aligned 0 times 0 (0.00%) aligned exactly 1 time 0 (0.00%) aligned >1 times 93.21% overall alignment rate Time searching: 00:00:15 Overall time: 00:00:15
Un vistazo al archivo de salida
Ejercicio: ¿De qué tipo es el archivo de salida del alineamiento? Extraer los flags existentes. (Sugerencia: usar cut,sort,uniq) Buscar el significado para alguno de los valores reportados.
vegal@cursouusmb:~$ more Bowtie2/bowtie2.sam @HD VN:1.0 SO:unsorted @SQ SN:ChYU39_part LN:200000 @PG ID:bowtie2 PN:bowtie2 VN:2.3.0 CL:"/usr/bin/bowtie2-‐align-‐s -‐-‐wrapper basic -‐0 -‐t -‐p 1 -‐x Bowtie2/bowtie2index -‐S Bowtie2/bowtie2.sam -‐1 /Data/Modulo4/Ch_strain_1.fastq -‐2 /Dat a/Modulo4/Ch_strain_2.fastq" ChYU39_part-‐138850 83 ChYU39_part 23290 42 72M =
23160 -‐202 ATGG ATCTCACCCTGGAAGAAGCGGTGCGTGGCGTGACCAAAGAGATCCGTATTCCGACGCTAGAGGAGTGC D-‐4<&<;A==5A+,C<>@(@1;0<B(A7 ',D15A*,CB?B@6B??.?C@@@??2??(@>??6-‐1?3>)=9C& AS:i:-‐3 XN:i:0
XM:i:1 XO:i:0 XG:i:0 NM:i:1 MD:Z :62G9 YS:i:-‐8 YT:Z:CP
4. BWA
BWA es un software para hacer alineamientos de secuencias (poca-‐divergencia) sobre un genoma de referencia. Consta principalmente de tres algoritmos: sampe/samse, BWASW y MEM. El primero es implementado para secuencias (illumina) de hasta 100bp, los otros dos para secuencias en el rango 70bp a 1Mbp. MEM es recomendado para “query’s” de alta-‐calidad. Además por su velocidad también tiene un mejor desempeño que sampe para “reads” de 70-‐100bp.
http://bio-‐bwa.sourceforge.net
4. BWA
4. BWA
vegal@cursouusmb:~$ bwa
En la terminal escribimos
Usage: Program: bwa (alignment via Burrows-‐Wheeler transformation) Version: 0.7.15-‐r1140 Contact: Heng Li <[email protected]> Usage: bwa <command> [options] Command: index index sequences in the FASTA format mem BWA-‐MEM algorithm
4. BWA
vegal@cursouusmb:~$ bwa index
Para indexar la referencia utilizamos
Nuevamente, al escribir el comando y dar “enter” obtenemos la ayuda y descripción del mismo . Para indexar nuestra referencia utilizamos el siguiente comando: vegal@cursouusmb:~$ bwa index -‐a is /Data/Modulo4/Ch_200kref.fna -‐p BWA/BWAindex
Escibamos!!!
4. BWA
BWAindex.bwt BWAindex.pac BWAindex.ann BWAindex.amb BWAindex.sa
Se van a generar 6 archivos con el prefijo que le dimos
Una vez generado el indexado de la referencia podemos alinear las secuencias.
4. BWA Vamos a alinear los archivos fastq “Ch_strain_1.fastq” y “Ch_strain_2.fastq utilizando las opciones sampe y mem.
vegal@cursouusmb:~$ bwa aln -‐t 1 BWA/BWAindex /Data/Modulo4/Ch_strain_1.fastq > BWA/seqAlnR1.sai vegal@cursouusmb:~$ bwa aln -‐t 1 BWA/BWAindex /Data/Modulo4/Ch_strain_2.fastq > BWA/seqAlnR2.sai vegal@cursouusmb:~$ bwa sampe -‐a 300 BWA/BWAindex BWA/seqAlnR1.sai BWA/seqAlnR2.sai /Data/Modulo4/Ch_strain_1.fastq /Data/Modulo4/Ch_strain_2.fastq > BWA/BWA_sampe.sam Escibamos!!!
4. BWA Ahora con mem. En este caso no es necesario alinear por separado los archivos pareados.
vegal@cursouusmb:~$ bwa mem -‐t 4 BWA/BWAindex /Data/Modulo4/Ch_strain_1.fastq /Data/Modulo4/Ch_strain_2.fastq > BWA/BWA_mem.sam
Escibamos!!!
5. Smalt Sequence Mapping and Alignment Tool
SMALT es un programa de alineamiento de secuencias de ADN sobre una referencia genómica. Utiliza una combinación de hash (palabras-‐cortas) y programación dinámica.
http://www.sanger.ac.uk/science/tools/smalt-‐0
5. Smalt
5. Smalt
vegal@cursouusmb:~$ smalt
En la terminal escribimos
SMALT -‐ Sequence Mapping and Alignment Tool (version: 0.7.6) SYNOPSIS: smalt <task> [TASK_OPTIONS] [<index_name> <file_name_A> [<file_name_B>]] Available tasks: smalt check -‐ checks FASTA/FASTQ input smalt help -‐ prints a brief summary of this software smalt index -‐ builds an index of k-‐mer words for the reference smalt map -‐ maps single or paired reads onto the reference
5. Smalt
vegal@cursouusmb:~$ smalt index
Para indexar la referencia utilizamos
Nuevamente, al escribir el comando y dar “enter” obtenemos la ayuda y descripción del mismo . Para indexar nuestra referencia utilizamos el siguiente comando: vegal@cursouusmb:~$ smalt index -‐k 18 -‐s 5 Smalt/smaltindex /Data/Modulo4/Ch_200kref.fna
Escibamos!!!
5. Smalt
smaltindex.sma smaltindex.smi
Se van a generar 6 archivos con el prefijo que le dimos
Una vez generado el indexado de la referencia podemos alinear las secuencias.
5. Smalt Para alinear los archivos fastq “Ch_strain_1.fastq” y “Ch_strain_2.fastq ¿Qué opción utilizaremos para alinear?
vegal@cursouusmb:~$ smalt map -‐o Smalt/smalt.sam Smalt/smaltindex /Data/Modulo4/Ch_strain_1.fastq /Data/Modulo4/Ch_strain_2.fastq
Escibamos!!!
6. SAMtools SAMtools es un conjunto de herramientas para el post-‐procesamiento de los alineamientos de secuencia cortas de ADN. Trabaja con archivos de tipo SAM, BAM y formatos CRAM.
Pueden consultar la información completa (instalación, manual, etc.) en el sitio: http://www.htslib.org/
6. SAMtools
6. SAM tools
Cada uno de estos comando tiene un conjunto de opciones, las cuales pueden ser consultadas escribiendo el comando sin parámetros.
Los comandos más utilizados son:
samtools view samtools sort samtools index samtools idxstats samtools merge samtools faidx samtools fixmate samtools mpileup samtools tview samtools flags Samtools fastq
6. SAM tools
Cada uno de estos comando tiene un conjunto de opciones, las cuales pueden ser consultadas escribiendo el comando sin parámetros.
Los comandos más utilizados son:
samtools view samtools sort samtools index samtools idxstats samtools merge samtools faidx samtools fixmate samtools mpileup samtools tview samtools flags Samtools fastq
6. SAM tools
Cada uno de estos comando tiene un conjunto de opciones, las cuales pueden ser consultadas escribiendo el comando sin parámetros.
Ejemplos de uso: samtools view -‐b -‐S Bowtie2/bowtie2.sam -‐o Bowtie2/bowtie2.bam
La opción -‐b indica que la salida debe ser en formato bam. -‐S indica que la entrada es en formato sam. -‐o permite definir el nombre del archivo de salida
6. SAMtools
Ejemplos de uso: samtools flags
6. SAMtools
6. SAMtools Realizar las siguientes operaciones: 1) Regresar a formato sam el archivo bowtie2.bam y guardarlo
con el nombre bowtie2Return.sam 2) Obtener las estadísticas de alineamiento del archivo smalt.sam 3) Comparar las estadísticas de alineamiento de los archivos
smalt.sam, bowtie2.sam y BWA_mem.sam ¿ Qué método alineó un mayor porcentaje de secuencias?
4) Comparar los resultados de los alineamientos BWA_mem.sam y BWA_sampe.sam. ¿ Qué método alineó un mayor porcentaje de secuencias?
7. BAM tools BAMtools es un conjunto de herramientas para el manejo de archivos de tipo BAM. Estas herramientas permiten ordenar, convertir en otros formatos y proporcionar información estadísticas de los archivos, entre otras funciones.
Pueden consultar la información completa (instalación, manual, etc.) en el sitio: https://github.com/pezmaster31/bamtools
7. BAM tools
7. BAMtools
vegal@cursouusmb:~$ bamtools
En la terminal escribimos
usage: bamtools [-‐-‐help] COMMAND [ARGS] Available bamtools commands:
convert Converts between BAM and a number of other formats
count Prints number of alignments in BAM file(s) coverage Prints coverage statistics from the input
BAM file filter Filters BAM file(s) by user-‐specified
criteria
7. BAMtools
Para cada una de las opciones bamtools, tenemos un conjunto de parámetros, los cuales podemos consultar:
vegal@cursouusmb:~$ bamtools convert -‐h
Usage: bamtools convert -‐format <FORMAT> [-‐in <filename> -‐in <filename> ... | -‐list <filelist>] [-‐out <filename>] [-‐region <REGION>] [format-‐specific options] Input & Output: -‐in <BAM filename> the input BAM file(s) [stdin]
7. BAMtools
Para cada una de las opciones bamtools, tenemos un conjunto de parámetros, los cuales podemos consultar:
vegal@cursouusmb:~$ bamtools convert -‐h
Usage: bamtools convert -‐format <FORMAT> [-‐in <filename> -‐in <filename> ... | -‐list <filelist>] [-‐out <filename>] [-‐region <REGION>] [format-‐specific options] Input & Output: -‐in <BAM filename> the input BAM file(s) [stdin]
Ejemplos de uso, para convertir el archivo bam a fastq bamtools convert -‐format fastq -‐in Bowtie2/bowtie2.bam -‐out Bowtie2/bowtie2.fastq
-‐format: formato al que queremos convertir -‐in: archivo de entrada -‐out: archivo de salida
7. BAMtools
Escibamos!!!
Analizando la cobertura del mapeo
bamtools converage -‐in Bowtie2/bowtie2.bam -‐out Bowtie2/bowtie2.bam.coverage
Posteriormente, veamos qu contiene el archivo bowtie2.bam.coverage
7. BAMtools
Escibamos!!!
¿Qué comando utilizaremos para filtrar de un archivo bam, sólo las lecturas que mapearon?
7. BAMtools
Escibamos!!!
Bamtools filter -‐in Bowtie2/bowtie2.bam -‐out Bowtie2/bowtie2.bam.map isMapped true
Para visualizar el alineamiento vs la referencia utilizaremos la opción tview de samtools. 1) Primero ordenaremos el archivo bam de las lecturas que mapearon. bamtools sort –in Bowtie2/bowtie2.map.bam -‐out bowtie2.map.sort.bam
7. BAMtools
Escibamos!!!
2) Indexar el archivo samtools index Bowtie2/bowtie2.map.sort.bam 3) Visualizar samtools tview ? ¿Qué parámetros se requieren?
7. BAMtools
Escibamos!!!
samtools tview Bowtie2/bowtie2.map.sort.bam /Data/Modulo4/Ch_200kref.fna
7. BAMtools
Escibamos!!!