Compare commits

..

3 Commits

Author SHA1 Message Date
coolneng bce8008e78
Apply changes and remove comments 2021-07-06 18:40:34 +02:00
Marisol Benítez-Cantos b4695cb351 Suggestions and comments for Dissertation.org 2021-07-06 12:01:28 +00:00
Marisol Benítez-Cantos 91839cb4b4 Review and suggestions to Dissertation.org (up to Gradient descent) 2021-07-06 11:16:44 +00:00
2 changed files with 40 additions and 44 deletions

View File

@ -20,9 +20,9 @@ El ácido desoxirribonucleico (ADN) y el ácido ribonucleico (ARN) son los repos
#+NAME: fig:central-dogma #+NAME: fig:central-dogma
[[./assets/figures/central-dogma.png]] [[./assets/figures/central-dogma.png]]
Tanto el ADN como el ARN son ácidos nucleicos, formados por cadenas de nucleótidos. Los nucleótidos son las unidades monoméricas de los ácidos nucleicos. El ADN contiene las bases adenina (A), guanina (G) citosina (C) y timina (T), mientras que el ARN contiene A, G y C, pero tiene uracilo (U) en lugar de timina (T) cite:book:211898. Tanto el ADN como el ARN son ácidos nucleicos compuestos por unidades monoméricas llamadas nucleótidos, que a su vez contienen una base nitrogenada. El ADN está compuesto por las bases adenina (A), guanina (G) citosina (C) y timina (T), mientras que el ARN contiene uracilo (U) en lugar de timina (T) cite:book:211898.
Hay muy pocos principios firmes en biología. A menudo se dice, de una forma u otra, que la única regla real es que no hay reglas, es decir, que se pueden encontrar excepciones a cada principio fundamental si se busca lo suficiente. El principio conocido como el Dogma central de la biología molecular parece ser una excepción a esta regla de excepción ubicua cite:CRICK1970. El dogma central de la biología molecular establece que una vez que la información ha pasado a proteína no puede volver a salir; \ie la transferencia de información de ácido nucleico a ácido nucleico, o de ácido nucleico a proteína puede ser posible, pero la transferencia de proteína a proteína, o de proteína a ácido nucleico es imposible cite:crick1958protein. Hay muy pocos principios firmes en biología. A menudo se dice, de una forma u otra, que la única regla real es que no hay reglas, es decir, que se pueden encontrar excepciones a cada principio fundamental si se busca lo suficiente. El principio conocido como el "Dogma Central de la Biología Molecular" parece ser una excepción a esta regla de excepción ubicua cite:CRICK1970. El Dogma Central establece que, una vez que la información ha pasado a proteína, no puede volver a salir; \ie la transferencia de información de ácido nucleico a ácido nucleico, o de ácido nucleico a proteína puede ser posible, pero la transferencia de proteína a proteína, o de proteína a ácido nucleico es imposible cite:crick1958protein.
Las proteínas se producen mediante el proceso de traducción, que tiene lugar en los ribosomas y está dirigido por el ARN mensajero (ARNm). El mensaje genético codificado en el ADN se transcribe primero en ARNm, y la secuencia de nucleótidos del ARNm se traduce en la secuencia de aminoácidos de la proteína. El ARNm que especifica la secuencia de aminoácidos de la proteína se lee en codones, que son conjuntos de tres nucleótidos que especifican aminoácidos individuales cite:book:211898. El código genético se muestra a continuación: Las proteínas se producen mediante el proceso de traducción, que tiene lugar en los ribosomas y está dirigido por el ARN mensajero (ARNm). El mensaje genético codificado en el ADN se transcribe primero en ARNm, y la secuencia de nucleótidos del ARNm se traduce en la secuencia de aminoácidos de la proteína. El ARNm que especifica la secuencia de aminoácidos de la proteína se lee en codones, que son conjuntos de tres nucleótidos que especifican aminoácidos individuales cite:book:211898. El código genético se muestra a continuación:
@ -30,21 +30,21 @@ Las proteínas se producen mediante el proceso de traducción, que tiene lugar e
#+NAME: fig:genetic-code #+NAME: fig:genetic-code
[[./assets/figures/genetic-code.png]] [[./assets/figures/genetic-code.png]]
Por lo tanto, si elucidamos la información contenida en el ADN, obtenemos información sobre las biomoléculas que realizan las diferentes tareas fisiológicas y metabólica (e.g. ARN, proteínas). Por lo tanto, si elucidamos la información contenida en el ADN, obtenemos información sobre las biomoléculas que realizan las diferentes tareas fisiológicas y metabólicas (e.g. ARN, proteínas).
** Secuenciación de ADN ** Secuenciación de 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. En los años 70, Sanger \etal desarrollaron métodos para secuenciar el ADN mediante técnicas de terminación de cadena cite:Sanger5463. Este avance revolucionó la biología, proporcionando las herramientas necesarias para descifrar genes, y posteriormente, genomas completos. La demanda creciente de un mayor rendimiento llevó a la automatización y paralelización de las tareas de secuenciación. Gracias a estos avances, la técnica de Sanger permitió determinar la primera secuencia del genoma humano en 2004 (Proyecto Genoma Humano). Cabe destacar que se estima que la secuencia final cubría aproximadamente el 92% del genoma cite:InternationalHumanGenomeSequencingConsortium2004. La secuenciación de ADN es el proceso mediante el cual se determina el orden de los nucleótidos en una secuencia de ADN. En los años 70, Sanger \etal desarrollaron métodos para secuenciar el ADN mediante técnicas de terminación de cadena cite:Sanger5463. Este avance revolucionó la biología, proporcionando las herramientas necesarias para descifrar genes, y posteriormente, genomas completos. La demanda creciente de un mayor rendimiento llevó a la automatización y paralelización de las tareas de secuenciación. Gracias a estos avances, la técnica de Sanger permitió determinar la primera secuencia del genoma humano en 2004 (Proyecto Genoma Humano). Cabe destacar que se estima que la secuencia final cubría aproximadamente el 92% del genoma debido a las limitaciones de la propia técnica de secuenciación y ensamblado cite:InternationalHumanGenomeSequencingConsortium2004.
Sin embargo, el Proyecto Genoma Humano requerió una gran cantidad de tiempo y recursos, y era evidente que se necesitaban tecnologías más rápidas, de mayor rendimiento y más baratas. Por esta razón, en el mismo año (2004) el /National Human Genome Research Institute/ (NHGRI) puso en marcha un programa de financiación con el objetivo de reducir el coste de la secuenciación del genoma humano a 1000 dólares en diez años cite:Schloss2008. Esto estimuló el desarrollo y la comercialización de las tecnologías de secuenciación de alto rendimiento o /Next-Generation Sequencing/ (NGS), en contraposición con el método automatizado de Sanger, que se considera una tecnología de primera generación. Sin embargo, el Proyecto Genoma Humano requerió una gran cantidad de tiempo y recursos, y era evidente que se necesitaban tecnologías más rápidas, de mayor rendimiento y más baratas. Por esta razón, en el mismo año (2004) el /National Human Genome Research Institute/ (NHGRI) puso en marcha un programa de financiación con el objetivo de reducir el coste de la secuenciación del genoma humano a 1000 dólares en diez años cite:Schloss2008. Esto estimuló el desarrollo y la comercialización de las tecnologías de secuenciación de alto rendimiento o /Next-Generation Sequencing/ (NGS), en contraposición con el método automatizado de Sanger, que se considera una tecnología de primera generación.
** Técnicas de secuenciación de alto rendimiento ** Técnicas de secuenciación de alto rendimiento
Estos nuevos métodos de secuenciación proporcionan tres mejoras importantes: en primer lugar, en lugar de requerir la clonación bacteriana de los fragmentos de ADN, se basan en la preparación de bibliotecas de moléculas en un sistema sin células. En segundo lugar, en lugar de cientos, se producen en paralelo de miles a muchos millones de reacciones de secuenciación. Finalmente, estos resultados de secuenciación se detectan directamente sin necesidad de electroforesis cite:vanDijk2014. Estos nuevos métodos de secuenciación proporcionan tres mejoras importantes: en primer lugar, no requieren la clonación bacteriana de los fragmentos de ADN, sino que se basan en la preparación de bibliotecas de moléculas en un sistema sin células. En segundo lugar, en lugar de cientos, se producen en paralelo de miles a muchos millones de reacciones de secuenciación. Finalmente, estos resultados de secuenciación se detectan directamente sin necesidad de una técnina experimental adicional llamada electroforesis cite:vanDijk2014.
Actualmente, se encuentran en desarrollo las tecnologías de tercera generación de secuenciación (/Third-Generation Sequencing/). Existe un debate considerable sobre la diferencia entre la segunda y tercera generación de secuenciación, la secuenciación en tiempo real y la divergencia simple con respecto a las tecnologías anteriores deberían ser las características definitorias de la tercera generación. Aquí consideramos que las tecnologías de tercera generación son aquellas capaces de secuenciar moléculas individuales, negando el requisito de amplificación del ADN que comparten todas las tecnologías anteriores cite:HEATHER20161. Actualmente, se encuentran en desarrollo las tecnologías de tercera generación de secuenciación (/Third-Generation Sequencing/). Existe un debate considerable sobre la diferencia entre la segunda y tercera generación de secuenciación; la secuenciación en tiempo real y la divergencia simple con respecto a las tecnologías anteriores deberían ser las características definitorias de la tercera generación. En este trabajo se considera que las tecnologías de tercera generación son aquellas capaces de secuenciar moléculas individuales, negando el requisito de amplificación del ADN que comparten todas las tecnologías anteriores cite:HEATHER20161.
Estas nuevas técnicas han demostrado su valor, con avances que han permitido secuenciar el genoma humano completo, incluyendo las secuencias repetitivas (de telómero a telómero). Combinando los aspectos complementarios de las tecnologías Oxford Nanopore y PacBio HiFi, 2111 nuevos genes, de los cuales 140 son codificantes, fueron descubiertos en el genoma humano cite:Nurk2021.05.26.445798. Estas nuevas técnicas han demostrado su valor con avances que han permitido secuenciar el genoma humano completo, incluyendo las secuencias repetitivas (de telómero a telómero) que no pudieron dilucidarse en el Proyecto Genoma Humano. Combinando los aspectos complementarios de las tecnologías Oxford Nanopore y PacBio HiFi, 2111 nuevos genes, de los cuales 140 son codificantes, fueron descubiertos en el genoma humano en el año 2021 cite:Nurk2021.05.26.445798.
** Limitaciones de los métodos paralelos ** Limitaciones de los métodos paralelos
@ -73,7 +73,7 @@ Este problema se agrava en el análisis de repertorios inmunológicos, debido a
** Variedad genética en el sistema inmunitario ** Variedad genética en el sistema inmunitario
La capacidad del sistema inmunitario adaptativo para responder a cualquiera de los numerosos antígenos extraños potenciales a los que puede estar expuesta una persona depende de los receptores altamente polimórficos expresados por las células B (inmunoglobulinas) y las células T (receptores de células T [TCR]). La especificidad de las células T viene determinada principalmente por la secuencia de aminoácidos codificada en los bucles de la tercera región determinante de la complementariedad (CDR3) cite:pmid19706884. La capacidad del sistema inmunitario adaptativo para responder a cualquiera de los numerosos antígenos extraños potenciales a los que puede estar expuesta una persona depende de los receptores altamente polimórficos expresados por las células B (inmunoglobulinas o anticuerpos) y las células T (receptores de células T [TCR]). La especificidad de las células T viene determinada principalmente por la secuencia de aminoácidos codificada en los bucles de la tercera región determinante de la complementariedad (CDR3) cite:pmid19706884.
En el timo, durante el desarrollo de los linfocitos T, se selecciona al azar un segmento génico de cada familia (V, D y J) mediante un proceso conocido como recombinación somática o recombinación V(D)J, de modo que se eliminan del genoma del linfocito los no seleccionados y los segmentos V(D)J escogidos quedan contiguos, determinando la secuencia de las subunidades del TCR y, por tanto, la especificidad de antígeno de la célula T. La selección aleatoria de segmentos junto con la introducción o pérdida de nucleótidos en sus uniones son los responsables directos de la variabilidad de TCR, cuya estimación es del orden de $10^{15}$ posibles especies distintas o clonotipos cite:BenítezCantos-Master. En el timo, durante el desarrollo de los linfocitos T, se selecciona al azar un segmento génico de cada familia (V, D y J) mediante un proceso conocido como recombinación somática o recombinación V(D)J, de modo que se eliminan del genoma del linfocito los no seleccionados y los segmentos V(D)J escogidos quedan contiguos, determinando la secuencia de las subunidades del TCR y, por tanto, la especificidad de antígeno de la célula T. La selección aleatoria de segmentos junto con la introducción o pérdida de nucleótidos en sus uniones son los responsables directos de la variabilidad de TCR, cuya estimación es del orden de $10^{15}$ posibles especies distintas o clonotipos cite:BenítezCantos-Master.
@ -82,13 +82,13 @@ En el timo, durante el desarrollo de los linfocitos T, se selecciona al azar un
#+LABEL: fig:vdj-recombination #+LABEL: fig:vdj-recombination
[[./assets/figures/VDJ.png]] [[./assets/figures/VDJ.png]]
Debido a la diversidad de uniones, las moléculas de anticuerpos y TCR muestran la mayor variabilidad, formando CDR3. De hecho, debido a la diversidad de uniones, el número de secuencias de aminoácidos que están presentes en las regiones CDR3 de las de las moléculas de Ig y TCR es mucho mayor que el número que pueden ser codificadas por segmentos de genes de la línea germinal cite:abbas_lichtman_pillai_2017. Debido a la diversidad generada en esta recombinación aleatoria, las moléculas de anticuerpos y TCR muestran una enorme variabilidad de secuencias CDR3. De hecho, el número de secuencias de aminoácidos que están presentes en las regiones CDR3 de las moléculas de anticuerpos y TCR es mucho mayor que las que pueden ser codificadas por segmentos de genes de la línea germinal cite:abbas_lichtman_pillai_2017.
Frente a la evidencia recaudada, diversos métodos computacionales basados en la inteligencia artificial se han desarrollado para aliviar estos impedimentos. Frente a la evidencia recaudada, diversos métodos computacionales basados en la inteligencia artificial se han desarrollado para aliviar estos impedimentos e intentar discernir la verdadera variabilidad de secuencia de los errores de secuenciación inherentes a las tecnologías actuales.
** Inteligencia artificial ** Inteligencia artificial
La inteligencia artificial (IA) es uno de los campos más nuevos de la ciencia y la ingeniería. La investigación empezó después de la Segunda Guerra Mundial, y el término se acuñó en 1956, en la conferencia de Dartmouth College. La definición de inteligencia artificial sigue generando debate a día de hoy, por ende acotaremos la definición de inteligencia artificial al estudio de los agentes inteligentes cite:book:771224. La inteligencia artificial (IA) es uno de los campos más nuevos de la ciencia y la ingeniería. La investigación empezó después de la Segunda Guerra Mundial, y el término se acuñó en 1956, en la conferencia de Dartmouth College. La definición de inteligencia artificial sigue generando debate a día de hoy. Por ende acotaremos la definición de inteligencia artificial al estudio de los agentes inteligentes cite:book:771224.
Un agente es cualquier elemento capaz de percibir su entorno mediante sensores y actuar en consecuencia en ese entorno mediante actuadores. Un agente inteligente es aquel que actúa para conseguir el mejor resultado o, cuando hay incertidumbre, el mejor resultado esperado. En términos matemáticos, formulamos que el comportamiento de un agente se describe por la función de agente que asigna a cualquier entrada una acción cite:book:771224. Un agente es cualquier elemento capaz de percibir su entorno mediante sensores y actuar en consecuencia en ese entorno mediante actuadores. Un agente inteligente es aquel que actúa para conseguir el mejor resultado o, cuando hay incertidumbre, el mejor resultado esperado. En términos matemáticos, formulamos que el comportamiento de un agente se describe por la función de agente que asigna a cualquier entrada una acción cite:book:771224.
@ -108,7 +108,7 @@ Los sistemas de conocimiento (década de 1970) aprovecharon conocimiento especí
Una red neuronal artificial es un modelo de computación bioinspirado, formado por capas de neuronas artificiales. Comenzaremos definiendo el concepto de neurona artificial, con el fin de introducir la noción de red neuronal artificial de forma clara y concisa. Una red neuronal artificial es un modelo de computación bioinspirado, formado por capas de neuronas artificiales. Comenzaremos definiendo el concepto de neurona artificial, con el fin de introducir la noción de red neuronal artificial de forma clara y concisa.
Una neurona artificial es un modelo de una neurona biológica, cada neurona recibe un conjunto de señales y, al dispararse, transmite una señal a las neuronas interconectadas. Las entradas (/inputs/) se inhiben o amplifican mediante unos pesos numéricos asociados a cada conexión. El disparo, \ie activación, se controla a través de la función de activación. La neurona recoge todas las señales entrantes y calcula una señal de entrada neta en función de los pesos respectivos. La señal de entrada neta sirve de entrada a la función de activación que calcula la señal de salida cite:book:80129. Una neurona artificial es un modelo de una neurona biológica, donde cada neurona recibe un conjunto de señales y, al dispararse, transmite una señal a las neuronas interconectadas. Las entradas (/inputs/) se inhiben o amplifican mediante unos pesos numéricos asociados a cada conexión. El disparo, \ie activación, se controla a través de la función de activación. La neurona recoge todas las señales entrantes y calcula una señal de entrada neta en función de los pesos respectivos. La señal de entrada neta sirve de entrada a la función de activación que calcula la señal de salida cite:book:80129.
#+CAPTION: Diagrama de una neurona artificial cite:book:80129 #+CAPTION: Diagrama de una neurona artificial cite:book:80129
#+NAME: fig:artificial-neuron #+NAME: fig:artificial-neuron
@ -122,7 +122,7 @@ y= f \left(\sum\limits_{i=0}^{n} w_{i}x_{i} - T \right)
donde $y$ es la salida del nodo, $f$ es la función de activación, $w_i$ es el peso de la entrada $x_{i}$ , y $T$ es el valor del umbral cite:Zou2009. donde $y$ es la salida del nodo, $f$ es la función de activación, $w_i$ es el peso de la entrada $x_{i}$ , y $T$ es el valor del umbral cite:Zou2009.
Una red neuronal artificial (ANN) es una red de capas de neuronas artificiales. Una ANN está formada por una capa de entrada, capas ocultas y una capa de salida. Las neuronas de una capa están conectadas, total o parcialmente, a las neuronas de la capa siguiente. También son posibles las conexiones de retroalimentación con las capas anteriores cite:book:80129. La estructura típica de una ANN es la siguiente: Una red neuronal artificial (ANN, por sus siglas en inglés) es una red de capas de neuronas artificiales. Una ANN está formada por una capa de entrada, capas ocultas y una capa de salida. Las neuronas de una capa están conectadas, total o parcialmente, a las neuronas de la capa siguiente. También son posibles las conexiones de retroalimentación con las capas anteriores cite:book:80129. La estructura típica de una ANN es la siguiente:
#+CAPTION: Estructura de una red neuronal artificial cite:book:80129 #+CAPTION: Estructura de una red neuronal artificial cite:book:80129
#+ATTR_HTML: :height 30% :width 50% #+ATTR_HTML: :height 30% :width 50%
@ -133,7 +133,7 @@ Los principios básicos de las redes neuronales artificiales fueron formulados p
*** Back propagation *** Back propagation
El algoritmo de /back propagation/ (BP) permite establecer los pesos y, por tanto, entrenar los perceptrones multicapa. Esto abrió el camino para el uso de las redes neuronales multicapa. La disponibilidad de un método riguroso para fijar los pesos intermedios, \ie para entrenar las capas ocultas, impulsó el desarrollo de las ANN, superando las deficiencias de la capa única propuesta por Minsky cite:book:2610592. Los autores de la publicación original que describió este algoritmo sintetizan su funcionamiento a alto nivel: El algoritmo de /back propagation/ permite establecer los pesos y, por tanto, entrenar los perceptrones multicapa. Esto abrió el camino para el uso de las redes neuronales multicapa. La disponibilidad de un método riguroso para fijar los pesos intermedios, \ie para entrenar las capas ocultas, impulsó el desarrollo de las ANN, superando las deficiencias de la capa única propuesta por Minsky cite:book:2610592. Los autores de la publicación original que describió este algoritmo sintetizan su funcionamiento a alto nivel:
#+BEGIN_QUOTE #+BEGIN_QUOTE
Este algoritmo ajusta iterativamente los pesos de cada conexión, con el objetivo de minimizar la función de pérdida (\ie obtener la menor diferencia entre la salida de la ANN y el valor esperado). Como resultado de ello, las capas ocultas llegan a representar características importantes del dominio del problema, y las regularidades de la tarea son captadas por las interacciones de estas unidades. La capacidad de crear nuevas características útiles distingue a la retropropagación de otros métodos anteriores más sencillos, como el procedimiento de convergencia del perceptrón cite:Rumelhart1986. Este algoritmo ajusta iterativamente los pesos de cada conexión, con el objetivo de minimizar la función de pérdida (\ie obtener la menor diferencia entre la salida de la ANN y el valor esperado). Como resultado de ello, las capas ocultas llegan a representar características importantes del dominio del problema, y las regularidades de la tarea son captadas por las interacciones de estas unidades. La capacidad de crear nuevas características útiles distingue a la retropropagación de otros métodos anteriores más sencillos, como el procedimiento de convergencia del perceptrón cite:Rumelhart1986.
@ -143,10 +143,10 @@ Asimismo el algoritmo de /back propagation/ es un enfoque para calcular los grad
*** Gradient descent *** Gradient descent
El /gradient descent/ es una forma de minimizar una función objetivo parametrizada por los parámetros de un modelo (e.g. pesos de una neurona artificial) mediante la actualización de los parámetros en la dirección opuesta al gradiente de la función objetivo con respecto a los parámetros, \ie seguimos la dirección de la pendiente de la superficie creada por la función objetivo cuesta abajo hasta llegar a un mínimo local o global cite:ruder2016overview. El /gradient descent/ es una forma de minimizar una función objetivo parametrizada por las variables de un modelo (e.g. pesos de una neurona artificial) mediante la actualización de los éstas en la dirección opuesta al gradiente de la función objetivo con respecto a los parámetros, \ie siguiendo la dirección de la pendiente de la superficie creada por la función objetivo hacia abajo hasta llegar a un mínimo local o global cite:ruder2016overview.
#+CAPTION: Diagrama del algoritmo de /gradient descent/. Comenzando en el punto inicial $w^0$ hacemos nuestra primera aproximación a $g(w)$ en el punto $(w^0,g(w^0))$ en la función (mostrada como un punto negro hueco) con la aproximación en serie de Taylor de primer orden dibujada en rojo. Moviéndonos en la dirección de descenso del gradiente negativo proporcionada por esta aproximación llegamos a un punto $w^1=w^0-\alpha\frac{d}{dw}g(w^0)$. A continuación, repetimos este proceso en $w^1$, moviéndonos en la dirección del gradiente negativo allí, y así sucesivamente. cite:book:2530718 #+CAPTION: Diagrama del algoritmo de /gradient descent/. Comenzando en el punto inicial $w^0$ hacemos nuestra primera aproximación a $g(w)$ en el punto $(w^0,g(w^0))$ en la función (mostrada como un punto negro hueco) con la aproximación en serie de Taylor de primer orden dibujada en rojo. Moviéndonos en la dirección de descenso del gradiente negativo proporcionada por esta aproximación llegamos a un punto $w^1=w^0-\alpha\frac{d}{dw}g(w^0)$. A continuación, repetimos este proceso en $w^1$, moviéndonos en la dirección del gradiente negativo allí, y así sucesivamente. cite:book:2530718
#+ATTR_HTML: :height 25% :width 80% #+ATTR_HTML: :height 25% :width 70%
#+NAME: fig:gradient-descent #+NAME: fig:gradient-descent
[[./assets/figures/gradient-descent.png]] [[./assets/figures/gradient-descent.png]]
@ -162,18 +162,16 @@ Este proceso, junto con sus variantes, es el algoritmo de optimización local m
** Hacia el Deep Learning ** Hacia el Deep Learning
El /Deep Learning/ es un subconjunto del /machine learning/, en el cual se utiliza como modelo de computación las redes neuronales artificiales (ANN), con múltiples capas ocultas. Este enfoque trata de resolver el problema de una buena capacidad expresiva de las redes neuronales, sin el aumento exponencial del número de neuronas cite:DBLP:journals/corr/WangRX17. El /Deep Learning/ es un subconjunto del /machine learning/, en el cual se utiliza como modelo de computación las redes neuronales artificiales (ANN) con múltiples capas ocultas. Este enfoque trata de resolver el problema de una buena capacidad expresiva de las redes neuronales, sin el aumento exponencial del número de neuronas cite:DBLP:journals/corr/WangRX17.
#+CAPTION: Diferencia entre inteligencia artificial, /machine learning/ y /deep learning/ #+CAPTION: Diferencia entre inteligencia artificial, /machine learning/ y /deep learning/
#+ATTR_HTML: :height 25% :width 80% #+ATTR_HTML: :height 25% :width 80%
#+NAME: fig:ai-ml-dl #+NAME: fig:ai-ml-dl
[[./assets/figures/ai-ml-dl.png]] [[./assets/figures/ai-ml-dl.png]]
La pregunta sobre cómo mantener esta capacidad expresiva de la red y al mismo tiempo reducir el número de unidades de cálculo se ha planteado durante años. Intuitivamente, se sugirió que es natural buscar redes más profundas porque 1) el sistema neuronal humano es una arquitectura profunda y 2) los humanos tienden a representar conceptos en un nivel de abstracción como la composición de conceptos en niveles inferiores. Actualmente, la solución es construir arquitecturas más profundas, \ie redes neuronales con más capas ocultas cite:DBLP:journals/corr/WangRX17. La cuestión sobre cómo mantener esta capacidad expresiva de la red y al mismo tiempo reducir el número de unidades de cálculo se ha planteado durante años. Intuitivamente, se sugirió que es natural buscar redes más profundas porque 1) el sistema neuronal humano es una arquitectura profunda y 2) los humanos tienden a representar conceptos en un nivel de abstracción como la composición de conceptos en niveles inferiores. Actualmente, la solución es construir arquitecturas más profundas, \ie redes neuronales con más capas ocultas cite:DBLP:journals/corr/WangRX17.
En la actualidad, los avances tanto en potencia de cálculo del /hardware/, especialmente en las tarjetas gráficas (GPU) cite:Cireşan2010, junto con la disponibilidad de grandes /datasets/ cite:book:771224 han permitido que esta disciplina prospere. En la actualidad, los avances tanto en potencia de cálculo del /hardware/, especialmente en las tarjetas gráficas (GPU) cite:Cireşan2010, junto con la disponibilidad de grandes /datasets/ cite:book:771224 han permitido que el aprendizaje profundo prospere y mejore drásticamente el estado del arte en muchas tareas de inteligencia artificial, como la detección de objetos, el reconocimiento del habla o la traducción automática. Su naturaleza de arquitectura profunda otorga a esta disciplina la posibilidad de resolver muchas tareas de IA más complicadas cite:DBLP:journals/corr/WangRX17. Como resultado, los investigadores están extendiendo el aprendizaje profundo a una variedad de diferentes dominios y tareas modernas:
Este área de conocimiento ha mejorado drásticamente el estado del arte en muchas tareas de inteligencia artificial, como la detección de objetos, el reconocimiento del habla o la traducción automática. Su naturaleza de arquitectura profunda otorga al aprendizaje profundo la posibilidad de resolver muchas tareas de IA más complicadas cite:DBLP:journals/corr/WangRX17. Como resultado, los investigadores están extendiendo el aprendizaje profundo a una variedad de diferentes dominios y tareas modernas:
- Eliminación del ruido en las señales de voz - Eliminación del ruido en las señales de voz
- Descubrimiento de patrones de agrupación de expresiones genéticas - Descubrimiento de patrones de agrupación de expresiones genéticas
@ -181,7 +179,7 @@ Este área de conocimiento ha mejorado drásticamente el estado del arte en much
- Análisis de sentimientos de diferentes fuentes simultáneas - Análisis de sentimientos de diferentes fuentes simultáneas
** Bioinformática ** Bioinformática
La bioinformática es un campo interdisciplinar en el que intervienen principalmente la biología molecular y la genética, la informática, las matemáticas y la estadística. Los problemas biológicos a gran escala y con gran cantidad de datos se abordan desde un punto de vista informático. Los problemas más comunes son el modelado de procesos biológicos a nivel molecular y la realización de inferencias a partir de los datos recogidos, cite:Can2014 en particular: La bioinformática es un campo interdisciplinar en el que intervienen principalmente las áreas de biología molecular, genética, informática, matemáticas y estadística. Esta disciplina permite que los estudios biológicos a gran escala y con gran cantidad de datos se aborden desde un punto de vista informático. Los problemas más comunes son el modelado de procesos biológicos a nivel molecular y la realización de inferencias a partir de los datos recogidos, cite:Can2014 en particular:
#+CAPTION: Problemas clásicos de la bioinformática #+CAPTION: Problemas clásicos de la bioinformática
#+NAME: tab:bioinformatics-problems #+NAME: tab:bioinformatics-problems
@ -206,13 +204,13 @@ Procedemos a realizar un estudio de las metodologías actuales en los ámbitos,
El gran potencial de las ANN es la alta velocidad de procesamiento que ofrecen en una implementación paralela masiva, lo que ha aumentado la necesidad de investigar en este ámbito. Hoy en día, las ANN se utilizan sobre todo para la aproximación de funciones universales en paradigmas numéricos debido a sus excelentes propiedades de autoaprendizaje, adaptabilidad, tolerancia a los fallos, no linealidad y avance en el mapeo de la entrada a la salida. Las ANN son capaces de resolver aquellos problemas que no pueden resolverse con la capacidad de cómputo de los procedimientos tradicionales y las matemáticas convencionales cite:ABIODUN2018e00938. El gran potencial de las ANN es la alta velocidad de procesamiento que ofrecen en una implementación paralela masiva, lo que ha aumentado la necesidad de investigar en este ámbito. Hoy en día, las ANN se utilizan sobre todo para la aproximación de funciones universales en paradigmas numéricos debido a sus excelentes propiedades de autoaprendizaje, adaptabilidad, tolerancia a los fallos, no linealidad y avance en el mapeo de la entrada a la salida. Las ANN son capaces de resolver aquellos problemas que no pueden resolverse con la capacidad de cómputo de los procedimientos tradicionales y las matemáticas convencionales 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 de DL 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 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.
*** Autoencoder *** Autoencoder
Un /autoencoder/ (AE) es un tipo de ANN, se trata de un algoritmo de aprendizaje no supervisado que se utiliza para codificar eficazmente un conjunto de datos con el fin de reducir la dimensionalidad. Durante las últimas décadas, los AE han estado a la vanguardia en el ámbito del /Deep Learning/. Los datos de entrada se convierten primero en una representación abstracta que, a continuación, la función codificadora vuelve a convertir en el formato original. En concreto, se entrena para codificar la entrada en alguna representación de modo que la entrada pueda reconstruirse a partir de esa representación cite:LIU201711 Un /autoencoder/ (AE) es un tipo de ANN. Se trata de un algoritmo de aprendizaje no supervisado que se utiliza para codificar eficazmente un conjunto de datos con el fin de reducir la dimensionalidad. Durante las últimas décadas, los AE han estado a la vanguardia en el ámbito del /Deep Learning/. Los datos de entrada se convierten primero en una representación abstracta que, a continuación, la función codificadora vuelve a convertir en el formato original. En concreto, se entrena para codificar la entrada en alguna representación, de modo que la entrada pueda reconstruirse a partir de la misma cite:LIU201711
#+CAPTION: Diagrama de un /autoencoder/. Internamente presenta una capa ($z$) que describe un código para representar el input cite:chervinskii_2015 #+CAPTION: Diagrama de un /autoencoder/. Internamente presenta una capa ($z$) que describe un código para representar el input cite:chervinskii_2015
#+ATTR_HTML: :height 25% :width 80% #+ATTR_HTML: :height 25% :width 80%
@ -238,18 +236,18 @@ Donde $L$ es la función de pérdida que penaliza $g(f(x))$ por ser distinto de
Tradicionalmente, los /autoencoders/ se utilizaban para reducir la dimensionalidad o /feature learning/. Recientemente, ciertas teorías que conectan los AE y los modelos de variables latentes han llevado a los autocodificadores a la vanguardia del modelado generativo cite:Goodfellow-et-al-2016. Tradicionalmente, los /autoencoders/ se utilizaban para reducir la dimensionalidad o /feature learning/. Recientemente, ciertas teorías que conectan los AE y los modelos de variables latentes han llevado a los autocodificadores a la vanguardia del modelado generativo cite:Goodfellow-et-al-2016.
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 (CNN)
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 han tenido un enorme éxito en las aplicaciones prácticas cite:Goodfellow-et-al-2016. 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.
#+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%
#+NAME: fig:CNN #+NAME: fig:CNN
[[./assets/figures/CNN.png]] [[./assets/figures/CNN.png]]
En el contexto de una red neuronal convolucional, una convolución es una operación lineal que implica la multiplicación de un conjunto de pesos con la entrada, al igual que una red neuronal tradicional. La multiplicación se realiza entre una matriz de datos de entrada y una matriz bidimensional de pesos, llamada filtro o núcleo (/kernel/). El filtro es más pequeño que los datos de entrada, dado que permite que el mismo filtro (conjunto de pesos) se multiplique por la matriz de entrada varias veces en diferentes puntos de la entrada cite:brownlee_2020. La operación queda representada de forma gráfica en la siguiente figura: En el contexto de una CNN, una convolución es una operación lineal que implica la multiplicación de un conjunto de pesos con la entrada, al igual que sucede en una red neuronal tradicional. La multiplicación se realiza entre una matriz de datos de entrada y una matriz bidimensional de pesos, llamada filtro o núcleo (/kernel/). El filtro es más pequeño que los datos de entrada, dado que permite que el mismo filtro (conjunto de pesos) se multiplique por la matriz de entrada varias veces en diferentes puntos de la entrada cite:brownlee_2020. La operación queda representada de forma gráfica en la siguiente figura:
\clearpage \clearpage
@ -258,25 +256,23 @@ En el contexto de una red neuronal convolucional, una convolución es una operac
#+NAME: fig:convolution #+NAME: fig:convolution
[[./assets/figures/convolution.png]] [[./assets/figures/convolution.png]]
Las capas de convolución (capas C) se utilizan para extraer características y las capas de submuestreo (capas S) son esencialmente una capa de mapeo de características (/feature mapping/). Sin embargo, cuando la dimensionalidad de las entradas es igual a la de la salida del filtro, debido a la alta dimensionalidad, la aplicación de un clasificador puede provocar un /overfitting/. Para resolver este problema, se introduce un proceso de /pooling/, \ie submuestreo o /down-sampling/, para reducir el tamaño total de la señal cite:LIU201711. Las capas de convolución (capas C) se utilizan para extraer características y las capas de submuestreo (capas S) son esencialmente capas de mapeo de características (/feature mapping/). Sin embargo, cuando la dimensionalidad de las entradas es igual a la de la salida del filtro, debido a la alta dimensionalidad, la aplicación de un clasificador puede provocar un /overfitting/ o sobreajuste. Para resolver este problema, se introduce un proceso de /pooling/, \ie submuestreo o /down-sampling/, para reducir el tamaño total de la señal cite:LIU201711.
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.
** Bioinformática ** Bioinformática
La expresión ómica engloba 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. La ómica abarca 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), 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.
Los métodos de la bioinformática han demostrado ser eficaces para resolver los diversos problemas de la ómica, concretamente para la obtención del estado transcriptómico de una célula (RNA-seq) cite:Peri_2020, reconstrucción de las secuencias de ADN cite:Zerbino_2008, anotación de genomas cite:Spudich_2007 y predicción de la estructura tridimensional de las proteínas cite:Liu_2018. Los métodos de la bioinformática han demostrado ser eficaces para resolver los diversos problemas de las ómicas, concretamente para la obtención del estado transcriptómico de una célula (RNA-seq) cite:Peri_2020, reconstrucción de las secuencias de ADN cite:Zerbino_2008, anotación de genomas cite:Spudich_2007 y predicción de la estructura tridimensional de las proteínas cite:Liu_2018. Sin embargo, el problema de las tasas de error no negligibles en las tecnologías de secuenciación de ADN de segunda y tercera generación ha impulsado el desarrollo de múltiples técnicas bioinformáticas para paliar este contratiempo.
El problema de las tasas de error no negligibles en las tecnologías de secuenciación de ADN, de segunda y tercera generación, ha impulsado el desarrollo de múltiples técnicas bioinformáticas para paliar este contratiempo.
La corrección de errores con respecto a una posición genómica específica puede lograrse disponiendo todas las lecturas de forma horizontal, una tras otra, y examinando la base en cada posición específica de todas estas lecturas. Como los errores son infrecuentes y aleatorios, las lecturas que contienen un error en una posición específica pueden corregirse seleccionando la base más probable inferida a partir de las demás lecturas cite:Yang_2012. Entre estos métodos, destacamos /Coral/ cite:Salmela_2011, /Quake/ cite:Kelley_2010 y /MEC/ cite:Zhao_2017. La corrección de errores con respecto a una posición genómica específica puede lograrse disponiendo todas las lecturas de forma horizontal, una tras otra, y examinando la base en cada posición específica de todas estas lecturas. Como los errores son infrecuentes y aleatorios, las lecturas que contienen un error en una posición específica pueden corregirse seleccionando la base más probable inferida a partir de las demás lecturas cite:Yang_2012. Entre estos métodos, destacamos /Coral/ cite:Salmela_2011, /Quake/ cite:Kelley_2010 y /MEC/ cite:Zhao_2017.
El uso de /Deep Learning/ para la corrección de errores de secuenciación es un área de investigación novedosa, en la cual cabe mencionar /NanoReviser/ cite:10.3389/fgene.2020.00900. El uso de /Deep Learning/ para la corrección de errores de secuenciación es un área de investigación novedosa, en la cual cabe mencionar /NanoReviser/, un algoritmo recientemente publicado que emplea CNN y /Long Short-Term Memory network/ (LSTM) para intentar corregir el patrón de error característico de la tecnología de tercera generación /Oxford Nanopore/ cite:10.3389/fgene.2020.00900.
* Objetivos * Objetivos
1. Introducción al dominio de un problema de biología molecular: Secuenciación de ADN y análisis de receptores de linfocitos T (TCR) 1. Introducción al dominio de un problema de biología molecular: secuenciación de ADN y análisis de receptores de linfocitos T (TCR)
2. Introducción al análisis bioinformático de secuencias de ADN: preprocesamiento de lecturas, alineamiento y otros análisis bioinformáticos asociados 2. Introducción al análisis bioinformático de secuencias de ADN: preprocesamiento de lecturas, alineamiento y otros análisis bioinformáticos asociados
3. Revisión de la bibliografía científica reciente perteneciente al dominio del problema 3. Revisión de la bibliografía científica reciente perteneciente al dominio del problema
4. Creación de un repositorio software para la generación /in silico/ de secuencias de TCR y la simulación de la secuenciación de las mismas 4. Creación de un repositorio software para la generación /in silico/ de secuencias de TCR y la simulación de la secuenciación de las mismas
@ -285,7 +281,7 @@ El uso de /Deep Learning/ para la corrección de errores de secuenciación es un
* 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 del 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.
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/ no es dependiente del /dataset/ generado /in silico/, y se podría entrenar con cualquier otro conjunto de datos.
@ -293,7 +289,7 @@ El sistema se compone de 2 partes, dado que el algoritmo de /Deep Learning/ no e
#+NAME: tab:pipeline #+NAME: tab:pipeline
| Elemento | Finalidad | Lenguaje de programación | | Elemento | Finalidad | Lenguaje de programación |
|-------------+----------------------------------------+--------------------------| |-------------+----------------------------------------+--------------------------|
| [[https://git.coolneng.duckdns.org/coolneng/locigenesis][locigenesis]] | Generación de secuencias de CDR3 | R | | [[https://git.coolneng.duckdns.org/coolneng/locigenesis][locigenesis]] | Generación y secuenciación de CDR3 | R |
| [[https://git.coolneng.duckdns.org/coolneng/locimend][locimend]] | Corrección de errores de secuenciación | Python | | [[https://git.coolneng.duckdns.org/coolneng/locimend][locimend]] | Corrección de errores de secuenciación | Python |
El diseño del sistema queda plasmado a continuación: El diseño del sistema queda plasmado a continuación:
@ -314,15 +310,15 @@ El objetivo de este proyecto es generar tanto secuencias de CDR3 con y sin error
*** Tecnologías *** Tecnologías
- immuneSIM: generación /in silico/ de repertorios de BCR y TCR, humanos y de ratón cite:Weber_2020 - immuneSIM: generación /in silico/ de repertorios de BCR y TCR, humanos y de ratón cite:Weber_2020
- CuReSim: simulador de secuenciación que emula la técnica /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 ómicas cite:Biostrings - Biostrings: manipulación de secuencias biológicas cite:Biostrings
*** Funcionalidades *** Funcionalidades
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 las secuencias de la cadena \beta de diversos repertorios inmunológicos del TCR 1. Generación de diversas secuencias de la cadena \beta del TCR
2. Exportación de las secuencias a un archivo en formato FASTQ (tanto CDR3 como la secuencia completa) 2. Exportación de las secuencias a un archivo en formato FASTQ (tanto CDR3 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 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, 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
@ -331,18 +327,18 @@ El programa realiza, parametrizado por 2 parámetros de entrada (número de secu
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.
*** 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 ómicas cite:Cock_2009 - Biopython: manipulación de secuencias biológicas cite:Cock_2009
*** Funcionalidades *** Funcionalidades
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:
1. Lectura de ambos archivos FASTQ, secuencia de CDR3 correcta y secuencia de CDR3 con errores, a la vez para obtener las /features/ y el /label/ a la vez 1. Lectura de dos archivos FASTQ (secuencia de CDR3 correcta y secuencia de CDR3 con errores) simultáneamente para obtener las /features/ y el /label/
2. Alineamiento de la secuencia correcta y de la secuencia con errores, para obtener entradas de la misma longitud 2. Alineamiento de la secuencia correcta y de la secuencia con errores, para obtener entradas de la misma longitud
3. Codificación basada en el índice de las secuencias de ADN, para obtener secuencias numéricas 3. Codificación basada en el índice de las secuencias de ADN, para obtener secuencias numéricas
4. Conversión de las secuencias numéricas al formato binario TFRecord (basado en /Protocol Buffers/) 4. Conversión de las secuencias numéricas al formato binario TFRecord (basado en /Protocol Buffers/)

Binary file not shown.