UNIVERSIDAD DE LAS PALMAS DE GRAN CANARIA Máster Oficial en Sistemas Inteligentes y Aplicaciones Numéricas en Ingenierı́a Trabajo Final de Máster Sistema de evaluación de variantes genéticas Pascual Lorente Arencibia Tutores José Juan Hernández Cabrera Antonio Tugores Cester 11 de enero de 2016 Agradecimentos Quiero agradecer a los tutores Antonio Tugores Cester y José Juan Hernández Cabrera su ayuda en todo el proceso de este Trabajo. Gracias a los profesores del máster. Me han enseñado algo más que el contenido de los proyectos docentes. Gracias a los compañeros de la UICHUMI y del Máster SIANI. El trabajo siempre se hacer mejor en compañı́a. Gracias a mi familia por darme un respiro lejos del trabajo. Gracias a Naira, por aguantarme y apoyarme incondicionalmente. Resumen Las variantes genéticas individuales pueden determinar la presencia de enfermedades genéticas de etiologı́a desconocida y su conocimiento puede ayudar a hacer un diagnóstico precoz e incluso mejorar el tratamiento. La secuenciación masiva de exoma (NGS), permite conocer un gran número de variantes por paciente como aproximación sin hipótesis. Para establecer una relación entre una variante y una patologı́a hay que evaluar las caracterı́sticas de cada variante y las interacciones que hay entre los genes relacionados con ambas. En este trabajo presentamos un programa informático que evalúa cada variante y otorga una puntuación a cada gen afectado según sus interacciones y su distancia al fenotipo seleccionado para facilitar la tarea de selección de variantes candidatas. Índice general 1. Introducción 1 1.1. Motivación . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1 1.2. Objetivos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.3. Estructura del ADN . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.4. Variantes genéticas . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.5. Tecnologı́as de secuenciación . . . . . . . . . . . . . . . . . . . . 5 1.6. Funciones de los genes . . . . . . . . . . . . . . . . . . . . . . . . 7 1.7. Software actual . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.7.1. Phenotype Based Gene Analyzer . . . . . . . . . . . . . . 8 1.7.2. Search Tool for the Retrieval of Interacting Genes/Proteins 9 1.7.3. Sorting Intolerant From Tolerant . . . . . . . . . . . . . . 10 1.7.4. Polymorphism Phenotyping . . . . . . . . . . . . . . . . . 10 1.7.5. Variant Effect Predictor . . . . . . . . . . . . . . . . . . . 11 2. Estado del arte 12 2.1. Big Data . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . VI 12 Pascual Lorente Arencibia ÍNDICE GENERAL 2.2. Business Intelligence . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.3. Inteligencia Artificial . . . . . . . . . . . . . . . . . . . . . . . . . 15 2.4. Interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . 16 3. Desarrollo 19 3.1. Justificación del proyecto . . . . . . . . . . . . . . . . . . . . . . 19 3.2. Recursos . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 3.3. Data warehouse . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3.3.1. HUGO Gene Nomenclature Comitee . . . . . . . . . . . . 21 3.3.2. Online Mendelian Inheritance in Man . . . . . . . . . . . 22 3.3.3. Human Protein Reference Database . . . . . . . . . . . . 22 3.3.4. Biological General Repository for Interaction Datasets . . 23 3.3.5. Mentha . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 3.3.6. The Human Protein Atlas . . . . . . . . . . . . . . . . . . 23 3.4. Evaluación de variantes . . . . . . . . . . . . . . . . . . . . . . . 23 3.5. Entrada de datos . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 3.6. Interfaz de usuario . . . . . . . . . . . . . . . . . . . . . . . . . . 27 3.6.1. Pantalla de fenotipos . . . . . . . . . . . . . . . . . . . . . 27 3.6.2. Pantalla de genes . . . . . . . . . . . . . . . . . . . . . . . 27 4. Resultados 29 5. Conclusiones 32 5.1. Trabajo futuro . . . . . . . . . . . . . . . . . . . . . . . . . . . . SIANI — ULPGC 33 VII Pascual Lorente Arencibia ÍNDICE GENERAL A. Obtención de variantes 34 B. Variant Call Format 37 C. Estructura de Poirot 39 D. Consecuencias 41 E. Interacciones 44 SIANI — ULPGC VIII Índice de figuras 1.1. Estructura quı́mica del ADN . . . . . . . . . . . . . . . . . . . . 3 1.2. Secuenciación usando el método de Sanger . . . . . . . . . . . . . 6 1.3. Diagrama de red de Phenolyzer . . . . . . . . . . . . . . . . . . . 9 1.4. Afinidad fı́sica de los aminoácidos . . . . . . . . . . . . . . . . . . 11 2.1. Estructura y tablas de un modelo relacional . . . . . . . . . . . . 13 2.2. Sistema experto para diagnóstico . . . . . . . . . . . . . . . . . . 17 3.1. Estructura del data warehouse . . . . . . . . . . . . . . . . . . . 22 3.2. Grafo de interacciones de Poirot . . . . . . . . . . . . . . . . . . 24 3.3. Pantalla de fenotipos . . . . . . . . . . . . . . . . . . . . . . . . . 28 3.4. Pantalla de genes . . . . . . . . . . . . . . . . . . . . . . . . . . . 28 4.1. Interacciones de los genes más implicados en la hipercolesterolemia 31 C.1. Diagrama de clases . . . . . . . . . . . . . . . . . . . . . . . . . . 40 D.1. Posición de cada variante según su consecuencia . . . . . . . . . . 41 IX Índice de tablas 1.1. Tabla de codones . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Códigos de los aminoácidos . . . . . . . . . . . . . . . . . . . . . 4 2.1. Base de datos en formato tabular . . . . . . . . . . . . . . . . . . 14 3.1. Registros por base de datos . . . . . . . . . . . . . . . . . . . . . 21 3.2. Valor de cada consecuencia . . . . . . . . . . . . . . . . . . . . . 25 3.3. Valor de cada interacción . . . . . . . . . . . . . . . . . . . . . . 26 4.1. Enfermedades de mayor valor . . . . . . . . . . . . . . . . . . . . 30 4.2. Genes implicados en la hipercolesterolemia familiar . . . . . . . . 30 B.1. Columnas del formato VCF. . . . . . . . . . . . . . . . . . . . . . 38 B.2. Ejemplo de fichero VCF. . . . . . . . . . . . . . . . . . . . . . . . 38 X Capı́tulo 1 Introducción 1.1. Motivación El ADN es uno de los descubrimientos más importantes del siglo 20[1]. Esta molécula es la encargada de determinar la estructura de los seres vivos y dirigir los procesos naturales que en ellos se realizan. De entre los múltiples usos que tiene conocer la secuencia genética de un ser humano, destacamos tres que están implicados en la medicina: 1. Diagnosticar enfermedades antes de que se manifiesten sus sı́ntomas, pudiendo retrasar sus aparición y reducir sus efectos. 2. Mejorar y personalizar los tratamientos: conocer y tratar el origen de una enfermedad es mejor que tratar los sı́ntomas. 3. Conocer la respuesta de una persona ante ciertos medicamentos, ya que la forma en que una persona tolera o rechaza un medicamento está determinada por su configuración genética. Este Trabajo Final de Máster es parte de un proyecto mayor que se desarrolla en la Unidad de Investigación del Complejo Hospitalario Universitario Insular Materno Infantil (UICHUIMI). Este proyecto quiere mejorar el diagnóstico de enfermedades genéticas utilizando la secuenciación de exoma de nueva generación para lograr determinar la relación entre variantes y patologı́as. Hasta ahora, las herramientas desarrolladas en la UICHUIMI permiten alinear las secuencias 1 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN de ADN, localizar las variantes genéticas, etiquetarlas y filtrarlas en base a la información conocida. 1.2. Objetivos La UICHUIMI plantea la creación de un software que analice un listado de variantes genéticas y determine cuáles son más relevantes para una determinada patologı́a o fenotipo en función de las interacciones entre los genes asociados a las variantes. Los objetivos principales del software son: 1. Mostrar un ranking de genes puntuados de 0 a 1 según su relevancia con una o varias patologı́as y expresiones seleccionadas. 2. Mostrar los genes relacionados y las interacciones entre un gen con al menos una variante y la patologı́a o expresión escogidos. 1.3. Estructura del ADN El genoma humano es una cadena de doble hélice de más de 3 mil millones de nucleótidos, moléculas orgánicas unidas a través de un enlace de fosfodiéster. Cada nucleótido se diferencia de los demás por su base nitrogenada, que puede ser Adenina, Guanina, Citosina o Timina. Las dos hélices son complementarias y están unidas por las bases nitrogenadas: la Adenina se une a la Timina y la Guanina a la Citosina. Cada ser humano tiene dos cadenas de ADN, una heredada del padre y otra de la madre. Estas cadenas se dividen en 23 cromosomas cada una. 22 de estos cromosomas son idénticos en forma y longitud, pero no en contenido, mientras que el último es igual en las mujeres (XX) pero no en los hombres (XY). Los genes son las regiones del ADN que se traducen en proteı́nas. En total, se han descubierto entre 22.000 y 25.000 en el ADN humano, que representan un 2 % del total de su longitud. El conjunto de las regiones donde se localizan los genes es conocido como el exoma. SIANI — ULPGC 2 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN extremo 5' O_ NH2 O O O O extremo 3' OH HN O O_ O NH2 O O O HN O H2N O_ O O Estructura de soporte H2N O O NH O O_ O O O H2N O O O NH O NH2 O OH extremo 3' O_ O _O extremo 5' Figura 1.1: Estructura quı́mica del ADN. Imagen de Miguelsierra via Wikimedia Commons. Las proteı́nas son generadas en el interior de las células a través de un proceso conocido como sı́ntesis de proteı́nas[2]. Este proceso tiene dos fases: 1. Fase de activación: El gen es copiado en el núcleo de la célula. La copia la realiza el ARN polimerasa y va en un ARN mensajero. El ADN no se encuentra nunca fuera del núcleo. 2. Fase de traducción: El ARN mensajero llega al ribosoma, que traduce cada triplete de bases nitrogenadas –codón– en un aminoácido en base a la tabla 1.1, empezando por un codón de inicio y terminando en un codón de parada. Los aminoácidos forman una cadena tridimensional dando lugar a una proteı́na. Las proteı́nas cumplen diversas tareas en el organismo: estructuran y protegen el cuerpo –colágeno, anticuerpos–, regulan y catalizan sus procesos –insulina, enzimas– o transportan las sustancias de un extremo al otro –hemoglobina–. Todas estas caracterı́sticas son conocidas como el fenotipo. SIANI — ULPGC 3 Pascual Lorente Arencibia TTT TTC TTA TTG CTT CTC CTA CTG ATT ATC ATA ATG GTT GTC GTA GTG F F L L L L L L I I I M/start V V V V CAPÍTULO 1. INTRODUCCIÓN Codón aminoácido TCT S TAT TCC S TAC TCA S TAA TCG S TAG CCT P CAT CCC P CAC CCA P CAA CCG P CAG ACT T AAT ACC T AAC ACA T AAA ACG T AAG GCT A GAT GCC A GAC GCA A GAA GCG A GAG Y Y stop stop H H Q Q N N K K D D E W TGT TGC TGA TGG CGT CGC CGA CGG AGT AGC AGA AGG GGT GGC GGA GGG C C stop W R R R R S S N N G G G G Tabla 1.1: Tabla de codones. 64 codones codifican 20 aminoácidos y un codón de parada. La Metionina funciona también como codón de inicio. Los nombres de los aminoácidos pueden versen en la tabla 1.2. A E H L P S W start Alanina Ácido glutámico Histidina Leucina Prolina Serina Triptófano Codón de inicio C F I M Q T Y stop Cisteı́na Fenilalanina Isoleucina Metionina Glutamina Treonina Tirosina Codón de parada D G K N R V Ácido aspártico Glicina Lisina Asparagina Arginina Valina Tabla 1.2: Códigos de los aminoácidos 1.4. Variantes genéticas El 99,99 % del ADN es igual en todos los seres humanos. El 0.01 % restante es lo que hace que seamos diferentes. Estas diferencias son conocidas como variantes y pueden ocurrir en cualquier punto del genoma. Si una variante está SIANI — ULPGC 4 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN presente en un gen o en sus alrededores, puede producir cambios en la proteı́na generada. Cuando el cambio en la proteı́na tiene efectos negativos sobre el ser humano –una patologı́a– se etiqueta como mutación y si el efecto es positivo se denomina ventaja. Las variantes se clasifican según su tamaño –pequeñas si tienen menos de 1000 pares de bases y grandes si tienen más– y según su morfologı́a[3]. Dentro de las variantes pequeñas encontramos: Single Nucleotide Polymorphism (SNP) Una base es sustituida por otra, sin alterar el tamaño de la cadena. Como un codón es definido por tres bases, es posible que el nuevo codón siga codificando el mismo aminoácido –variante sinónima–, o que haya un cambio en la secuencia de una proteı́na –no sinónima–. Insertion/Deletion (Indel) Una o varias bases son insertadas o eliminadas de un punto concreto de la cadena. Dependiendo de si la InDel es múltiplo de 3, o de la posición en el gen en que se encuentra, puede modificar drásticamente la proteı́na resultante al alterar la pauta de lectura. Las variantes grandes pueden ser: Copy Number Variation (CNV) Una alteración en el número de veces que aparece un fragmento en el ADN. Puede no estar ninguna vez, o estar dos o más veces consecutivas. Translocation Un fragmento de un cromosoma se desplaza de posición, en el mismo o en otro cromosoma. Inversion Un fragmento de un cromosoma aparece en la misma posición, pero sus bases están en orden inverso. 1.5. Tecnologı́as de secuenciación Para encontrar las variantes del genoma de una persona, hay que secuenciar su material genético. La secuenciación es el proceso de lectura de la bases nitrogenadas de una cadena de ADN o ARN. Hoy en dı́a se utilizan dos estrategias: secuenciar poco con mucha calidad o secuenciar mucho con poca calidad. Sanger[4] En 1977, este bioquı́mico desarrolló un método que permitı́a secuenSIANI — ULPGC 5 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN ciar unos cientos de pares de bases (300–1000) en una posición determinada. Para ello, se sintetizan dos cadenas artificiales de ADN –cebadores– de unas 17-25 bases de longitud que coinciden con el inicio y el fin del fragmento que se desea secuenciar. Estos cebadores son necesarios para que una polimerasa de ADN copie las cadenas complementarias y termine, aleatoriamente, en posiciones A,C,T o G. Ello se consigue al introducir dideoxinucleótidos (ddATP, ddGTP, ddCTP, ddTTP) que no permiten elongar la cadena más allá del punto donde se incorporan. Los fragmentos resultantes se separan mediante electroféresis en acilamida, detectándose mediante un sistema radiactivo o fluorescente para cada ddNTP. El resultado es una imagen o gráfica donde es posible leer la secuencia. Figura 1.2: Secuenciación usando el método de Sanger. Imagen de Abizar via Wikimedia Commons. Este método es ideal para variantes conocidas y es el que se utiliza actualmente para el diagnóstico clı́nico de enfermedades genéticas. Next Generation Sequencing (NGS) No hace referencia a una sola tecnologı́a, sino a muchas que han surgido a raı́z de las mejoras en computación del siglo XXI[5]. El objetivo de la secuenciación de nueva generación es determinar la secuencia de la mayor parte del genoma o el exoma de un individuo. Para ello se fragmenta el ADN en cientos de miles de trozos, shotgun sequencing, que son asociados a una serie de adaptadores predefinidos. Estos SIANI — ULPGC 6 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN adaptadores capturan muy bien pequeños fragmentos de ADN de entre 40 y 200 pares de bases. Después, estos adaptadores, con los fragmentos de ADN, se escanean por fluorescencia. La máquina muestra como resultado decenas de millones de secuencias de entre 40 y 200 pares de bases, sin especificar su posición en el ADN. Posteriormente, un ordenador tendrá que alinear estas secuencias como si montara un puzzle. Si se conoce el genoma de la especie, entonces habrá una referencia con la que alinear. Si no se conoce, el ADN se reconstruirá comparando los fragmentos entre sı́ –secuenciación de novo. El alineamiento añade incertidumbres al exoma o genoma secuenciado, porque una cadena puede estar alineada con dos o más regiones del ADN, y porque se permite un cierto grado de libertad para que se alineen las secuencias que contienen variantes. Además, los fragmentos son demasiado pequeños como para detectar variantes grandes. El proceso computacional de alineamiento y búsqueda de variantes se detalla en el apéndice A. El NGS se está extendiendo cada vez más gracias al abaratamiento de los costes de secuenciación –un exoma humano cuesta alrededor de $1000– y al aumento de las prestaciones computacionales. Sin embargo, la secuenciación por Sanger sigue siendo necesaria para el diagnóstico de enfermedades genéticas conocidas y la confirmación de las variantes determinadas por NGS. La secuenciación masiva de exoma permite realizar estudios sin hipótesis previa en la zona cuyo significado biológico conocemos[6, 7]. Esta estrategia ha sido utilizada con éxito en algunas pruebas diagnóstico, siendo capaz de identificar variantes asociadas en, aproximadamente, el 25 % de los pacientes[8, 9, 10, 11]. 1.6. Funciones de los genes El catálogo del genoma está bastante completo, ya que existen varias estrategias para determinar si una región del ADN es un gen [12]. Una vez se localiza un gen es posible traducirlo en una cadena de aminoácidos usando la tabla de codones –tabla 1.1– y ası́ conocer la secuencia de la proteı́na. Para determinar cuál es la función de una proteı́na existen dos estrategias: la genética y la experimental. La genética consiste en introducir una mutación SIANI — ULPGC 7 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN en un organismo modelo y comprobar si revela un cambio en una función. La experimental es similar, pero se realizan en un ensayo in vitro. Muchas de estas técnicas han sido descubiertas y desarrolladas gracias al estudio de la Drosophila melanogaster –mosca de la fruta. Este animal posee 4 pares de cromosomas y muchos de sus genes son homólogos a los del ser humano. Además, tiene un ciclo de vida muy corto, de 15 a 21 dı́as, y se reproduce con mucha facilidad[13]. 1.7. Software actual Existen muchos programas que ayudan a establecer la relación entre variante y patologı́a o entre gen/proteı́na y función. Presentamos algunos de los más relevantes. 1.7.1. Phenotype Based Gene Analyzer Phenotype Based Gene Analyzer (Phenolyzer)[14] es una herramienta que localiza los genes relacionados con enfermedades o fenotipos basados en palabras claves. A Phenolyzer se le pasa un lista de términos de fenotipos y genera una lista de genes cada uno con un valor de la posibilidad de estar relacionado con alguno de los fenotipos. Su algoritmo es sencillo: a través de las palabras clave genera una lista de enfermedades. Después localiza los genes asociados a estas enfermedades y entonces comienza a buscar relaciones gen a gen para hacer crecer el árbol. Finalmente, integra toda la información y genera un valor por cada gen. En la figura 1.3 se puede ver la red de los genes con mayor relación con las enfermedades hypercholesterolemia y obesity. Phenolyzer utiliza las siguientes fuentes: Para enfermedades: Medic disease vocabulary[15] de Comparative Toxicogenomics Database, Disease Ontology[16] de Institute for Genome Sciences SIANI — ULPGC 8 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN Figura 1.3: Diagrama de red de Phenolyzer y Disease synonyms[17] de Online Mendelian Inheritance in Man. Para relaciones entre genes y enfermedades: Gene map[17] de Online Mendelian Inheritance in Man (OMIM), Clinical Variant database (ClinVar)[18] de National Center for Biotechnology Information (NCBI), GeneReviews[19] de NCBI, Orphanet[20] y the Genome Wide Association Studies[21]. Para las relaciones gen a gen: Human Protein Relation Database (HPRD)[22], Biosystem[23] de NCBI, Gene Family[24] de Human Genome Organization (HUGO) Gene Nomenclature Committee y Human Transcription Interaction (HTRI). 1.7.2. Search Tool for the Retrieval of Interacting Genes/Proteins Search Tool for the Retrieval of Interacting Genes/Proteins[25] (STRING) es una base de datos de interacciones entre proteı́nas, tanto conocidas como predichas. Estas interacciones pueden ser directas –fı́sicas– o indirectas –funcionales. SIANI — ULPGC 9 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN STRING establece una puntuación para cada interacción en función de: Vecindad en el genoma Fusiones Coocurrencias en el genoma Coexpresión Experimentos Asociación en bases de datos Mención en artı́culos STRING integra datos de estas fuentes para un gran número de organismos, y transfiere información entre estos organismos cuando puede. En estos momentos contiene 9.643.763 proteı́nas de 2031 organismos. 1.7.3. Sorting Intolerant From Tolerant Sorting Intolerant From Tolerant[26] (SIFT) es un software que predice si un cambio de aminoácido afecta a la función de la proteı́na basándose en secuencias homólogas –secuencias conservadas en otras especies– y en las propiedades fı́sicoquı́micas–ver figura 1.4– de los aminoácidos. Estas propiedades determinan si una sustitución de una aminoácido por otro es más o menos drástica en base al cambio funcional y/o estructural esperado. SIFT sirve tanto para polimorfismos no sinónimos como para mutaciones creadas en laboratorio. 1.7.4. Polymorphism Phenotyping Polymorphism Phenotyping v2[27] (PolyPhen) es una herramienta que predice el impacto posible de una sustitución de aminoácido en la estructura y función de una proteı́na humana usando basándose en evidencias fı́sicas y comparativas. Algunas de sus caracterı́sticas son: Alineamiento de secuencias múltiples de alta calidad Clasificador probabilı́stico basado en entrenamiento de máquinas SIANI — ULPGC 10 Pascual Lorente Arencibia CAPÍTULO 1. INTRODUCCIÓN Figura 1.4: Afinidad fı́sica de los aminoácidos. Los globos agrupan las sustituciones en teorı́a más conservativas en base a la estructura de y propiedades fı́sico-quı́micas de las aminoácidos. Optimizado para datos NGS 1.7.5. Variant Effect Predictor Variant Effect Predictor[28] (VEP) es la herramienta de Ensembl para anotar y predecir el impacto de una variante en un gen, transcrito, secuencia de proteı́na o región reguladora. Añade más de 30 etiquetas a cada variante, incluyendo el gen y transcrito, consecuencia de la variante, frecuencia en otras poblaciones o la predicción SIFT y Polyphen. SIANI — ULPGC 11 Capı́tulo 2 Estado del arte En el ámbito de las Ciencias de la Computación se han desarrollado en las últimas décadas disciplinas y herramientas que resultan muy útiles para el tratamiento de problemas cuya resolución se basa en manipular grandes volúmenes de datos. A continuación haremos una breve referencia a aquellos que resultan útiles para el problema que tratamos en este documento. 2.1. Big Data Se conoce como Big Data a grandes conjuntos de datos que contiene información relevante. Cuando se tienen bases de datos de distintas fuentes, hay que tener en cuenta ciertos problemas. En primer lugar, el Sistema de Gestión de Bases de Datos (SGBD). Tradicionalmente los datos se han almacenado utilizando SGBD relacionales, que organizan los datos en tablas fuertemente definidas. Son sistemas robustos y con baja tolerancia a errores, ya que no permiten que un mismo dato se almacene en dos lugares diferentes. Podemos ver un pequeño ejemplo de modelo relacional en la figura 2.1. Sin embargo, con la expansión de internet y la aparición constante de nuevos datos de distintas fuentes, muchas organizaciones optan por SGBD orientados a documentos, que almacenan los datos en documentos autodefinidos. Estos 12 Pascual Lorente Arencibia CAPÍTULO 2. ESTADO DEL ARTE Estudiantes Id Nombre e1 Andrés Garcı́a e2 Manuel Gómez Asignaturas Id Nombre a1 Matemáticas a2 Fı́sica Estudia id estudiante id asignatura e1 a1 e2 a1 e1 a2 e2 a2 Nota B C A B Figura 2.1: Estructura y tablas de un modelo relacional documentos suelen usar la forma clave-valor, de modo que un documento fuera de sus entorno puede aún ser comprendido. Código 2.1: Ejemplo de fichero en formato JSON 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 { " estudiantes " : [ { " id " : " e 1 " , " nombre " : { " id " : " e 2 " , " nombre " : ], " asignaturas " : [ { " id " : " a 1 " , " nombre " : { " id " : " a 2 " , " nombre " : ], " estudia " : [ { " id_est " : " e 1 " , " id_asig " : " a 1 " , " nota " : " B " },{ " id_est " : " e 2 " , SIANI — ULPGC " Andres Garcia " } , " Manuel Gomez " } , " Matematicas " } , " Fisica " } , 13 Pascual Lorente Arencibia " id_asig " : " a 1 " , " nota " : " C " 17 18 },{ 19 " id_est " : " e 1 " , " id_asig " : " a 2 " , " nota " : " A " 20 21 22 }, { 23 " id_est " : " e 2 " , " id_asig " : " a 2 " , " nota " : " B " 24 25 26 }, 27 ] 28 29 CAPÍTULO 2. ESTADO DEL ARTE } Cabe destacar que muchas organizaciones a lo largo de internet, independientemente de cómo almacenen sus datos, los publican en forma de una sola tabla, como en la tabla 2.1. id est e1 e2 e1 e2 n est Andrés Garcı́a Manuel Gómez Andrés Garcı́a Manuel Gómez id asig a1 a1 a2 a2 n asig Matemáticas Matemáticas Fı́sica Fı́sica nota B C A B Tabla 2.1: Base de datos en formato tabular El segundo problema es el formato de los datos. A menudo, el mismo dato se almacena de forma diferente en distintas bases de datos. Por ejemplo, las fechas tienen multitud de formas de representación (dd-mm-aaaa, mm/dd/aaaa, aaaammdd). Algunos modelos incluso utilizan dos o tres campos diferentes (dı́a, mes, año). Los números utilizan distinto separador de decimales en inglés –un punto (7.2)– y en español –una coma (7,2). Los nombres de personas pueden escribirse en uno o dos campos–nombre y apellido– y dentro del mismo campo puede escribirse de forma diferente–apellidos, nombre frente a nombre apellidos– . Existen herramientas como Pentaho Data Integration[29] que ayudan a unificar bases de datos, definiendo la estructura final y cómo se tiene que procesar cada recurso. SIANI — ULPGC 14 Pascual Lorente Arencibia CAPÍTULO 2. ESTADO DEL ARTE Al resultado final de la unión de bases de datos se le conoce como data warehouse[30] y a su creación se le debe dedicar gran parte del tiempo. 2.2. Business Intelligence El término Business Intelligence[31] engloba las técnicas para extraer información de un gran conjunto de datos, normalmente un data warehouse, que sirva como ayuda para la toma de decisiones de una empresa u organización. Algunas de estas técnicas son: 1. Online analytical processing (OLAP): calcula funciones agregadas a través de cualquier dimensión en los datos en tiempo real. Por ejemplo, cromosoma → gen → variante es la dimensión de variante. En cada punto de la dimensión se calcula el valor acumulado, como la cantidad o la suma de un valor especı́fico. 2. Consultas: Búsquedas especı́ficas entre los datos: ¿cuántas variantes sin sentido son catalogadas como peligrosas? 3. Informes: Generación de tablas, textos cortos y gráficas que muestran un estado determinado de los datos. 4. Análisis predictivo: Extrapolar los datos para averiguar cómo se comportará el sistema en el futuro. En los años 2000, ha aparecido una nueva necesidad de estructurar datos no estructurados. Debido a la expansión de la web hay accesibles gran cantidad de datos que no están estructurados como en una base de datos (artı́culos, blogs, libros...). En eso consiste el sentiment analysis [32]: toma un texto no estructurado y extrae aquellos datos que pueden ser estructurados. De este modo se pueden generar nuevos datos para un data warehouse de forma automática. 2.3. Inteligencia Artificial De las muchas definiciones que tiene la Inteligencia Artificial hemos escogido una cita de Bellman[33]: La automatización de actividades que asociamos con el pensaSIANI — ULPGC 15 Pascual Lorente Arencibia CAPÍTULO 2. ESTADO DEL ARTE miento humano. En efecto, una de las principales actividades de la inteligencia artificial es hacer que las máquinas piensen como –y no más que– los humanos, con las ventajas que un ordenador presenta: trabaja sin descanso, más rápido y se equivoca menos. Una de las ramas de la inteligencia artificial más antiguas y más utilizadas en medicina son los Sistemas basados en Conocimiento (SBC)[34]. Estos sistemas imitan el razonamiento de personas expertas en un determinada área, como los médicos. Se dividen en dos subsistemas: la base de hechos, donde se almacena el conocimiento del experto, y el motor de inferencia, que determina cómo se navega a través de ellos. Las ventajas de los sistemas expertos es que no olvidan, pueden almacenar el conocimiento de más de un experto y trabajan mucho más rápido. Normalmente son sistemas que trabajan por evidencias. En la figura 2.2 podemos ver un ejemplo de un sistema experto muy simple para diagnosticar una enfermedad. Al señalar los sı́ntomas que padece el paciente, las enfermedades que están relacionadas se van ((iluminando)). Cuanto más ((iluminada)) esté más puntuación tendrá. 2.4. Interfaz de usuario Uno de los aspectos más importantes a la hora de desarrollar un programa informático es su interfaz de usuario. A través de la interfaz el programa muestra la información al usuario y el usuario interactúa con el programa. La interfaz de usuario se debe desarrollar pensando en el usuario y sus necesidades: hay que conocer quién lo va a utilizar y cómo. Hay que situar los elementos donde el usuario espera que estén. La interfaz debe seguir el mismo patrón para que una vez el usuario ha aprendido a hacer una cosa, pueda repetirla de memoria[35]. El diseño no tiene porqué ser novedoso, puede imitar interfaces que el usuario está acostumbrado a utilizar, eso le ahorrará mucho tiempo y esfuerzo y evitará que se sienta hostil. SIANI — ULPGC 16 Pascual Lorente Arencibia CAPÍTULO 2. ESTADO DEL ARTE Mareo Fiebre Vómitos Gripe Dolor de cabeza Cansancio Anemia Náuseas Figura 2.2: Sistema experto para diagnóstico. Al activar los sı́ntomas Cansancio y Náuseas, se activan ambas enfermedades, pero la que más evidencias tiene es Anemia. SIANI — ULPGC 17 Pascual Lorente Arencibia CAPÍTULO 2. ESTADO DEL ARTE Si hay demasiados elementos, es necesario crear una jerarquı́a, dejando visibles solo los que el usuario va a necesitar al principio, el resto de elementos debe pasar a un plano secundario. En 1994, el psicólogo Miller[36] determinó que el número de elementos que puede abarcar una persona de un solo vistazo es de 7±2, eso da un máximo de 9 y un mı́nimo de 5. Esta es la cantidad de elementos que deben de tener los menús y las listas de opciones. Este número también vale para las pantallas o elementos visuales de la aplicación. Hay que mantener al usuario informado. Si una acción que realiza tarda mucho tiempo hay que mostrar una barra de progreso. Si se equivoca en algo, un mensaje claro que diga en qué se equivocó y cómo puede arreglarlo. En contraposición, si el usuario ha hecho algo bien, no se debe mostrar un mensaje, porque eso le distraerá. SIANI — ULPGC 18 Capı́tulo 3 Desarrollo 3.1. Justificación del proyecto Ya hemos visto que existen herramientas que pueden predecir si una variante es peligrosa o no y herramientas que establecen relaciones entre proteı́nas. Sin embargo, no existe un programa que combine ambos procesos, que no solo determine la relación entre una variante y una patologı́a, sino que prediga su efecto. En este proyecto, vamos a desarrollar un módulo en la aplicación COAT – Combination and Annotation Tool[37]–, aplicación que permite visualizar, anotar y combinar ficheros VCF –ver apéndice B–. Este módulo, que lleva como nombre Poirot va a cumplir con los objetivos del Trabajo: establecer la relación entre variante y patologı́a y mostrar las interacciones intermedias. 3.2. Recursos Coat está completamente desarrollada en el lenguaje de programación Java. La incorporación de nuevos métodos de recorrido de datos y paralelización automática permiten un aumento significativo del rendimiento. La clase Canvas aporta un lienzo donde se pueden dibujar formas, textos y lı́neas de forma libre. Además, Java es multiplataforma, lo que significa que se puede ejecutar en 19 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO cualquier máquina que tenga instalada la máquina virtual de Java. Hemos utilizado una metodologı́a ágil para el desarrollo. En el año 2001 se creó el Manifiesto por el desarrollo ágil [38] con el objeto de mejorar los resultados en el desarrollo del software, no solo en reducción de tiempo, sino también en número de proyectos exitosos. Estas metodologı́as descomponen las tareas en pequeños incrementos de planificación mı́nima, donde cada iteración culmina con una entrega del software, aunque esté incompleta. Esto significa que todas son modelos iterativos e incrementales. De este modo, desde muy temprano se puede liberar una versión del software funcional, aunque no completa, permitiendo al cliente probar y usar lo que ya se ha implementado. Ası́, se pueden cambiar, añadir o quitar requisitos desde el principio. Para los desarrolladores es muy fácil añadir pequeños cambios al software, y no hay que esperar mucho tiempo entre un lanzamiento y el siguiente. Estas metodologı́as son ideales para proyectos que no tengan los requisitos claros desde un principio, y que puedan usarse aunque solo funcione parte del sistema. Dos de las metodologı́as ágiles más populares son Scrum[39] y Extrem Programming[40] . En este proyecto, al no existir más que un desarrollador y un cliente, no se aplicará estrictamente ninguna metodologı́a existente, pero se intentará simular las caracterı́sticas principales: Reuniones periódicas: Intentar reunirse a diario o, al menos, semanalmente. Estas reuniones servirán para poner en común los progresos y establecer el trabajo próximo. Lanzamientos frecuentes: Lanzar una versión de la aplicación al menos una vez al mes. Incrementos progresivos: Cada versión debe suponer una mejora significativa respecto a la anterior. Modificación ágil de requisitos: Asimilación rápida y positiva de los cambios en los requisitos. SIANI — ULPGC 20 Pascual Lorente Arencibia 3.3. CAPÍTULO 3. DESARROLLO Data warehouse La tabla 3.1 contiene un resumen de las bases de datos que se han utilizado para crear el data warehouse de Poirot, ası́ como su tipo. La figura 3.1 muestra la estructura lógica del mismo. Cada base de datos ha sido descargada desde su fuente y normalizada con un script. Una vez normalizadas, las del mismo tipo se han almacenado juntas como una sola. En general, todas las bases de datos de genes o de interacciones presumen de crear sus datos de manera manual, con revisiones continuas, por lo que podemos esperar un alto grado de precisión y pocos errores. En muchos casos, los registros están respaldados por uno o varios artı́culos cientı́ficos. Tipo Gen–patologı́a Gen–patologı́a Gen–expresión Gen–expresión Gen–gen Gen–gen Gen–gen Gen–gen Gen–gen Nombre Omim HPRD HPRD ProteinAtlas IntAct MINT dip BioGrid HPRD Tamaño 6.968 4.943 112.158 677.170 225.503 61.427 64.586 424.954 39.240 Tabla 3.1: Registros por base de datos 3.3.1. HUGO Gene Nomenclature Comitee HUGO Gene Nomenclature Comitee (HGNC)[41] es la autoridad encargada de establecer el nombre y el sı́mbolo de cada región identificada del ADN, la mayorı́a genes. Para todas las bases de datos, se usará el sı́mbolo proporcionado por la HGNC como identificador de cada gen. En caso de que la HGNC no tenga nombre para un gen en concreto, se usará el que proporcione la base de datos. Hasta la fecha hay 40.527 entradas. SIANI — ULPGC 21 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO Figura 3.1: Estructura del data warehouse 3.3.2. Online Mendelian Inheritance in Man OMIM es una base de datos desarrollada y mantenida por la Universidad de Medicina Johns Hopkins, North Baltimore, que identifica el fenotipo –enfermedad o caracterı́stica fı́sica– de cada gen. Permite descargar los datos o acceder vı́a REST API. Tiene 15.513 entradas. 3.3.3. Human Protein Reference Database Human Protein Reference Database (HPRD)[22] es una base de datos que indica cómo se expresa cada proteı́na en el cuerpo, por lo general listando en qué órganos del cuerpo está presente. Está financiada por el Institute of BioInformatics. Su última actualización es del año 2010, pero sus datos todavı́a son válidos. En total, tiene 112.158 expresiones de genes en fenotipos, 39.240 interacciones entre proteı́nas y 4943 relaciones con patologı́as. SIANI — ULPGC 22 Pascual Lorente Arencibia 3.3.4. CAPÍTULO 3. DESARROLLO Biological General Repository for Interaction Datasets Biological General Repository for Interaction Datasets (BioGrid)[42] es una base de datos que se actualiza mensualmente con interacciones tanto fı́sicas como genéticas entre proteı́nas. Tiene un total de 237.045 registros. Está desarrollado entre varias universidades de Canadá y posee servicio REST. 3.3.5. Mentha Mentha[43] es una base de datos creada por la Universidad de Tor Vergata, Italia que, aparte de contener interacciones entre proteı́nas, tiene herramientas online para su visualización. También se alimenta de otras bases de datos. Tiene registradas 385.857 entradas de distintas bases de datos –BioGrid, Mint, IntAct, MatrixDB, DIP–. 3.3.6. The Human Protein Atlas The Human Protein Atlas (ProteinAtlas)[44] es una base de datos con millones de imágenes en alta resolución que muestran la distribución espacial de las proteı́nas en 44 tejidos humanos normales, 20 cancerı́genos y 46 lı́neas celulares humanas. La base de datos ha sido desarrollada de una manera genocéntrica con la inclusión de todos los genes humanos pronosticados en estudios genómicos. Las funciones de búsqueda permiten realizar consultas complejas sobre perfiles de expresión de proteı́nas, clases de proteı́nas y localización de cromosomas. Esta base de datos también contiene información acerca de la presencia de secuencias de ARN en cada tejido. De este modo, el ARN puede confirmar o desmentir la presencia de una proteı́na. 3.4. Evaluación de variantes Para determinar cuál es el impacto de una variante sobre una enfermedad, Poirot crea un grafo formado por la lista de todas las enfermedades y expresiones que hay en el data warehouse, los genes afectados por al menos una variante, y SIANI — ULPGC 23 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO todos los genes haya interconectados entre cualquier enfermedad y variante. Este grafo es no dirigido –las relaciones no tienen dirección– y cada relación contiene todas las interacciones que haya entre dos nodos. La figura 3.2 representa el grafo que utiliza Poirot. El apéndice C muestra el diagrama de clases que representa el grafo en memoria. Enfermedad i1,i2,i3 i1 i1,i2 v1 Gen Gen Gen i1 i1,i2 v1 v2 Gen v3 Figura 3.2: Grafo de interacciones de Poirot Poirot agrupa todas las variantes del mismo gen y obtiene una sola puntuación para el gen en base a la ecuación 3.1: α · max(Pvariante ) + (1 − α) · max(Pvecino ) (3.1) distancia donde α es la proporción entre el impacto de las variantes y el impacto de las relaciones. Cuanto más alto, más se valorarán las variantes y menos las relaciones. Este factor lo situamos empı́ricamente en el intervalo [0,8-0,9]. Para el cálculo del vecino máximo, se utilizan solo las interacciones hacia genes con mayor distancia. Pgen = Pvariante es el valor de una variante, que se calcula por su consecuencia más SIANI — ULPGC 24 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO grave: Pvariante = max(Pconsecuencia ) (3.2) Las variantes modifican la secuencia genética. Dependiendo de dónde se encuentre la variante y cuál sea su forma, puede tener distintas consecuencias. Cada consecuencia tiene una gravedad y un impacto diferente[45]. Para las consecuencias se han establecido cuatro niveles de impacto: alto, moderado, bajo y modificador. El apéndice D detalla el listado de consecuencias y su impacto. La tabla 3.2 indica el valor numérico de cada una. Consecuencia Alto Moderado Bajo Modificador Valor 1,0 0,8 0,4 0,2 Tabla 3.2: Valor de cada consecuencia Pvecino es el valor de la interacción con mayor impacto multiplicado por el valor del gen relacionado. Pvecino = max (Pinteraccion ) · Pgen (3.3) Pinteraccion también es un valor en función del tipo. Los principales tipos de interacción son: Interacción funcional no necesariamente fı́sica Es el tipo de interacción más fuerte. Al alterar la cantidad o forma de una proteı́na –mediante una mutación– se observa un cambio en la función de otra. Interacción fı́sica no necesariamente funcional Ambas proteı́nas forman parte de uno o varios complejos fı́sicos. Es decir, están juntas en la misma estructura. Un cambio en una de ellas no tiene por qué afectar al funcionamiento de la otra. Colocalización sin interacción conocida Ambas proteı́nas están presentes en la misma fracción subcelular, pero no existe evidencia de una interacción fı́sica. Una lista más detallado con los subtipos de relaciones y su impacto está detallada en el apéndice E. Los valores numéricos asociados están en la tabla 3.3. SIANI — ULPGC 25 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO Interacción Alto Moderado Bajo Valor 0,9 0,6 0,2 Tabla 3.3: Valor de cada interacción Para calcular la distancia utilizamos un algoritmo de inundación. Partimos de cada fenotipo –enfermedad o expresión– y lo marcamos como distancia 0. Luego, a cada uno de los nodos conectados directamente le damos distancia 1. Ahora repetimos desde los nodos con distancia 1 y marcamos a sus vecinos con distancia 2, excepto a los que tienen distancia 0 o 1. Ası́ hasta que hayamos alcanzado todos los nodos. Si solo queremos saber la distancia a un fenotipo en particular, empezaremos en ese fenotipo. Por último, como tanto las enfermedades como las expresiones forman parte del mismo grafo, es interesante la posibilidad de darles una puntuación. Esto servirá para crear un nuevo ranking con el impacto de cada enfermedad y expresión. Pf enotipo = max(Pvecino ) 3.5. (3.4) Entrada de datos Lo único que debe introducir el usuario en Poirot es la lista de variantes. Estas estarán en un fichero VCF que tiene que estar anotado utilizando VEP. En concreto, de cada variante genética se espera que tenga las siguientes etiquetas: SYMBOL Nombre del gen donde se encuentra la variante. SIFTs Valoración de SIFT, un número entre 0 y 1. CONS Consecuencias de la variante, separadas por comas. BIO Biotipo del gen. SIANI — ULPGC 26 Pascual Lorente Arencibia 3.6. CAPÍTULO 3. DESARROLLO Interfaz de usuario Poirot está formado por dos pantallas, la pantalla de fenotipos y la pantalla de genes. 3.6.1. Pantalla de fenotipos La pantalla de fenotipos tiene como objetivo la selección de fenotipos. Para ello, esta pantalla muestra la lista de todos los fenotipos ordenados por su puntuación. Desde aquı́, se puede navegar por la lista para seleccionar individualmente cada fenotipo, se pueden filtrar por nombre y se pueden mostrar solo las enfermedades o solo las expresiones. En la imagen 3.3 se distinguen 5 elementos visuales: 1. A la izquierda una lista para la selección de grupo –TODOS, SELECCIONADOS, ENFERMEDAD, EXPRESIÓN–. 2. Arriba el cuadro de búsqueda que filtra según se va escribiendo. 3. A la derecha arriba la cabecera de la tabla sirve para ordenar por nombre y puntuación. 4. A la derecha abajo la tabla de fenotipos para seleccionar. 5. Abajo, un botón para pasar a la siguiente pantalla. 3.6.2. Pantalla de genes La segunda pantalla es donde más tiempo pasará el usuario. En ella se muestran los genes más probables de afectar a una enfermedad o expresión. Está formada por los 6 elementos marcados en la figura 3.4: A la izquierda la tabla de genes: Se pueden ordenar por nombre, distancia al fenotipo y valor. A la derecha el elemento principal: el grafo. En él se muestran las relaciones entre los genes seleccionados y los fenotipos. Los nodos del grafo se pueden desplazar y seleccionar. Las relaciones se pueden seleccionar. A la derecha abajo: información de selección. Muestra información acerca del elemento seleccionado en el grafo. Si se ha seleccionado un gen, se SIANI — ULPGC 27 Pascual Lorente Arencibia CAPÍTULO 3. DESARROLLO Figura 3.3: Pantalla de fenotipos muestra su nombre completo y su lista de variantes, si se selecciona una relación, la lista de interacciones. A la izquierda arriba un botón para volver a la pantalla de fenotipos. A la izquierda abajo, un botón para actualizar el grafo con los genes seleccionados. Figura 3.4: Pantalla de genes SIANI — ULPGC 28 Capı́tulo 4 Resultados Para demostrar la eficacia de Poirot hemos elegido un paciente cuya asociación entre variante y enfermedad es conocida. Este paciente padece hipercolesterolemia familiar, una patologı́a sufrida por una mutación en el gen que codifica para el receptor de las lipoproteı́nas de baja densidad (LDLR). Para este paciente, siguiendo el método explicado en el apéndice A, hemos obtenido 540.510 variantes, de las cuales 162.051 tienen una frecuencia en la población inferior a 0,05. En una variante patológica es de esperar que su frecuencia en la población sea inferior a 1 de cada 20. Al realizar el análisis Poirot, se alcanza un total de 6941 enfermedades y 573 expresiones. Si buscamos la hipercolesterolemia familiar, la encontramos en la posición 40 –entre el 1 % con más valoración, tanto en enfermedades como en el total–, como se puede ver en la tabla 4.1. La lista de genes candidatos a la hipercolesterolemia se muestra en la tabla 4.2, donde se comprueba que efectivamente es el LDLR el gen con más valoración. Este gen del cromosoma 19 tiene una deleción de tres codones en la posición 11.223.963 provocando una inframe deletion, una consecuencia de impacto alto (1,0). La figura 4.1 muestra las interacciones entre los 5 genes más valorados y la hipercolesterolemia familiar. Se puede ver que hay una relación directa entre el LDLR y el gen Apolipoprotein B (APOB), un gen que se traduce en una proteı́na que se adhiere a los lı́pidos y que también presenta hasta tres variantes 29 Pascual Lorente Arencibia Posición 1 2 3 4 5 Valor 0,909 0,9001392 0,9001392 0,9001392 0,900108 40 41 0,81 0,81 CAPÍTULO 4. RESULTADOS Enfermedad Cystinuria Lymphoma, non-Hodgkin Hemophagocytic lymphohistiocytosis, familial, 2 Aplastic anemia Carboxylesterase 1 deficiency ... Hypercholesterolemia, familial LDL cholesterol level QTL2 Tabla 4.1: Enfermedades de mayor valor en un paciente con hipercolesterolemia familiar. Gen LDLR APOB MAP4 PXDN INPP5D Valor 0,847 0,372 0,366 0,320 0,308 Distancia 1 2 2 2 3 Tabla 4.2: Genes implicados en la hipercolesterolemia familiar de tipo missense. Con este análisis se demuestra la capacidad de Poirot de relacionar una enfermedad a los genes y variantes más relevantes en su causalidad. Por último, para demostrar el potencial de Poirot como herramienta de diagnóstico, veamos el análisis de la enfermedad que aparece en primer lugar en la tabla 4.1, la cistinuria, con un valor de 0,909, una enfermedad que provoca piedras en el riñón. El miembro 1 de la familia 3 de transportadores de soluto (SLC3A1) tiene una deleción de tipo splice donor. Esta proteı́na transporta aminoácidos en los intestinos y riñones y tiene una relación directa con la cistinuria. SIANI — ULPGC 30 Pascual Lorente Arencibia CAPÍTULO 4. RESULTADOS Figura 4.1: Interacciones de los genes más implicados en la hipercolesterolemia. Cada punto alrededor de un gen representa una variante, cuanto más roja, mayor impacto tiene. SIANI — ULPGC 31 Capı́tulo 5 Conclusiones En este Trabajo de Fin de Máster se ha desarrollado Poirot, un programa que cumple con los objetivos establecidos: Muestra un ranking de genes puntuados de 0 a 1 según su relevancia con la patologı́a o fenotipo. Muestra las interacciones entre un gen afectado y la patologı́a o fenotipo escogidos. Además, como caracterı́stica adicional introducida por el cliente en una de las últimas iteraciones, se ha implementado un ranking de enfermedades por paciente. Esto significa, que desde el punto de partida, el usuario puede ver cuáles son las enfermedades con más probabilidades de estar afectadas por una variante en el paciente. Este ranking permite asociar patologı́as a variantes, de gran utilidad para el barrido de mutaciones en una población y el cribado preimplantacional. Para poder desarrollar esta aplicación, se ha implementado un módulo que combina y almacena las distintas bases de datos en un data warehouse local. 32 Pascual Lorente Arencibia 5.1. CAPÍTULO 5. CONCLUSIONES Trabajo futuro Este Trabajo de Fin de Máster ha servido para desarrollar la estructura principal de un programa que evalúa variantes genéticas. A partir de esta estructura es posible añadir nuevas caracterı́sticas, siempre pensando en el objetivo principal de la UICHUIMI: aplicar la secuenciación de exoma al diagnóstico clı́nico. Sistema propio de generación de relaciones basado en sentimental analysis, que consiste en extraer datos estructurados de textos no estructurados. En las bases de datos que utiliza Poirot cada entrada es escrita a mano por una persona que lee y procesa un artı́culo cientı́fico. El sentimental analysis permite automatizar este proceso. Jerarquı́a de enfermedades: En Poirot se muestran las enfermedades en un listado con miles de entradas. Serı́a interesante mostrarlas agrupadas y jerarquizadas. Sistema de puntuación. Poirot utiliza el sistema de puntuación descrito en la sección 3.4. Este sistema es bastante rı́gido y no permite al usuario controlar sus parámetros. Es necesario desarrollar un sistema que no solo abarque más elementos, sino que esté más parametrizado para otorgar el control al usuario. Nuevas relaciones: Existen otros tipos de interacciones no descritos aquı́ que pueden mejorar las relaciones entre los nodos como, por ejemplo, entre una proteı́na y su función. Esta relación permite relacionar proteı́nas con la misma función. Esquema de visualización: El esquema actual de visualización de relaciones está centrado en los fenotipos. Se muestra en forma de árbol como una jerarquı́a que admite interacciones cruzadas, pero no en el mismo nivel. Se pueden explorar nuevas formas de ver las interacciones. SIANI — ULPGC 33 Apéndice A Obtención de variantes A continuación se muestra un ejemplo con comandos simplificados de cómo se alinean las secuencias y cómo se localizan las variantes. Este proceso es el que genera los ficheros de variantes que utiliza Poirot. Los ficheros de entrada son los que contienen las secuencias: sec-directas.fastq.gz sec-inversas.fastq.gz También son necesarios otros ficheros como el genoma de referencia y algunas bases de datos con variantes de referencia, pero no se incluyen para simplificar el código. El primer paso consiste en alinear las secuencias con el genoma de referencia. bwa a l n s e c −d i r e c t a s . f a s t q . gz > s e c −d i r e c t a s . s a i bwa a l n s e c −i n v e r s a s . f a s t q . gz > s e c −i n v e r s a s . s a i bwa sampe s e c −d i r e c t a s . f a s t q . gz s e c −i n v e r s a s . f a s t q . gz \\ s e c −d i r e c t a s . s a i s e c −i n v e r s a s . s a i > \\ a l i n e a m i e n t o s . bam Aunque en estos momentos se pueden buscar las variantes con respecto al genoma de referencia, se recomiendo realizar una limpieza y puesta a punto de este fichero: 34 Pascual Lorente Arencibia APÉNDICE A. OBTENCIÓN DE VARIANTES # E l i m i n a r s e c u e n c i a s no a l i n e a d a s j a v a −j a r CleanSam . j a r \\ INPUT=a l i n e a m i e n t o s . bam \\ OUTPUT=a l n 1 . bam # Ordenar a l i n e a m i e n t o s j a v a −j a r SortSam . j a r \\ INPUT=a l n 1 . bam \\ OUTPUT=a l n 2 . bam # Eliminar r e p e t i d o s j a v a −j a r MarkDuplicates . j a r \\ INPUT=a l n 2 . bam \\ OUTPUT=a l n 3 . bam # Estandarizar cabeceras j a v a −j a r AddOrReplaceReadGroups . j a r \\ INPUT=a l n 3 . bam \\ OUTPUT=a l n 4 . bam Para reducir falsos positivos, se pueden utilizar dos pasos intermedios: el realineado y el recalibrado. # Realinear j a v a −j a r Gatk . j a r −T R e a l i g n e r T a r g e t C r e a t o r \\ −I a l n 4 . bam \\ −o i n t e r v a l s j a v a −j a r Gatk . j a r −T I n d e l R e a l i g n e r \\ −I a l n 4 . bam \\ −t a r g e t I n t e r v a l s i n t e r v a l s \\ −o a l n 5 . bam # Recalibrar j a v a −j a r Gatk . j a r −T B a s e R e c a l i b r a t o r \\ −I a l n 5 . bam \\ −o r e c a l j a v a −j a r Gatk . j a r −T PrintReads \\ −I a l n 5 . bam \\ −o a l i n e a m i e n t o s . bam Ahora sı́ se pueden buscar las variantes con una tasa de falsos positivos más baja que con los alineamientos iniciales. SIANI — ULPGC 35 Pascual Lorente Arencibia APÉNDICE A. OBTENCIÓN DE VARIANTES j a v a −j a r Gatk . j a r −T H a p l o t y p e C a l l e r \\ −I a l i n e a m i e n t o s . bam \\ −o v a r i a n t e s . v c f Al final del proceso tendremos un fichero con todas las variantes: variantes.vcf SIANI — ULPGC 36 Apéndice B Variant Call Format El formato VCF[46] es un formato genérico para almacenar información de polimorfismos en el ADN, como SNPs, InDels y variantes estructurales, ası́ como todo tipo de anotaciones. VCF se puede almacenar comprimido y se puede indexar para acceder rápidamente a variantes en un rango de posiciones. La cabecera contiene un número arbitrario de lı́neas que comienzan con los caracteres ## (doble almohadilla). Solo la primera, ##fileformat, y la última, #CHROM, son obligatorias. Las cabeceras se utilizan para describir de forma estándar las etiquetas y anotaciones que se utilizan en la sección de datos. La última lı́nea de la cabecera debe escribirse siempre igual, con los nombres de las columnas de datos separados por tabulador, a saber: 37 Pascual Lorente Arencibia CHROM POS ID REF ALT QUAL FILTER INFO FORMAT SAMPLE1 APÉNDICE B. VARIANT CALL FORMAT Cromosoma Posición Identificador único de variante Alelo de referencia Lista de variantes, separadas por coma Valor de calidad Filtros aplicados Lista de anotaciones, separadas por ; (punto y coma). [Opcional] Formato de la siguiente columna, etiquetas separadas por : (dos puntos) [Opcional] 1 o más columnas con la información representada en FORMAT para distintas muestras. Tabla B.1: Columnas del formato VCF. Ası́ es un fichero VCF. ##fileformat=VCFv4.1 ##fileDate=20090805 ##source=myImputationProgramV3.1 ##phasing=partial ##INFO=<ID=DP,Number=1,Type=Integer,Description="Total Depth)) ##FILTER=<ID=s50,Description="Less than 50 % have data)) ##FORMAT=<ID=GT,Number=1,Type=String,Description="Genotype)) #CHROM POS ID REF ALT QUAL FILTER ... 20 14370 rs6054257 G A 29 PASS ... 20 17330 . T A 3 q10 ... 20 1110696 rs6040355 A G,T 67 PASS ... 20 1230237 . T . 47 PASS ... Tabla B.2: Ejemplo de fichero VCF. SIANI — ULPGC 38 Apéndice C Estructura de Poirot A continuación se describen las clases que forman el núcleo de la aplicación. PearlGraph Representa el grafo completo en memoria. Contiene la totalidad de enfermedades, expresiones, genes e interacciones. Pearl Representa un nodo en el PearlGraph. Los tipos de nodos que hay son: GENE, EXPRESSION, DISEASE. PearlRelationship Representa una relación entre dos Pearl. Graph Representa un grafo que se muestra en pantalla. Es un grafo parcial de un PearlGraph. GraphNode Representa un nodo en un Graph. Contiene una Pearl, ası́ como elementos que representan su estado visual: selected, position. GraphRelationship Representa una relación entre dos GraphNode. Contiene 1 o más PearlRelationship. GrapFactory A partir de una lista de variantes forma un PearlGraph. ShortestPath A partir de una Pearl, lista todos los caminos de distancia más corta entre el nodo y el fenotipo activo–seleccionado– más cercano. GraphEvaluator Toma un PearlGraph y una lista de fenotipos (Pearl ) y evalúa cada elemento del grafo en base a los fenotipos. Si no se especifica una lista de fenotipos, los toma todos. Por simplicidad, solo se muestra el diagrama que representa el grafo en la 39 Pascual Lorente Arencibia APÉNDICE C. ESTRUCTURA DE POIROT figura C.1. Figura C.1: Diagrama de clases que representa cómo se almacenan los nodos –perlas– en la aplicación. SIANI — ULPGC 40 Apéndice D Consecuencias La figura D.1 muestra el nombre que recibe cada variante según su posición. A continuación se describe cada una ellas. Se mantiene la descripción en inglés porque gran parte de los términos no tiene traducción al castellano. Figura D.1: Posición de cada variante según su consecuencia. Fuente: www.ensembl.org Consecuencias de impacto alto (high): Frameshift variant: A sequence variant which causes a disruption of the translational reading frame, because the number of nucleotides inserted or deleted is not a multiple of three. Stop lost: A sequence variant where at least one base of the terminator codon (stop) is changed, resulting in an elongated transcript. 41 Pascual Lorente Arencibia APÉNDICE D. CONSECUENCIAS Start lost: A codon variant that changes at least one base of the canonical start codon. Transcript amplification: A feature amplification of a region containing a transcript. Consecuencias de impacto moderado (Moderate): Inframe insertion: An inframe non synonymous variant that inserts bases into in the coding sequenc Inframe deletion: An inframe non synonymous variant that deletes bases from the coding sequenc. Missense variant: A sequence variant, that changes one or more bases, resulting in a different amino acid sequence but where the length is preserved. Protein altering variant: A sequence variant which is predicted to change the protein encoded in the coding sequence. Regulatory region ablation: A feature ablation whereby the deleted region includes a regulatory region. Consecuencias de impacto bajo (Low ): Splice region variant: A sequence variant in which a change has occurred within the region of the splice site, either within 1-3 bases of the exon or 3-8 bases of the intron. Incomplete terminal codon variant: A sequence variant where at least one base of the final codon of an incompletely annotated transcript is changed. Stop retained variant: A sequence variant where at least one base in the terminator codon is changed, but the terminator remains. Synonymous variant: A sequence variant where there is no resulting change to the encoded amino acid. Consecuencias de impacto modificador (Modifier ): Coding sequence variant: A sequence variant that changes the coding sequence. Mature miRNA variant: A transcript variant located with the sequence of the mature miRNA. SIANI — ULPGC 42 Pascual Lorente Arencibia APÉNDICE D. CONSECUENCIAS 5 prime UTR variant: A UTR variant of the 5’ UTR. 3 prime UTR variant: A UTR variant of the 3’ UTR. Non coding transcript exon variant: A sequence variant that changes non-coding exon sequence in a non-coding transcript. Intron variant: A transcript variant occurring within an intron. NMD transcript variant: A variant in a transcript that is the target of NMD. Non coding transcript variant: A transcript variant of a non coding RNA gene. Upstream gene variant: A sequence variant located 5’ of a gene. Downstream gene variant: A sequence variant located 3’ of a gene. TFBS ablation: A feature ablation whereby the deleted region includes a transcription factor binding site. TFBS amplification: A feature amplification of a region containing a transcription factor binding site. TF binding site variant: A sequence variant located within a transcription factor binding site. Regulatory region amplification: A feature amplification of a region containing a regulatory region. Feature elongation: A sequence variant located within a regulatory region. Regulatory region variant: A sequence variant located within a regulatory region. Feature truncation: A sequence variant that causes the reduction of a genomic feature, with regard to the reference sequence. Intergenic variant: A sequence variant located in the intergenic region, between genes. SIANI — ULPGC 43 Apéndice E Interacciones Interacción funcional no necesariamente fı́sica (alto): additive genetic interaction defined by inequality suppressive genetic interaction defined by inequality synthetic genetic interaction defined by inequality genetic inequality Interacción fı́sica no necesariamente funcional (moderado): direct interaction physical association association Interacción de colocalización (bajo): colocalization 44 Bibliografı́a [1] Watson J y Crick F. A Structure for Deoxyribose Nucleic Acid. Nature, 171:737–738, 1953. [2] Russell PJ. Genetics. Harper Collins, 4a edición, 1996. [3] Feuk L, Carson AR y Scherer SW. Structural variation in the human genome. Nat Rev Genet, 7(2):85–97, 2006. [4] Sanger F y Coulson AR. A rapid method for determining sequences in DNA by primed synthesis with DNA polymerase. J Mol Biol, 94(3):441–448, 1975. [5] Shendure J y Ji H. Next-generation DNA sequencing. 26(10):1135–1145, 2008. Nat Biotech, [6] Bamshad MJ, Ng SB, Bigham AW, Tabor HK, Emond MJ, Nickerson DA et al . Exome sequencing as a tool for Mendelian disease gene discovery. Nat Rev Genet, 12(11):745–755, 2011. [7] Rabbani B, Tekin M y Mahdieh N. The promise of whole-exome sequencing in medical genetics. J Hum Genet, 59(1):5–15, 2014. [8] Cooper DN, Chen JM, Ball EV, Howells K, Mort M, Phillips AD et al . Genes, mutations, and human inherited disease at the dawn of the age of personalized genomics. Hum Mutat, 31(6):631–655, 2010. [9] Lee H, Deignan JL, Dorrani N, Strom SP, Kantarci S, Quintero-Rivera F et al . Clinical exome sequencing for genetic identification of rare Mendelian disorders. JAMA, 312(18):1880–1887, 2014. [10] Yang Y, Muzny DM, Reid JG, Bainbridge MN, Willis A, Ward PA et al. Clinical whole-exome sequencing for the diagnosis of mendelian disorders. N Engl J Med, 369:1502–1511, 2013. 45 Pascual Lorente Arencibia BIBLIOGRAFÍA [11] Yang Y, Muzny DM, Xia F, Niu Z, Person R, Ding Y et al . Molecular findings among patients referred for clinical whole-exome sequencing. JAMA, 312(18):1870–1879, 2014. [12] Burge C y Karlin S. Prediction of complete gene structures in human genomic DNA. J. Mol. Biol, 268(1):78–94, 1997. [13] Lawrence PA. The Making of a Fly. Blackwell Science, 1992. [14] Wang Genomics Lab. Phenolyzer, Junio 2015. http://phenolyzer.usc. edu/index.php. [15] National Institute of Environmental Health Sciences. CTD’s MEDIC disease vocabulary, Junio 2015. http://ctdbase.org/reports/CTD_diseases. tsv.gz. [16] Institute for Genome Sciences. Disease Ontology, Junio 2015. http:// disease-ontology.org/downloads. [17] Johns Hopkins University. Online Mendelian Inheritance in Man, Julio 2015. http://omim.org/downloads. [18] National Center for Biotechnology Information. ClinVar, Julio 2015. http: //www.ncbi.nlm.nih.gov/clinvar/. [19] University of Washington, Seattle. GeneReviews, Julio 2015. http://www. ncbi.nlm.nih.gov/books/NBK1116/. [20] INSERM. Orphanet: an online rare disease and orphan drug data base, Julio 2015. http://www.orpha.net. [21] National Human Genome Research Institute. A Catalog of Published Genome-Wide Association Studies, Marzo 2015. http://www.genome.gov/ gwastudies/. [22] Keshava Prasad TS, Goel R, Kandasamy K, Keerthikumar S, Kumar S, Mathivanan S et al . Human Protein Reference Database–2009 update. Nucleic acids research, 37:D767–72, 2009. http://www.hprd.org/. [23] National Center for Biotechnology Information. BioSystems, Marzo 2015. https://www.ncbi.nlm.nih.gov/biosystems. [24] European Bioinformatics Institute. HGNC Database, HUGO Gene Nomenclature Committee, Marzo 2015. www.genenames.org. SIANI — ULPGC 46 Pascual Lorente Arencibia BIBLIOGRAFÍA [25] Szklarczyk D, Franceschini A, Wyder S, Forslund K, Heller D, HuertaCepas J eta al . STRING v10: protein-protein interaction networks, integrated over the tree of life. Nucleic acids research, (43):D447–52, 2015. [26] Prateek K, Steven H y Pauline CN. Predicting the effects of coding nonsynonymous variants on protein function using the SIFT algorithm. Nature Protocols, (8):1073–1081, 2009. [27] Adzhubei IA, Schmidt S, Peshkin L, Ramensky VE, Gerasimova A, Bork P et al . A method and server for predicting damaging missense mutations. Nature methods, 7(4):248–9, 2010. [28] McLaren W, Pritchard B, Rios D, Chen Y, Flicek P y Cunningham F. Deriving the consequences of genomic variants with the Ensembl API and SNP Effect Predictor. Bioinformatics, 26(16):2069–2070, 2010. [29] Hitachi Group Company. Data Integration — Pentaho Business Analytics Platform, Diciembre 2015. http://www.pentaho.com/product/ data-integration. [30] Devlin B. Data Warehouse: From Architecture to Implementation. Addison-Wesley Longman Publishing Co., Inc., Boston, MA, USA, 1996, ISBN 0201964252. [31] Watson HJ y Wixom BH. The Current State of Business Intelligence. Computer, 40(9):96–99, 2007. [32] Pang B y Lee L. Opinion mining and sentiment analysis. Foundations and Trends in Information Retrieval, 2008. [33] Bellman R. Artificial Intelligence: Can Computers Think? Thomson Course Technology, 4a edición, 1978. [34] James AR, Dana SN y Pearl YW. Diagnostic expert systems based on a set covering model. International Journal of Man-Machine Studies, 19(5):437–460, 1983. http://www.sciencedirect.com/science/ article/pii/S0020737383800650. [35] Treehouse. 10 User Interface Design Fundamentals, Agosto 2012. http:// blog.teamtreehouse.com/10-user-interface-design-fundamentals. [36] Miller GA. The magical number seven, plus or minus two: Some limits on our capacity for processing information. Psychological Review, (2):343–352, 1994. SIANI — ULPGC 47 Pascual Lorente Arencibia BIBLIOGRAFÍA [37] Unidad de Investigación del Complejo Hospitalario Universitario Insular – Materno Infantil. COAT – Combiantion and Annotation Tool, Diciembre 2015. https://github.com/uichuimi/Coat.git. [38] Beedle M, van Bennekum A, Cockburn A, Cunningham W, Fowler M y Highsmith J. Manifesto for Agile Software Development, Diciembre 2015. http://www.agilemanifesto.org/. [39] Beck K y Fowler M. Planning Extreme Programming. Addison-Wesley Professional, 2001. [40] Schwaber K. Agile Project Management with Scrum. Microsoft Press, 2004. [41] HGNC. HUGO Gene Nomenclature Committee, Agosto 2015. genenames.org. www. [42] Chatr-aryamontri A, Breitkreutz BJ, Oughtred R, Boucher L, Heinicke S, Chen D et al . The BioGRID interaction database: 2015 update. Nucleic acids research, 43:D470–8, 2015. [43] Calderone A, Castagnoli L y Cesareni G. mentha: a resource for browsing integrated protein-interaction networks. Nat Meth, 10:690–691, 2013. http: //mentha.uniroma2.it. [44] Ponten F, Jirstrom K y Uhlen M. The Human Protein Atlas–a tool for pathology. The Journal of pathology, 216(12):387–93, 2008. [45] Ensembl. Predicted data, Septiembre 2015. http://www.ensembl.org/ info/genome/variation/predicted_data.html#consequences. [46] Petr D, Adam A, Goncalo A, Cornelis AA, Eric B, Mark AD et al . The variant call format and VCFtools. Bioinformatics, 27(15):2156–2158, 2011. SIANI — ULPGC 48