diff --git a/Dissertation.org b/Dissertation.org index aa51bbc..d16205f 100644 --- a/Dissertation.org +++ b/Dissertation.org @@ -26,7 +26,7 @@ Hay muy pocos principios firmes en biología. A menudo se dice, de una forma u o 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: -% [COMMENT: Creo que es mejor que referencies las figuras y tablas en el texto en vez de poner lo de "se muestra a continuación". Supongo que en org-mode sería algo así: "El código genético se muestra en la Figura [[fig:genetic-code]].", pero no sé si funciona. Te dejo por aquí el link a la sección de internal links del manual de Org: https://orgmode.org/org.html#Internal-Links . Si fuera mucho follón, pasando.] +# [COMMENT: Creo que es mejor que referencies las figuras y tablas en el texto en vez de poner lo de "se muestra a continuación". Supongo que en org-mode sería algo así: "El código genético se muestra en la Figura [[fig:genetic-code]].", pero no sé si funciona. Te dejo por aquí el link a la sección de internal links del manual de Org: https://orgmode.org/org.html#Internal-Links . Si fuera mucho follón, pasando.] #+CAPTION: El código genético #+NAME: fig:genetic-code @@ -135,7 +135,7 @@ Los principios básicos de las redes neuronales artificiales fueron formulados p *** Back propagation -% [COMMENT: He quitado el acrónimo de back propagation porque no lo usas después. Por norma general, los acrónimos se ponen cuando vas a escribir el término más de 3-4 veces en el texto. Si no, está bien que pongas back propagation directamente.] +# [COMMENT: He quitado el acrónimo de back propagation porque no lo usas después. Por norma general, los acrónimos se ponen cuando vas a escribir el término más de 3-4 veces en el texto o cuando el concepto es más conocido por su acrónimo. Si no, está bien que pongas back propagation directamente.] 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: @@ -147,7 +147,9 @@ Asimismo el algoritmo de /back propagation/ es un enfoque para calcular los grad *** 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. +# [COMMENT: He cambiado "parametrizada por los parámetros de un modelo" por "definida por los parámetros...". No sé si es el término más preciso, pero lo otro me sonaba muy redundante.] + +El /gradient descent/ es una forma de minimizar una función objetivo definida 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 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 #+ATTR_HTML: :height 25% :width 80% @@ -166,18 +168,16 @@ Este proceso, junto con sus variantes, es el algoritmo de optimización local m ** 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/ #+ATTR_HTML: :height 25% :width 80% #+NAME: fig:ai-ml-dl [[./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. - -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: +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: - Eliminación del ruido en las señales de voz - Descubrimiento de patrones de agrupación de expresiones genéticas @@ -185,7 +185,7 @@ Este área de conocimiento ha mejorado drásticamente el estado del arte en much - Análisis de sentimientos de diferentes fuentes simultáneas ** 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 #+NAME: tab:bioinformatics-problems @@ -210,13 +210,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. -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. *** 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 #+ATTR_HTML: :height 25% :width 80% @@ -242,18 +242,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. -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) -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 #+ATTR_HTML: :height 20% :width 70% #+NAME: fig:CNN [[./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 @@ -262,25 +262,23 @@ En el contexto de una red neuronal convolucional, una convolución es una operac #+NAME: fig:convolution [[./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. ** 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. - -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. +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. 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 -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 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 @@ -289,7 +287,7 @@ El uso de /Deep Learning/ para la corrección de errores de secuenciación es un * 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. @@ -297,11 +295,13 @@ El sistema se compone de 2 partes, dado que el algoritmo de /Deep Learning/ no e #+NAME: tab:pipeline | 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 /in silico/ de secuencias de CDR3 | R | | [[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: +# [COMMENT: Es una tontería, pero en la figura la B está en negrita y la A no. Además, no sé si sería conveniente que en algún momento expliques o enseñes en alguna figura el formato FASTQ.] + #+CAPTION: Diseño del sistema. (*A*) Entrenamiento del algoritmo de /Deep Learning/. Como /input/ proporcionamos el número de secuencias, junto con el número de lecturas que deseamos que se simulen. Locigenesis generará 2 archivos en formato FASTQ, que contienen CDR3 con y sin errores de secuenciación, que son el /input/ de locimend para entrenar el modelo de /Deep Learning/, cuya salida es el conjunto de métricas del algoritmo. (*B*) Inferencia del modelo de /Deep Learning/ previamente entrenado y desplegado. Se provee como entrada una secuencia de ADN con errores de secuenciación, el algoritmo procesa ésta y devuelve una secuencia de ADN sin errores #+ATTR_HTML: :height 50% :width 75% #+NAME: fig:pipeline @@ -318,15 +318,15 @@ El objetivo de este proyecto es generar tanto secuencias de CDR3 con y sin error *** Tecnologías - 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 -- Biostrings: manipulación de secuencias ómicas cite:Biostrings +- CuReSim: simulador de secuenciación que emula la tecnología /Ion Torrent/ cite:Caboche_2014 +- Biostrings: manipulación de secuencias biológicas cite:Biostrings *** Funcionalidades 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 -2. Exportación de las secuencias a un archivo en formato FASTQ (tanto CDR3 como la secuencia completa) +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 VDJ completa) 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 5. Exportación de las secuencias de CDR3 con errores y sin errores en archivos con formato FASTQ @@ -335,18 +335,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. -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 - 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 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 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/)