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/04 15:33] 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 Fernandez Villalobos B52714
  
  
Line 48: Line 49:
  
 ==== 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 "camino de mejor puntaje". Para generar las comparaciones, se genera una matriz con ambas secuencias como se muestra en la siguiente figura: +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: 
  
 {{ https://github.com/luismoramora94/pruebagithub/raw/master/nw.png }}  {{ https://github.com/luismoramora94/pruebagithub/raw/master/nw.png }} 
Line 56: Line 57:
 ====== Funcionamiento del Software Implementado ====== ====== 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 GTK+el cual forma un conjunto de librerías desarrolladas para crear interfaces gráficas tanto en plataformas GNU-Linux como Windows. Dicha interfaz gráfica se muestra a continuación: +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 PyGTKque 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 }}  {{ https://github.com/luismoramora94/pruebagithub/raw/master/gui.png }} 
  
-Cuenta con dos botones para seleccionar las secuencias de ADN a analizar, un botón que muestra el algoritmo de alineamiento seleccionado otro espacio donde se muestra ambas secuencias ya alineadas+Permite seleccionar las secuencias de ADN a analizar de archivos de textoescoger el algoritmo de alineamiento de una lista de algoritmos disponibles 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 ====== ====== Código Fuente ======
 +
 {{:teaching:ie0117:proyectos2_2016_i:gui.tar.gz|}} {{:teaching:ie0117:proyectos2_2016_i:gui.tar.gz|}}
 +
 +{{:teaching:ie0117:proyectos2_2016_i:pairwise-alignment-in-python-dnksks.tar.gz|}}
  
 ====== Referencias ====== ====== Referencias ======
teaching/ie0117/proyectos2_2016_i/alineamiento_adn.1467646391.txt.gz · Last modified: 2022/09/20 00:08 (external edit)