miércoles, 31 de diciembre de 2014

Ensamblado de un genoma de novo

En esta entrada llevaremos a cabo el ensamblado de un genoma de novo y comparemos posteriormente el resultado con un genoma de referencia. Para realizar el ensamblado haremos uso de la herramienta Velvet, que se basa en las gráficas de Brujin y en una serie de algoritmos para realizar el ensamblado. Posteriormente, la comparación con el genoma de referencia se realizará con Mauve, una herramienta de alineamiento múltiple de genomas desarrollada por la Universidad de Wisconsin-Madison.

Los pasos que hemos seguido para llevar a cabo esta práctica quedan detallados en la página web de la asignatura, al que podéis acceder en este enlace.


Primera parte: Ensamblado con Velvet

Para realizar el ensamblado nos hemos basado en unas secuencias pareadas, obtenidas con un equipo Illumina HiSeq2000 a partir de una estirpe de E. Coli TY-2482.

Tras descargar las secuencias, el primer paso es realizar un análisis preliminar de las secuencias para comprobar la calidad de las mismas. Como ya se ha explicado en entradas anteriores, el control de la calidad de la secuenciación podrá realizarse con el programa FastQC.

Hemos comprobado que la calidad de las secuencias es óptima. Podemos empezar entonces el ensamblado. Velvet es una de tantas herramientas del ámbito de las Biociencias que sólo es accesible en Linux, por lo que tendremos que trabajar en este sistema operativo.
Tras descargar el software y compilarlo (los detalles de este proceso los podéis encontrar en el enlace a la práctica de la página web de la asignatura) tenemos los dos comandos que necesitaremos para el ensamblado: Velveth y Velvetg. El primero de ellos se encarga de la construcción del perfil de datos que empleará posteriormente Velvetg, incluyendo archivos con información sobre cada una de las secuencias. Velvetg se encarga de construir las gráficas de Brujin a partir del k-mer especificado anteriormente a Velveth. 

Como acabamos de mencionar, el ensamblador Velvet hace uso de las gráficas de Brujin. Este método surge para superar los inconvenientes que emplea el método basado en los solapamientos, ya que realiza una fragmentación más amplia del genoma y tiene en cuenta todas las posibilidades de ensamblaje de los nodos.  Es decir, a diferencia del método de solapamiento, las gráficas de Brujin nos proporcionan muchas más opciones de posibles secuencias y de todas las propuestas selecciona aquella que es más larga y coherente con la hipótesis. 

Sin embargo, a pesar del claro avance que supone, no está libre de ambigüedades, puesto que el ensamblaje de nodos puede resolverse por distintos caminos. Por ello, se aconseja realizar varios ensamblajes con distintos valores de k. En nuestro caso particular, hemos partido de los siguientes valores de k: 27, 29, 33, 35 y 37. 
En este punto, es importante destacar que programas como Velvet únicamente trabajan bien con valores impares de k mer, puesto que de esta forma se evita que un fragmento sea el reverso complementario de sí mismo y porque entre secuencias palindrómicas, el nucleótido central es distinto.

Actualmente se han descrito alrededor de diez parámetros que evalúan la calidad del ensamblado. Uno de los más sonados es el valor de N50, que se define como "el tamaño del último contig que, sumado a las respectivas longitudes de los contigs de tamaño superior, se obtiene una longitud igual o superior a la mitad del genoma en estudio". Así pues, podemos suponer que cuanto mayor es el N50 de nuestro ensamblado mayor es la calidad del mismo, puesto que mayor es la longitud de los contigs y menor número de huecos quedará. 

Sin embargo, esta correlación no es siempre acertada ya que puede tratarse de que estemos realizando un ensamblado incorrecto y los fragmentos que se están uniendo no se corresponda con el orden real del genoma que estamos analizando. Esto lo corroboraremos comparando nuestro ensamblado con un genoma de confianza (para lo que usaremos Mauve). 

Así pues, hemos obtenido los siguientes datos tras lanzar Velvet con nuestra secuenciación: 





Segunda parte: Ordenando los Scaffolds con Mauve

Mauve es un sistema ideado para construir eficientemente múltiples alineamientos de un genoma, teniendo en cuenta eventos evolutivos a gran escala como reordenaciones o inversiones. En esta práctica nos centraremos en la interfaz básica del programa. 

En primer lugar y siguiendo los pasos descritos en la página web de la asignatura, introducimos el genoma de referencia y seguidamente el resultado de el ensamblado realizado por Velvet, ambos en extensión ".fa". El programa irá realizando sucesivos alineamientos, de los cuales el último es el resultado final y el alineamiento válido. 

El alineamiento entre las secuencias seleccionadas se nos muestra como un panel horizontal junto con una escala que coordenadas del genoma. Cada bloque de colores representa una región de la secuencia del nuestro genoma alineado con parte del otro genoma, siendo presumiblemente homóloga al mismo y libre de reordenamiento. 

Cuando uno de los bloques de nuestro genoma problema se localiza por encima de la línea central del esquema, indica que  se orienta hacia delante con respecto a la secuencia del genoma de referencia. En contraposición, los bloques que se localizan por debajo de la línea central representan regiones que se localizan en orientación inversa con respecto a la secuencia de referencia. Por último, las regiones que no forman parte de ningún bloque constituyen secuencias que no presentan homología con el genoma de referencia. 

Además, dentro de cada bloque de color, Mauve dibuja un perfil de similitud de la secuencia del genoma, donde cuanto mayor es la altura del perfil mayor es la conservación en esa región. 

A continuación se expondrán los cinco alineamientos realizados en función de los contigs obtenidos con las k mer indicadas en la primera parte, por orden desde k= 27 hasta k=37: 











De todos los alineamientos realizados podemos observar como claramente el que más homología comparte con el genoma de referencia es el alineamiento k = 27, en contraposición con lo que auguraba el N50 de los respectivos ensamblados realizados con velvet. Esto nos demuestra cómo dicho parámetro debe ser secundario a la hora de establecer el alineamiento más óptimo pues, como en este caso, se puede tratar de un alineamiento "ficticio" en el que los distintos segmentos se han ensamblado erróneamente. 




jueves, 4 de diciembre de 2014

Control de calidad de secuenciación con SOLiD (II): tras el cribado

En este caso llevamos a cabo tres cribados en el control de la secuenciación y un filtrado, para la que utilizamos las herramientas de trimming y filtering de FastX-Toolkit, respectivamente: 
  1. Selección de secuencias con una calidad igual o superior a Q= 20.
  2. Selección de secuencias con una calidad igual o superior a Q= 28.
  3. Selección de secuencias con una calidad igual o superior a Q= 28 pero eliminando las lecturas de menos de 47 bases. 
  4. Filtrado de lecturas que tengan menos del 90% de bases con una calidad superior a Q= 20. 
A continuación se muestra la evolución en la aceptabilidad en la relación de módulos proporcionada por FastQC y se comentarán los aspectos más interesantes. 




1.  Selección de secuencias con una calidad igual o superior a Q = 20

En la primera pestaña de este análisis comprobamos que se han tenido que eliminar 9.233 para conseguir las condiciones de calidad establecidas. Las secuencias que se han mantenido presentan distintas longitudes (1-50) como veremos más adelante. 

El módulo Per base sequence content observamos notables diferencias con respecto al respectivo análisis en la secuencia original, de forma que al eliminar las secuencias "erróneas" se ha conseguido disminuir la diferencia en el contenido de A y T o G y C (ahora las diferencias son superiores al 10% pero inferiores al 20%). 

Otro aspecto que se ha visto modificado significativamente es el contenido en GC de la secuencia, que se ve claramente disminuido, alejándose más de lo que marca la secuencia de referencia. Una posible explicación puede ser a la aparición en este análisis de secuencias de distintos tamaños lo que haga que no coincida el contenido GC de estas nuevas lecturas con el de referencia, en las mismas posiciones. Cabe destacar además que el porcentaje del contenido en GC con respecto al total de secuencias no se ve alterado con respecto al análisis original (en ambos casos es de 55%). 




Por último, merece la pena destacar el módulo Sequence length distribution, en cuyo gráfico podemos observar (como ya comentamos anteriormente) la distribución diferencial de la longitud de las lecturas entre la secuencia original (izquierda) y tras el cribado (derecha):




2.  Selección de secuencias con una calidad igual o superior a Q = 28

En este análisis se han visto significativamente modificados, con respecto al cribado anterior, los parámetros: per sequence quality scores, overepresented sequences  y Kmer content

En cuando a los valores de calidad de secuencia, éstos se ven muy superados con respecto tanto al análisis anterior como a la secuencia original. Con estas nuevas condiciones de Q, se consigue que el valor de calidad media más frecuente sea superior a 27.



Curiosamente, las secuencias sobrerepresentadas se ven aumentadas. Una posible explicación es que la eliminación de las secuencias que no alcanzaban una Q= 28 haya dado lugar a una modificación en la relación secuencias sobrerepresentadas/secuencias totales de tal forma que se haya alcanzado el límite para el que el programa lanza el aviso (warning) en este parámetro. 

Finalmente se produce un importante aumento de las secuencias Kmer, lo que se corresponde también con el aumento del porcentaje de secuencias sobrerepresentadas y que podrían también deberse a un aumento en la relación de posible ADN contaminante o de preferencia en la PCR frente al conjunto de secuencias totales. Es decir, que secuencias ajenas a nuestro ADN de interés presentaran la suficiente calidad en la secuenciación para no ser eliminadas del procesamiento, por lo que su representación respecto al total de lecturas se haya visto aumentada. 


3.  Selección de secuencias con una calidad igual o superior a Q = 28 y de longitud superior a 47 bases 

En este cribado cabe mencionar la notable disminución en el total de secuencias (ahora un total de 44.119) que ha obligado las nuevas condiciones de cribado establecidas. 
Con respecto al análisis anterior, los apartados que se han visto modificados -ambos favorablemente- ha sido per sequence GC content y overepresented sequences, por lo que podemos suponer que se debe a la eliminación de secuencias de longitud inferior a 47 bases, de ADN contaminante o preferentes para la PCR, que provocaban las alteraciones comentadas.




4.  Filtrado de lecturas que tengan menos del 90% de bases con una calidad superior a Q= 20. 

Podemos comprobar como este análisis es el que mejores parámetros (más acercados a una correcta secuenciación) proporciona (menor número de módulos marcados como warning o failure). Es especialmente llamativo el gráfico de contenido en GC, que se asemeja increíblemente con el propio de la secuencia de referencia: 




Sin embargo, es necesario remarcar que el total de secuencias procesadas ha disminuido hasta 25.686 (casi una quinta parte del total de lecturas en la secuencia original), debido a las estrictas condiciones de calidad que hemos establecido. 

Esto nos lleva a una conclusión general en cuanto a los controles de calidad de la secuenciación: a la hora de realizar un control de calidad de secuenciación tenemos que llegar a un compromiso entre las condiciones de calidad establecidas y el número de lecturas a ser procesadas, puesto que una notable disminución del total de secuencias analizadas conducirá a un control de calidad poco significativo o representativo de la secuenciación problema origina. 

miércoles, 3 de diciembre de 2014

Control de calidad de secuenciación con SOLiD

Como ya hicimos anteriormente para Illumina, comenzaremos con la descripción de los parámetros que proporciona FastQC a partir del análisis de una secuenciación SOLiD (a la que podéis acceder clickando en este enlace). El análisis de la secuencia original (previa a la aplicación de los cribados) nos dejó la siguiente relación de parámetros.




1.  Basic Statistics

De este apartado, los aspectos que nos interesan destacar son el tipo de archivo y la codificación (al igual que con la secuencia de Illumina, es una archivo de base calls y de código Illumina 1.5), el total de secuencias y su longitud (125.000 secuencias de 50 bases) y el contenido en GC (55%). 

2.  Per base sequence quality

Este módulo viene marcado como un failure, lógico ya que si atendemos al gráfico adjunto, una gran cantidad de lecturas presentan niveles de calidad realmente bajos (en contadas ocasiones superan el umbral de Q= 20). 




3.  Per sequence quality scores

Podemos observar como, a diferencia de lo que encontramos en el análisis inicial de Illumina, en este caso existe un subconjunto de alrededor de 4.500 lecturas que presentan bajos niveles de calidad (valor de 5 en una escala de 1-33).

En nuestro caso, el análisis está marcado como warning, debido a que, como podemos observar en el gráfico, el valor de calidad media más frecuente se encuentra por debajo de 27.




4.  Per base sequence content

Este módulo viene acompañado del símbolo de failure, lo que como ya hemos visto en post anteriores, indica que las diferencias en contenido entre A y T o entre G y C son superiores al 20%. Los principales motivos suelen ser secuencias sobrerepresentadas (adaptadores o secuencias de ARN), fragmentación y/o composición de la librería sesgada, etc. 




5. Per sequence GC content

Podemos comprobar como el contenido en GC de nuestra secuenciación se corresponde casi perfectamente con la distribución de referencia. 




6. Per base N content

En este caso, el análisis viene marcado como failure, lo que se debe a que en alguna posición el contenido de Ns proporcionadas por el método de secuenciación es superior al 10%. Podemos comprobar, observando el gráfico, como únicamente se cumple para la posición 48 de las lecturas, por lo que podemos atribuirlo a un error del método de secuenciación (error físico).




7. Kmer content

Este módulo viene acompañado del símbolo warning. Cabe destacar en este caso cómo la mayor parte de secuencias kmer se localizan al comienzo de las lecturas, lo que se debe probablemente -como ya se explicó en pos anteriores- al empleo de cebadores aleatorios. 




El resto de parámetros (distribución de la longitud de las secuencias, nivel de duplicaciones, secuencias sobrerepresentadas y contenido de adaptadores) se corresponde con una correcta secuenciación por lo que no se incidirá sobre ellos en este post. 

martes, 2 de diciembre de 2014

Control de calidad de secuenciación con Illumina (II): tras el cribado

Un vez hemos entendido y descrito los diferentes parámetros que nos proporciona FastQC en  relación a una secuenciación problema, podemos utilizar FastX-Toolkit que, como avanzamos en el anterior post, nos permitirá procesar el archivo de secuenciación antes de lanzar un FastQC. En este caso nos centraremos en la herramienta de trimming. En total hemos realizado cuatro cribados, a saber: 
  1. Selección de secuencias con una calidad igual o superior a Q= 20. 
  2. Selección de secuencias con una calidad igual o superior a Q= 28.
  3. Selección de secuencias con una calidad igual o superior a Q= 28 pero eliminando las lecturas de menos de 30 bases. 
  4. Selección de secuencias con una calidad igual o superior a Q= 28 pero eliminando las lecturas de menos de 35 bases. 
A continuación, se muestra un esquema con la evolución en la "aceptabilidad" de los distintos análisis en función del cribado realizado, y se comentará para cada uno de ellos los aspectos más significativos. 





1.  Selección de secuencias con una calidad igual o superior a Q = 20

Tal como mencionamos en el anterior post, se produce una progresiva caída en la calidad de la secuenciación a medida que se avanza en las posiciones de las lecturas. Por ello, con este cribado se pretende eliminar aquellas lecturas que presentan una calidad menor de Q= 20. 

Así, si atendemos al apartado basic statistics comprobaremos que el total de secuencias procesadas se ha reducido de las 25.000 iniciales a 24.890, por lo que se han eliminado un total de 110 secuencias que no cumplían con los requisitos establecidos de calidad. Podemos advertir este aumento de la calidad global (superior a Q= 20 en todas las posiciones) en el apartado Per base sequency quality:




También se ha visto modificado el módulo Sequence length distribution que aparece ahora con el símbolo warning, debido a que no todas las secuencias son de la misma longitud. Esto se debe precisamente a lo que ya comentamos en el post anterior: el programa ha acortado la longitud de las secuencias con baja calidad, eliminando las últimas posiciones y ha conservado aquellas que tras el procesamiento superaban el valor mínimo de Q requerido. 




2.  Selección de secuencias con una calidad igual o superior a Q = 28.

Tras este procesamiento (eliminación de secuencias con una calidad inferior a Q= 20), se registraron un total de 24.865 (se eliminaron 135 lecturas). En cuanto al resto de parámetros no se producen cambios significativos respecto al primer cribado. 


3.  Selección de secuencias con una calidad igual o superior a Q = 28 y una longitud igual o superior a 30 pb. 

Estableciendo estas condiciones sí encontramos algunas diferencias importantes con respecto al análisis de la secuencia original y a los dos cribados anteriores, en concreto, un aumento en la aceptabilidad de los módulos contenido en GC  y contenido de Kmer.

En cuanto al contenido en GC observamos que las diferencias entre nuestra secuenciación y la de referencia del organismos están menos marcadas que en los anteriores análisis. 




Para el caso del contenido de Kmer, el símbolo de warning nos informa de que ha tenido lugar un aumento del p-value del test binomial respecto a los anteriores análisis, pero que éste es aún menor del 0.01.

Una de las causas principales de la aparición de Kmer al inicio de la biblioteca se debe al empleo de primers aleatorios, lo que deriva de un muestreo previo incompleto de los posibles cebadores aleatorios. 




4.  Selección de secuencias con una calidad igual o superior a Q = 28 y una longitud igual o superior a 35 pb. 

Por último, tras el procesamiento realizado bajo estas condiciones se produjo una pérdida de la mejora obtenida para los parámetros contenido en GC  y contenido de Kmer que se obtuvo en el análisis anterior, donde se permitían secuencias de una longitud a partir de 30 pb.