diff --git a/Presentation.org b/Presentation.org new file mode 100644 index 0000000..94f5419 --- /dev/null +++ b/Presentation.org @@ -0,0 +1,155 @@ +#+TITLE: Machine Learning para corrección de errores en datos de secuenciación de ADN +#+AUTHOR: Amin Kasrou Aouam +#+SUBTITLE: Trabajo de Fin de Grado +#+LANGUAGE: es +#+PANDOC_OPTIONS: pdf-engine:xelatex +* Introducción +** Descripción +- Proyecto de bioinformática +- Uso de /Deep Learning/ +- Modelo para la corrección de errores de secuenciación del ADN +** Definiciones +- *Bioinformática*: campo interdisciplinar en el que intervienen las áreas de biología molecular e informática. Permite abordar los estudios biológicos con una gran cantidad de datos. +- *Deep Learning*: subconjunto del /machine learning/, en el cual se utiliza como modelo de computación las redes neuronales artificiales (ANN) con múltiples capas ocultas. +* Problema +- Tasas de error de las tecnologías de secuenciación de ADN no despreciables + +| Tecnología | Tasa de error (%) | +|-------------+-------------------| +| Sanger | 0.1–1 | +| Illumina | ≥0.1 | +| SOLiD | >0.06 | +| 454 | 1 | +| SMRT | 16 | +| Ion Torrent | 1 | + +- Dificultad para detectar los errores en regiones con alta diversidad (e.g. repertorios inmunológicos) +* Errores de secuenciación + +Hay distintos tipos de errores de secuenciación del ADN: + +- Substituciones +- Inserciones +- Deleciones + +#+CAPTION: Tipos de mutación +#+ATTR_HTML: :height 65% +[[./assets/figures/dna_mutations.png]] +* Variedad inmunológica + +- Los receptores (i.e. sensores) del sistema inmunitario son altamente variables, debido a la necesidad de reconocer el mayor número de moléculas químicas posibles +- La recombinación V(D)J permite generar, según estimaciones recientes, $10^{15}$ posibles especies distintas de receptores de linfocitos T (TCR) +- La región más variable es *CDR3* + +#+CAPTION: Generación de diversidad en el TCR +#+ATTR_HTML: :height 55% +[[./assets/figures/VDJ.png]] +* Objetivos del proyecto + +- Detección de errores de secuenciación del ADN en las secuencias de CDR3 +- Corrección de estos errores, tanto sustituciones como /indels/ + +** Requisitos + +- Desarrollo de un algoritmo de /Deep Learning/ +- Generación de un /dataset/ para entrenar el algoritmo +- Creación de una interfaz que permita utilizar el algoritmo + +* Estructura del proyecto + +El proyecto se divide en 2 partes: + +- locigenesis: Generación y secuenciación /in silico/ de CDR3 +- locimend: Corrección de los errores de secuenciación del ADN + +#+CAPTION: Pipeline +#+ATTR_HTML: :height 80% :width 70% +[[./assets/figures/pipeline.png]] + +Optamos por esta segmentación debido a que el algoritmo de /Deep Learning/ es generalizable, y se podría entrenar con otro /dataset/ de secuencias de ADN. + +* locigenesis + +- locigenesis es una herramienta que genera una secuencia de receptores de células T (TCR) humano para posteriormente aplicarle una herramienta de simulación de secuenciación (CuReSim) y, finalmente, extraer las regiones CDR3 tras la introducción de errores. +- Obtención de CDR3 con y sin errores de secuenciación +- La simulación de secuenciación se realiza con el TCR completo, y se extrae CDR3 mediante alineamiento con las secuencias de referencia y ciertas heurísticas +- Lenguaje de programación: R + +* locimend + +- locimend es un algoritmo de /Deep Learning/ que corrige errores de secuenciación de secuencias de ADN. +- Creación de un modelo que pueda inferir la secuencia correcta de ADN, a partir de una secuencia de ADN con errores. +- Arquitectura: /deep feedforward network/ + +#+CAPTION: Arquitectura de la red neuronal +#+ATTR_HTML: :height 40% :width 90% +#+NAME: fig:locimend +[[./assets/figures/locimend.png]] + +- Lenguaje de programación: Python +* Paralelización + +- Ciertas etapas en el sistema son cuellos de botella, para superar este impedimento empleamos la paralelización +** locigenesis + +- Alineamiento de las secuencias, para la extracción de CDR3 +- Uso de /parallel/ (biblioteca estándar de R) + +** locimend + +- Lectura de los /datasets/ debidamente preprocesados +- Exportación de los /datasets/ al formato binario /TFRecords/ + +* Reproducibilidad + +- La reproducibilidad de los experimentos en la ciencia es un elemento esencial en el método científico +- En el ámbito de la informática pocos experimentos computacionales son rigurosos en este aspecto +- En el presente trabajo, usamos el gestor de paquetes *Nix*, para garantizar que los resultados que obtenemos son reproducibles al 100% en cualquier máquina + +* API REST + +locimend ofrece una API REST para interaccionar con el modelo: + +| Método HTTP | Ruta | Payload | +|-------------+------+----------------------------------------------| +| GET | / | Secuencia como parámetro de ruta (en la URL) | +| POST | / | JSON | + +** Petición: + +#+begin_src restclient +POST http://localhost:8000 +content: application/json +{"sequence": "TGTGCCAGCAGCTTAGCGGACAGTTCGGGGCAGAGCAGTAC"} +#+end_src + +** Respuesta: + +#+BEGIN_SRC js +{ + "sequence": "TGTGCCAGCAGCTTAGCGGACAGTTCGGGGCAGAGCAGTAC" +} +// POST http://localhost:8000 +// HTTP/1.1 200 OK +// date: Mon, 12 Jul 2021 22:14:35 GMT +// server: uvicorn +// content-length: 56 +// content-type: application/json +// Request duration: 1.018606s +#+END_SRC +* Resultados + +El algoritmo de /Deep Learning/ fue entrenado con un /dataset/ sintético de las secuencias de la región CDR3 del TCR. En concreto, se generó un dataset de 20,000 secuencias, procedentes de una simulación de secuenciación (reproducida durante 100 iteraciones), de 200 secuencias únicas. + +#+CAPTION: Rendimiento de locimend +| Dataset | Accuracy | AUC | +|------------+----------+------| +| Validación | 0.89 | 0.98 | +| Test | 0.89 | 0.98 | + +* Conclusiones + +- Locimend demuestra un alto rendimiento de predicción y corrección de errores de secuenciación +- El algoritmo opera sobre secuencias de ADN, lo cual permite una fácil integración en el flujo de trabajo de un sistema bioinformático +- La creación de una API REST facilita el uso de locimend para los investigadores que desean usarlo +- La licencia permisiva, GPL v3.0, permite la reutilización y modificación del código fuente diff --git a/Presentation.pdf b/Presentation.pdf new file mode 100644 index 0000000..d94f418 Binary files /dev/null and b/Presentation.pdf differ diff --git a/assets/figures/dna_mutations.png b/assets/figures/dna_mutations.png new file mode 100644 index 0000000..abfba88 Binary files /dev/null and b/assets/figures/dna_mutations.png differ