Está en la página 1de 3

PROYECTO 2 Alineamiento Avanzado

de Hileras

Utilizando algoritmos de Programación Dinámica, su programa debe encontrar


alineamientos óptimos (con diversas variantes) entre dos hileras de símbolos de
tamaños arbitrarios. Estas hileras podrían ser secuencias de DNA, proteínas
expresadas en su estructura lineal, o hileras de cualquier otro origen.

Generalidades
• El programa debe estar escrito en C y debe compilar y ejecutar correctamente
sobre Linux, en nuestros laboratorios. Toda la interacción con el usuario debe
ser hecha con interfaces gráficas.
• Ninguna estructura de datos asociada a las hileras puede estar definida
estáticamente, sino que serán creadas y destruidas en el momento que se
necesiten (especialmente las tablas necesarias).
• Cualquier resultado incluirá los requerimientos de memoria y de tiempo de CPU
que se usaron para atender la consulta del usuario. Ambos deben ser medidos
con la mayor precisión posible. Inclusive si un trabajo es rechazado por no tener
suficiente memoria, se debe mostrar la cantidad de memoria requerida.
• El programa debe manejar correctamente entradas de cualquier tamaño. Por
supuesto, si se exceden las capacidades de la máquina particular, el usuario será
informado de esta situación sin que el programa se caiga.

Escuela de Ingeniería em Computación - I.T.C.R. 1


Alineamiento Avanzado de Hileras

• Los pesos utilizados en los alineamientos serán por defecto (+1, -1, -2), pero el
usuario los podrá alterar a conveniencia o podrá seleccionar una tabla de pesos
para parejas de DNA (4 por 4) o para parejas de aminoácidos (20 por 20). Se
deben ofrecer tablas estándar precargadas en el programa o que el usuario
indique un nombre de archivo de texto con esta información.

Entrada
Dos hileras (secuencias de DNA, proteínas o texto arbitrario). Estas pueden venir
de archivos de texto o tecleadas interactivamente por el usuario (cualquier
combinación de estas dos posibilidades debe ser permitida). Estos archivos podrán
ser de cualquier tamaño permitido por el sistema operativo.

Si se indica que una hilera corresponde a proteína, hay que indicar si se usará el
código de 1 letra o el código de 3 letras. Si se va a hacer un alineamiento de DNA y
proteína, se usará el código genético alineando tripletas de bases de DNA contra un
residuo de aminoácido en la hilera que representa a la proteína. Similarmente, es
válido alinear 2 proteínas donde una esté representada en código de 3 letras y la
otra en código de 1 letra.

Para el día de la demostración, se deben tener preparados diversos ejemplos (con


archivos muy grandes) que muestren claramente una ganancia de tiempo al cambiar
del algoritmo estándar al algoritmo K-band y que muestren casos que por su
tamaño no pueden ser procesados por el algoritmo estándar (usando espacio
cuadrático) pero que sí son procesados por la versión con espacio lineal.

Salida
Siguiendo las indicaciones del usuario, el programa encontrará el alineamiento
óptimo entre las dos hileras (ya sea global, local, o semiglobal). Hasta un tamaño
máximo razonable se debe desplegar la tabla final del alineamiento, mostrando
todas las "flechitas" y la ruta seleccionada. Para el alineamiento local se desplegará
adicionalmente un mapa abstracto gráfico e interactivo indicando la presencia de
islas (para cualquier tamaño de archivos). Además, el programa dará el valor del
scoring óptimo y el alineamiento de las dos secuencias, o las islas solictadas por el
usuario.

2 Introducción a la Biología Molecular Computacional


Proceso
Se deben implementar las siguientes posibilidades:
• Alineamiento global estándar.
• Alineamiento semiglobal estándar (el usuario indicará cuál de las 4
combinaciones de “gaps gratis” desea).
• Alineamiento local estándar (el usuario indicará cuantas subhileras desea
considerar).
• Alineamientos global con espacio lineal.
• Alineamiento global con K-Band, cualquier longitud de hileras.
• Alineamiento global, local y semiglobal con función afín de costo por gap. Esto
es válido para K-Band y espacio lineal.
• Opcionales: Alineamientos global, semiglobal y local con espacio lineal.
Alineamiento global con K-Band y espacio lineal.

Con una interfaz apropiada, el usuario podrá parametrizar el tipo de alineamiento


que desea realizar. Nótese que se pueden combinar varias de las opciones indicadas.

Fecha de entrega. Con demos el ________________________.

Escuela de Ingeniería en Computación - I.T.C.R. 3

También podría gustarte