Genómica evolutiva 2021


Introducción

En un proyecto de secuenciación del genoma de un organismo por tecnología Illumina, el ADN del organismo objetivo se divide en millones de fragmentos pequeños como parte de la preparación. Las secuencias resultantes (o reads) de una secuenciación de Illumina varían entre 36 y 250 nucleótidos de largo. Estos reads pueden ser single-end o paired-end.

Los reads pair-end o pareados se producen cuando “leemos” (secuenciamos) ambos extremos de los fragmentos secuenciados (los que son mucho más largos que los reads) y la lectura se realiza desde ambos extremos del fragmento hacia adentro. Esto produce reads pareados, uno desde cada extremo del fragmento, con una distancia de separación conocida (más precisamente, la distancia es una variable aleatoria con distribución conocida). Esta información adicional contenida en los reads pareados puede ser muy útil durante el proceso de ensamblado.

El ensamblado del genoma se refiere al proceso de tomar un conjunto secuencias cortas de ADN (reads o lecturas) que representan una colección al azar de dicho genoma, y “unirlas” para crear una representación de los cromosomas originales a partir de los cuales se originaron estas secuencias. El objetivo de un ensamblador es producir largos fragmentos de secuencias contiguos (contigs) a partir de los mencionados reads. Se trata de un problema computacional complejo, dificultado aún más por la presencia de secuencias repetidas en los genomas.

En esta guía veremos cómo:

Para cada paso del protocolo hay una serie de herramientas disponibles, y todas ellas tienen fortalezas y debilidades. En lugar de las herramientas sugeridas, otras herramientas podrían usarse en cada caso dependiendo de las preferencias del usuario, o el tipo de problema a resolver.

Obtención y manipulación de datos de secuencias


SRA Toolkit: fastq-dump y prefetch

NCBI-SRA (https://www.ncbi.nlm.nih.gov/sra) es una base de datos bioinformática que funciona como un repositorio público para datos primarios de secuencias biológicas, especialmente de secuencias generadas por tecnologías de secuenciación de segunda y tercera generación. El NCBI provee un paquete de herramientas, SRA Toolkit, para facilitar el acceso y descarga de los archivos y la conversión de las secuencias a distintos formatos, entre otras utilidades.

La herramienta prefetch toma como entrada un accession number del SRA y transfiere los archivos en el formato binario que usa el SRA para guardar los datos disponibles públicamente (identificables por su extensión “.sra”). Luego debemos convertir el archivo en formato sra al formato deseado. Para convertir a fastq, usamos fastq-dump, dandole como entrada la ruta al archivo sra descargado.

Alternativamente, si en lugar de la ruta a un archivo le pasamos un a fastq-dump el accession number, éste convierte los archivos al formato deseado a medida que los descarga, sin necesidad del paso intermedio con prefetch. Esto último es lo que haremos para descargar los archivos que vamos a usar el resto del práctico.

Como se trata de reads paired-end, hay que indicarlo explícitamente con la opción --split-files, de forma de generar dos archivos FASTQ, uno con las secuencias forward y otro con las secuencias reverse.

Para esta parte del práctico vamos a descargar únicamente 1 millón de reads, para esto usamos la opción menos -X.

usuario@máquina:~$ fastq-dump -X 1000000 --split-files SRR8922830


Formato FASTQ

Como ya vimos, cada read es codificado por cuatro líneas. La línea 1 comienza con @ seguido del identificador de la secuencia (que contiene información acerca de la secuenciación). La línea 2 representa la secuencia en bruto. La línea 3 comienza con +, y puede tener la misma información que la línea 1 o no tener información. La línea 4 codifica la calidad de la secuencia medida según el score Phred. Note que a cada nucleótido de la línea 2, le corresponde un valor de calidad, por lo tanto el n-ésimo símbolo en esta línea corresponde a la calidad del n-ésimo nucleótido de la línea 2 codificado en formato ASCII.


Control de calidad

Las tecnologías de secuenciación masiva pueden generar una cantidad masiva de reads en un único experimento. Sin embargo, ninguna tecnología es perfecta, y cada instrumento puede generar distintos tipos y cantidades de errores, debido a las limitaciones técnicas de cada plataforma. Es importante identificar y excluir los errores que pueden afectar el posterior análisis de los datos. El control de calidad de las secuencias es por lo tanto un primer paso esencial. El propósito de esta sección es repasar algunos conceptos relacionados a la calidad de la secuenciación y mostrar cómo entender los datos en bruto para tomar decisiones informadas sobre cómo manejarlos.


  Phred Score

El score Phred (Q) es una medida de calidad de la asignación de bases generadas por una secuenciación automática. Es un valor entero que se asigna a cada base y que representa la probabilidad estimada de error, es decir, que la base sea incorrecta. Si P es la probabilidad de error, el score Q se define como Q = −10 log10(P)


  Profundidad de secuenciación

La profundidad de secuenciación refiere al número promedio de veces que se secuencia cada nucleótido en todo el genoma, y se define como C = NL/G, donde N es el número de reads obtenidos, L es el largo de los reads, y G es el largo del genoma secuenciado. Si asumimos que los reads se distribuyen de forma uniforme en el genoma, a partir de este valor podemos estimar:


  FastQC

FastQC es una herramienta que proporciona una forma sencilla de controlar la calidad de los datos mediante un conjunto de análisis que dan una impresión rápida y visual de si los datos tienen algún problema. En lugar de observar la calidad de cada read, FastQC analiza la distribución del score de calidad en todos los reads de una muestra. De esta forma, rápidamente podemos detectar si tenemos reads con una media de calidad baja, si debemos cortar los reads a partir de cierta posición, o más en general, si nuestros reads se alejan de lo “normal”. Estas evaluaciones deben tomarse en el contexto de lo que esperamos de nuestra muestra. Una muestra “normal” para FastQC es una muestra aleatoria y diversa.

Para realizar el análisis de nuestros reads, simplemente llamamos al programa y especificamos el path a nuestro archivo:

usuario@máquina:~$ fastqc SRR8922830_1.fastq SRR8922830_2.fastq


Filtrado y recorte de secuencias

El tratamiento típico de los datos incluye el recorte de adaptadores y de los extremos de los reads cuando estos decaen en calidad (muy común en el extremo 3’ ) y el filtrado de secuencias demasiado cortas.


  Sickle

Utilizaremos Sickle para filtrar y recortar las secuencias en base a su largo y calidad. Para correr el programa, debemos indicar si estamos trabajando con single end (se) o pair end (pe) reads, los archivos de entrada con las secuencias forward (-f) y reverse (-r), el tipo de codificación de calidad (-t), y el nombre para los archivos de salida con las secuencias pareadas recortadas forward (-o) y reverse (-p), y para las secuencias huérfanas (-s).

El programa usa ventanas deslizantes para recortar los reads en base a un umbral de calidad establecido por el usuario (-q). También permite establecer un umbral de largo mínimo del read (-l).

usuario@máquina:~$ sickle pe -f SRR8922830_1.fastq -r SRR8922830_2.fastq -t sanger \
-o trimmed_pe1.fastq -p trimmed_pe2.fastq -s trimmed_se.fastq -q 27 -l 90
usuario@máquina:~$ fastqc trimmed_pe1.fastq trimmed_pe2.fastq