Taller Desarrollo de flujos de trabajo en Galaxy Ensamblaje y anotación de Genomas Dr. rer. nat. Diego Mauricio Riaño-Pachón Laboratório Nacional de Ciencia e Tecnologia do Bioetanol Centro Nacional de Pesquisa em Energia e Materiais Campinas, São Paulo, Brasil diego.riano@bioetanol.org.br http://bce.bioetanol.cnpem.br This work is licensed under the Creative Commons Attribution-NonCommercial 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-nc/4.0/. Universidad de los Andes Bogotá D.C., Colombia Abril 9 de 2014 Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 1
Tabla de Contenido Que es Galaxy?... 3 Trazabilidad... 3 Flujos de trabajo... 3 Usando Galaxy... 3 Servidores públicos... 3 UniAndes... 4 Descripción general del portal Galaxy... 4 Obteniendo datos de secuenciamiento de nueva generación... 4 Verificación de calidad y limpieza de las lecturas... 6 Ensamblaje de novo de genomas... 9 Predicción de genes ab initio... 13 Creando Flujos de Trabajo en Galaxy... 14 Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 2
Que es Galaxy? Galaxy es una colección de herramientas bioinformáticas destinadas a: conversión y manipulación de datos moleculares análisis estadísticos análisis de datos de secuenciación de nueva generación análisis de datos de proteómica y lo que se pueda imaginar y desee programar. Galaxy provee una interfaz web a herramientas que normalmente se usan en la temida línea de comandos y está principalmente dirigida al usuario de laboratorio, con poco a ninguna experiencia en la línea de comandos. Además de la clara ventaja que representa tener una interfaz gráfica para interactuar con las herramientas de bioinformática, Galaxy se caracteriza por facilitar la trazabilidad de los datos y procedimientos, y la elaboración de flujos de trabajo. Trazabilidad Se entiende trazabilidad como el conjunto de aquellos procedimientos preestablecidos y autosuficientes que permiten conocer el histórico, la ubicación y la trayectoria de un producto o lote de productos a lo largo de la cadena de suministros en un momento dado, a través de unas herramientas determinadas. Comité de Seguridad Alimentaria de AECOC http://es.wikipedia.org/wiki/trazabilidad Cuando analizamos datos moleculares, trazabilidad se refiere a la capacidad de registrar la cadena completa de procedimientos aplicados a los datos, y las transformaciones de los mismos, almacenando los parámetros seleccionados en cada uno de esos procedimientos. Es claro que la trazabilidad es de máxima importancia con el fin de reproducir los resultados científicos. Galaxy mantiene un histórico de todas las acciones realizados por el usuario, junto con las relaciones de dependencia entre esas acciones. Este es el nivel mas básico de trazabilidad ofrecido por Galaxy. Flujos de trabajo Un flujo de trabajo es un conjunto de herramientas y procedimientos sobre conjuntos de datos que se ejecutan en secuencia como una operación por lotes. Los flujos de trabajo se pueden usar una y otra vez, aumentando la reproducibilidad de los análisis, ya que se aplican los mismos métodos para todos sus datos. Usando Galaxy Servidores públicos El proyecto Galaxy tiene varios servidores públicos, la lista se puede consultar en: Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 3
https://wiki.galaxyproject.org/publicgalaxyservers También es posible desplegar instancias de Galaxy en el proveedor de servicios de nube Amazon, en donde se paga por tiempo de uso y espacio usado. Para mas detalles consultar: https://wiki.galaxyproject.org/cloudman UniAndes El Departamento de Ciencias Biológicas de la Universidad de los Andes tiene instalado un servidor experimental de Galaxy ubicado en http://biosge.uniandes.edu.co:8080/, que estará disponible solamente para el desarrollo de este taller. Descripción general del portal Galaxy Figura 1. Estructura de navegación en Galaxy Obteniendo datos de secuenciamiento de nueva generación Para este taller emplearemos datos de la secuenciación de un plásmido, datos que han sido generosamente compartidos por el Prof. Dr. Alejando Reyes. Los datos se encuentran en http://bce.uniandes.edu.co/exchange/plasmid El primer paso es la carga de datos en el ambiente Galaxy. La Figura 2 muestra la ventana de carga de datos. La caja de texto con el título URL/Text sirve para pegar una o varias URLs, que es lo que vamos a hacer en este caso. Por favor copie los enlaces para los archivos disponibles en http://bce.uniandes.edu.co/exchange/plasmid, péguelos, uno debajo de otro, en la caja URL/Text. Luego haga click en el botón Execute. Ahora en su historia, panel de la derecha, debe aparece la lista de archivos cargados en Galaxy, similar a como se ve en la Figura 3. La historia es una de las características mas importantes en Galaxy. Mantiene un registro completo de los procedimientos aplicados en el análisis de los datos, así como una representación de todas sus transformaciones. Los usuarios pueden compartir historias, y crear flujos de trabajo a partir de estas. Los archivos con la extensión fq representan lecturas cortas de secuenciamiento Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 4
generadas por un instrumento Illumina. Haga click en el botón con el ojo para el archivo ToAssemble_final3.fq. Esto mostrará el contenido del archivo, o abrirá una ventana para descargarlo dependiendo del tipo de archivo (Figura 4). Figura 2. Carga de archivos en Galaxy Figura 3. Historia, carga de archivos en Galaxy El formato FastQ se ha convertido en al estándar de facto en la mayoría de tecnologías de secuenciación y muchos programas hoy en día entienden ese formato sin mayores problemas. La información de las lecturas de secuenciación está almacenada de acuerdo a la siguiente estructura (ver Figura 4) 12 : Una línea con la identificación de la lectura, está línea debe empezar con el símbolo @ Después de la identificación viene la secuencia de la lectura Un línea espaciadora con el símbolo + Y por último una línea con los datos de calidad para cada una de las bases determinadas durante el proceso de secuenciación. 1 http://nar.oxfordjournals.org/content/38/6/1767.long 2 http://en.wikipedia.org/wiki/fastq_format Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 5
Figura 4. Lecturas de secuenciación en formato FastQ Existen varios dialectos del formato FastQ, que difieren en el rango de símbolos usados para representar la calidad de las bases. Hoy en día la mayoría de equipos modernos de secuenciación usan un dialecto al que comúnmente se le denomina FastQ Sanger o Phred+33. Las secuencias que hemos cargado en el sistema fueron generadas hace ya un tiempo y están en un dialecto que se conoce como Phred+64Phred+33, para esto usaremos el programa Fastq_groomer (Figura 5). Hay que correr el fastq_grommer para cada uno de los archivos en formato FastQ que cargó anteriormente. Asegúrese que la opción Input FASTQ quality scores types aparece como Illumina 1.3-1.7. Figura 5. FastQ Groomer Recuerde, puede enviar un trabajo enseguida del otro, i.e., no tiene que esperar a que uno termine para iniciar el siguiente. Verificación de calidad y limpieza de las lecturas Ya con las secuencias en el formato adecuado (Phred+33), lo primero que tenemos que hacer es evaluar su calidad, esto a su vez informará el proceso de limpieza que se debe lleva a cabo. El análisis de calidad lo hacemos con el programa FastQC que genera un reporte con gráficas muy amigable y fácil de entender. La Figura 6 muestra el cuadro de diálogo para invocar al programa FastQC, hay que ejecutar este programa para cada uno de los archivos de lecturas en formato Phred+33. El resultado de FastQC es una serie de gráficas. La Figura 7 muestra la distribución de la calidad a lo largo de las lecturas. Para cada posición hay un box-plot, la caja amarilla representa los datos que están entre el 1 y 3 cuartil (50% de los datos), la línea roja representa la mediana. El eje X representa la posición en la lectura de secuenciación, y Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 6
el eje y el valor Q (calidad) que va de 0 a 40, entre mayor el número, mayor la confianza en esa base. Figura 6. Cuadro de dialgo para ejecutar el programa FastQC En la Figura 7 podemos observar como la calidad de las bases disminuye hacia el extremo 3 de las lecturas. Esto es típico de todas las tecnologías de secuenciación de nueva generación, y es mas notable para lecturas largas. De acuerdo a esta gráfica debemos hacer una operación de quality trimming, para eliminar las bases de baja calidad del extremo 3. Figura 7. FastQC - Distribución de calidad por posición en un conjunto de datos. Antes de la limpieza. La Figura 8 muestra la proporción de cada nucleótido para cada posición en todas las lecturas de secuenciación. Lo que se espera es que la curva para cada nucleótido sea estable a lo largo de la lectura, i.e., que la probabilidad de encontrar cada uno de los nucleótidos sea constante a lo largo de la lectura. Esto no se cumple principalmente para los primeros 10 nucleótidos (extremo 5 ), en este caso esto se debe a que las secuencias están incluyendo algunos barcodes. Tenemos que eliminar esos primeros 10 nt de todas las lecturas. Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 7
Figura 8. FastQC - Distribución de la proporción de nucleótidos por posición. Antes de la limpieza. Los resultados de FastQ son importantes por que nos permiten tomar decisiones sobre el siguiente paso, que es la limpieza de las secuencias. En este ejercicio vamos a limpiar las secuencias con Trimmomatic 3, un paquete relativamente nuevo, pero que a diferencia de muchos otros es capaz de limpiar lecturas que son pareadas, manteniendo ese pareamiento, que es muy importante para, por ejemplo, programas que hacen mapeamiento contra genomas de referencia. La Figura 9 muestra el cuadro de dialogo de Trimmomatic, por favor asegúrese que los siguiente parámetros aparecen de la forma indicada: Paired end reads?: Checked Direction 1 fastq reads to trim: FastQ Groomer on data 1 Direction 2 fastq reads to trim: FastQ Groomer on data 2 Quality encoding: phred33 Clip Illumina adapters?: Checked Fasta of adapters to clip: adapters.fasta Perform Sliding Window trimming?: Checked Average quality required: 20 Trim leading bases?: Not Checked Trim trailing bases?: Checked Minimum quality: 20 Crop reads?: Not Checked Crop starts?: Checked Number of bases: 10 Minimum length read: 50 Después de correr Trimmomatic, no se preocupe se puede tardar un poco, ejecute nuevamente el FastQC sobre los archivos resultantes de la limpieza: Los datasets Trimmomatic on data 5, data 3, and data 4: Dir1 trimmed pairs y Trimmomatic on data 5, 3 http://www.usadellab.org/cms/?page=trimmomatic Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 8
data 3, and data 4: Dir2 trimmed pairs. Compare los resultados de FastQC antes y después de la limpieza. Figura 9. Cuadro de dialogo de Trimmomatic - Limpieza de datos Ensamblaje de novo de genomas Con las secuencias limpias podemos continuar con el ensamblaje del plásmido, para esto usaremos el ensamblador Velvet 4. El ensamblaje con Velvet consiste en ejecutar dos programas velveth y velvetg. Velveth prepara los datos para el ensamblaje, y luego velvetg lleva a cabo el ensamblaje siguiendo una estrategia basada en grafos de de Bruijn. En esta estrategia uno de los parámetros mas importante es la longitud de los k-meros que se van a emplear para construir el grafo. La selección de ese valor es empírica, i.e., se evalúan varios valores de k-mer y se escoge el mejor de acuerdo a aluna métrica de interés. Una opción es usar el programa Kmer-Genie 5. En este taller vamos a dividir el trabajo en 4 grupos, cada grupo va a hacer un ensamblaje con tres 4 http://www.ebi.ac.uk/~zerbino/velvet/ 5 http://kmergenie.bx.psu.edu/ Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 9
valores de k-meros diferente y luego compartiremos los resultados. Los valores de k- mero que vamos a usar con 15, 25, 35, 45, 55, 65, 75. Además todos deben correr el trabajo con k=85, así que cada persona debe tener tres ensamblajes. El primer programa que vamos a correr es velveth, cuyo parámetro mas importante es el valor de k. Asegúrese que las opciones que selecciona aparezcan como se muestra en Figura 10. Figura 10. Opciones para velveth El siguiente paso es correr el programa velvetg que es el encargado de realizar el ensamblaje propiamente dicho, este programa toma como entrada el resultado producido por velveth, y arroja como resultado los contigs obtenidos a partir de las lecturas pareadas. Por favor asegúrese que los siguientes parámetros aparecen de la forma indicada: Minimum contig length: 500 Scaffolding: Not Checked Una vez terminado de correr el velvetg revise la salida llamada Contig Stats y compare sus resultados con sus compañeros. Descargue el archivo de Contigs a su computador, lo necesitará mas adelante para visualizar los datos de mapeamiento. Un paso importante en el ensamblaje de genomas es evaluar el cubrimiento observado del genoma. Antes de continuar, por favor responda, cual es el cubrimiento esperado a Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 10
partir de los datos generados? De que depende la estimación del cubrimiento esperado y observado? Para evaluar el cubrimiento vamos hacer un mapeamiento de las lecturas limpias contra el contig de nuestro plásmido. Para esto usaremos la herramienta Bowtie2. Antes de poder usar el Bowtie2, debemos pasar las secuencias limpias (salida de Trimmomatic) por el FastQ Grommer, asegúrese de seleccionar la opción Input FASTQ quality score type: Sanger & Illumina 1.8+ Figura 11. Ejecutar FastQ Grommer sobre los archivos de lecturas limpios (después de ejecutar Trimmomatic) Ahora, podemos correr Bowtie2. Vamos a usar datos pareados, ajuste apropiadamente el parámetro Is this library mate-paired?:, y selecciones los dos archivos FastQ que obtuvo en el paso anterior. Para el parámetro Will you select a reference genome from your history or use a built-in index?: seleccione Use one from the history ; y seleccione como genoma de referencia el archivo de contigs que produjo velvetg usando un k=85, Figura 12. El mapeamiento por Bowtie2, genera 2 archivos, con las extensiones BAM y BAI respectivamente por favor descárguelos a su computador. Vamos a visualizar ese resultado en el Integrative Genomics Viewer 6 un programa desarrollado por el Broad Institute. Preste atención al instructor sobre como iniciar el programa en su computador. Con el programa funcionando busque el menú Genomes y seleccione la opción Create.genome File.... En el cuadro de diálogo que se abre llene los campo de la siguiente forma: Unique identifier: PlasmidAssemblyUniAndes Descriptive name: My first plasmid assembly 6 http://www.broadinstitute.org/igv/home Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 11
FASTA File: -> Haga click en el botón Brose y busque el archivo de Contigs generado por velvetg. Figura 12. Cuadro de diálogo con la configuración de Botwie2. En este punto tenemos una representación del genoma del plásmido en el programa IGV. El genoma, en muchos navegadores de genomas, se representa como una línea recta, como una regla. Sobre esa representación se pueden agregar diferentes tracks, con diferentes tipos de información; pro ejemplo, gene anotados, cubrimiento de secuenciación, etc. En este ejercicio vamos a visualizar el mapeamiento de las lecturas al contig ensamblado. Para eso ubique el menú File y seleccione la opción Load From File, en el cuadro de diálogo que se muestra navegue en el árbol de directorios hasta encontrar el archivo BAM que descargó anteriormente (debe estar en su carpeta de descargas; Figura 13). Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 12
Figura 13. Integrative Genomics Viewer Predicción de genes ab initio Ya tenemos el archivo con el contig montado (archivo Contigs, resultado del velvetg, k=85), ahora podemos identificar los genes codificados por ese pequeño genoma. Emplearemos el programa Glimmer 7 para hacer la búsqueda de genes. Busque el programa glimmer3 en Galaxy, vamos a usar la versión que aparece como Predict ORFs in prokaryotic genomes (not knowlegde-based). Asegúrese de especificar las opciones como aparece en la Figura 14. Figura 14. Configuración del predictor de genes El resultado es una lista de los genes predichos en el plásmido, junto con sus coordenadas y las secuencia de los transcritos. Glimmer 3 genera un archivo en formato fasta con la secuencia de los transcritos predichos, buque el programa transeq para realizar la traducción de esos transcritos. Selección la opción que traduce la secuencia de AND en los 6 marcos de lectura, esto generará un nuevo archivo en formato fasta con las secuencias de las 7 http://ccb.jhu.edu/software/glimmer/index.shtml Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 13
proteínas que usará en la próxima sesión sobe comparación y anotación de secuencias basado en similaridad. Creando Flujos de Trabajo en Galaxy Hasta este momento hemos realizado una serie de procedimientos que tomaban un par de archivos con lecturas cortas de secuenciación y terminan con la secuencia de un plásmido y la predicción de los genes codificados por este. Son varios pasos y hay varios clicks involucrados. Ahora imagínese que usted tiene los datos de secuenciación para 100 plásmidos diferentes, y quiere ejecutar la misma serie de pasos para cada uno de esos conjuntos de datos, aquí es donde entran los flujos de trabajo que nos permiten automatizar el proceso. Para este ejercicio vamos a explotar la historia que acabamos de crear y la convertiremos en un flujo de trabajo. En el panel derecho, donde se encuentra su historia, en la parte superior encuentra un botón de una rueda dentada, haga click en ese botón y seleccione la opción Extract Workflow (Figura 15) Figura 15. Convirtiendo la historia en un flujo de trabajo En la página de dialogo que se inicia dele un nombre a su flujo de trabajo y asegúrese de dar click en Check all, con lo que seleccionara todos los pasos de la historia que serán importados en el flujo de trabajo. Luego en el menú superior de Galaxy vaya a Workflow, allí deberá encontrar su nuevo flujo de trabajo (Figura 16). Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 14
Figura 16. Lista de flujos de trabajo en Galaxy Haga click en el triangulo que aparece a la derecha del nombre de su flujo de trabjao y seleccione Edit, esto iniciará el Editor de Fluos de Trabajo en Galaxy. Cada cuadro en el editor representa un procedimiento. Al seleccionar uno de ellos, esté quedará rodeado por una línea azul y en el panel izquierdo aparecen las opciones de configuración de esa herramienta (Figura 17). Figura 17. Editor de Flujos de Trabajo En este punto hay tres entradas en el flujo de trabajo, y todas se llaman Input dataset, esto puede crear problemas, así que vamos a cambiarles el nombre. Las entradas de archivos de lecturas se deben llamar Lecturas1 y Lecturas2, y la entrada con los adaptadores se debe llamar Adaptadores. Ubique la salida de velvetg, el archivo Contigs y la salida de Glimmer, el archivo gene_output(fasta), haga click en el asterisco que esta a la derecha de sus nombres como se muestra en la Figura 18. Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 15
Figura 18. Escondiendo salidas no deseadas Asegúrese de guardar su flujo de trabajo y ejecútelo (Figura 19). Figura 19. Menu para salvar y ejecutar el flujo de trabajo. Al ejecutar el flujo de trabajo verifique las opciones aparecen como se muestra en la Figura 20. Figura 20. Ejecutando el flujo de trabajo. Con esto terminamos este taller introductorio, usted debe contrar con las habilidades básicas para manejar las historias de Galaxy, y convertirlas en flujos de trabajo automatizados. Espero que pueda aplicar estas herramientas en su investigación y compartir lo aprendido con sus colegas. Diego M. Riaño-Pachón, Abril 2014, Bogotá D.C. 16