TP1 - Procesamiento de la secuenciación Introducción
Transcript of TP1 - Procesamiento de la secuenciación Introducción
TP1 - Procesamiento de la secuenciación
Introducción
El análisis de datos de secuenciación de alto rendimiento es complejo y requiere de gran
poder de cómputo. Un secuenciador de próxima generación (Next Generation Sequencing;
NGS) como el Illumina Hiseq puede generar 600 Gigabases (Gb) por corrida. La
secuenciación de un genoma humano completo (Whole Genome Sequencing; WGS) con un
“coverage” (profundidad; promedio de la cantidad de veces que una base cualquiera se
encuentra representada en el producto de la secuenciación) de 30X por esta técnica
generará datos de más de 200 Gigabytes (Gb) (si quiere puede hacer las cuentas
considerando que el genoma humano haploide tiene un tamaño de 3.1 Gb).
Figura 1: Flujo de trabajo de la secuenciación genómica
Como puede ver en la Figura 1, durante la secuenciación se generan muchos fragmentos de
ADN, llamados lecturas. Se vuelve indispensable entonces, una vez obtenidas las secuencias
III Escuela de Genómica Clínica Agosto 2018
de esas lecturas conocer la ubicación individual de cada una para “rearmar” el genoma
original. Esto podría lograrse ensamblando de novo todas las lecturas, es decir, relacionarlas
unas con otras. Sin embargo, para genomas de gran tamaño y cuyas secuencias de
referencia ya se encuentran publicadas, un método de mayor confianza (y el que se suele
utilizar) consiste en “mapear” o “alinear” las secuencias a una referencia (una secuencia
de genoma de alta confiabilidad). Luego, pueden relacionarse las diferencias entre el
consenso obtenido de la secuenciación y el genoma de referencia y “llamar las variantes”
(en inglés, Variant Calling), es decir, determinar los sitios que difieren con la referencia.
La naturaleza de estas variantes puede ser de cambios de un único nucleótido (Single
Nucleotide Polymorphism; SNP), pequeñas inserciones o deleciones (Insertions, Deletions;
INDELs) o variantes estructurales (Structural Variants; SV) como las variantes del número de
copias (Copy Number Variations; CNVs). En esta práctica nos enfocaremos en los primeros 2 tipos de variantes, y aprenderemos a
reconocer los diferentes tipos de archivos por los que pasa la información de la
secuenciación desde su origen en el secuenciador hasta el reconocimiento de las
variantes.
En la Figura 2 se muestra el pipeline completo para preprocesamiento, llamado de variantes
y refinamiento que recomienda el Broad Institute, quien además desarrolla el software
principal denominado GATK (https://www.broadinstitute.org/gatk/).
Figura 2: Pipeline de GATK, incluye procesamiento, llamado de variantes y refinamiento.
2
III Escuela de Genómica Clínica Agosto 2018
Objetivos
● Conocer los pasos involucrados en el procesamiento de los datos obtenidos en un
experimento de secuenciación.
● Familiarizarse con los diferentes formatos de archivos utilizados en análisis de
datos de NGS: FASTQ, SAM, BAM.
● Utilización de “Genome Browsers” (IGV)
● Fortalecimiento de conceptos relacionados con la calidad de la variante (Strand
Bias, Cobertura, Het/Hom)
Tarea 1) Preprocesamiento de la muestra
El secuenciador terminó su trabajo, tengo todas las lecturas (reads) de mi muestra… y ahora
¿cómo hago para armar el rompecabezas? Mejor dicho, tengo múltiples rompecabezas de
millones de piezas del mismo patrón mezclados entre sí, e incluso algunas piezas contienen
errores, ¿cómo logro extraer información de este mar de datos?
Para ello necesito ordenar la información, descartar aquella que sea incorrecta o poco
confiable, y encontrar dónde pueden ubicarse las lecturas en el patrón, entre otras cosas.
Más específicamente, se deben realizar una serie de pasos de control de calidad, corrección,
ajustes, alineamientos y ordenamientos, entre otros procesos, para convertir un conjunto
desordenado de lecturas en una secuencia ordenada de lecturas ubicadas en un patrón de
referencia.
Los pasos a seguir son:
1. Control de calidad (QC, quality control) de las bases y los reads
2. Alineamiento y mapeo de los reads contra un genoma de referencia dado
3. Ordenamiento del alineamiento
4. Obtención de estadísticas del alineamiento
5. Marcación de duplicados
6. Agregado de información de secuenciación a los reads
7. Recalibración del puntaje de calidad de las bases (BQSR)
Por una cuestión de tiempo y performance vamos a dedicarnos a analizar los datos que se
obtienen de estos pasos, pero no vamos a ejecutarlos.
Formato FASTQ El secuenciador retorna el conjunto de lecturas (reads) en una serie de archivos con formato
FASTQ. Un archivo FASTQ contiene múltiples líneas de texto, las cuales se agrupan cada 4
filas (o líneas) para representar cada read y se encuentran en el siguiente formato:
3
III Escuela de Genómica Clínica Agosto 2018
@sequence_id
GAAAATGGCTTCGAAATTGGTTTTTTTAGCTCCCCACTTATGACACACTTCTCTGTAAATGA
+
CCCFFFEHGGHCG:GA:DHHE>EEHHHCDBD?B@FFFHHHHIJIJEHCFHGDEHGIJGIGII
La primer línea (que comienza con @) contiene el identificador del read (generalmente
consiste en el nombre del equipo, el id de la flowcell utilizada, las coordenadas en la misma,
si corresponde a la secuencia 1 o 2 del par si es pair-end y una descripción).
La segunda línea contiene la secuencia de nucleótidos del read (representadas por las letras
A, C, G y T). La longitud de esta línea es variable y depende del experimento de
secuenciación.
La tercer línea es un separador, siempre es un símbolo más (+).
La cuarta línea contiene la calidad de cada nucleótido de la secuencia anterior (en Phred
score) codificada como un caracter ASCII del 33 al 126 (mas info en
http://en.wikipedia.org/wiki/FASTQ_forma#Encoding). Esta calidad es determinada por el
secuenciador en base a los resultados del experimento de secuenciación.
Phred Score: http://en.wikipedia.org/wiki/Phred_quality_score
El Phred Score es una forma de calificar la calidad de cada nucleótido (o sea la confianza que
se tiene en que el nucleótido leído sea ese y no otro). La fórmula matemática es la siguiente: Q = -10 log10 P, donde P es la probabilidad de determinar incorrectamente al nucleótido en
cuestión.
Phred Score Probabilidad de equivocarse de base
Precisión de la base
10 1 en 10 90%
20 1 en 100 99%
30 1 en 1.000 99.9%
40 1 en 10.000 99.99%
50 1 en 100.000 99.999%
Comencemos:
QC - Control de calidad de las bases y los reads
El primer paso siempre luego de un ensayo de secuenciación es evaluar la calidad con la que
fueron obtenidos los datos. Podríamos revisar la línea que representa a la calidad en el
4
III Escuela de Genómica Clínica Agosto 2018
archivo FASTQ, pero además de engorroso es inentendible para nosotros, pobres humanos.
Una manera fácil y rápida es permitir que un programa (por ejemplo, FastQC) evalúe las
secuencias y nos provea de una serie de estadísticas que nos permitan inferir la calidad del
proceso.
Para más información puede visitar el siguiente link para conocer más sobre FastQC y su
modo de empleo: https://www.bioinformatics.babraham.ac.uk/projects/fastqc/
Usted posee dos archivos creados con FastQC: chr22_r1_fastqc.html y
chr22_r2_fastqc.html. Ambos archivos corresponden a la secuenciación por pair-end en un
equipo Illumina, donde “r1” son los fragmentos secuenciados desde un extremo, mientras
“r2” son los mismos fragmentos secuenciados por el lado contrario. Desde la interfaz
gráfica, haga click en ellos para abrir los reportes en su navegador.
i) Observe y analice primero el gráfico llamado “Per base sequence quality”, el cual muestra
la calidad de secuenciación de cada base de acuerdo a su posición relativa en el read.
¿Encuentra alguna región (o regiones) con menor calidad? ¿Se le ocurre cuál puede ser el
motivo?
ii) Observe y analice el gráfico llamado “Per sequence quality scores”, el cual muestra la
distribución de los reads de acuerdo a su calidad de secuenciación. ¿En qué valor se
encuentra el máximo? ¿Qué valor utilizará como threshold por calidad? Explique
brevemente y discuta con sus compañeros la diferencia entre calidad “per sequence” y “per
base”, ¿Qué significa cada una? ¿Cuál es la utilidad de cada una?
iii) Observe y analice el gráfico llamado “Per sequence GC content”, el cual compara la
distribución de GC de la muestra respecto a la distribución teórica esperada. ¿Le parece que
la muestra tiene una distribución apropiada de GC? ¿Qué podría significar una distribución
de GC distinta a la esperada?
iv) Observe y analice el gráfico llamado “Sequence Length Distribution”, el cual muestra la
distribución de la longitud de los reads. ¿Cuál es el largo de los reads? ¿El largo obtenido de
qué depende?
v) Observe y analice el gráfico llamado “Sequence Duplication Levels”, el cual permite
evidenciar las duplicaciones que pueden ser generadas por la metodología (ver Figura 3).
¿Cuál es el significado de las curvas roja y azul?, ¿Por qué puede importar diferenciar las
duplicaciones del genoma de las generadas por el experimento?
5
III Escuela de Genómica Clínica Agosto 2018
Figura 3: Distintas formas en que la técnica puede generar lecturas duplicadas.
QC - Filtrado de lecturas de baja calidad
Una vez que ya analizamos la muestra podemos definir si deseamos descartar lecturas de
mala calidad para trabajar sólo con aquellas que cumplen un cierto requisito de calidad
mínima. El programa PrinSEQ (http://prinseq.sourceforge.net) recibe como entrada el fastq
de la muestra (en este caso, son dos dado que fue secuenciado con el formato de pair ends),
un conjunto de criterios de filtrado y retorna un fastq editado de acuerdo a estos últimos.
Utilizando los criterios de filtrado (A-H) que tiene debajo, piense cómo podría mejorar la
calidad de las muestras en los siguientes casos (1-5):
1. Deseo trabajar con muestras con menos de un 1 error cada 10 nucleótidos
2. Deseo trabajar con muestras con menos de un 1 error cada 100 nucleótidos
3. Mi muestra está contaminada con bacterias con contenido GC en su genoma mayor
al del humano
4. Las primeras bases (extremo 5’) de algunas muestras tienen mala calidad.
5. La muestra tiene adaptadores de 20 nucleótidos.
Para ello use los siguientes parámetros, seleccionando la opción entre paréntesis que le
resulte óptima:
A. Eliminar lecturas con calidad promedio menor a (10/20/30/50) según Phred Score min_qual_mean
6
III Escuela de Genómica Clínica Agosto 2018
B. Eliminar lecturas con mayor promedio mayor a (10/20/30/50) según Phred Score max_qual_mean
C. Eliminar (10/20/50) nucleótidos desde la derecha a cada lectura. trim_right
D. Eliminar (10/20/50) nucleótidos desde la izquierda a cada lectura. trim_left
E. Eliminar tantas bases como sea necesario desde la izquierda hasta encontrar un
valor de calidad menor a (10/20/30/50) según Phred Score. trim_qual_left
F. Eliminar tantas bases como sea necesario desde la derecha hasta encontrar un valor
de calidad menor a (10/20/30/50) según Phred Score. trim_qual_right
G. Eliminar lecturas con menor cantidad de GC que un umbral dado. min_gc
H. Eliminar lecturas con mayor cantidad de GC que un umbral dado. max_gc
Al lado de cada opción A-H tiene el comando de PrinSEQ que se usaría en cada caso. Para
ver la lista de todos los comandos posibles y su utilización puede visitar:
http://prinseq.sourceforge.net/manual.html
Alineamiento y mapeo de las lecturas en un genoma de referencia dado
Luego, procederemos a realizar el alineamiento y mapeo de los reads contra el genoma de
referencia humano. Para ello utilizamos el programa BWA basado en el algoritmo de
alineamiento Burrows-Wheeler (otra alternativa es utilizar Bowtie2). Ambos programas
toman como entrada los fastq filtrados por PrinSEQ en el paso anterior, y devuelven un
archivo en formato SAM con las lecturas mapeadas y alineadas.
Se conoce como "genoma de referencia humano" al genoma ensamblado representativo de
la especie humana realizado por un consorcio internacional (GRC, Genome Reference
Consortium, puede ver más en la página web del consorcio GRC
http://www.ncbi.nlm.nih.gov/projects/genome/assembly/grc/human/). Este se utiliza como
marco para comparar los genomas de estudio, pues se estima que la diferencia de cualquier
ser humano con la referencia varía entre 0.1 y 1%.
Formato SAM
El formato SAM (http://samtools.github.io/hts-specs/SAMv1.pdf) consiste en texto
delimitado por tabs el cual tiene un encabezado (líneas que comienzan con @) con
información general del secuenciamiento y del alineamiento, más una sección de
alineamientos con 11 campos obligatorios y otros campos opcionales. Cada renglón de la
sección de alineamientos corresponde a un segmento de lectura (read) de cada fragmento
(template) introducido en el secuenciador.
Un extracto de un archivo SAM de ejemplo es el siguiente:
@SQ SN:22 LN:51304566
HWI:993 163 22 727 60 101M = 776 150 GGAACACACTC CCCFFAE=FHH
HWI:993 83 22 776 60 101M = 727 -150 CTTGTCGTACC 8<@>?9CACCC
7
III Escuela de Genómica Clínica Agosto 2018
En este ejemplo vemos sólo una línea de encabezado (que comienzan con @) , y a
continuación dos líneas del listado de alineamientos. Para la primer línea de alineamiento
vemos que:
● el nombre del template es HWI:993 , ● que su flag es 163 (veremos su significado a continuación),
● el nombre de la secuencia de referencia es 22 , ● su posición de mapeo es 727 , ● su calidad de mapeo es 60 , ● su código CIGAR es 101M (veremos su significado a continuación),
● la referencia del siguiente read en el template es la misma (= ) ● y su posición es 776 , ● la longitud del template es de 150 bases,
● la secuencia de la lectura es GGAACACACTC (se muestran sólo 11 bases por
legibilidad pero deberían ser 101),
● y por último la calidad es CCCFFAE=FHH (se muestran sólo 11 bases por legibilidad
pero deberían ser 101).
Estos campos que componen la sección de alineamientos se resumen en la siguiente tabla:
Col Campo Tipo Descricpción breve
1 QNAME Cadena de caracteres
Identificador del template secuenciado
2 FLAG Entero Indicador binario (ver explicación)
3 RNAME Cadena de caracteres
Nombre de la secuencia de referencia. Para el genoma humano es el número de cromosoma.
4 POS Entero Posición de Mapeo
5 MAPQ Entero Calidad de Mapeo
6 CIGAR Cadena de caracteres
Código CIGAR (ver explicación)
7 RNEXT Cadena de caracteres
Nombre de la secuencia de referencia del siguiente read en el template
8 PNEXT Entero Posición del siguiente read en el template
9 TLEN Entero Longitud observada del template
10 SEQ Cadena de caracteres
Secuencia del segmento del template secuenciado
11 QUAL Cadena de caracteres
ASCII of Phred-scaled base QUALity+33
8
III Escuela de Genómica Clínica Agosto 2018
FLAG
El campo FLAG se utiliza para indicar distintas condiciones que un read puede o no estar
cumpliendo. Para representar estas condiciones en un sólo valor se utiliza un número
entero (13, 3, 50 etc) cuya descomposición en potencias de dos permiten marcar el
cumplimiento o no de cada condición (ver la siguiente tabla).
A modo de ejemplo, el número entero 13 se puede descomponer en potencias de dos como
1 + 4 + 8, lo que indica que se cumplen las condiciones: el template tiene muchos segmentos
(1), el segmento no está mapeado (4) y el siguiente segmento del template no está
mapeado (8).
¿Cómo se descompone el FLAG “163” y qué significa ese conjunto de condiciones? ¿Y el
“83”?
Potencia de dos Significado
1 template having multiple segments in sequencing
2 each segment properly aligned according to the aligner
4 segment unmapped
8 next segment in the template unmapped
16 SEQ being reverse complemented
32 SEQ of the next segment in the template being reversed
64 the first segment in the template
128 the last segment in the template
256 secondary alignment
512 not passing quality controls
1024 PCR or optical duplicate
2048 supplementary alignment
CIGAR
El campo CIGAR se utiliza para representar la lectura de manera sintética en base a la
coincidencia de sus bases con la referencia. La codificación consiste en mostrar en orden las
bases que coinciden, las no coincidencias, las deleciones, las inserciones, etc. En la siguiente
tabla se detallan los posibles caracteres de la codificación.
9
III Escuela de Genómica Clínica Agosto 2018
Código Descripción
M alignment match (can be a sequence match or mismatch)
I insertion to the reference
D deletion from the reference
N skipped region from the reference
S soft clipping (clipped sequences present in SEQ)
H hard clipping (clipped sequences NOT present in SEQ)
P padding (silent deletion from padded reference)
= sequence match
X sequence mismatch
Por ejemplo, dado un read de longitud 101 bases, el CIGAR “101M” indica que todo el read
alinea con la referencia.
Otro ejemplo un poco más complejo es “56M2D40M5I”. ¿Cómo interpreta este CIGAR?
¿Qué longitud tiene esta lectura?
Cómo podrá intuir en base a estas explicaciones, observar y comprender un archivo “SAM”
no es tarea fácil. Toda la información que se presenta, si bien es legible por nosotros, son
datos que los siguientes programas del pipeline van a utilizar para poder “leer” el
alineamiento y que nos puedan simplificar el trabajo. Una manera rápida de ver si el
alineamiento fue efectivo es analizar estadísticas asociadas a la calidad del mismo, así como
hicimos con los FASTQ.
Obtención de estadísticas del proceso de alineamiento
Luego de haber obtenido el SAM, el mismo es usualmente transformado en un archivo de
tipo BAM, el cual es la representación binaria de la misma información (es decir, está
comprimido y ya no lo podemos leer con un editor de texto). A continuación se obtienen
estadísticas del mapeo y alineamiento utilizando el programa Samtools (opción flagstat), el
cual recibe el BAM ordenado y devuelve un reporte. Pueden leer el reporte generado
abriendo el archivo chr22.flagstat.log.
i) Abra el archivo de texto chr22.flagstat.log y analice los resultados detalladamente.
¿Entiende todos los campos?
ii) ¿Considera que el mapeo fue exitoso? ¿Por qué?
10
III Escuela de Genómica Clínica Agosto 2018
iii) ¿Cuántos reads fueron mapeados del total?
iv) ¿Qué FLAGS son relevantes para contabilizar los reads de la categoría “with itself and
mate mapped”?
Tarea 2) Análisis Visual del Alineamiento
Con el objetivo de visualizar el alineamiento realizado en los pasos anteriores, utilizaremos
el programa IGV (Integrative Genomics Viewer) del Broad Institute (más info en
https://www.broadinstitute.org/igv/). Este programa permite visualizar y explorar datos
genómicos (entre ellos genomas y exomas, a través del archivo de alineamiento BAM).
Asimismo, estos datos pueden ser cruzados con otras bases de datos para ver información
adicional referente a los datos genómicos cargados: como ser la citobanda, los genes, la
secuencia de referencia y las variantes conocidas. Las variantes se cargan a través de un
archivo VCF, el cual puede ser de un llamado de variantes propio o de alguna base de datos
preexistente (como ser dbSNP, ClinVar, etc).
A continuación se muestra una captura de pantalla del programa IGV:
Figura 4: Pantalla del programa IGV
i) Mediante una terminal (ctrl + alt + t), abra el IGV con el comando
11
III Escuela de Genómica Clínica Agosto 2018
igv.sh
ii) Primero debe indicar cual es el genoma de referencia con el que desea trabajar (que debe
ser el mismo que fue utilizado para el mapeo) seleccionandolo del campo “Genoma”. Este
programa cuenta con una extensa base de datos de genomas (entre ellos, las distintas
versiones del genoma humano), los cuales se descargan a medida que son navegados. Para
poder trabajar de manera más ágil, preparamos de antemano una versión local del genoma
humano (b37 + decoy): seleccione entonces el genoma llamado “Human b37 + decoy local”.
Luego seleccione el cromosoma 22 en el campo contiguo.
iii) Cargue el archivo BAM llamado chr22.bam, ingresando a “File->Load from File…”. Este
archivo es el alineamiento obtenido tras realizar todos los pasos del preprocesamiento.
Observará que en el área de datos del usuario (tracks) aparecen dos líneas: el Coverage
(profundidad) asociado a su archivo y el bam cargado.
iv) Por el momento no puede observar los datos, desplácese por el cromosoma y modifique
el nivel de Zoom hasta observar que aparecen datos en los tracks. Interprete lo que observa.
v) A continuación veremos cómo se han mapeado y alineado los reads sobre la referencia.
Para ello en el campo “Rango de visualización”, ingrese el valor “22:36,688,863-36,690,724”
y presione Enter:
a. Le aparece un conjunto de reads mapeados. Haga Zoom in, observe las líneas de
colores en los reads, ¿qué le parece que representan?. Al clickear en los reads y en el
histograma de profundidad verá información detallada, ¿qué información obtiene?
¿De dónde salió esta información?.
b. Nos movemos ligeramente a la derecha, y en la coordenada 22:36,690,026, vemos
reads con mismatches de baja profundidad, ¿serán variantes?
c. Seguimos hacia la derecha, y en las coordenadas 22:36,690,113 y 22:36,690,120,
vemos reads que segregan por haplotipo, ¿qué significa esto? ¿serán variantes?
vi) En el campo “Rango de visualización”, ingrese ahora el valor “22:36,691,492-36,691,723”
y presione Enter:
a. ¿Qué le parece que representa?
b. Observe el track llamado Gene, fíjese cuál aminoácido corresponde a la posición y
determine si hubo (o no) un cambio de aminoácido.
12
III Escuela de Genómica Clínica Agosto 2018
c. ¿Considera que debería ser llamada (o considerada) una variante?
vii) Ahora vaya a 22:17,280,793-17,280,850:
a. ¿Qué observa?
b. ¿Considera que debería ser llamada una variante?
c. ¿Existe un cambio de aminoácido?
viii) Inspeccione ahora detalladamente cómo se mapean y alinean las lecturas en las dos
regiones siguientes y saque conclusiones:
a. 22:36,659,702-36,663,425
b. 22:22,978,360-22,978,821
13