Compare commits

..

22 Commits

Author SHA1 Message Date
e39593bbc9 Add DNA sequencing to the slides 2021-07-13 10:57:42 +02:00
0ca89ef0f6 Use metropolis as slides theme 2021-07-13 01:18:36 +02:00
57c9914806 Add thesis slides 2021-07-13 00:43:25 +02:00
154f7deb24 Remove redundant comment from Dissertation 2021-07-13 00:43:07 +02:00
9ec0df0db5 Extend conclusions section 2021-07-07 19:09:53 +02:00
87cd78b4b5 Fit neural network architecture figure to the page 2021-07-07 18:43:01 +02:00
161ba118d1 Merge branch 'marisolbc/TFG-review' 2021-07-07 18:31:32 +02:00
Marisol Benítez-Cantos
32ea10f536 Review abstract.yaml 2021-07-07 16:27:45 +00:00
65bd8712c7 Correct typos in the abstract 2021-07-07 18:23:46 +02:00
Marisol Benítez-Cantos
082773c08d Review Dissertation.org 2021-07-07 16:12:47 +00:00
Marisol Benítez-Cantos
6e62991442 Merge branch 'master' into 'review'
Master

See merge request marisolbc/TFG!1
2021-07-07 15:45:44 +00:00
ae5a1b977d Add conclusions 2021-07-07 17:12:55 +02:00
6270023c87 Add future improvements 2021-07-07 16:52:10 +02:00
0f9a99af48 Conclude locimend subsection 2021-07-07 15:48:30 +02:00
ade1112c8f Add acknowledgments 2021-07-07 14:52:07 +02:00
Marisol Benítez-Cantos
381b58611a Small corrections to Dissertation.org 2021-07-07 09:38:32 +00:00
93ac95a30a Add reproducibility subsection 2021-07-07 04:50:16 +02:00
5797356adc Add results to abstract 2021-07-07 04:11:15 +02:00
a9c1ac1b69 Add results section 2021-07-07 03:47:14 +02:00
6b60af04f7 Add deep feedforward networks to State of the Art 2021-07-07 03:08:51 +02:00
fc6aac05d5 Add project planning section 2021-07-07 02:31:57 +02:00
43fdd47d47 Add Marisol to titlepage 2021-07-07 00:14:06 +02:00
11 changed files with 395 additions and 19 deletions

View File

@@ -206,7 +206,7 @@ El gran potencial de las ANN es la alta velocidad de procesamiento que ofrecen e
Los métodos de /Deep Learning/ han resultado ser adecuados para el estudio de big data con un éxito notable en su aplicación al reconocimiento del habla, /computer vision/, el reconocimiento de patrones, los sistemas de recomendación y el procesamiento del lenguaje natural (NLP) cite:LIU201711. En la actualidad, la innovación del /Deep Learning/ en la identificación de imágenes, la detección de objetos, la clasificación de imágenes y las tareas de identificación de rostros tienen un gran éxito cite:ABIODUN2018e00938. Los métodos de /Deep Learning/ han resultado ser adecuados para el estudio de big data con un éxito notable en su aplicación al reconocimiento del habla, /computer vision/, el reconocimiento de patrones, los sistemas de recomendación y el procesamiento del lenguaje natural (NLP) cite:LIU201711. En la actualidad, la innovación del /Deep Learning/ en la identificación de imágenes, la detección de objetos, la clasificación de imágenes y las tareas de identificación de rostros tienen un gran éxito cite:ABIODUN2018e00938.
En nuestro estudio, evaluaremos 2 arquitecturas de /Deep Learning/: /autoencoder/ y CNN. Estableceremos una comparación entre estas diferentes estructuras de ANN, además de mencionar avances recientes en estos algoritmos. En nuestro estudio, evaluaremos 3 arquitecturas de /Deep Learning/: /autoencoder/, CNN y /Deep Feedforward Networks/. Estableceremos una comparación entre estas diferentes estructuras de ANN, además de mencionar avances recientes en estos algoritmos.
*** Autoencoder *** Autoencoder
@@ -238,9 +238,9 @@ Tradicionalmente, los /autoencoders/ se utilizaban para reducir la dimensionalid
En la actualidad, los /autoencoders/ se utilizan para la reducción de ruido tanto en texto cite:Lewis_2020 como en imágenes cite:bigdeli17_image_restor_using_autoen_prior, /clustering/ no supervisado cite:makhzani15_adver_autoen, generación de imágenes sintéticas cite:Yoo_2020, reducción de dimensionalidad cite:makhzani15_adver_autoen y predicción de secuencia a secuencia para la traducción automática cite:kaiser18_discr_autoen_sequen_model. En la actualidad, los /autoencoders/ se utilizan para la reducción de ruido tanto en texto cite:Lewis_2020 como en imágenes cite:bigdeli17_image_restor_using_autoen_prior, /clustering/ no supervisado cite:makhzani15_adver_autoen, generación de imágenes sintéticas cite:Yoo_2020, reducción de dimensionalidad cite:makhzani15_adver_autoen y predicción de secuencia a secuencia para la traducción automática cite:kaiser18_discr_autoen_sequen_model.
*** Redes neuronales convolucionales (CNN) *** Redes neuronales convolucionales
Una red neuronal convolucional (CNN) es un tipo de red neuronal especializada en el procesamiento de datos que tienen una topología en forma de cuadrícula (/grid/). El nombre de "red neuronal convolucional" indica que la red emplea una operación matemática denominada convolución. Las redes convolucionales han tenido un enorme éxito en las aplicaciones prácticas cite:Goodfellow-et-al-2016. Una red neuronal convolucional (CNN, por sus siglas en inglés) es un tipo de red neuronal especializada en el procesamiento de datos que tienen una topología en forma de cuadrícula (/grid/). El nombre de "red neuronal convolucional" indica que la red emplea una operación matemática denominada convolución. Las redes convolucionales han tenido un enorme éxito en las aplicaciones prácticas cite:Goodfellow-et-al-2016.
#+CAPTION: Diagrama de una CNN. Una CNN es una red neuronal multicapa, compuesta por dos tipos diferentes de capas, a saber, las capas de convolución (capas C) y las capas de submuestreo (capas S) cite:LIU201711 #+CAPTION: Diagrama de una CNN. Una CNN es una red neuronal multicapa, compuesta por dos tipos diferentes de capas, a saber, las capas de convolución (capas C) y las capas de submuestreo (capas S) cite:LIU201711
#+ATTR_HTML: :height 20% :width 70% #+ATTR_HTML: :height 20% :width 70%
@@ -260,6 +260,23 @@ Las capas de convolución (capas C) se utilizan para extraer características y
En la actualidad, las CNN se utilizan para /computer vision/, tanto para la clasificación de imágenes cite:howard17_mobil como para la segmentación cite:ronneberger15_u_net, sistemas de recomendación cite:yuan18_simpl_convol_gener_networ_next_item_recom y análisis de sentimientos cite:sadr21_novel_deep_learn_method_textual_sentim_analy. En la actualidad, las CNN se utilizan para /computer vision/, tanto para la clasificación de imágenes cite:howard17_mobil como para la segmentación cite:ronneberger15_u_net, sistemas de recomendación cite:yuan18_simpl_convol_gener_networ_next_item_recom y análisis de sentimientos cite:sadr21_novel_deep_learn_method_textual_sentim_analy.
*** /Deep feedforward networks/
Las /deep feedforward networks/, \ie /deep multilayer perceptrons/, son los modelos de /Deep Learning/ por excelencia. El objetivo de una red /feedforward/ es aproximar una función $f$, definiendo un mapeo:
\begin{equation}
y = f(x;\theta)
\end{equation}
donde $y$ es la categoría que deseamos como salida y $\theta$ es el valor de los parámetros que resultan en la mejor aproximación de la función. Estos modelos se denominan /feedforward/ porque la información fluye a través de la función que se evalúa desde $x$, a través de los cálculos intermedios utilizados para definir $f$ y, finalmente, a la salida $y$. No hay conexiones de retroalimentación (/feedback/) en las que las salidas del modelo se retroalimenten a sí mismas cite:Goodfellow-et-al-2016.
#+CAPTION: Diagrama de una /feedforward network/ que contiene dos unidades, con una única capa oculta cite:Goodfellow-et-al-2016
#+ATTR_HTML: :height 20% :width 70%
#+NAME: fig:feedforward
[[./assets/figures/feedforward.png]]
Las /deep feedforward networks/ se pueden aplicar a una miríada de problemas, dado que se puede considerar la arquitectura de ANN más general. En la actualidad, las /deep feedforward networks/ se pueden utilizar para la identificación automática del idioma cite:Lopez_Moreno_2016, para la modelización de la propagación de enfermedades infecciosas cite:Chakraborty_2020 y para la predicción de la demanda de energía eléctrica cite:Mansoor_2021.
** Bioinformática ** Bioinformática
El estudio de las ómicas en biología molecular se beneficia de una serie de nuevas tecnologías que pueden ayudar a explicar vías, redes y procesos celulares, tanto normales como anormales, mediante el seguimiento simultáneo de miles de componentes moleculares. Las ómicas abarcan un conjunto cada vez más amplio de ramas, desde la *genómica* (el estudio cuantitativo de los genes codificantes de proteínas, los elementos reguladores y las secuencias no codificantes), la *transcriptómica* (ARN y expresión de genes), la *proteómica* (por ejemplo, centrada en la abundancia de proteínas) y la *metabolómica* (metabolitos y redes metabólicas) hasta los avances en la era de la biología y la medicina postgenómica: farmacogenómica (estudio cuantitativo de cómo la genética afecta a la respuesta del huésped a los fármacos) y fisiómica (dinámica y funciones fisiológicas de organismos enteros) cite:Schneider_2011. El estudio de las ómicas en biología molecular se beneficia de una serie de nuevas tecnologías que pueden ayudar a explicar vías, redes y procesos celulares, tanto normales como anormales, mediante el seguimiento simultáneo de miles de componentes moleculares. Las ómicas abarcan un conjunto cada vez más amplio de ramas, desde la *genómica* (el estudio cuantitativo de los genes codificantes de proteínas, los elementos reguladores y las secuencias no codificantes), la *transcriptómica* (ARN y expresión de genes), la *proteómica* (por ejemplo, centrada en la abundancia de proteínas) y la *metabolómica* (metabolitos y redes metabólicas) hasta los avances en la era de la biología y la medicina postgenómica: farmacogenómica (estudio cuantitativo de cómo la genética afecta a la respuesta del huésped a los fármacos) y fisiómica (dinámica y funciones fisiológicas de organismos enteros) cite:Schneider_2011.
@@ -279,11 +296,31 @@ El uso de /Deep Learning/ para la corrección de errores de secuenciación es un
5. Introducción al uso de Tensorflow y Keras para /Deep Learning/ 5. Introducción al uso de Tensorflow y Keras para /Deep Learning/
6. Estudio de aplicación de Tensorflow/Keras a la corrección de errores de secuenciación en base a los datos sintetizados previamente 6. Estudio de aplicación de Tensorflow/Keras a la corrección de errores de secuenciación en base a los datos sintetizados previamente
* Planificación del proyecto
El presente proyecto pertenece al ámbito de la bioinformática, lo cual implica que es un trabajo interdisciplinar. Por lo tanto, se requiere una formación previa en áreas del conocimiento muy diversas. En particular, fue necesario un estudio de las bases bioquímicas, las /NGS/, la recombinación VDJ de los linfocitos T, el lenguaje de programación R, el /Deep Learning/ y el funcionamiento de Tensorflow y Keras.
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
La razón de esta segmentación se expone en la sección siguiente.
#+CAPTION: Cronograma del proyecto
#+ATTR_HTML: :height 30% :width 90%
#+NAME: fig:gantt
[[./assets/figures/gantt.png]]
La estimación temporal inicial del proyecto no se vio representada por la implementación real del mismo. Tanto la extracción de secuencias CDR3 mediante alineamiento múltiple, como el preprocesamiento de las secuencias para el uso de Tensorflow ocuparon la mayor parte del desarrollo del sistema.
Estas observaciones no son sorprendentes; en la práctica se ha comprobado que el preprocesamiento de los datos supone aproximadamente el 80% del esfuerzo total de los proyectos de /machine learning/ cite:Zhang_2003. Incorporamos esta información a nuestro bagaje académico, como una forma de /feedback/ positivo para mejorar la estimación temporal de los futuros proyectos relacionados con técnicas de aprendizaje automático.
* Diseño y descripción del sistema * 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 #+CAPTION: Descripción del proyecto
#+NAME: tab:pipeline #+NAME: tab:pipeline
@@ -294,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: 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 #+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 50% :width 75% #+ATTR_HTML: :height 80% :width 70%
#+NAME: fig:pipeline #+NAME: fig:pipeline
[[./assets/figures/pipeline.png]] [[./assets/figures/pipeline.png]]
@@ -303,7 +340,7 @@ Procedemos a la exposición de cada parte del /pipeline/, por separado, resaltan
** locigenesis ** locigenesis
locigenesis es una herramienta que genera un receptor de células T (TCR) humano, lo pasa por una herramienta de simulación de lectura de secuencias y extrae las regiones CDR3. 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 y, finalmente, extraer las regiones CDR3 tras la introducción de errores.
El objetivo de este proyecto es generar tanto secuencias de CDR3 con y sin errores de secuenciación, con el fin de crear /datasets/ para entrenar un algoritmo de /Deep Learning/. El objetivo de este proyecto es generar tanto secuencias de CDR3 con y sin errores de secuenciación, con el fin de crear /datasets/ para entrenar un algoritmo de /Deep Learning/.
@@ -313,28 +350,48 @@ 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 - CuReSim: simulador de secuenciación que emula la tecnología /Ion Torrent/ cite:Caboche_2014
- Biostrings: manipulación de secuencias biológicas cite:Biostrings - 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: 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:
1. Generación de diversas secuencias de la cadena \beta del TCR 1. Generación de diversas secuencias de la cadena \beta del TCR (con la estructura génica VDJ y estando CDR3 comprendido en las uniones de los 3 segmentos)
2. Exportación de las secuencias a un archivo en formato FASTQ (tanto CDR3 como la secuencia VDJ completa) 2. Exportación de las secuencias a un archivo en formato FASTQ (tanto CDR3 por separado como la secuencia VDJ completa)
3. Simulación de una secuenciación mediante CuReSim, y almacenamiento de las secuencias con errores 3. Simulación de una secuenciación de VDJ mediante CuReSim, y almacenamiento de las secuencias con errores
4. Alineamiento de las secuencias completas con errores, y extracción de CDR3 a partir de una heurística 4. Alineamiento de las secuencias completas con errores con las secuencias V y J de referencia, y extracción de CDR3 a partir de una heurística
5. Exportación de las secuencias de CDR3 con errores y sin errores en archivos con formato FASTQ 5. Exportación de las secuencias de CDR3 con errores y sin errores en archivos con formato FASTQ
Cabe mencionar que la simulación de secuenciación se realiza con la secuencia VDJ completa y no sólo con CDR3 (la región problemática cuya variabilidad dificulta la corrección de errores) debido a que en la mayoría de plataformas de secuenciación la tasa de error aumenta con la longitud de la secuencia. Por ello, en aras de emular las condiciones más cercanas a la realidad, es importante secuenciar la región CDR3 junto con las secuencias colindantes V y J y posteriormente extraer esta región de interés gracias a los alineamientos con los segmentos génicos de referencia.
** locimend ** locimend
locimend es un algoritmo de /Deep Learning/ que corrige errores de secuenciación de secuencias de ADN. locimend es un algoritmo de /Deep Learning/ que corrige errores de secuenciación de secuencias de ADN.
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. 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/
- Capa densa
#+CAPTION: Arquitectura de la red neuronal
#+ATTR_HTML: :height 30% :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)
- API REST
*** Tecnologías *** Tecnologías
- Tensorflow: creación y ejecución de algoritmos de /machine learning/ cite:tensorflow2015-whitepaper - Tensorflow: creación y ejecución de algoritmos de /machine learning/ cite:tensorflow2015-whitepaper
- Biopython: manipulación de secuencias biológicas cite:Cock_2009 - 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: El entrenamiento del modelo se realiza, a partir de 2 archivos FASTQ, en diferentes pasos:
@@ -348,8 +405,65 @@ 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 8. Entrenamiento del algoritmo de /Deep Learning/, con los datos preprocesados
9. Obtención de las métricas que miden el rendimiento del modelo 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 la 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 ** 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.
Asimismo, en el ámbito de la informática pocos experimentos computacionales son documentados de forma precisa. Por lo general, no existe un registro del flujo de trabajo, la configuración del /hardware/ y el /software/ del equipo, la configuración de los parámetros o las secuencias de invocación de funciones. El código fuente a menudo se revisa sin dejar constancia de ello. Además de dificultar la reproducibilidad de los resultados, estas prácticas acaban impidiendo la productividad de los propios investigadores cite:Stodden13publishingstandards.
Recientemente han surgido nuevos enfoques para lidiar con este problema desde el punto de vista de la resolución de dependencias de un proyecto /software/. En el presente trabajo, usamos el gestor de paquetes Nix cite:inproceedings, para garantizar que los resultados que obtenemos son reproducibles en cualquier máquina.
* Resultados * 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. Este /dataset/ se proporciona en el repositorio de locimend.
Dado que los conjuntos de datos de entrenamiento estaban completamente anotados (\ie aprendizaje supervisado), el problema se formuló como una tarea de clasificación binaria supervisada de predicción de una base dada como error/no error, y el rendimiento se midió en unos /datasets/ de validación y de test.
El entrenamiento del modelo de /Deep Learning/ se efectuó en un PC con un procesador Ryzen 5 2600X (6 núcleos, 12 hebras) y 16 GB de RAM. El tiempo de ejecución fue de 23 minutos.
Presentamos las métricas obtenidas al finalizar el entrenamiento de locimend:
#+CAPTION: Rendimiento de locimend con cada /dataset/
#+NAME: tab:results
| Dataset | Accuracy | AUC |
|------------+----------+------|
| Validación | 0.89 | 0.98 |
| Test | 0.89 | 0.98 |
En definitiva, locimend adquirió una gran capacidad para discernir entre nucleótidos erróneos y correctos, en ambos /datasets/, con una precisión de 0,89 y un área bajo la curva (AUC) de 0,98.
* Conclusiones * Conclusiones
El presente estudio plantea el desarrollo de un sistema bioinformático (denominado locimend) de corrección de errores de secuenciación del ADN, basado en /Deep Learning/, y aplicado a secuencias de la región CDR3 del TCR. Locimend fue entrenado con datos generados /in silico/ (en este mismo proyecto) y demuestra un alto rendimiento de predicción y corrección de errores de secuenciación, comparado con las técnicas utilizadas en el estado del arte. 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 elección de una arquitectura de /deep feedforward network/ se debe a la dificultades encontradas con las demás alternativas. Al tratar de usar una CNN con un /input/ unidimensional, no era posible realizar añadir una capa de /MaxPooling/ y /Flatten/, las cuales son indispensables para un buen rendimiento. En el caso de los /autoencoders/, descartamos su utilización debido a los requisitos de cómputo elevados que son necesarios para realizar un entrenamiento efectivo. Finalmente, las /deep feedforward networks/ con su diseño sencillo y su polivalencia han permitido el desarrollo de un algoritmo con una precisión del 89%. Todos los objetivos del proyecto han sido cumplidos con éxito.
* Futuras mejoras * Futuras mejoras
Los resultados del algoritmo de /Deep Learning/ son satisfactorios aunque presenta ciertas limitaciones.
En primer lugar, 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 del 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 (o simuladores de las mismas) 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 usarlo.
* Disponibilidad del material
El código fuente de locigenesis se encuentra disponible en [[https://git.coolneng.duckdns.org/coolneng/locigenesis][https://git.coolneng.duckdns.org/coolneng/locigenesis]]
El código fuente de locimend se encuentra disponible en [[https://git.coolneng.duckdns.org/coolneng/locimend][https://git.coolneng.duckdns.org/coolneng/locimend]]
* Bibliografía * Bibliografía

Binary file not shown.

163
Presentation.org Normal file
View File

@@ -0,0 +1,163 @@
#+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
#+PANDOC_METADATA: theme:metropolis
* 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.11 |
| 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)
* Secuenciación del ADN
- La secuenciación de ADN es el proceso mediante el cual se determina el orden de los nucleótidos en una secuencia de ADN
- *Primera generación*: secuenciación de Sanger
- *Segunda generación*: /NGS/
- *Tercera generación*: /TGS/
* 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 40%
[[./assets/figures/VDJ.png]]
* Objetivos del proyecto
Detección y corrección de errores de secuenciación del ADN en las secuencias de CDR3
- Aplicación a errores de sustitución e /indels/
** Etapas
- Generación de un /dataset/ para entrenar el algoritmo
- Desarrollo de un algoritmo de /Deep Learning/
- 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 65% :width 65%
[[./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/
* 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
| Tecnologías | Descripción |
|-------------+------------------------------------------------------------------|
| immuneSIM | Generación /in silico/ de repertorios de BCR y TCR |
| CuReSim | Simulador de secuenciación que emula la tecnología /Ion Torrent/ |
| Biostrings | Manipulación de secuencias biológicas |
* 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/
| Tecnologías | Descripción |
|-------------+----------------------------------------------------------|
| Tensorflow | Creación y ejecución de algoritmos de /machine learning/ |
| Biopython | Manipulación de secuencias biológicas |
| FastAPI | /Framework/ web para la creación de APIs |
* 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"
}
#+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

BIN
Presentation.pdf Normal file

Binary file not shown.

View File

@@ -1,5 +1,5 @@
spanish-abstract: "Las nuevas técnicas de secuenciación de ADN (NGS) han revolucionado la investigación en genómica. Estas tecnologías se basan en la secuenciación de millones de fragmentos de ADN en paralelo, cuya reconstrucción se basa en técnicas de bioinformática. Aunque estas técnicas se apliquen de forma habitual, presentan tasas de error significantes que son detrimentales para el análisis de regiones con alto grado de polimorfismo. En este estudio se implementa un nuevo método computacional, locimend, basado en Deep Learning para la corrección de errores de secuenciación de ADN. Se aplica al análisis de la región determinante de complementariedad 3 (CDR3) del receptor de linfocitos T (TCR), generada in silico y posteriorimente sometida a un simulador de secuenciación con el fin de producir errores de secuenciación. Empleando estos datos, entrenamos una red neuronal convolucional (CNN) con el objetivo de generar un modelo computacional que permita la detección y corrección de los errores de secuenciación." spanish-abstract: "Las nuevas técnicas de secuenciación de ADN (NGS) han revolucionado la investigación en genómica. Estas tecnologías se basan en la secuenciación de millones de fragmentos de ADN en paralelo, cuya reconstrucción se basa en técnicas de bioinformática. Aunque estas técnicas se apliquen de forma habitual, presentan tasas de error significantes que son perjudiciales para el análisis de regiones con alto grado de polimorfismo. En este estudio se implementa un nuevo método computacional, locimend, basado en Deep Learning para la corrección de errores de secuenciación de ADN. Se aplica al análisis de la región determinante de complementariedad 3 (CDR3) del receptor de linfocitos T (TCR), generada in silico y posteriorimente sometida a un simulador de secuenciación con el fin de producir errores de secuenciación. Empleando estos datos, entrenamos una deep feedforward network con el objetivo de generar un modelo computacional que permita la detección y corrección de los errores de secuenciación. Los resultados obtenidos demuestran que locimend es un modelo que identifica y corrige los patrones de errores de secuenciación de ADN, obteniendo una precisión de 0,89 y un área debajo de la curva (AUC) de 0,98. La implementación incluye una API REST que realiza la inferencia de la secuencia correcta de ADN, a partir de una secuencia de ADN con errores con el modelo pre-entrenado, con el objetivo de popularizar su uso en la comunidad científica."
spanish-keywords: "deep learning, corrección de errores, receptor de linfocitos T, secuenciación de ADN, inmunología" 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), generated in silico and subsequently subjected to a sequencing simulator in order to produce sequencing errors. Using these data, we trained a convolutional neural network (CNN) with the aim of generating a computational model that allows the detection and correction of sequencing errors." 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 deep feedforward 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" 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."

View File

@@ -470,7 +470,9 @@
\textbf{Autor}\\ {$author$}\\[2.5ex] \textbf{Autor}\\ {$author$}\\[2.5ex]
\textbf{Directores}\\ \textbf{Directores}\\
{Carlos Cano Gutiérrez}\\[2cm] {Carlos Cano Gutiérrez}\\[2.5ex]
\textbf{Mentores}\\
{María Soledad Benítez Cantos}\\[2cm]
\includegraphics[width=0.3\textwidth]{assets/logo-ceuta.jpg}\\[0.1cm] \includegraphics[width=0.3\textwidth]{assets/logo-ceuta.jpg}\\[0.1cm]
\textsc{Facultad de Educación, Tecnología y Economía de Ceuta}\\ \textsc{Facultad de Educación, Tecnología y Economía de Ceuta}\\
\textsc{---}\\ \textsc{---}\\
@@ -492,7 +494,7 @@
\textbf{Keywords:} $english-keywords$ \textbf{Keywords:} $english-keywords$
\end{center} \end{center}
\chapter*{Agradecimientos} \chapter*{Agradecimientos}
$acknowledgements$ $acknowledgments$
\tableofcontents \tableofcontents
\listoftables{} \listoftables{}
\listoffigures{} \listoffigures{}

View File

@@ -1356,3 +1356,100 @@
year = 2019, year = 2019,
note = {R package version 2.50.2}, note = {R package version 2.50.2},
} }
@Article{Zhang_2003,
author = {Zhang, Shichao and Zhang, Chengqi and Yang, Qiang},
title = {Data preparation for data mining},
journal = {Applied Artificial Intelligence},
year = 2003,
volume = 17,
number = {5-6},
month = {May},
pages = {375381},
issn = {1087-6545},
doi = {10.1080/713827180},
url = {http://dx.doi.org/10.1080/713827180},
publisher = {Informa UK Limited}
}
@Article{Lopez_Moreno_2016,
author = {Lopez-Moreno, Ignacio and Gonzalez-Dominguez, Javier and
Martinez, David and Plchot, Oldřich and Gonzalez-Rodriguez,
Joaquin and Moreno, Pedro J.},
title = {On the use of deep feedforward neural networks for
automatic language identification},
journal = {Computer Speech & Language},
year = 2016,
volume = 40,
month = {Nov},
pages = {4659},
issn = {0885-2308},
doi = {10.1016/j.csl.2016.03.001},
url = {http://dx.doi.org/10.1016/j.csl.2016.03.001},
publisher = {Elsevier BV}
}
@Article{Chakraborty_2020,
author = {Chakraborty, Sourav and Choudhary, Arun Kumar and Sarma,
Mausumi and Hazarika, Manuj Kumar},
title = {Reaction order and neural network approaches for the
simulation of COVID-19 spreading kinetic in India},
journal = {Infectious Disease Modelling},
year = 2020,
volume = 5,
pages = {737747},
issn = {2468-0427},
doi = {10.1016/j.idm.2020.09.002},
url = {http://dx.doi.org/10.1016/j.idm.2020.09.002},
publisher = {Elsevier BV}
}
@Article{Mansoor_2021,
author = {Mansoor, Muhammad and Grimaccia, Francesco and Leva, Sonia
and Mussetta, Marco},
title = {Comparison of echo state network and feed-forward neural
networks in electrical load forecasting for demand response
programs},
journal = {Mathematics and Computers in Simulation},
year = 2021,
volume = 184,
month = {Jun},
pages = {282293},
issn = {0378-4754},
doi = {10.1016/j.matcom.2020.07.011},
url = {http://dx.doi.org/10.1016/j.matcom.2020.07.011},
publisher = {Elsevier BV}
}
@Article{Baker_2016,
author = {Baker, Monya},
title = {1,500 scientists lift the lid on reproducibility},
journal = {Nature},
year = 2016,
volume = 533,
number = 7604,
month = {May},
pages = {452454},
issn = {1476-4687},
doi = {10.1038/533452a},
url = {http://dx.doi.org/10.1038/533452a},
publisher = {Springer Science and Business Media LLC}
}
@MISC{Stodden13publishingstandards,
author = {Victoria Stodden and Jonathan Borwein and David H. Bailey},
title = {Publishing Standards for Computational Science: “Setting
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 = {},
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

BIN
assets/figures/gantt.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 69 KiB

BIN
assets/figures/locimend.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 85 KiB