SISTEMA INFORMÁTICO PARA CONSULTAS A …roa.ult.edu.cu/bitstream/123456789/1873/1/Yasser Moreno...
Transcript of SISTEMA INFORMÁTICO PARA CONSULTAS A …roa.ult.edu.cu/bitstream/123456789/1873/1/Yasser Moreno...
UNIVERSIDAD DE LAS TUNAS
FACULTAD DE CIENCIAS TÉCNICAS
DEPARTAMENTO DE INFORMÁTICA
SISTEMA INFORMÁTICO PARA CONSULTAS A DATOS DE EPÍTOPES
TRABAJO DE DIPLOMA EN OPCIÓN AL TÍTULO DE
INGENIERO INFORMÁTICO
AUTOR: YASSER MORENO RAD
TUTOR: Ing. MANUEL ALEXANDER MOLINA ESPINOSA
Las Tunas, junio de 2011
Agradecimientos
Primero que todo a Dios, por proporcionarme todo lo que necesité
para llegar a este momento.
A mi tutor, por ayudarme y dedicar parte de su preciado tiempo a
este trabajo.
A todos las personas que me ayudaron y apoyaron.
A la familia que me creó.
A la familia que yo he creado.
A todos mis amigos.
DECLARACIÓN DE AUTORÍA
Declaro que soy el único autor de este trabajo y autorizo a la Facultad de Ciencias
Técnicas así como al Departamento de Informática para que hagan el uso que
estimen pertinente con este trabajo.
Para que así conste firmo la presente a los 10 días del mes de junio de 2011.
______________ ______________
Firma del Autor Firma del Tutor
OPINIÓN DEL USUARIO DEL TRABAJO DE DIPLOMA
El Trabajo de Diploma, titulado SISTEMA INFORMÁTICO PARA CONSULTAS A
DATOS DE EPÍTOPES, fue realizado en la Universidad de Las Tunas. Esta entidad
considera que, en correspondencia con los objetivos trazados, el trabajo realizado le
satisface
Totalmente
Parcialmente en un ___ %
Los resultados de este Trabajo de Diploma le reportan a esta entidad los
beneficios siguientes:
Contar con una BD donde se reflejan los virus, proteínas,
componentes, epítopes y sus mutantes (actualmente solo HIV-1)
Seleccionar epítopes según el tipo de proteína y componente del que
forma parte
Visualizar y modificar los datos más importantes de los epítopes
Visualizar datos generales de epítopes
Visualizar datos de mutantes pertenecientes a un epítope dado
Y para que así conste, se firma la presente a los 10 días del mes de junio del
año 2011
Manuel A. Molina Espinosa Profesor
Representante de la entidad Cargo
___________ ___________
Firma cuño
RESUMEN
El presente trabajo muestra el desarrollo e implementación de un Sistema informático
para consultas a datos de epítopes, el cual permite explorar una base de datos con
información de los mismos. Se trata de una aplicación que brinda información acerca
de un epítope determinado y además, partiendo de este, posibilita al usuario conocer
otras informaciones, fundamentalmente de los mutantes y mutantes de escape
correspondientes, en caso de tenerlos, puesto que los últimos permiten a los virus
evadir la respuesta inmunológica del organismo. La realización de este trabajo está
determinada por la necesidad de analizar y estudiar las especificidades de estos
elementos, determinantes en el desarrollo bioinformático actual. Esta investigación y
la implementación en términos informáticos, determina su aplicación para el análisis
de las mutaciones en los virus y en base a estas, aspirar a una producción más
efectiva de las vacunas.
ÍNDICE
INTRODUCCIÓN ............................................................................................................................. 1
CAPÍTULO 1. Marco teórico conceptual ........................................................................................ 4
Introducción .................................................................................................................................. 4
1.1 Bioinformática ......................................................................................................................... 4
1.2 Algoritmos de distancia. ........................................................................................................ 6
1.2.1 Distancia de Levenshtein ............................................................................................... 7
1.3 Proceso de importación de los datos. .................................................................................. 8
1.4 Valoración de aplicaciones similares. ................................................................................ 11
1.5 Descripción de software, técnicas y metodologías utilizadas. ........................................ 12
Conclusiones .............................................................................................................................. 14
CAPÍTULO 2. Análisis y diseño del sistema ............................................................................... 15
Introducción ................................................................................................................................ 15
2.1 Modelo de Dominio. ............................................................................................................. 15
2.2 Modelo del Sistema. ............................................................................................................ 15
2.2.1 Objeto de automatización. ........................................................................................... 15
2.2.2 Captura de requisitos. .................................................................................................. 16
2.2.2.1 Requisitos funcionales. ............................................................................................. 16
2.2.2.2 Requisitos no funcionales ......................................................................................... 17
2.2.3 Casos de uso del sistema ............................................................................................ 18
2.2.4 Diagrama de casos de uso del sistema. ..................................................................... 18
2.2.5 Descripciones textuales de los casos de uso más importantes. .............................. 19
2.3 Modelo de Diseño ................................................................................................................ 23
2.3.1 Realización de los casos de usos. .............................................................................. 24
2.3.1.1 Diagrama de clases del diseño. ............................................................................... 24
2.3.1.2 Diagrama de secuencia. ........................................................................................... 27
2.3.2 Diagrama de clases persistentes. ............................................................................... 31
2.3.3 Modelo de Datos. .......................................................................................................... 32
2.3.4 Modelo de Despliegue. ................................................................................................. 33
2.4 Implementación. ................................................................................................................... 33
2.4.1 Modelo de Componentes. ............................................................................................ 33
2.4.1.1 Diagrama de la arquitectura del sistema. ................................................................ 33
2.4.1.2 Diagrama de componentes de los casos de uso críticos. ...................................... 34
Conclusiones .............................................................................................................................. 34
CAPÍTULO 3. Implementación del sistema ................................................................................. 35
3.1 Aspectos relativos a la implementación del sistema. ...................................................... 35
3.2 Diseño de la interfaz. ........................................................................................................... 35
3.3 Forma general y principios en que se basa el sistema de ayuda.................................... 36
3.4 Forma general y principios de la protección y seguridad. ................................................ 36
3.5 Forma general del tratamiento de errores. ........................................................................ 37
CONCLUSIONES .......................................................................................................................... 39
RECOMENDACIONES.................................................................................................................. 40
BIBLIOGRAFÍA............................................................................................................................... 41
REFERENCIAS BIBLIOGRÁFICAS ............................................................................................. 42
ANEXOS ......................................................................................................................................... 44
1
INTRODUCCIÓN
La existencia en nuestro país de numerosos complejos científicos, algunos de los
más relevantes son el Centro de Ingeniería Genética y el Centro de Investigaciones
de Medicina Tropical, ha permitido la concreción de importantes logros científicos.
Entre los más importantes obtenidos mediante la colaboración entre estos centros
científicos está la vacuna contra la meningo, que ha contribuido a salvar numerosas
vidas.
Un desarrollo adecuado en la preparación de vacunas es fundamental para mantener
protegida una población de individuos contra un agente patógeno, normalmente
externo. Nuestro sistema inmune reconoce múltiples fragmentos de las proteínas que
forman parte de este agente, denominados epítopes [HOFMEYR, 2000]. Una
adecuada elección de estos epítopes permitiría crear vacunas más efectivas contra
este invasor del organismo.
En la composición de las proteínas pueden aparecer hasta 20 tipos de aminoácidos
distintos. Un epítope al ser un fragmento de una proteína está compuesto también
por cualquier combinación de estos aminoácidos y una vez que se han obtenido los
mejores candidatos hay que probar las futuras vacunas contra estos y sus posibles
variantes.
Hoy en día, para crear una vacuna luego de seleccionar los epítopes candidatos se
realizan pruebas en laboratorio, y se analizan los resultados y la evolución de los
patógenos respecto a estos preparados, luego se determina el mejor para hacerle
frente a una infección real en un organismo.
El uso del método anterior implica que normalmente no se pueden probar todas las
variantes por diversas cuestiones (tiempo, dinero, tecnología) imposibilitando
obtener una vacuna más efectiva. La dificultad radica en el número tan elevado de
posibles mutaciones, puesto que cada aminoácido puede mutar a otro de los 19
existentes; esto genera una explosión combinatoria que imposibilita preparar
adecuadamente la vacuna contra todas, y más importante aún es que resulta
imposible predecir las variantes para evadir su acción preventiva.
2
Algunos autores han tratado este tema usando diversas técnicas para tratar de
predecir con mayor exactitud cuando se está en presencia de una variante de
escape. Entre las técnicas usadas están las comparaciones de estructuras
tridimensionales, el uso del factor IC50 (inhibitory concentration) para determinar la
posible afinidad entre el epítope y los anticuerpos.
Aunque existen varias aplicaciones, específicamente, bases de datos, de las cuales
se dispone para su uso en la producción de vacunas a nivel mundial, el autor
considera que las mismas, en los casos estudiados, profundizan bastante en el
aporte de información de los epítopes originales, no siendo así con los mutantes,
determinados por la variación que se produce en la cadena de aminoácidos que
forman el epítope original, o mutantes de escape, sobre los que no se produce
detección en el sistema inmunológico. El autor considera que la implementación de
un sistema que además de presentar información, permita el estudio de lo que a
mutantes respecta, constituiría una herramienta aún más eficiente y completa.
Disponer de una base de datos orientada a exponer las características de los
epítopes y sus mutantes para poder estudiar las relaciones que existan entre ellos,
constituye un valioso aporte.
Partiendo de lo antes expuesto podemos definir como problema científico: ¿Cómo
favorecer la gestión de los datos de epítopes presentes en las cadenas de los virus y
sus mutantes, para la producción de vacunas?
Dicho problema se circunscribe dentro del objeto de estudio: Gestión de datos
bioinformáticos del sistema inmunológico. Como campo de acción se define:
Gestión de datos de los epítopes y los mutantes.
Para dar solución al problema planteado se definió el siguiente objetivo: Elaborar
una aplicación que facilite la consulta de los datos tanto de epítopes como de sus
mutantes.
Por todo lo antes expuesto, este trabajo se basa en la siguiente idea a defender:
3
La elaboración de una aplicación para la consulta de datos de los epítopes y los
mutantes correspondientes, facilitará no solo el acceso a la información de estos,
sino que permitirá realizar estudios para determinar patrones de mutación de los
virus.
Objetivos Específicos
Definir conceptos vinculados a la bioinformática.
Explicar funcionamiento del sistema inmunológico.
Identificar las limitantes de los sistemas similares existentes.
Analizar los principales elementos que necesita el nuevo sistema.
Diseñar un sistema para la consulta de datos de epítopes y mutantes.
Implementar una aplicación de escritorio para la obtención de los datos.
Tareas Científicas
Estudio del funcionamiento del sistema inmunológico.
Estudio del estado del arte acerca de bases de datos de epítopes.
Análisis y diseño de una aplicación para la consulta de datos de epítopes y
mutantes.
Métodos de investigación
Histórico-lógico: Se hace un análisis y se caracterizan las bases de datos
existentes con el objetivo de apoyarnos en su experiencia y detectar
deficiencias.
Análisis-Síntesis: Se emplea principalmente para el desarrollo del marco
teórico ya que se analiza la bibliografía encontrada acerca del tema en general
y finalmente se sintetiza lo que interesa para este trabajo.
4
CAPÍTULO 1. Marco teórico conceptual
Introducción
En el presente capítulo se realiza un análisis para la comprensión de algunos temas
biológicos, teniendo en cuenta que de estos parte todo el asunto a tratar. Se explica
de manera general, el funcionamiento del sistema inmunológico para entender en
qué parte de este se manifiesta el proceso de formación de epítopes. Se definen
aspectos relacionados a los algoritmos para el cálculo de distancia, específicamente
la Distancia de Levenshtein; así como el bosquejo de algunas aplicaciones existentes
para la consulta de datos. Se describen las herramientas utilizadas para la
realización del software.
Las siguientes temáticas permiten comprender la caracterización y el diagnóstico del
problema presentado.
1.1 Bioinformática
En el mundo de hoy, las computadoras son tan usadas por biólogos como por
cualquier otro profesional altamente entrenado, ellos usan computadoras para
realizar tares comunes o para ocuparse de problemas que son muy específicos en la
biología. Estas tareas específicas, forman el campo de la bioinformática. Es decir,
podemos definir bioinformática como la rama computacional de la biología molecular.
[CLAVERIE, 2007].
1.1.1 La expresión genética y la síntesis de proteínas
El Ácido desoxirribonucleico (ADN) es el material genético de todos los organismos
celulares y la mayoría de los virus. El ADN transmite la información necesaria para la
síntesis de proteína y la replicación [PETTERSSON, 2005]. Las proteínas están
compuestas por 20 tipos de aminoácidos (fig.1 Anexo), generalmente compuestos de
carbono, hidrógeno, oxígeno, nitrógeno, y azufre; los que están unidos
secuencialmente como una cadena en un orden preciso determinando su identidad y
estructura.
5
1.1.2 Funcionamiento del Sistema inmunológico
El “propósito” del sistema inmunológico es proteger el cuerpo de amenazas
planteadas por agentes patógenos, y hacer eso de un modo que minimice daño para
el cuerpo y asegure su normal funcionamiento. El agente patógeno representa a
microorganismos hostiles, como bacterias, virus y otros, que constantemente asaltan
el cuerpo. Una vez que los agentes patógenos han sido detectados, el sistema
inmunológico los debe eliminar en alguna manera.
Figura 1. Tomada de An Interpretative Introduction to the Immune System.
Las defensas del sistema inmunológico son multicapas, comenzando por la piel, que
funciona como una barrera donde se eliminan parte de los agentes, luego las
condiciones fisiológicas, y seguido el sistema inmunológico innato, donde se produce
la fagocitosis. El estrato final es el sistema inmunológico adaptativo, lo cual consta de
células llamados linfocitos que se adaptan a la estructura de agentes patógenos para
eliminarlos eficazmente [HOFMEYR, 2000].
1.1.3 Reconocimiento específico del sistema inmunológico
Una detección o evento de reconocimiento ocurre en el sistema inmunológico cuando
los enlaces químicos son establecidos entre receptores en la superficie de una célula
inmune y epítopes, los cuales están localizados en la superficie de un agente
patógeno o fragmento de proteína.
6
Figura 2. Tomada de An Interpretative Introduction to the Immune System.
La similitud entre un receptor y un epítope es llamada afinidad. Los receptores son
estimados específicos porque amarran apretadamente sólo a algunas estructuras
similares del epítope. El comportamiento de linfocitos es fuertemente influenciado por
afinidades: Un linfocito sólo será activado (esto puede ser llamado un
“acontecimiento de detección”) cuando el número de receptores atados excede algún
límite. Así, un linfocito sólo será activado por agentes patógenos si sus receptores
tienen afinidades suficientemente altas para las estructuras particulares del epítope
en los agentes patógenos, y si los agentes patógenos existen en cantidades
suficientes alrededor del linfocito, o sea, cuando el número de patógenos detectados
es superior a un porciento significativo del total de receptores presentes en el linfocito
[HOFMEYR, 2000].
1.2 Algoritmos de distancia.
Aunque existe un conjunto de algoritmos basados en la distancia, como la Distancia
de Mahalanobis, establecida en las correlaciones entre los rasgos de dos vectores, la
Distancia de Manhattan, para medir la distancia más corta requerida para ir de un
punto a otro; o la Distancia de Minkousky como generalización de varias distancias
7
canónicas[HERTZ, 2006], por solo citar algunas; el autor considera la inefectividad
del empleo de las mismas para este trabajo, puesto que no funcionan
adecuadamente entre las cadenas de caracteres que componen a los epítopes; y la
utilidad que reportaría la Distancia de Levenshtein (específica para esto), dada sus
características, si se analiza su aplicación en la detección de las mutaciones en los
epítopes originales y en la implementación del cálculo de similitud entre los codones
que dan origen a un aminoácido entre un epítope original y un mutante,
determinando el valor probable de mutación que existe entre ellos.
1.2.1 Distancia de Levenshtein
La Distancia de Levenshtein(DL), distancia de edición, o distancia entre
palabras(descubierta por el científico ruso Vladimir Levenshtein en 1965), es una
medida de la similitud entre dos cadenas (string), a las cuales podemos referirnos
como cadena de origen (o) y cadena de destino (d). La distancia es el número de
supresiones, inserciones, o sustituciones necesarias para transformar o en d.
La Distancia de Levenshtein entre dos cadenas, s1 y s2, también puede ser definida
como el número mínimo de puntos de mutación necesarias para cambiar s1 en s2,
donde un punto de mutación puede estar determinado por cualquiera de las
transformaciones antes mencionadas, ofreciendo un indicador del grado de
“cercanía” entre una cadena y la otra. Por ejemplo:
Si o es “CASA” y d es “CASA”, entonces DL(o, d)=0; porque no es necesario
realizar transformaciones, las cadenas ya son idénticas.
Si o es “CASA” y d es “CAZA”, entonces DL(o, d)=1; porque una sustitución
(cambio de “S” a “Z”) es suficiente para transformar o en d.
Entre más grande sea el valor de la Distancia de Levenshtein, mayor será la
diferencia entre las cadenas. Los principales usos del algoritmo han sido para
revisión ortográfica, reconocimiento de idioma, detección de plagio y biología
molecular (análisis de ADN) [GUILLELAND, 2009].
8
1.3 Proceso de importación de los datos.
PDI (Pentaho Data Integration), originalmente nombrado Kettle, es una poderosa
solución del ETL (Extract, Transform, and Load) utilizada con disímiles propósitos.
[GET, 2010]. Para el caso particular de este trabajo, su principal uso está
determinado en la migración de los datos entre bases de datos y aplicaciones. PDI
permite crear dos tipos de documentos básicos: transformaciones y trabajos, los
primeros son usados para describir el flujo de los datos para ETL, como la lectura
desde una fuente, transformación y carga de datos dentro del lugar designado, y los
segundos para coordinar las actividades de definición del flujo y dependencias entre
diferentes trabajos y transformaciones, según el orden en que deben ejecutarse, o
preparar para la ejecución verificando precondiciones que deben cumplirse para una
ejecución satisfactoria.
Los pasos fundamentales realizados en el proceso de importación de los datos
bioinformáticos hacia las tablas del modelo relacional propuesto en PostgreSql
fueron:
1.-Selección de las fuentes disponibles, fundamentalmente la HIV Molecular
Immunology y la IEDB (Immune Epitope Database 2.0).
2.-Colección de los datos más relevantes en una base de datos en Access.
3.-Creación de una base de datos en PostgreSql como repositorio, con la finalidad de
almacenar las transformaciones a realizar.
4.-Creación de una base de datos con la finalidad de almacenar la información,
hacia los que van dirigidos los estudios mediante la aplicación visual.
5.-Creación y configuración de las transformaciones.
A continuación se muestra un fragmento del proceso de transformación realizado
para la importación de datos de los epítopes hacia la base de datos, con el empleo
de PDI.
9
La siguiente figura presenta cómo se define la entrada de los datos a partir de una
tabla en Access y la salida de los datos a una tabla en PostgreSql.
Figura 3. Definición de entrada y salida de los datos.
Haciendo doble click encima se definen los parámetros de la entrada de los datos.
Figura 4. Parámetros de entrada.
10
De igual manera se definen los parámetros para la salida de los datos.
Figura 5. Parámetros de salida.
El siguiente diagrama refleja el modelo conceptual aplicado en el proceso de ETL,
haciendo mayor énfasis en la parte de las transformaciones, como eslabón
fundamental al criterio del autor.
Figura 6. Modelo conceptual aplicado.
11
1.4 Valoración de aplicaciones similares.
Existe un vasto y siempre creciente volumen de información que ha sido acumulado
por décadas de análisis experimentales con inmunología. La única manera eficaz
para que esta información sea utilizada apropiadamente requiere el desarrollo de
bases de datos que la guardan y sistemas que lo usan. La creación, uso, y
manipulación de bases de datos que contienen la información biológicamente
importante son el rasgo más crucial de la bioinformática actual. Bases de datos
funcionales u orientados a epítopes son el más reciente desarrollo [PTOSELAND,
2010].
A continuación se hace un recuento de algunas de las bases de datos disponibles en
Internet, las que además de representar una poderosa herramienta para el desarrollo
biotecnológico a nivel mundial, sirven de punto de partida para el progreso de esta
investigación.
AntiJen es un sistema de base de datos enfocado en la integración de datos
cinéticos, termodinámicos, funcionales, y celulares dentro del contexto de
inmunología y la producción de vacunas. Comparado a su progenitor JenPep, oferta
una variedad más amplia de métodos de búsqueda. Aunque AntiJen v2.0 retiene un
enfoque hacia epítopes de células T y B, su mayor novedad es el archivado de datos
cuantitativos continuos en una variedad de interacciones moleculares inmunológicas.
Los usos de AntiJen incluyen el diseño de vacunas y diagnósticos. Constituye
además una ayuda al bioinformático o matemático en el modelado in silico del
sistema inmunológico [PTOSELAND, 2010].
La IEDB (Immune Epitope Database 2.0) proporciona un catálogo
experimentalmente caracterizado de epítopes de células B y T. La base de datos
representa las estructuras moleculares reconocidas por los receptores inmunes
adaptables y los contextos experimentales en que estas moléculas fueron
determinadas para ser epítopes inmunes. Los epítopes reconocidos en los
humanos, los primates, roedores, cerdos, gatos y todas las otras especies probadas
son incluidos. Se capturan los resultados experimentales positivos y negativos. Se
12
puede acceder a la información mediante la estructura del epítope, organismo, la
restricción de MHC, entre otros criterios. El propósito del IEDB es catalogar todo lo
derivado experimentalmente sobre los epítopes inmunes [SETTE, 2010].
ISED (Influenza Sequence and Epitope Database) fue diseñada para colectar,
almacenar y proveer información del virus de la influenza, incluyendo su resistencia a
los medicamentos. Las secuencias de virus en ISED son categorizadas dentro de
tablas de acuerdo a los países, en los cuales son categorizados por un conjunto de
atributos, como el tipo de virus, segmento de ARN (ácido ribonucleico), segmento de
aminoácidos, número de aminoácidos, entre otros [YANG, 2010].
El autor de este trabajo considera que, sin dudar del valor aportado por todas estas
aplicaciones, en ninguno de los casos conocidos (incluso los no mencionados), se
dispone de alguna que permita analizar los mutantes de los epítopes. Los ejemplos
citados anteriormente manifiestan un buen dominio de las técnicas para el desarrollo
y acceso a la información correspondiente a los epítopes, sin embargo no presentan
la solidez requerida al tratar los temas de sus variantes, entiéndase por estas, el
caso en que estos epítopes originales tengan mutantes y/o mutantes de escape, y lo
que estos últimos representan, al no producirse su detección en el organismo.
Aunque no se disponen de cifras exactas, la implementación, uso correcto y el
desarrollo de un sistema que resuelva las limitaciones antes mencionadas, tendría
una amplia repercusión económico-social, sobre todo, en el contexto actual, donde
nuestro país se proyecta en aras de sostener y desarrollar los resultados alcanzados
en el campo de la biotecnología, la industria del software, la bioinformática y la
nanotecnología [PLPES, 2010].
1.5 Descripción de software, técnicas y metodologías utilizadas.
En el diseño e implementación de nuestra aplicación, se han empleado diferentes
herramientas, metodologías y técnicas, las cuales se manifiestan a continuación
13
Java
Es un lenguaje de programación de alto nivel que ha ganado renombre en la
programación moderna. Permite la creación de poderosas aplicaciones, sitios web o
pequeños programas. Java es un lenguaje de programación completamente portable,
por lo que un programa escrito en Java podrá, teóricamente, correr en cualquier
computadora o sistema operativo, siempre y cuando tenga instalada su plataforma.
Se encuentra diseñado con el objetivo de brindar una plataforma de libre distribución
para la creación de aplicaciones.
PostgreSql
PostgreSql es un popular sistema de gestión de base de datos relacional orientada a
objetos. Es dirigido por una comunidad de desarrolladores y organizaciones
comerciales las cuales trabajan en su desarrollo, dicha comunidad es denominada el
PGDG (PostgreSql Global Development Group). Este potente gestor incorpora
características como la alta concurrencia, incorpora una amplia variedad de tipos de
datos e implementa ciertas características orientadas a objetos, además es
multiplataforma, muy seguro y robusto.
Pentaho Data Integration (PDI)
Es una herramienta que incluye facilidad de uso, diseño gráfico ambientado para
realizar trabajos y transformaciones, produciendo un desarrollo más rápido, con el
más bajo costo de mantenimiento, depuración interactiva, y desarrollo simple. PDI es
una herramienta sumamente flexible dirigida entre otros a la migración de datos entre
distintas bases de datos y aplicaciones. Es de fácil instalación y uso, con soporte
para plataformas Windows, Linux y Macintosh. Proporciona seguridad de
integración, planificación, y manejo robusto de contenido que incluye la completa
revisión para los trabajos y transformaciones [GET, 2010].
14
Metodología RUP (Rational Unified Process) con AM (Agile Modeling)
RUP es un proceso para describir el sistema, caracterizado por ser iterativo e
incremental, donde cada fase se desarrolla en iteraciones donde se involucran
actividades de todos los flujos de trabajo, centrado en la arquitectura que muestra la
visión común del sistema completo en la que el equipo de proyecto y los usuarios
deben estar de acuerdo; dirigido por caso de uso, ya que estos reflejan lo que los
usuarios futuros necesitan y desean. En tanto, AM no es un método ágil cerrado en
sí mismo, sino que constituye un complemento de otras metodologías (en nuestro
caso de RUP) para hacer más ligeros los procesos que se usan. Se le podría definir
como un proceso de software basado en prácticas cuyo objetivo es orientar el
modelado de una manera efectiva y ágil [AMBLER, 2002].
Lenguaje UML (Unified Modeling Language)
Es un lenguaje gráfico para visualizar, especificar y documentar cada una de las
partes que comprende el desarrollo de software, utilizado para la construcción de
aplicaciones basadas en conceptos orientados a objetos. Se usa para especificar
pues construye modelos sin ambigüedad y completos.UML tiene una sintaxis y
semántica bien definidas, permitiendo representar el modelado de sistemas mediante
el uso de una notación común. Se caracteriza por su flexibilidad, es extensible e
independiente de los diversos procesos del análisis y diseño orientado a objetos.
Conclusiones
Después de analizar el marco teórico correspondiente a este trabajo llegamos a la
siguiente conclusión.
Para dar solución al problema, es necesario la integración de los elementos
antes expuestos, en el diseño de una aplicación que además de presentar los
datos de los epítopes, permita realizar algunos estudios referentes a los
mismos.
15
CAPÍTULO 2. Análisis y diseño del sistema
Introducción
En el presente capítulo se muestra el proceso de modelado del sistema, teniendo en
cuenta la metodología a emplear. Se muestran los componentes vinculados al diseño
de la aplicación y sus requerimientos.
2.1 Modelo de Dominio.
El modelo de dominio o conceptual, representa los conceptos significativos en un
dominio del problema. Representa cosas del mundo real, no componentes del
software. A través de este se comunica cuáles son los términos importantes y cómo
se relacionan entre sí [LARMAN, 2004].
Virus ADN
1*
1*
Contiene
Codón
*
1
*
1
Estructurado-porProteína
*
1
*
1Compuesto-por
Aminoácido
1..*1 1..*1
generado-por
Epítope
* 1* 1
Fragmento-de
*1
*1
Compuesto-por
Mutante de escape
0..*
1
0..*
1
Puede-tener
Mutante
0..*
1
0..*
1Puede-tener
0..11 0..11
Puede-ser
Figura 7. Modelo de dominio.
2.2 Modelo del Sistema.
2.2.1 Objeto de automatización.
Se desea implementar una aplicación para la obtención y manipulación de
información en una base de datos de epítopes, de forma tal que el usuario pueda
acceder a la misma, y realizar los estudios que considere necesarios. La aplicación
16
debe permitir al usuario, entre otras cosas, estudiar la correlación existente entre las
variantes mutantes y mutantes de escape, dado un epítope original seleccionado de
una proteína.
2.2.2 Captura de requisitos.
Para el proceso de captura de requisitos se parte del objeto de automatización,
considerando que los requisitos funcionales son las capacidades o condiciones que
debe cumplir el sistema, es decir, las funcionalidades del software. Además, se
definen los requisitos no funcionales, dado por las propiedades o cualidades con que
debe contar el producto para su correcto empleo y aceptación.
2.2.2.1 Requisitos funcionales.
R1: Verificar validez del usuario.
R2: Mostrar organismo en estudio.
R3: Mostrar listado de subtipos.
R4: Permitir seleccionar un subtipo.
R5: Mostrar listado de proteínas del organismo.
R6: Permitir seleccionar la proteína.
R7: Mostrar listado de componentes de la proteína seleccionada.
R8: Permitir seleccionar un componente.
R9: Mostrar listado de epítopes.
R10: Permitir seleccionar un epítope.
R11: Mostrar detalles de un epítope.
R12: Mostrar listado de mutantes del epítope (en caso de tenerlos).
R13: Permitir seleccionar un mutante.
17
R14: Mostrar detalles de la mutación.
R15: Insertar un epítope.
R16: Modificar un epítope.
R17: Eliminar un epítope.
2.2.2.2 Requisitos no funcionales
Requerimientos de apariencia o interfaz externa.
El sistema es legible, fácil de usar y profesional. La interfaz es sencilla y fácil de
entender manteniendo una misma línea de principio a fin.
Requerimientos de Portabilidad.
El software permite ser usado en diferentes plataformas.
Requerimientos de Software.
Se debe disponer sistema operativo Windows NT o superior, Linux y Máquina Virtual
de Java (JVM).
Requerimientos de Hardware.
Se debe disponer de una máquina, con memoria RAM como mínimo de 512MB,
procesador Pentium 4 o superior.
Requerimientos de Seguridad.
Confidencialidad: La información manejada por el sistema está protegida de acceso
no autorizado y divulgación.
Integridad: La información manejada por el sistema es objeto de cuidadosa
protección contra la corrupción y estados inconsistentes, de la misma forma será
considerada igual a la fuente o autoridad de los datos.
18
Disponibilidad: Al usuario autorizado se le garantiza el acceso a la información y que
los dispositivos o mecanismos utilizados para lograr la seguridad no ocultarán o
retrasarán al mismo la obtención de los datos deseados en un momento dado.
2.2.3 Casos de uso del sistema
1. CUS Autenticarse.
2. CUS Obtener listado de componentes dada la proteína.
3. CUS Obtener listado de epítopes dado el componente.
4. CUS Obtener listado de mutantes dado el epítope.
5. CUS Obtener detalles de mutación.
6. CUS Gestionar datos del epítope.
El actor del sistema es para todos los CUS el usuario, puesto que la aplicación será
utilizada por una sola persona.
2.2.4 Diagrama de casos de uso del sistema.
En el siguiente diagrama se establecen las relaciones entre los casos de uso y el
actor que los inicia.
19
CUS Autenticarse
(from Casos de Uso del Sistema)
CUS Obtener listado de
componentes dada la proteína.
(from Casos de Uso del Sistema)
CUS Obtener listado de epítopes
dado el componente.
(from Casos de Uso del Sistema)
CUS Obtener listado de mutantes
dado el epítope.
(from Casos de Uso del Sistema)
CUS Obtener detalles de mutación.
(from Casos de Uso del Sistema)
Usuario
(f rom Actor)
CUS Gestionar datos del epítope.
(from Casos de Uso del Sistema)
Figura 8. Diagrama de casos de uso del sistema.
2.2.5 Descripciones textuales de los casos de uso más importantes.
Descripción del CUS Autenticarse
Nombre del CUS Autenticarse.
Actor Usuario.
Propósito Acceder al sistema.
Resumen El CUS se inicia cuando el usuario desea acceder al
sistema y termina luego que el sistema le permite el
acceso.
Referencias R1.
Pre-condiciones El usuario debe estar registrado.
Pos-condiciones (-).
20
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. El usuario introduce
usuario y contraseña.
1.1 El sistema verifica validez de los datos
y permite acceder al sistema.CA#1
Curso Alterno
CA#1 Paso 1 No pudo entrar al sistema, el
usuario y la contraseña no existen o los
insertó de manera incorrecta. Se emite un
mensaje de error.
Descripción del CUS Obtener listado de mutantes dado el epítope.
Nombre del CUS Obtener listado de mutantes dado el epítope.
Actor Usuario.
Propósito Conocer los mutantes de un epítope (si los tiene).
Resumen El CUS se inicia cuando el usuario desea conocer los
mutantes de un epítope, en caso de tenerlos y termina
luego que el sistema le muestra el resultado.
Referencias R10, R12.
Pre-condiciones El usuario debe acceder al sistema.
Pos-condiciones (-).
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. El usuario solicita al
sistema obtener el listado de
1.1 El sistema procesa la solicitud y
21
mutantes, dada la selección
de un epítope.
muestra el listado de mutantes.
Descripción del CUS Obtener detalles de mutación.
Nombre del CUS Obtener detalles de mutación.
Actor Usuario.
Propósito Conocer detalles de la mutación.
Resumen El CUS se inicia cuando el usuario desea conocer
aspectos relativos a la distancia (DL) entre el epítope y
el mutante, si es de escape, entre otros, y termina
luego que el sistema le muestra el resultado.
Referencias R13, R14.
Pre-condiciones El usuario debe acceder al sistema.
Pos-condiciones (-).
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. El usuario selecciona un
mutante.
1.1 Informa tipo de mutante (si es de
escape o con duda).
1.2 Muestra (para mutantes determinados)
otros datos respecto a la posición de la
mutación.
1.3 El sistema Realiza el cálculo de la
Distancia (DL) y muestra el resultado.
22
Descripción del CUS Gestionar datos del epítope.
Nombre del CUS Gestionar datos del epítope.
Actor Usuario.
Propósito Manipular los datos de un epítope.
Resumen El CUS se inicia cuando el usuario desea registrar un
nuevo epítope, modificar o eliminar un epítope
existente y termina luego que el sistema permite
realizar cualquiera de estas opciones.
Referencias R15, R16, R17.
Pre-condiciones El usuario debe acceder al sistema.
Pos-condiciones (-).
Curso Normal de los Eventos
Acciones del Actor Respuesta del Sistema
1. El usuario desea registrar
un epítope, modificar o
eliminarlo.
1.1 El sistema ejecuta alguna de las
siguientes acciones.
A) Si el usuario desea insertar, se ejecuta
el subflujo S1, insertar epítope.
B) Si desea eliminar, se ejecuta el subflujo
S2, eliminar epítope.
C) Si desea modificar, se ejecuta el subflujo
S3, modificar epítope.
2. El usuario termina con la
manipulación del epítope.
2.1 El sistema finaliza la ejecución del caso
de uso.
Subflujo S1: Insertar epítope.
Acciones del Actor Respuesta del Sistema
23
1. El usuario selecciona la
opción nuevo.
1.1 El sistema habilita los campos.
2. El usuario inserta los datos
del nuevo epítope y escoge la
opción insertar.
2.1 Inserta el nuevo epítope en la BD.
Subflujo S2: Eliminar epítope.
Acciones del Actor Respuesta del Sistema
1.1 El sistema muestra el listado de
epítopes.
2. El usuario selecciona el
epítope a eliminar y
selecciona la opción eliminar.
2.1 El sistema elimina el epítope y actualiza
la BD.
Subflujo S3: Modificar epítope.
Acciones del Actor Respuesta del Sistema
1.1 El sistema muestra el listado de
epítopes.
2. El usuario selecciona el
epítope a modificar y
selecciona la opción
modificar.
2.1 El sistema habilita los campos.
3. El usuario realiza los
cambios y selecciona la
opción guardar.
3.1El sistema guarda los cambios en la BD.
2.3 Modelo de Diseño
Se abordan los requerimientos en relación a lenguaje de programación, reutilización
de componentes, bases de datos, interfaces de usuarios, entre otros. Se deriva una
representación arquitectónica del sistema y se disminuye la distancia entre el
problema del mundo real y su solución computarizada.
24
2.3.1 Realización de los casos de usos.
Describe cómo se realiza un caso de uso específico, y como se ejecuta, en términos
de clases de diseño y sus objetos.
2.3.1.1 Diagrama de clases del diseño.
Los diagramas de clases muestran un conjunto de clases, interfaces y las relaciones
entre estas.
Diagrama de clases CUS Autenticarse.
Figura 9. Diagrama de clases CUS Autenticarse.
Diagrama de clases CUS Obtener listado de componentes dada la proteína.
25
Figura 10. Diagrama de clases CUS Obtener listado de componentes dada la
proteína.
Diagrama de clases CUS Obtener listado de epítopes dado el componente.
Figura 11. Diagrama de clases CUS Obtener listado de epítopes dado el
componente.
26
Diagrama de clases CUS Obtener listado de mutantes dado el epítope.
Figura 12. Diagrama de clases CUS Obtener listado de mutantes dado el epítope.
Diagrama de clases CUS Obtener detalles de mutación.
Figura 13. Diagrama de clases CUS Obtener detalles de mutación.
27
Diagrama de clases CUS Gestionar datos del epítope.
Figura 14. Diagrama de clases CUS Gestionar datos del epítope.
2.3.1.2 Diagrama de secuencia.
Muestran interacciones ordenadas en una secuencia de tiempo y los objetos que
participan.
Diagrama de secuencia CUS Autenticarse.
: Usuario : CI
Autentication
: CC Gestor : usuarios : CI Principal
Introducir datos(usuario,contrasenna).
Tasmitir datos(usuario, contrasenna).
if (V== true)
V =
if ( V== false)
Mostrar mensaje(" Datos no válidos")
Verifica datos(usuario, contrasenna):bool
Mostrar CI Principal().
Figura 15. Diagrama de secuencia CUS Autenticarse.
28
Diagrama de secuencia CUS Obtener listado de componentes dada la proteína.
: Usuario : CI Principal : CC Gestor : protein : component
Seleccionar una proteina(prot).
Trasmitir solicitud(prot).
Gestionar datos(prot).
Buscar componentes relacionados(prot).
Mostrar lista de componentes relacionados().
Figura 16. Diagrama de secuencia CUS Obtener listado de componentes dada la
proteína.
Diagrama de secuencia CUS Obtener listado de epítopes dado el componente.
: Usuario : CI Principal : CC Gestor : component : epitope
Seleccionar un componente(comp).
Trasmitir solicitud(comp).
Gestionar datos del componente(comp).
Buscar epítopes relacionados(comp).
Mostrar lista de epítopes relacionados().
Figura 17. Diagrama de secuencia CUS Obtener listado de epítopes dado el
componente.
29
Diagrama de secuencia CUS Obtener listado de mutantes dado el epítope.
: Usuario
: CI Principal : CC Gestor : epitope : mutant
Selecciona un epítope(epi).
Gestionar datos(epi).
Buscar mutantes relacionados(epi).
Trasmitir solicitud(epi).
Mostrar lista de mutantes relacionados().
Figura 18. Diagrama de secuencia CUS Obtener listado de mutantes dado el epítope.
Diagrama de secuencia CUS Obtener detalles de mutación.
: Usuario : CI Principal : CC Gestor : mutant : mutation : aminoacid
Seleccionar un mutante(mut).
Trasmitir solicitud(mut).
Gestionar datos del mutante(mut).
Gestinar datos de la mutación(mut).
Gestionar datos de los aminoácidos(mut).
Realizar cálculo de distanciaDL(epi,mut).
Mostrar resultados().
Figura 19. Diagrama de secuencia CUS Obtener detalles de mutación.
30
Diagrama de secuencia CUS Gestionar datos del epítope.
: Usuario : CI Principal : CC Gestor : epitope
Solicitar gestionar datos de epítope().
Insertar los datos(name, epitope,seq).
Seleccionar insertar().
Trasmitir solicitud().
Insertar datos del nuevo epitope(name, epítope_seq).
Seleccionar el epítope(epi).
Selecciona la opción eliminar().
Trasmitir solicitud().
Eliminar el epítope(epi).
Selecciona el epítope(epi).
Selecciona la opción modificar().
Trasmitir solicitud().
Realiza modificaciones(EPI).
Solicitar gardar(EPI).
Trasmitir solicitud().
Modificar el epítope(EPI).
Figura 20. Diagrama de secuencia CUS Gestionar datos del epítope.
31
2.3.2 Diagrama de clases persistentes.
Se representan las relaciones entre las clases que son capaces de mantener su
estado en el tiempo y en el espacio.
Figura 21. Diagrama de clases persistentes.
33
2.3.4 Modelo de Despliegue.
El diagrama de despliegue muestra la configuración de los nodos participantes en la
ejecución de un sistema. Se modela la topología del hardware sobre la que se
ejecuta el sistema y la distribución física del mismo [JACOBSON, 2000].
Servidor de base
de datos de
epítopes.
Servidor de la
aplicación.
Cliente
Acceso del
usuario.
Servidor
<<TCP/IP>>
Figura 23. Diagrama de despliegue.
2.4 Implementación.
2.4.1 Modelo de Componentes.
2.4.1.1 Diagrama de la arquitectura del sistema.
El diagrama de componentes muestra un conjunto de componentes y sus relaciones.
Un componente es una parte física y reemplazable de un sistema que se conforma
con un conjunto de interfaces y proporciona la realización de dicho conjunto. Se usan
para modelar los elementos físicos que pueden hallarse en un nodo por lo que
empaquetan elementos como clases, colaboraciones e interfaces [JACOBSON,
2000].
SCDE.jar
Paquete visual Paquete de control Paquete de clases entidad
escape
Figura 24. Diagrama de componentes.
34
2.4.1.2 Diagrama de componentes de los casos de uso críticos.
CUS Obtener listado de mutantes dado el epítope.
Principal.java DBFactory.java
epitope.java mutant.java
escape
Figura 25. Diagrama de componentes CUS Obtener listado de mutantes dado el
epítope.
CUS Obtener detalles de mutación.
Principal.java DBFactory.java
mutation.java mutant.javaaminoacid.java
escape
Figura 26. Diagrama de componentes CUS Obtener detalles de mutación.
Conclusiones
Teniendo en consideración la metodología empleada, el autor de este trabajo
considera oportuno apoyarse en todos los elementos antes representados y pasar al
desarrollo de la aplicación.
35
CAPÍTULO 3. Implementación del sistema
3.1 Aspectos relativos a la implementación del sistema.
El sistema se desarrolló como un proyecto JPA (Java Persistence API) con
EclipseLink. El objetivo de EclipseLink es proveer un framework de persistencia que
sea comprensivo y universal, orientado en este caso para el estándar de persistencia
JPA, mediante el cual “el desarrollador Java” puede mapear, guardar, cargar y retirar
datos desde una base de datos relacional orientada a objetos y vice-versa, es decir,
permite el trabajo del desarrollador directamente con los objetos mapeados.
3.2 Diseño de la interfaz.
El diseño de la interfaz de usuario es la categoría de diseño que establece un medio
de comunicación entre el usuario y la computadora. Tiene como objetivo definir las
acciones de interfaz (y sus representaciones en pantalla) que posibilitan al usuario
explotar las opciones que brinda el sistema. Una interfaz bien diseñada mejora la
percepción del contenido y de los servicios que proporciona el sistema de software
[PRESSMAN, 2002]. Algunas de las características que están presentes en la
interfaz son la sencillez, claridad y facilidad de manipulación.
Figura 27. Interfaz principal.
36
3.3 Forma general y principios en que se basa el sistema de ayuda.
La ayuda de la aplicación es una opción que dota al usuario de una herramienta de
consulta sobre los conocimientos necesarios para la explotación del mismo.
Contempla toda la información concerniente a la aplicación, manipulación y servicios
que brinda el sistema. El usuario puede acceder a la ayuda seleccionando en el
menú.
Figura 28. Ayuda del SCDE.
3.4 Forma general y principios de la protección y seguridad.
Para que un sistema se pueda definir como seguro debe tener estas características:
• Integridad: la información que utiliza el sistema así como el origen de la misma
debe estar protegida contra la corrupción.
• Confidencialidad: la información sólo debe estar disponible para los usuarios
autorizados.
• Disponibilidad: cuando los usuarios soliciten alguna información, ésta debe estar
disponible y los mecanismos de seguridad empleados no deben demorar el proceso.
37
Teniendo en cuenta los aspectos anteriores se estableció que para acceder al
sistema se requiera la autenticación del usuario. Limitando el acceso a cualquier otra
persona.
Usuario: tiene acceso a todas las opciones que brinda el sistema.
3.5 Forma general del tratamiento de errores.
El sistema es capaz de reconocer y tratar los posibles errores producidos por una
mala manipulación o entradas de datos no válidas, dando una respuesta al usuario
en caso de que esto ocurra.
A continuación se muestran algunos ejemplos de posibles errores y la respuesta del
sistema para su tratamiento.
El usuario ha intentado insertar un nuevo epítope, sin introducir el dato para el
campo obligatorio secuencia.
Figura 29. Mensaje de error al dejar campos obligatorios sin llenar.
38
El usuario ha intentado insertar una secuencia con un caracter no válido.
Figura 30. Mensaje de error al intentar añadir caracteres no válidos.
El usuario ha intentado insertar una secuencia que ya existe.
Figura 31. Mensaje de error al intentar insertar una secuencia ya existente.
39
CONCLUSIONES
Al finalizar este trabajo se arribaron a las siguientes conclusiones:
El estudio de las bases de datos de epítopes reveló que existían deficiencias
en las mismas, relacionadas principalmente con la insuficiente información
referente a los mutantes.
Al realizar el análisis de la información disponible existente en las distintas
fuentes, se constató que es posible la integración de las mismas para realizar
un mejor estudio.
El sistema implementado permite realizar un mejor análisis de los datos,
manteniendo la utilización de herramientas informáticas que garantizan el
almacenamiento y procesamiento de la información.
40
RECOMENDACIONES
Como recomendaciones del presente trabajo se plantea:
Continuar la importación de los datos para el organismo en estudio (HIV) y
añadir datos para otros patógenos existentes.
Agrupar e integrar la mayoría de datos posibles, hasta obtener las
condiciones que sean propicias para realizar una minería de datos efectiva.
.
41
BIBLIOGRAFÍA
AMBLER, Scott. Agile Modeling and the Unified Process. 2002. Disponible en:
http://www.agilemodeling.com/essays/agileModelingRUP.htm
[consultado: 6/10/2010].
HOFMEYR, Steven A. An Immunological Model of Distributed Detection and Its
Application to Computer Security. 1999. p.7-11. Disponible en:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.76.1335&rep=rep1&type=pdf
[consultado: 30/6/2010].
RANAWANA, Romesh. Intelligent Multi-Classifier Systems for Gene Recognition
in DNA Sequences. 2005. p.18-19. Disponible en:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.85.1042&rep=rep1&type=pdf
[consultado: 30/6/2010].
YUSIM, Karina y cols. HIV Molecular Immunology. Nuevo México: Theoretical
Biology and Biophysics, 2009.
42
REFERENCIAS BIBLIOGRÁFICAS
[AMBLER, 2002]. AMBLER, Scott. Agile Modeling: Effective practices for Extreme
Programming and the Unified Process. John Wiley & Sons, 2002.Disponible en:
http://www.amazon.com/Agile-Modeling-Effective-Practices-Programming/dp/0471202827
[consultado: 6/10/2010].
[CLAVERIE, 2007]. CLAVERIE, Jean-Michel y NOTREDAME, Cedric.
Bioinformatics for Dummies. Wiley Publishing, 2007.p. 9-10.
[GET, 2010]. Getting started with Pentaho Data Integration. Orlando: Pentaho
Corporation, 2010. p. 4-5. Disponible en: http://www.pentaho.com
[consultado: 16/02/2011].
[GUILLELAND, 2009]. GUILLELAND, Michael. Levenshtein Distance, in Three
Flavors. Disponible en: http://www.merriampark.com/mgresume.htm
[consultado: 17/03/2011].
[HERTZ, 2006].HERTZ, Tomer. Learning distance functions: Algorithms and
Applications. Tesis por el grado de Doctor en Filosofía. Jerusalén: Universidad
Hebrea de Jerusalén, 2006.p.4.
[HOFMEYR, 2000]. HOFMEYR, Steven A. An Interpretative Introduction to the
Immune System.2000.p.1-6.Disponible en:
http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.76.1335&rep=rep1&type=pdf
[consultado: 6/10/2010].
[JACOBSON, 2000]. JACOBSON, Ivar; BOOCH, Grady y RUMBAUGH, James. El
Proceso Unificado de Desarrollo de Software. Adison-Wesley. 2000.
[LARMAN, 2004]. LARMAN, Craig.UML y Patrones: Introducción al análisis y
diseño orientado a objetos. Editorial Félix Varela. 2004. p. 85-87.
[PETTERSSON, 2005]. PETTERSSON, Fredrik. A Multivariate Approach to
Computational Molecular Biology. 2005. p.13-17. Disponible en: http://umu.diva-
portal.org/smash/get/diva2:143974/FULLTEXT01
[consultado: 30/6/2010].
[PLPES, 2010]. Proyecto de lineamientos de la política económica y social. La
Habana, 2010. p. 18.
43
[PRESSMAN, 2002]. PRESSMAN, R. S. Ingeniería del software. Un enfoque
práctico. España, 2002.
[PTOSELAND, 2010].P. TOSELAND, Christopher y cols. AntiJen: a quantitative
immunology database integrating functional, thermodynamic, kinetic, biophysical,
and cellular data. Disponible en: http://creativecommons.org/licences/by/2.0
[consultado: 12/10/2010].
[SETTE, 2010]. SETTE, Alessandro y PETERS, Bjoern .La base de datos inmune
epítopo y análisis de los recursos: de la visión a Blueprint. Disponible en:
http://viaclinica.com/article.php?pmc_id=1065705
[consultado: 12/10/2010].
[YANG, 2010]. YANG, Seok y cols. Influenza sequence and epitope database.
Disponible en: http://creativecommons.org/licenses/by-nc/2.0/uk/
[consultado: 12/10/2010].