Repositorio Institucional de Documentos
Abstract
Este proyecto de fin de carrera aborda el desarrollo de un sistema de visualización web con el que podamos ver y editar arboles, además permite acceder rápidamente a la información que contienen. Como caso particular se trata la visualización de árboles con información de tipo biológico mas concretamente de arboles filogeneticos de ADN mitocondrial. Guajardo Esteban, Samuel; Miguel Casado, Gregorio de; Álvarez Jarreta, Jorge
Full text
Proyecto Fin de Carrera Ingenier´ıa Inform´atica Entorno de visualizaci´on y edici´on de ´arboles para filogenias extensas Autor Samuel Guajardo Esteban Directores Gregorio de Miguel Casado Jorge ´ Alvarez Jarreta ´ Area de Lenguajes de Sistemas Inform´aticos Departamento de Inform´atica e Ingenier´ıa de Sistemas ESCUELA DE INGENIER´ IA Y ARQUITECTURA Universidad de Zaragoza Junio-2014
Resumen Este proyecto de fin de carrera aborda el desarrollo de un sistema de visualizaci´on web con el que podamos ver y editar ´arboles y que adem´as permite acceder r´apidamente a la informaci´on que contienen. Como caso particular se trata la visualizaci´on de ´arboles con informaci´on de tipo biol´ogico. En la actualidad para la visualizaci´on de estos ´arboles no existen herramientas que satisfagan las necesidades de determinados usuarios cuando el tama˜no del ´arbol a visualizar es muy grande o se requieren funcionalidades especiales de b´usqueda. ´ Estas tienen como problema fundamental que al intentar mostrar el ´arbol completo se colapsan, debido al gran tama˜no de la entrada. Adem´as no disponen de mecanismos para encontrar informaci´on espec´ıfica adicional sobre los propios nodos del ´arbol. En este contexto, existen p´aginas web est´aticas que mantienen informaci´on sobre este tipo de ´arboles pero no se actualizan con la frecuencia deseable. La novedad esencial que aporta el proyecto es la interfaz de visualizaci´on del ´arbol, que no se centra en la visualizaci´on del ´arbol entero, ya que solo nos mostrara padre-hijos-hermanos de una secuencia, es decir, toda la informaci´on que necesita el especialista. Como caso de aplicaci´on se usa el ´arbol de ZARAMIT. En el entorno cualquier usuario registrado podr´a visualizar ´arboles y adem´as permitir´a solicitar duplicados del ´arbol para trabajar con ellos, permitiendo su edici´on mediante la inclusi´on o eliminaci´on de nodos. Tambi´en podr´an solicitar al administrador que a˜nada sus ´arboles dentro del sistema para poder usarlos y compartirlos con otros usuarios marc´andolos como arboles de dominio p´ublico. Los resultados preliminares obtenidos por el sistema son prometedores y se espera que el alcance del trabajo sea amplio.
´ Indice 1. Introducci´on 1 1.1. Motivaci´on .............................. 1 1.2. Objetivos ............................... 1 2. Estado del arte 5 2.1. Glosario de t´erminos biol´ogicos . . . . . . . . . . . . . . . . . . . 5 2.2. Filogenias extensas . . . . . . . . . . . . . . . . . . . . . . . . . . 5 2.3. Herramientas de visualizaci´on para ´arboles y redes . . . . . . . . 5 2.4. Otras tecnolog´ıas de visualizaci´on . . . . . . . . . . . . . . . . . . 7 2.5. Problemas abiertos . . . . . . . . . . . . . . . . . . . . . . . . . . 7 3. Arquitectura 9 3.1. Requisitos derivados del dominio del problema . . . . . . . . . . 9 3.2. Requisitos funcionales . . . . . . . . . . . . . . . . . . . . . . . . 10 3.3. Escenario para la propuesta de soluci´on . . . . . . . . . . . . . . 11 4. Dise˜no 13 4.1. Cliente-Servidor............................ 13 4.2. Basededatos............................. 15 4.2.1. Estructura .......................... 15 4.2.2. Carga de datos . . . . . . . . . . . . . . . . . . . . . . . . 17 4.2.3. Copia de seguridad . . . . . . . . . . . . . . . . . . . . . . 17 4.2.4. Duplicado de ´arboles . . . . . . . . . . . . . . . . . . . . . 17 4.3. Visualizaci´on padres-hijos-hermanos . . . . . . . . . . . . . . . . 17 5. Prototipo 21 5.1. Cliente................................. 22 5.2. Servidor................................ 23 5.3. Basededatos............................. 26 5.4. Interacciones ............................. 27 6. Experimentos 29 6.1. Validaci´on funcional . . . . . . . . . . . . . . . . . . . . . . . . . 29 6.2. Pruebas de rendimiento . . . . . . . . . . . . . . . . . . . . . . . 29 7. Organizaci´on del proyecto 31 8. Conclusiones 33 9. Bibliograf´ıa 35 ANEXOS 37 A. Arquitectura Cliente-Servidor 38 I
B. Dise˜no de la base de datos 42 B.1. Diagrama entidad-relaci´on . . . . . . . . . . . . . . . . . . . . . . 42 B.2. Descripci´on de las Entidades del entorno . . . . . . . . . . . . . . 43 C. Diagramas UML 48 C.1.Diagramadeclase .......................... 48 C.1.1.Cliente............................. 48 C.1.2. Servidor intermediario . . . . . . . . . . . . . . . . . . . . 49 C.2. Diagrama de casos de uso . . . . . . . . . . . . . . . . . . . . . . 56 C.2.1.Global............................. 56 C.2.2.Parciales............................ 57 D. Manual de usuario 62 D.1. Requisitos Software . . . . . . . . . . . . . . . . . . . . . . . . . . 62 D.2. Instalaci´on de la aplicaci´on . . . . . . . . . . . . . . . . . . . . . 62 D.2.1.Basededatos......................... 62 D.2.2. Servidor web y cliente web . . . . . . . . . . . . . . . . . 62 D.3.Autenticaci´on............................. 63 D.3.1.Invitado............................ 63 D.3.2.Usuario ............................ 63 D.4. Seleccionar ´arbol . . . . . . . . . . . . . . . . . . . . . . . . . . . 63 D.4.1. Selecci´on de ´arbol como Invitado . . . . . . . . . . . . . . 64 D.4.2. Selecci´on de ´arbol como Usuario . . . . . . . . . . . . . . 64 D.5.Visorde´arboles............................ 65 D.5.1. Visualizador de ancestros de grupos . . . . . . . . . . . . 65 D.5.2. Visualizador de secuencias . . . . . . . . . . . . . . . . . . 66 D.5.3. Buscador de secuencias . . . . . . . . . . . . . . . . . . . 68 D.5.4. Historial de secuencias . . . . . . . . . . . . . . . . . . . . 68 D.5.5. Visualizador de ´arbol de grupos . . . . . . . . . . . . . . . 69 E. ´ Indice de figuras 70 F. ´ Indice de tablas 72 II
1. Introducci´on La naturaleza masiva de la informaci´on de tipo biol´ogico que se secuencia en los laboratorios y la necesidad de herramientas bioinform´aticas para el tratamiento de esta informaci´on nos ha motivado para el desarrollo de este proyecto, cuyo objetivo principal es desarrollar un entorno que facilite la visualizaci´on e interacci´on con ´arboles y redes filogen´eticas extensas. Los apartados siguientes desarrollan la motivaci´on de este proyecto y los objetivos concretos que se han abordado. 1.1. Motivaci´on El incremento constante de la informaci´on de tipo biol´ogico que se secuencia en laboratorios (ADN, ARN,...) ha proporcionado la base para el desarrollo de herramientas bioinform´aticas que abordan la construcci´on de ´arboles y redes que faciliten el estudio de la evoluci´on biol´ogica en las poblaciones de individuos secuenciados. La naturaleza masiva de la informaci´on que se procesa impone requisitos cr´ıticos en el desarrollo de software para todas las fases del procesamiento, organizaci´on y visualizaci´on de resultados. En el caso de la reconstrucci´on de filogenias y redes evolutivas, el an´alisis de los resultados (´arboles y redes) constituye un problema creciente para los bi´ologos a medida que la informaci´on a analizar va siendo cada vez m´as grande (ZARAMIT [1], SAT´e [2],. . . ). En este contexto, la carencia de m´etodos y herramientas adecuados para la visualizaci´on, navegaci´on y an´alisis de los resultados constituyen un campo de trabajo que es objeto de inter´es para este proyecto. Este Proyecto de Fin de Carrera se ha realizado en el marco de la l´ınea de investigaci´on de bioinform´atica del GISED [3], en el que se aborda la construcci´on de filogenias extensas para secuencias de ADN mitocondrial humano, con el objetivo de estudiar la evoluci´on humana y facilitar la identificaci´on de mutaciones potencialmente malignas. As´ı, la visualizaci´on de los ´arboles evolutivos inferidos constituye el campo de aplicaci´on concreto. 1.2. Objetivos El objetivo principal del proyecto es el desarrollo de un entorno que facilite la interacci´on con ´arboles y redes filogen´eticas extensas, de manera que los usuarios finales del entorno (bi´ologos, m´edicos y bioinform´aticos) puedan concentrarse en la exploraci´on y an´alisis de las caracter´ısticas biol´ogicas de la informaci´on contenida en los ´arboles o redes. Este objetivo se descompone en otros m´as concretos, que tienen correspondencia con la propia estructura de esta memoria. 1
Estado del arte El apartado correspondiente de la memoria (p´ag. 5) recoge un glosario sobre t´erminos biol´ogicos, caracter´ısticas de los ´arboles filogen´eticos, herramientas para su visualizaci´on y un an´alisis de herramientas de visualizaci´on y de tecnolog´ıas web con las que se pueden representar ´arboles. Arquitectura El apartado correspondiente de la memoria (p´ag. 9) enumera los requisitos del entorno de visualizaci´on inspirados por un bi´ologo experto en ADN mitocondrial del Departamento de Bioqu´ımica, Biolog´ıa Molecular y Celular de la Universidad de Zaragoza y tambi´en (p´ag. 10) los requisitos planteados por el equipo de investigadores de GISED para el desarrollo de la aplicaci´on. Dise˜no El apartado correspondiente de la memoria (p´ag. 13) muestra las funcionalidades del sistema en t´erminos de estructura interna del entorno: Cliente-Servidor y base de datos. Prototipo El apartado correspondiente de la memoria (p´ag. 21) describe la implementaci´on del prototipo de visualizaci´on y desarrolla la relaci´on de las tecnolog´ıas usadas en t´erminos comparativos con otras que se descartaron para realizar la misma funci´on en el entorno. Experimentos En este apartado de la memoria (p´ag. 29) se describen varias pruebas de testeo del funcionamiento, pruebas de integraci´on e integraci´on de todas las partes del entorno. Organizaci´on del proyecto En este apartado de la memoria (p´ag. 31) se describe la gesti´on en la realizaci´on de proyecto. 2
Conclusiones En este apartado de la memoria (p´ag. 33) se desarrollan las conclusiones del proyecto. 3
4
Historial de secuencias visitadas Otra funcionalidad necesaria, puesto que en una sesi´on de trabajo se necesita acceder a varias secuencias una tras otra y adem´as la mayor´ıa de las veces necesitamos poder volver r´apidamente a una secuencia vista previamente. Como soluci´on se propone mantener un historial de grupos con el que poder de una forma r´apida ir a las secuencias que se hayan visitado anteriormente durante la sesi´on de trabajo. ´ Arbol agrupado Como ´ultima funcionalidad importante que deber´a poseer la aplicaci´on es que cuando se trabaje con ´arboles heterog´eneos pueda usarse un criterio para agrupar las secuencias y as´ı facilitar la navegaci´on del usuario por el ´arbol. 3.3. Escenario para la propuesta de soluci´on Figura 1: Escenario de grupos de investigaci´on y herramientas para la propuesta de soluci´on. 11
El entorno de visualizaci´on objeto de este trabajo tiene utilidad en s´ı mismo como herramienta para la visualizaci´on de ´arboles filogen´eticos con informaci´on biol´ogica de todo tipo. El escenario de integraci´on previsto para el mismo es el que se retiene en la Figura 1. Dentro de la l´ınea de investigaci´on en Bioinform´atica del grupo GISED, el entorno de visualizaci´on se integra como parte fundamental para el an´alisis y visualizaci´on de las filogenias producidas mediante el entorno PhyloFlow desarrollado por el investigador Jorge ´ Alvarez Jarreta. Adicionalmente, est´a previsto poner el entorno de visualizaci´on a otros grupos de investigaci´on, como es el caso del grupo de investigaci´on de Tandy Warnow de la Universidad de Texas, y el de Biog´enesis y patolog´ıa mitocondrial de la Universidad de Zaragoza, facilitando un entorno colaborativo para la compartici´on de resultados y datos. 12
4. Dise˜no Se ha desarrollado una aplicaci´on web basada en una arquitectura cliente-servidor compuesta por tres capas, usando el patr´on MVC tanto en el cliente como en el servidor. Seguidamente se explica el servidor de datos y alguna de las operaciones importantes que se pueden realizar en dicho servidor. La descripci´on completa de este tipo de arquitectura se encuentra en el Anexo A(Arquitectura Cliente-Servidor). 4.1. Cliente-Servidor La siguiente ilustraci´on muestra la estructura del visualizador. Figura 2: Arquitectura Cliente-Servidor. Cliente El cliente solicita las peticiones mediante la interfaz de usuario. En nuestro caso al tratarse de una aplicaci´on web, puede ser usada desde cualquier navegador accediendo a la web donde est´a alojado el entorno. 13
Servidor El servidor est´a compuesto por un servidor intermediario y un servidor de datos. El servidor intermediario tiene como funci´on proporcionar los recursos solicitados para el cliente, los cuales estar´an alojados en el servidor de datos. La Tabla 1 recoge las solicitudes que acepta el servidor con las respuestas que se obtendr´a de cada una de ellas. Grupo Peticiones Buscar (´ Arbol, ´ Arboles privados y p´ublicos, Ra´ız, ´ Arbol de grupos) ´ Arbol Insertar Editar Eliminar Buscar (Nodo, Padre, Hijos, Alertas, Observaciones, Grupo) Nodo Insertar Editar Eliminar Alerta Insertar Obs Editar Grupos Eliminar Tabla 1: Peticiones ordenadas por grupo. La Figura 3 ilustra una representaci´on esquem´atica del funcionamiento del sistema cuando se realiza una petici´on. Los flujos de datos que tienen (1-4) son los siguiente. 14
Figura 3: Comunicaci´on entre Cliente-Servidor. 1. El cliente solicita los datos al servidor intermediario. 2. El servidor intermediario solicita los datos del servidor de datos. 3. El servidor de datos responde al servidor intermediario. 4. El servidor intermediario responde con los datos procesados al cliente. 4.2. Base de datos Tal como est´a estructurada la aplicaci´on se ha optado por el sistema de tres capas, en el que el tercer nivel tercer corresponde al servidor de datos. 4.2.1. Estructura En nuestro caso para hacer esta funci´on de servidor de datos se utiliza un servidor de bases de datos. Dicha base de datos esta dise˜nada de acuerdo al siguiente diagrama entidad-relaci´on que tendr´a las siguientes tablas: La Entidad Alerta sirve para almacenar las alertas que poseen las secuencias de un ´arbol. La Entidad Obs(observaciones) se usa para guardar las observaciones que tiene una secuencia. La Entidad Usuario contiene aquellos usuarios que pueden acceder al sistema. 15
La Entidad Arbol guarda los ´arboles que hay en el sistema, ya que aunque inicialmente partamos de un solo ´arbol, m´as adelante se le ir´an a˜nadiendo ´arboles a la aplicaci´on, seg´un las necesidades de los usuarios. La Entidad Grupo almacena los grupos de las secuencias que hay en el sistema. La Entidad Nodo guarda las secuencias de los ´arboles que hay en el sistema. Figura 4: Diagrama entidad-relaci´on. En el anexo B (Dise˜no de la base de datos) se puede encontrar la informaci´on detallada de la base de datos y de sus tablas. 16
4.2.2. Carga de datos La inserci´on de los datos iniciales del visualizador se hace mediante un fichero en formato Newick. Este es el formato predominante en las aplicaciones de en Biolog´ıa que trabajan con ´arboles filogen´eticos. El ´arbol incluido dentro del fichero ser´a el que se introduce en el servidor de la base de datos de la aplicaci´on para que los usuarios puedan trabajar con ´el. 4.2.3. Copia de seguridad La forma de realizar la copia de seguridad de un ´arbol de un cliente se har´a mediante la realizaci´on de scripts SQL que contendr´an la informaci´on de ese ´arbol (nodos, alertas, observaciones,.....). As´ı el administrador despu´es de ver las solicitudes del cliente para restaurar un ´arbol propio, acceder´a al script SQL del cliente y lo introducir´a en el sistema reemplazando el ´arbol anterior. 4.2.4. Duplicado de ´arboles En el caso de que un cliente quiera duplicar un ´arbol propio o tener una copia de un ´arbol p´ublico har´a una solicitud a uno de los administradores del sistema. En el caso que la solicitud sea aceptada, el administrador genera un script SQL y lo introduce en el sistema. Se sigue este tipo de protocolo debido a que el tama˜no de un ´arbol dentro del sistema es grande y se pretende evitar la sobrecarga del servidor por las posibles actuaciones directas que pudieran hacer los usuarios del sistema. 4.3. Visualizaci´on padres-hijos-hermanos De acuerdo con los requisitos del dominio del problema se ha establecido que la visualizaci´on del ´arbol siga un planteamiento en el que se muestra un nodo seleccionado donde se puede ver adem´as padre, hijos y hermanos de ese nodo (Figura 5). De esta forma se descarta la posibilidad de ver un ´arbol global. 17
Figura 5: Ejemplo de c´omo es el sistema de vista padre, hermanos e hijos de un nodos seleccionado. 1. Nodo padre del nodo seleccionado. 2. Nodo seleccionado. 3. Nodos hijos del nodo seleccionado. 4. Nodos hermanos del nodo seleccionado. El sistema visualiza, a partir de un “nodo seleccionado”, su padre, hermanos e hijos. As´ı, cuando se presione sobre el nodo padre, hermano o hijo, la vista se recargar´a de nuevo pasando este a ser el “nodo seleccionado”, generando su padre, hermanos e hijos correspondientes. Si el usuario desea a˜nadir y eliminar nodos del ´arbol, tiene que estar usando un ´arbol propio, no uno de dominio p´ublico. Este sistema se ha desarrollado para poder a˜nadir o eliminar el “nodo seleccionado” o los nodos hijos en el caso de que estos sean nodos finales. En el caso de a˜nadir nodos se dan dos situaciones: A˜nadir al “nodo seleccionado”. En el caso de que este posea hijos se puede elegir cualquiera de ellos o todos para que pasen a ser hijos del nodo a˜nadido. A˜nadir a un nodo denominado hijo. En este caso se recargar´a la vista pasando el hijo a ser el nuevo “nodo seleccionado”. Para eliminar nodos, s´olo hay una situaci´on. En el caso de que el nodo que se desea eliminar tuviera hijos, estos pasar´ıan a ser nodos hijos del padre del 18
nodo eliminado. Otras de las acciones que se pueden llevar a cabo son a˜nadir alertas y observaciones en los nodos. Para que se pueda realizar esta acci´on he creado unos iconos en la “barra de nodo” que al hacer click muestran una ventana en la cual los usuarios podr´an a˜nadir alertas u observaciones. Cuando el usuario presione sobre cualquier nodo que no sea el “nodo seleccionado” este pasa a ser el nuevo “nodo seleccionado” y se actualiza la vista de generando los nuevos padres, hermanos e hijos. La aplicaci´on posee un buscador de nodos que permite buscar y cargar en el sistema de la vista el nodo deseado como el “nodo seleccionado”. Otra acci´on que puede realizar el usuario es acceder r´apidamente al nodo padre de un grupo y ver un ´arbol de grupos del ´arbol con el que est´a trabajando, si presiona sobre cualquier grupo el sistema carga la vista y pone al padre de ese grupo como “nodo seleccionado”. Una sugerencia del experto fue poder ver un historial de los nodos que ha ido visualizando y acceder r´apidamente a ellos. Para poder realizar esta acci´on, he a˜nadido un historial de nodos, que con solo presionar sobre cualquier nodo del historial este pasa a ser el nuevo “nodo seleccionado” de la vista. 19
20
Newick Newick es el formato de gran aceptaci´on en las aplicaciones t´ıpicas de la Bioinform´atica en An´alisis Filogen´etico. Figura 8: Ejemplo Newick para el ´arbol (A,B,(C,D)E)F; 5.4. Interacciones El intercambio de datos entre el cliente y el servidor se hace mediante peticiones HTTP (GET, POST). Las peticiones GET llevan todos los datos necesarios en la propia direcci´on url de la llamada. Cuando el servidor la recibe, la procesa y devuelve los datos solicitados. Las peticiones POST los datos no vienen dentro de la direcci´on url. Estas tipo de peticiones indican al servidor que se prepare para recibir datos, una vez que ha recibido dichos datos, los procesa y los devuelve procesados al cliente para que trabaje con ellos. El paso de datos entre el cliente y el servidor se realiza en formato JSON. 27
28
6. Experimentos Este apartado recoge la validaci´on funcional del prototipo y los resultados obtenidos para los experimentos realizados con el prototipo. 6.1. Validaci´on funcional La integraci´on de las diferentes partes de que consta el prototipo de la aplicaci´on, se hizo de la siguiente manera. El primer paso fue instalar el servidor PostgreSQL y cargar la base de datos del sistema en ´el. El siguiente paso fue crear el servidor intermediario y configurarlo para que aceptara las peticiones que recibe del cliente. Luego cre´e la vista de la aplicaci´on y esta necesitaba los datos que pose´ıa nuestra base de datos, a los cuales por el tipo de arquitectura usada no ten´ıa acceso directo por mayor seguridad. Por tanto, el siguiente paso l´ogico fue ir a˜nadiendo a nuestro servidor intermediario las peticiones necesarias para suministrar a la vista los datos necesarios. 6.2. Pruebas de rendimiento El equipo usado para realizar las pruebas de rendimineto de la aplicacion fue el siguiente: 1. Procesador: AMD A-10 5800k 2. RAM: 8GB DDR3 3. Placa Base: MSI FM2-A85XA-G65 Prueba 1 Verificar el tama˜no de un ´arbol seg´un el numero de nodos que posea y el tiempo de carga en la base de datos. Los resultados se pueden ver en la Tabla 4. Nombre n´umero nodos Tama˜no Tiempo carga arbol1 67 40kB 1 seg arbol2 848 128kB 3 seg arbol3 14512 2MB 15 seg arbol4 276 62kB 1 seg arbol5 43534 5MB 31 seg arbol6 217666 21MB 130 seg Tabla 4: Carga de arboles en la base de datos. El n´umero de nodos del ´arbol y el tama˜no de las etiquetas estos, son un factor determinante en el tama˜no de la base de datos. 29
Prueba 2 Los resultados de la Tabla 5 muestran el tiempo de respuesta del servidor intermediario al recibir una petici´on por parte de un cliente. Nombre Tiempo respuesta dameUnNodoPorId 49 ms dameArbolPorId 41 ms dameHijosDeNodo 50 ms dameRaizDeArbol 44 ms dameBarraNodoPorId 58 ms dameHijosEnBarraNodoPorId 106 ms dameRaizDeArbolEnBarra 88 ms dameAlertasNodo 60 ms dameObsNodo 67 ms dameArbolesDeUsuario 49 ms dameArbolesPublicos 53 ms Tabla 5: Tabla con el tiempo de respuesta del servidor intermediario. El tiempo de respuesta pueden variar levemente seg´un el tama˜no de la etiquetas de los datos que se soliciten al servidor. 30
7. Organizaci´on del proyecto En este apartado se exponen los detalles de la gesti´on en la realizaci´on del proyecto en la Figura 9. Figura 9: Gesti´on en la realizaci´on del proyecto Las fases contempladas en el desarrollo del proyecto han sido las siguientes. Concreci´on del proyecto e hitos de seguimiento. En esta fase es donde concretamos lo que albergar´ıa el proyecto y el seguimiento del mismo. Estado del arte. En esta fase se investig´o las formas actuales para la visualizaci´on de los ´arboles y adem´as se buscaron diferentes tecnolog´ıas con lo que se pudiera realizar las diferentes partes de la aplicaci´on. Desarrollo. En esta fase se desarroll´o el prototipo de la aplicaci´on. Memoria. En esta fase se realiz´o la memoria. Experimentos. En esta fase se realizaron diferentes pruebas en el sistema mientras estaba en fase de desarrollo y cuando el prototipo estaba finalizado para averiguar si era estable y ofrec´ıa un buen rendimiento. En cuanto a las horas de trabajo de cada una de las fases, la Tabla 6 recoge los datos correspondientes. 31
Concreci´on del proyecto e hitos de seguimiento 100 horas Estado del arte 70 horas Desarrollo 320 horas Experimentos 60 horas Memoria 110 horas Tabla 6: Resumen de horas por fase de proyecto. 32
8. Conclusiones En este proyecto he desarrollado una herramienta con la cual se puede visualizar y obtener informaci´on de una secuencia molecular dentro de un ´arbol filogen´etico de ADN mitocondrial, pudiendo adem´as conocer r´apidamente sus ancestros, sus descendientes y tambi´en donde est´a localizada dicha secuencia dentro del ´arbol. El primer problema con que me encontr´e fue comprender los distintos t´erminos biol´ogicos con los que ten´ıa que trabajar para el desarrollo del proyecto. Para dar soluci´on a este problema, Jorge ´ Alvarez Jarreta me dio una charla con todos los t´erminos biol´ogicos que pod´ıan ser necesarios para el mejor desarrollo de mi trabajo as´ı como la relaci´on de dichos t´erminos entre s´ı. A la hora de desarrollar el proyecto me surgieron varias dudas sobre qu´e tipo de tecnolog´ıas deb´ıa usar para el desarrollo de las diferentes partes en las que este se divide. Para afrontar este problema tuve que testear varias tecnolog´ıas, para ver cu´al de ellas se acoplaba mejor a los requisitos para ser aplicada en cada parte del proyecto. Las expectativas de futuro del sistema creo que pueden ser grandes ya que he dejado la puerta abierta para que se puedan acoplar aplicaciones al sistema f´acilmente. La creaci´on de un servidor intermediario es lo que nos brinda que se puedan crear diferentes tipos de clientes que pueden acoplarse al sistema f´acilmente. Por ejemplo, se puede crear un cliente de escritorio que muestre el ´arbol entero o solamente una secuencia, otro ejemplo podr´ıa ser crear una aplicaci´on m´ovil, que muestre informaci´on de las secuencias del ´arbol que el usuario desee ver. En el caso de que un nuevo tipo de cliente necesite alg´un dato que el servidor no pueda servirle, solo tendr´a que implementarse para que nuestro servidor intermediario acepte un nuevo tipo de petici´on HTTP que responda con el dato que este necesita. Gracias al uso de un gestor de base de datos con soporte para multitud de lenguajes de programaci´on facilitar´a la tarea de integrar nuevos programas desarrollados en lenguajes de programaci´on como Python y Perl, muy utilizados en Bioinform´atica. Como conclusi´on, gracias a la realizaci´on del proyecto he podido conocer c´omo trabajan y con qu´e problemas se encuentran los Bi´ologos especializados en el campo del ADN mitocondrial cuando trabajan con ´arboles filogen´eticos, al usar las herramientas inform´aticas existentes. Personalmente la realizaci´on del proyecto me ha aportado grandes conocimientos sobre tecnolog´ıas web: 1. jQuery y D3, tecnolog´ıas que nos ayudan a crear dinamismo y facilitan la creaci´on de vistas en web din´amicas. Gracias a trabajar con estas librer´ıas he adquirido experiencia para el desarrollo de este tipo de webs, ya que 33
nunca me hab´ıa encontrado antes con este tipo de webs. 2. Struts 2 y Hibernate, ya me eran conocidas y gracias al proyecto he podido ampliar mi experiencia en el uso de estas. 3. Jersey, me ha aportado el conocimiento de c´omo trabajar con servidores Restful gratuitos, puesto que solo conoc´ıa la tecnolog´ıa existente de Microsoft (WebApi) para poder realizar este tipo de tarea. Por lo tanto estoy muy contento con los conocimientos adquiridos y resultado obtenido con la realizaci´on de este PFC. 34
9. Bibliograf´ıa Referencias [1] Blacon,R. Definici´on y prototipo de herramienta de an´alisis filogen´etico para el estudio del ADN mitocondrial humano. Centro Polit´ecnico Superior, Universidad de Zaragoza. 2008 Web: http://webdiis.unizar.es/ robertob/zaramit/ [2] Liu K, Warnow TJ, Holder MT, Nelesen S, Yu J, Stamatakis A, Linder RC. 2012. SAT´e-II: Very Fast and Accurate Simultaneous Estimation of Multiple Sequence Alignments and Phylogenetic Trees. Systematic Biology. 61(1):90-106.Google Scholar SAT´e: Web://phylo.bio.ku.edu/software/sate/sate.html [3] GISED: http://webdiis.unizar.es/GISED/ [4] The NCBI handbook [Internet]. Bethesda (MD): National Library of Medicine (US), National Center for Biotechnology Information; 2002 Oct. Chapter 18, The Reference Sequence (RefSeq) Project. Available from http://www.ncbi.nlm.nih.gov/books/NBK21091/ Pruitt KD, Brown GR, Hiatt SM, Thibaud-Nissen F, Astashyn A, Ermolaeva O, Farrell CM, Hart J, Landrum MJ, McGarvey KM, Murphy MR, O’Leary NA, Pujar S, Rajput B, Rangwala SH, Riddick LD, Shkeda A, Sun H, Tamez P, Tully RE, Wallin C, Webb D, Weber J, Wu W, Dicuccio M, Kitts P, Maglott DR, Murphy TD, Ostell JM. RefSeq: an update on mammalian reference sequences. Nucleic Acids Res. 2013 [ePub] PubMed Tatusova T, Ciufo S, Fedorov B, O’Neill K, Tolstoy I. RefSeq microbial genomes database: new representation and annotation strategy. Nucleic Acids Res. 2014 Jan 1;42(1):D553-9 PubMed Web: https://www.ncbi.nlm.nih.gov/genbank/ [5] van Oven M, Kayser M. 2009. Updated comprehensive phylogenetic tree of global human mitochondrial DNA variation. Hum Mutat 30(2):E386-E394. doi:10.1002/humu.20921 Web: http://www.phyloTree.org [6] Evolgenius: http://www.evolgenius.info [7] TreeVector: http://supfam.cs.bris.ac.uk/TreeVector/ [8] bioinformatics.psb.ugent.be: http://bioinformatics.psb.ugent.be/hypergeny/quickview.php [9] TreeApp: http://iubio.bio.indiana.edu/treeapp/treeprint-form.html [10] Jstree: http://lh3lh3.users.sourceforge.net/jstree.shtml [11] TreeGraph: http://treegraph.bioinfweb.info/ 35
[12] FigTree: http://tree.bio.ed.ac.uk/software/figtree/ [13] PhyloWidget: http://www.phylowidget.org/ [14] Dendroscope: http://ab.inf.uni-tuebingen.de/software/dendroscope/welcome.html [15] GJSTree: http://www.codeproject.com/Articles/16192/Graphic-JavaScript-Tree-with-Layout [16] Basicprimitives: http://www.basicprimitives.com [17] D3.js: http://d3js.org/ 36
Figura 15: Entidad Alerta. Entidad Alerta campos id →tipo entero descripci´on →tipo varchar(255) idArb →tipo entero idNodo →tipo entero clave primaria pkaler →id clave for´anea fkalert0 for´anea con pknodo →idArb →idNodo Figura 16: Entidad Obs. Entidad Obs campos id →tipo entero observaci´on →tipo varchar(255) idArb →tipo entero idNodo →tipo entero clave primaria pkobs →id clave for´anea fkobs0 for´anea con pknodo →idArb →idNodo 43
Figura 17: Entidad Arbol. Entidad Arbol campos id →tipo entero nombre →tipo varchar(255) publico →tipo boolean idusu →tipo entero clave primaria pk´arbol →id clave for´anea fk´arbol1 for´anea con pkusu →idusu Figura 18: Entidad Grupo. Entidad Grupo campos id →tipo entero nombre →tipo varchar(255) clave primaria pkgrupo →id 44
Figura 19: Entidad Usuario. Entidad Usuario campos id →tipo entero nombre →tipo varchar(255) pass →tipo varchar(255) clave primaria pkusu →id Figura 20: Entidad Nodo. Entidad Nodo campos id →tipo entero idArb →tipo entero nombre →tipo varchar(255) idPadre →tipo entero grupo →tipo entero longitud →tipo punto flotante clave primaria pknodo →id →idarb clave for´anea fkgru0 for´anea con pkgrupo →id fknodo0 for´anea con pkarb →id fkgru0 for´anea con pknodo →id →idarb 45
46
C. Diagramas UML C.1. Diagrama de clase C.1.1. Cliente Figura 21: Diagrama de clases del cliente. 47
C.1.2. Servidor intermediario Figura 22: Diagrama de clases global del servidor intermediario. 48
Figura 23: Clase BarraNodo. Figura 24: Clase Arbol. Figura 25: Clase Obs. 49
Figura 26: Clase NodoBusq. Figura 27: Clase Nodo. Figura 28: Clase NodoId. 50
Figura 29: Clase Alerta. Figura 30: Clase Usuario. Figura 31: Clase ArbolUsuario. 51
Figura 32: Clase Grupo. Figura 33: Clase GrupoVisor. 52
Figura 40: Diagrama Acceder ´arbol propietario. 59
60
D. Manual de usuario En este documento se describir´an los requisitos necesarios para que la aplicaci´on funcione y las funcionalidades de esta. D.1. Requisitos Software Las aplicaciones que necesitaremos tener instaladas en nuestra sistema ser´an las siguientes: 1. Apache Tomcat 7 (o superior) 2. PostgreSQL 9.1.12 3. JDK 7 D.2. Instalaci´on de la aplicaci´on En primer lugar se proceder´a a instalar los programas citados en los requisitos de software del sistema. D.2.1. Base de datos Ahora se procede a ejecutar el Script llamado “CreadorDeBaseDeDatos.Sql” en el PostgreSQL, el cual crear´a las tablas necesarias para que funcione la aplicaci´on. D.2.2. Servidor web y cliente web Para que tanto el servidor web como el cliente web funcionen en nuestro sistema, se necesita montar los archivos llamados “cliente.war” y “servidor.war” en nuestro servidor web Apache Tomcat. 61
D.3. Autenticaci´on Figura 41: Pantalla de login. 1. Campo de texto para introducir el nombre de usuario. 2. Campo de text para introducir la contrase˜na de usuario. 3. Bot´on Login 4. Bot´on Invitado D.3.1. Invitado Para autenticarse como invitado se debe presionar sobre el boton Invitado(4). D.3.2. Usuario Para autenticarse como Usuario de la aplicaci´on, se debe introducir su nombre de usuario(1) y su contrase˜na(2) . Presionar en el bot´on Login(3). D.4. Seleccionar ´arbol En el caso de que se acceda como invitado se muestra la imagen tal como aparece en la Figura 42 y en el caso de acceder como usuario se muestra una imagen como aparece en la Figura 56 62
D.4.1. Selecci´on de ´arbol como Invitado Figura 42: Selecci´on de ´arbol como Invitado. 1. Columna con los nombre de los ´arboles. 2. Columna con los nombre de los usuarios propietarios de los ´arboles. Para acceder a cualquier ´arbol de los p´ublicos que posee el sistema se tendr´a que presionar sobre la fila del ´arbol que se desee visualizar. D.4.2. Selecci´on de ´arbol como Usuario Figura 43: Selecci´on de ´arbol como Usuario. 1. Columna con los nombre de los ´arboles que posees como usuario. 63
2. Columna con los nombre de los ´arboles de ´arboles publicos. 3. Columna con los nombre de los usuarios propietarios de los ´arboles. Para acceder a cualquier ´arbol p´ublico o de los que posees como usuario se tendr´a que presionar sobre la fila del ´arbol que se dese´e visualizar. D.5. Visor de ´arboles Figura 44: Visor de ´arboles. 1. Visualizador de ancestros de grupos. 2. Visualizador de secuencias. 3. Buscador de secuencias. 4. Historial de secuencias. 5. Visualizador de ´arbol de grupos. D.5.1. Visualizador de ancestros de grupos Figura 45: Visualizador de ancestros de grupos. 64
En esta secci´on se puede visualizar el grupo al que pertenece y los grupos padres de la secuencia con la que se esta trabajando. D.5.2. Visualizador de secuencias Figura 46: Visor de secuencias. 1. Secuencia padre de la secuencia seleccionada. 2. Secuencia seleccionada. 3. Secuencias hijas de la secuencia seleccionada. 4. Secuencias hermanas de la secuencia seleccionada. El sistema se basa en ver de una secuencia selecci´on da su padre, hermanos e hijos. As´ı cuando se presiona sobre la barra del padre, hermano o hijo de una secuencia, la vista se recarga de nuevo pasando esta a ser la secuencia seleccionada y as´ı generando sus padre, hermanos e hijos. Informaci´on de una secuencia 65
Figura 47: Informaci´on de una secuencia. 1. Longitud de la secuencia. 2. Grupo al que pertenece la secuencia. 3. Nombre de la secuencia. Tipos de barra Figura 48: Indica que esa secuencia no tiene hijos. Figura 49: Indica que esa secuencia tiene hijos. Iconos en la barra Figura 50: Bot´on para a˜nadir alertas. Figura 51: Bot´on ver alertas. Figura 52: Bot´on para a˜nadir observaciones. 66
Figura 53: Bot´on para abrir ventana de a˜nadir o eliminar secuencia. D.5.3. Buscador de secuencias Figura 54: Buscador de secuencias. 1. Campo de texto para introducir nombre de secuencia. 2. Bot´on Buscar. D.5.4. Historial de secuencias Figura 55: Historial de secuencias. 1. Bot´on que muestra nombre de una secuencia visitada anteriormente. En el historial se puede verlas secuencias que se han visualizado a lo largo de la sesi´on de trabajo. Si se presiona sobre una fila de una secuencia del historial se carga la secuencia seleccionada en el visualizador. 67
D.5.5. Visualizador de ´arbol de grupos Figura 56: Visualizador de ´arbol de grupos. 1. Bot´on que muestra el nombre de un grupo del ´arbol. En el visualizador de grupos se muestra un ´arbol completo de los grupos del ´arbol con el que se esta trabajando. Si se presiona sobre un grupo cualquiera del ´arbol, se carga en el visualizador la secuencia padre del grupo elegido como secuencia seleccionada. 68