User Tools

Site Tools


Writing /var/lib/dokuwiki/data/meta/teaching/ie0117/proyectos2_2016_i/alineamiento_adn.meta failed
teaching:ie0117:proyectos2_2016_i:alineamiento_adn

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
teaching:ie0117:proyectos2_2016_i:alineamiento_adn [2016/07/03 06:24] ie0117teaching:ie0117:proyectos2_2016_i:alineamiento_adn [2022/09/20 00:08] (current) – external edit 127.0.0.1
Line 5: Line 5:
   * Daniel Díaz Molina B22245   * Daniel Díaz Molina B22245
   * Luis Fernando Mora B24449   * Luis Fernando Mora B24449
-  * Emanuel Fernández B52714+  * Emanuel Fernandez Villalobos B52714 
  
 ======  Introducción ====== ======  Introducción ======
Line 38: Line 39:
 ====== Marco Teórico ====== ====== Marco Teórico ======
 ===== Secuenciación de ADN y Alineamiento ===== ===== Secuenciación de ADN y Alineamiento =====
 +
 +El ADN (ácido desoxirribonucléico) es una molécula formada por ácido fosfórico, desoxirribosa y bases nitrógenadas. La misma porta toda  la información necesaria para el desarrollo y correcto funcionamiento del ser vivo al que pertenece, y a su vez es muy compleja. Por otro lado, las cuatro bases nitrógenadas que ya se mencionaron se encargan de dar estructura y de unir la doble hélice que conforma la molécula entera. Una imagen de una molécula de ADN se aprecia a continuación.
  
 {{ https://github.com/luismoramora94/pruebagithub/raw/master/DNA_structure.jpg }}  {{ https://github.com/luismoramora94/pruebagithub/raw/master/DNA_structure.jpg }} 
 +
 +Estas cuatro bases son de principal interés para la ciencia de la bio-informática, la cual analiza y compara las similitudes entre diferentes cadenas de ADN entre especies, con el objetivo de encontrar similitudes funcionales o evolutivas. Para lograrlo, utilizan como materia prima la información que proporciona la secuenciación de ADN, la cual utiliza un conjunto de técnicas bioquímicas para determinar el orden de las bases nitrogenadas en una porción grande de ADN. La secuenciación de ADN tiene sus orígenes en los 1930's, y ha avanzado hasta novedosas técnicas automatizadas (Ansorge, W.J, 2009), las cuales permiten generar archivos de texto con las bases nitrogenadas en el orden en que fueron encontradas. Dichos archivos generalmente son guardados con extensión ".fasta" (que dicha extensión tiene su origen en los primeros paquetes de software capaces de analizar secuencias de ADN, pero luego que quedó por moda) y contienen grandes hileras de caracteres que pueden ser leídas con cierto formato. Un ejemplo se muestra a continuación.
 +
 +{{ https://github.com/luismoramora94/pruebagithub/raw/master/fasta.png }} 
  
 ==== Algoritmo Needleman-Wunsch ==== ==== Algoritmo Needleman-Wunsch ====
 +Para analizar similitudes entre diferentes secuencias, se han desarrollado diferentes algoritmos de alineamiento a lo largo de los últimos dos siglos. Uno de ellos es el algoritmo Needleman-Wunsch, el cual fue desarrollado en 1970 por Saul B. Needleman y Christian D. Wunsch (Needleman,S. B. & Wunsch, C.D., 1970). El mismo es un ejemplo de programación dinámica, una rama de la programación que toma un problema muy complejo y lo subdivide en problemas manejables, que se solucionan y dicha solución se almacena para luego ser buscada si se requiriera. En este caso, lo que se almacena es un "camaster/mino de mejor puntaje". Para generar las comparaciones, se genera una matriz con ambas secuencias como se muestra en la siguiente figura: 
  
-====== Funcionamiento del Software Implementado ======+{{ https://github.com/luismoramora94/pruebagithub/raw/master/nw.png }} 
  
 +Dicha matriz se comienza a recorrer desde una fila y columna, asignando un puntaje de "+1" cuando las secuencias coinciden, y "-1" si no coinciden o si debe abrir un espacio-llamado "gap"- para que las próximas secuencias coincidan. El camino de mejor puntaje se almacena y se actualiza hasta que todas las combinaciones de fila-columna han sido exploradas y se determina que el alineamiento óptimo es aquel con mayor puntaje. 
 +
 +====== Funcionamiento del Software Implementado ======
 ===== Interfaz Gráfica Desarrollada ===== ===== Interfaz Gráfica Desarrollada =====
 +Para el presente proyecto, se implementó una librería disponible en Github, para Python, que implementa el algoritmo needleman-wunsch. El mismo recibe dos secuencias de bases nitrogenadas y las alinea según el mejor puntaje que se obtenga. Para visualizar el proceso de alineamiento, se desarrolló una interfaz gráfica por medio de PyGTK, que es un toolkit para crear interfaces gráficas tanto en plataformas GNU-Linux como Windows. Dicha interfaz gráfica se muestra a continuación: 
 +
 +{{ https://github.com/luismoramora94/pruebagithub/raw/master/gui.png }} 
 +
 +Permite seleccionar las secuencias de ADN a analizar de archivos de texto, escoger el algoritmo de alineamiento de una lista de algoritmos disponibles y además tiene espacios para visualizar las secuencias.
  
 ===== Pruebas de Velocidad ===== ===== Pruebas de Velocidad =====
 +
 +A continuación se muestran los resultados de las velocidades tardadas por el algoritmo implementado en Python, dicho programa lo que hace es leer las cadenas de un archivo fuente, iniciar el conteo del tiempo antes de llamar a la funciona que las alinea, y cuenta el tiempo nuevamente después de que el algoritmo da el resultado, se saca la diferencia de ambos tiempos y con eso se obtiene el tiempo tardado por el algoritmo al comparar las dos secuencias leídas, el programa reúne los datos en una matriz, donde muestra la longitud de la primera cadena, la longitud de la segunda cadena, y el tiempo tardado en alinearlas. El programa continuara ejecutandose hasta que ya no hayan mas secuencias en el archivo fuente. Para el ejemplo mostrado se usaron dos archivos fuentes distintos con cadenas aleatorias.
 +
 +{{ :teaching:ie0117:proyectos2_2016_i:ccc.png?nolink&300 |}}
 +
 +
 +====== Código Fuente ======
 +
 +{{:teaching:ie0117:proyectos2_2016_i:gui.tar.gz|}}
 +
 +{{:teaching:ie0117:proyectos2_2016_i:pairwise-alignment-in-python-dnksks.tar.gz|}}
  
 ====== Referencias ====== ====== Referencias ======
Line 53: Line 80:
 computers. Garland Science. computers. Garland Science.
  
 +* Ansorge, W.J. (2009). «Next-generation DNA sequencing techniques.». New Biotechnology 25
 +
 +* Needleman, Saul B. & Wunsch, Christian D. (1970). "A general method applicable to the search for similarities in the amino acid sequence of two proteins". Journal of Molecular Biology 48 (3): 443–53
teaching/ie0117/proyectos2_2016_i/alineamiento_adn.1467527088.txt.gz · Last modified: 2022/09/20 00:08 (external edit)