diff --git a/Dissertation.org b/Dissertation.org index 6988b23..9ee844a 100644 --- a/Dissertation.org +++ b/Dissertation.org @@ -318,9 +318,9 @@ Estas observaciones no son sorprendentes; en la práctica se ha comprobado que e * Diseño y descripción del sistema -La finalidad de este proyecto es el desarrollo de un /pipeline/, con el objetivo de crear un algoritmo de /Deep Learning/ capaz de corregir errores de secuenciación en secuencias de ADN, en particular, en la región CDR3 del TCR. +La finalidad de este proyecto es el desarrollo de un /pipeline/, con el objetivo de crear un algoritmo de /Deep Learning/ capaz de corregir errores de secuenciación en secuencias de ADN, en particular, en la región CDR3 del TCR. Por ende, el trabajo consiste en el desarrollo /end-to-end/ de un sistema de /machine learning/. -El sistema se compone de 2 partes, dado que el algoritmo de /Deep Learning/ no es dependiente del /dataset/ generado /in silico/, y se podría entrenar con cualquier otro conjunto de datos. +El sistema se compone de 2 partes, dado que el algoritmo de /Deep Learning/ es generalizable y se podría proceder al entrenamiento de éste con otro conjunto de datos. #+CAPTION: Descripción del proyecto #+NAME: tab:pipeline @@ -331,8 +331,8 @@ El sistema se compone de 2 partes, dado que el algoritmo de /Deep Learning/ no e El diseño del sistema queda plasmado a continuación: -#+CAPTION: Diseño del sistema. (*A*) Entrenamiento del algoritmo de /Deep Learning/. Como /input/ proporcionamos el número de secuencias, junto con el número de lecturas que deseamos que se simulen. Locigenesis generará 2 archivos en formato FASTQ, que contienen CDR3 con y sin errores de secuenciación, que son el /input/ de locimend para entrenar el modelo de /Deep Learning/, cuya salida es el conjunto de métricas del algoritmo. (*B*) Inferencia del modelo de /Deep Learning/ previamente entrenado y desplegado. Se provee como entrada una secuencia de ADN con errores de secuenciación, el algoritmo procesa ésta y devuelve una secuencia de ADN sin errores -#+ATTR_HTML: :height 50% :width 75% +#+CAPTION: Diseño del sistema. (*A*) Entrenamiento del algoritmo de /Deep Learning/. Como /input/ proporcionamos el número de secuencias, junto con el número de lecturas que deseamos que se simulen. Locigenesis generará 2 archivos en formato FASTQ, que contienen CDR3 con y sin errores de secuenciación, que son el /input/ de locimend, cuya salida es el conjunto de métricas del algoritmo. (*B*) Inferencia del modelo de /Deep Learning/ previamente entrenado y desplegado. Se provee como entrada una secuencia de ADN con errores de secuenciación, el algoritmo procesa ésta y devuelve una secuencia de ADN sin errores +#+ATTR_HTML: :height 80% :width 70% #+NAME: fig:pipeline [[./assets/figures/pipeline.png]] @@ -350,7 +350,7 @@ El objetivo de este proyecto es generar tanto secuencias de CDR3 con y sin error - CuReSim: simulador de secuenciación que emula la tecnología /Ion Torrent/ cite:Caboche_2014 - Biostrings: manipulación de secuencias biológicas cite:Biostrings -*** Funcionalidades +*** Funcionamiento El programa realiza, parametrizado por 2 parámetros de entrada (número de secuencias diferentes y número de lecturas por el simulador de secuenciación), los siguientes pasos: @@ -366,6 +366,18 @@ locimend es un algoritmo de /Deep Learning/ que corrige errores de secuenciació El objetivo de este proyecto es crear un modelo que pueda inferir la secuencia correcta de ADN, a partir de una secuencia de ADN con errores. Se trata de una reducción de ruido aplicada a un problema de genómica. +La arquitectura del modelo es una /deep feedforward network/, formada por: + +- Capa de entrada +- Capa de /masking/: ignora ciertos valores que se añaden a cada tensor para homogenizar el tamaño del /input/ +- 3 capas densas, seguidas de una capa de /dropout/: el /dropout/ es un mecanismo que disminuye el /overfitting/ o sobreajuste +- Capa densa + +#+CAPTION: Arquitectura de la red neuronal +#+ATTR_HTML: :height 45% :width 70% +#+NAME: fig:locimend +[[./assets/figures/locimend.png]] + La interacción con el modelo se puede realizar mediante: - Interfaz por línea de comandos (CLI) @@ -377,7 +389,7 @@ La interacción con el modelo se puede realizar mediante: - Biopython: manipulación de secuencias biológicas cite:Cock_2009 - FastAPI: /framework/ web para la creación de APIs -*** Funcionalidades +*** Entrenamiento El entrenamiento del modelo se realiza, a partir de 2 archivos FASTQ, en diferentes pasos: @@ -391,6 +403,18 @@ El entrenamiento del modelo se realiza, a partir de 2 archivos FASTQ, en diferen 8. Entrenamiento del algoritmo de /Deep Learning/, con los datos preprocesados 9. Obtención de las métricas que miden el rendimiento del modelo +*** Inferencia + +La inferencia consiste en la predicción de nuevos resultados a partir de un modelo pre-entrenado. Se llevan a cabo los siguientes pasos: + +1. Carga del modelo pre-entrenado +2. Lectura de la secuencia de ADN con errores +3. Codificación basada en el índice de la secuencia de ADN, para obtener une secuencia numérica +4. /One-hot encoding/ de las secuencia numérica, la cual representa la secuencia de ADN +5. Predicción de la secuencia correcta de ADN +6. Descodificación de la secuencia numérica hasta obtener una secuencia de ADN +7. Presentación de la secuencia de ADN correcta inferida por el modelo + ** Reproducibilidad La reproducibilidad de los experimentos en la ciencia es un elemento esencial en el método científico, el cual asegura que una técnica novedosa ofrece resultados verídicos. Actualmente, nos encontramos en una etapa de crisis de reproducibilidad, donde el 70% de los investigadores han fallado al tratar de replicar el estudio de otro científico cite:Baker_2016. @@ -420,4 +444,15 @@ En definitiva, locimend adquirió una gran capacidad para discernir entre nucle * Conclusiones * Futuras mejoras + +Los resultados del algoritmo de /Deep Learning/ son satisfactorios aunque presenta ciertas limitaciones. + +En primer lugar, el modelo dado que la red neuronal se entrenó exclusivamente con datos que emulan una secuenciación de Ion Torrent, es probable que las características que contribuyen a las posiciones erróneas sean específicas al proceso de secuenciación de Ion Torrent. Por lo tanto, la inferencia a partir de datos de secuenciación procedentes de otras tecnologías podría ser menos eficaz. Un entrenamiento con varios /dataset/ provenientes de diferentes tecnologías aumentaría la capacidad de generalización del modelo. + +Asimismo, el entrenamiento del modelo se realizó con un conjunto de datos de 20,000 secuencias, un tamaño bastante limitado para una tarea de aprendizaje automático. La generación de /datasets/ de mayor tamaño no era viable debido a limitaciones en las capacidades de cómputo de los recursos disponibles. Por ende, la elaboración de un /dataset/ de mayor envergadura es una tarea pendiente. + +Uno de los factores que más afecta el rendimiento de una red neuronal es el valor de los hiperparámetros. Los hiperparámetros son variables inherentes al modelo, como el optimizador usado, la distribución de los valores iniciales en los pesos del modelo, la tasa de aprendizaje o el /batch size/. Todos estos parámetros son interdependientes cite:book:2164083, por lo que es importante optimizarlos de forma combinatoria. Una optimización más a fondo de los hiperparámetros podría incrementar la eficiencia del modelo. + +Finalmente, el desarrollo y despliegue de un /frontend/ web para la API REST permitiría mejorar la accesibilidad del modelo para los investigadores que deseen usar este modelo. + * Bibliografía diff --git a/Dissertation.pdf b/Dissertation.pdf index 41a1959..fdf9151 100644 Binary files a/Dissertation.pdf and b/Dissertation.pdf differ diff --git a/assets/abstract.yaml b/assets/abstract.yaml index ef24177..174edb4 100644 --- a/assets/abstract.yaml +++ b/assets/abstract.yaml @@ -2,4 +2,4 @@ spanish-abstract: "Las nuevas técnicas de secuenciación de ADN (NGS) han revol spanish-keywords: "deep learning, corrección de errores, receptor de linfocitos T, secuenciación de ADN, inmunología" english-abstract: "Next generation sequencing (NGS) techniques have revolutionised genomic research. These technologies perform sequencing of millions of fragments of DNA in parallel, which are pieced together using bioinformatics analyses. Although these techniques are commonly applied, they have non-negligible error rates that are detrimental to the analysis of regions with a high degree of polimorphism. In this study we propose a novel computational method, locimend, based on a Deep Learning algorithm for DNA sequencing error correction. It is applied to the analysis of the complementarity determining region 3 (CDR3) of the T-cell receptor (TCR) found on the surface of lymphocytes, generated in silico and subsequently subjected to a sequencing simulator in order to produce sequencing errors. Using these data, we trained a depp neural network with the aim of generating a computational model that allows the detection and correction of sequencing errors. Our results show that locimend is a model that identifies and corrects DNA sequencing error patterns, obtaining an accuracy of 0,89 and an area under the curve (AUC) of 0,98. The implementation includes a REST API that performs the inference of the correct DNA sequence, from a DNA sequence with errors with the pre-trained model, in order to popularise its use in the scientific community." english-keywords: "deep learning, error correction, DNA sequencing, T-cell receptor, immunology" -acknowdledgments: "" +acknowledgments: "Este proyecto no podría haber sido posible sin el apoyo de numerosas personas. En particular, quiero agradecer especialmente a Carlos Cano Gutiérrez por depositar su voto de confianza al asignarme un proyecto de investigación, el cual no era una propuesta de Trabajo de Fin de Grado. Y a María Soledad Benítez Cantos por su mentorización invaluable a lo largo de este trabajo. Su afán por el conocimiento, sus revisiones y comentarios de retroalimentación, su habilidad para exponer un concepto complejo en una frase y su dedicación incondicional al proyecto han sido el pilar central que ha permitido un desenlace favorable de la investigación." diff --git a/assets/babathesis.latex b/assets/babathesis.latex index 2e40dee..9b4c96f 100644 --- a/assets/babathesis.latex +++ b/assets/babathesis.latex @@ -494,7 +494,7 @@ \textbf{Keywords:} $english-keywords$ \end{center} \chapter*{Agradecimientos} - $acknowledgements$ + $acknowledgments$ \tableofcontents \listoftables{} \listoffigures{} diff --git a/assets/bibliography.bib b/assets/bibliography.bib index d6ac74e..707cc87 100644 --- a/assets/bibliography.bib +++ b/assets/bibliography.bib @@ -1442,3 +1442,14 @@ the Default to Reproducible”}, year = 2013 } + +@book{book:2164083, + title = {Deep Learning with Python}, + author = {François Chollet}, + publisher = {Manning}, + isbn = {9781617294433}, + year = {2017}, + series = {}, + edition = {}, + volume = {}, +} diff --git a/assets/figures/locimend.png b/assets/figures/locimend.png new file mode 100644 index 0000000..c17a447 Binary files /dev/null and b/assets/figures/locimend.png differ