• No se han encontrado resultados

Prediccion de Actividad Anticancerigena de Compuestos Organicos Partiendo de descriptores, utilizando Programacion Genetica.

N/A
N/A
Protected

Academic year: 2023

Share "Prediccion de Actividad Anticancerigena de Compuestos Organicos Partiendo de descriptores, utilizando Programacion Genetica."

Copied!
97
0
0

Texto completo

(1)

Facultad 6

TíTulo: “predicción de acTividad anTicancerígena de compuestos orgánicos partiendo de descriptores,

uTilizando programación genéTica.”

Trabajo de diploma para optar por el título de Ingeniero en Ciencias Informáticas.

Autores:

Lien Costales Leiva Asnay Guirola González

Tutores:

Dr. Ramón Carrasco Velar MSc. Aurelio Antelo Collado

Julio, 2007

“Año 49 de la Revolución”

(2)

“La ciencia es la verdadera escuela moral; ella enseña al hombre el amor y el respeto a la verdad, sin

el cual toda esperanza es quimérica”

Berthelot

(3)

DECLARACIÓN DE AUTORÍA

Declaramos ser autores de la presente tesis y reconocemos a la Universidad de Ciencias Informáticas y al Centro de Química Farmacéutica los derechos patrimoniales de la misma con carácter exclusivo.

Para que así conste firmo la presente a los ____ días del mes de __________ del ______.

Lien Costales Leiva Asnay Guirola Gonzáles

_______________________

Firma del autor

_______________________

Firma del autor

MSc. Aurelio Antelo Collado

_________________________

Firma del tutor

Dr. Ramón Carrasco Velar

_______________________

Firma del tutor

(4)

AGRADECIMIENTOS

A nuestros tutores Aurelio y Carrasco, por su asesoramiento científico, por su disposición permanente e incondicional en aclarar nuestras dudas, por su paciencia, esmero y ayuda.

A todos aquellos que de una forma u otra han hecho posible el desarrollo de la Tesis en especial a Lesly, Liesner y Daniel Gálvez por la infinita ayuda, no tenemos palabras para agradecerles su colaboración sin la cual no fuera posible el desarrollo del trabajo.

A nuestros amigos, por permitirnos disfrutar al máximo estos maravillosos cinco años a su lado y por ser partícipes de nuestros logros, desconciertos, malos y buenos momentos.

A nuestros padres, por su constante apoyo, comprensión y soporte durante todos estos años; por su ejemplo de superación incansable; por lo que hemos sido y seremos gracias a ustedes, son los mejores padres del mundo.

A Yanet, mi querida novia, por su paciencia y su amor infinito.

A la Revolución Cubana, por darnos la posibilidad de superarnos.

Un agradecimiento especial a nuestro Comandante por habernos dado la oportunidad de formarnos como ingenieros en una Universidad de nuevo tipo, que ha marcado nuestro pensamiento revolucionario y profesional.

(5)

DEDICATORIA

“A nuestros padres”

(6)

RESUMEN

Esta investigación surge en el marco de trabajo del Proyecto:

Plataforma inteligente para la predicción de de actividad biológica de compuestos orgánicos”, desarrollado conjuntamente por el Centro de Química Farmacéutica (CQF) y la Facultad de Bioinformática de la UCI. La plataforma cuenta con varios módulos que se han desarrollado de forma independiente, entre ellos el módulo de Inteligencia Artificial (IA). Este módulo es el encargado de predecir la actividad biológica de compuestos orgánicos a través de varias técnicas de Inteligencia Artificial e ir enriqueciendo la base de conocimientos del proyecto, para contribuir a la disminución de los costos en la investigación y el desarrollo de nuevos fármacos.

Se analizó, diseñó e implementó una aplicación para la predicción de actividad anticancerígena de compuestos orgánicos a partir de descriptores topológicos e híbridos como forma de describir una molécula, utilizando la Programación Genética como técnica de Inteligencia Artificial. La aplicación se implementó como plug-in para su incorporación al visualizador agregándole la funcionalidad de obtener modelos matemáticos mediante la programación genética. Se obtuvieron varios modelos de una muestra de entrenamiento de 2000 y una de prueba de 500 compuestos clasificados en activos e inactivos, obtenidos todos del ensayo NCI Yeast Anticancer Drug Screen; los modelos desarrollados tienen entre un 67 y un 70 por ciento de acierto en su clasificación.

PALABRAS CLAVE

Programación genética, predicción, descriptores, anticancerígeno, actividad biológica.

(7)

TABLA DE CONTENIDOS

INTRODUCCIÓN ... 1

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA ... 6

1.1 Búsqueda de nuevos fármacos ... 6

1.2 El cálculo de descriptores como forma de describir la estructura química ... 7

1.3 Descriptores ... 7

1.4 Técnicas de Predicción ... 9

1.5 Software de Predicción ... 15

1.6 Importancia del Desarrollo del Software ... 16

1.7 Tecnologías y Tendencias Actuales ... 17

Conclusiones ... 25

CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMA ... 26

2.1 Modelo del dominio ... 26

2.1.1 ¿Por que Modelo del dominio? ... 26

2.1.2 Breve descripción del problema ... 26

2.1.3 Glosario de términos para el dominio ... 26

2.1.4 Diagrama Modelo del Dominio ... 28

2.2 Especificación de los requerimientos de software ... 29

2.2.1. Requerimientos Funcionales ... 29

2.2.2. Requerimientos no Funcionales ... 29

2.2.3 Definición de los casos de uso ... 31

CAPÍTULO 3: ANÁLISIS Y DISEÑO DEL SISTEMA ... 37

3.1 Diagrama de clases del análisis ... 37

3.3 Diagrama de clases del diseño ... 39

3.4 Descripción de las clases del diseño ... 39

3.6 Principios de diseño ... 48

3.6.1 Interfaz de usuario ... 48

3.6.2 Formato de salida de los reportes ... 49

3.6.3 Tratamiento de errores ... 49

3.6.4 Patrones de diseño utilizados ... 50

3.7 Arquitectura empleada ... 51

3.7.1 Patrón arquitectónico empleado ... 51

3.8 Diagrama de despliegue ... 52

Conclusiones ... 52

(8)

CAPÍTULO 4: IMPLEMENTACIÓN Y VALIDACIÓN DEL MODELO ... 54

4.1 Implementación ... 54

4.1.1 Diagrama de Componentes. ... 54

4.2 Validación de Modelos. ... 56

Conclusiones ... 63

CONCLUSIONES GENERALES ... 64

RECOMENDACIONES ... 64

REFERENCIAS BIBLIOGRÁFICAS ... 66

BIBLIOGRAFÍA ... 68

ANEXOS ... 71

Anexo # 1 Diagramas de secuencia correspondientes a los caso de uso del sistema. ... 71

Anexo # 2: Diagramas de clases. ... 72

Anexo # 3 Descripción de las principales clases del diseño. ... 76

Anexo # 3 Descripción de las principales clases del diseño. ... 77

Anexo # 3 Descripción de las principales clases del diseño. ... 78

Anexo # 3 Descripción de las principales clases del diseño. ... 79

Anexo # 3 Descripción de las principales clases del diseño. ... 80

Anexo # 3 Descripción de las principales clases del diseño. ... 81

Anexo # 4 Prototipos de Interfaz ... 84

Anexo # 5 Vistas de Salida ... 86

Anexo # 6 Imágenes de la aplicación generando modelo. ... 87

GLOSARIO DE TÉRMINOS ... 89

(9)

INTRODUCCIÓN

La historia de los medicamentos es parte del devenir del hombre y de la historia de la medicina. Desde siempre, el ser humano buscó una explicación a los fenómenos y una solución a sus males. La aplicación de remedios para sanar o, al menos, para aliviar el sufrimiento, es tan antiguo como la humanidad.

En la actualidad, para el desarrollo de un nuevo medicamento desde su obtención en el laboratorio hasta su uso en terapéutica puede llegar a alcanzar un costo de 360-500 millones de USD y en un periodo promedio de 12-15 años, donde un bajo por ciento de las moléculas que llegan a fase de ensayo clínico terminan siendo comercializadas. Para optimizar recursos y tiempo se han apoyado en todos los adelantos tecnológicos y computacionales; esta situación evidencia la necesidad de encontrar y realizar métodos rápidos, eficientes y de bajo costo computacional para optimizar el proceso de obtención de nuevos fármacos. [1]

Una de las principales causa de muerte a nivel mundial hoy en día es el cáncer, del cual se dispone de abundante información con respecto a entidades químicas evaluadas en diferentes ensayos. Estas razones la convierten en un blanco interesante y muy útil, desde el punto de vista informático para el establecimiento de modelos que permitan predecir relaciones entre la estructura química y la actividad biológica.

El diseño cuantitativo de fármacos nació formalmente en el año 1964 con el trabajo de Hansch y Fujita.

Sin embargo, en el mundo de los químicos se venía trabajando desde mucho antes, tratando de establecer relaciones cuantitativas entre la estructura química y determinadas propiedades de las moléculas. Estas propiedades podían ser químico-físicas, biológicas o ambas. Una necesidad estratégica de los investigadores que antecedieron a las actuales generaciones de químicos fue la búsqueda de descriptores y métodos que permitieran establecer las relaciones anteriormente mencionadas.

Los métodos que relacionan la estructura química con la actividad biológica pueden dividirse en dos grandes categorías (Sheridan, 1987): métodos topológicos/estadísticos y métodos de modelado molecular. En la aproximación topológica sólo se tiene en cuenta la estructura química "plana" de la molécula y se utilizan técnicas estadísticas o de reconocimiento de patrones para encontrar las correlaciones entre la estructura química de una serie de compuestos y su actividad biológica. De ahí surgieron las famosas siglas QSAR, acrónimo de Quantitative Structure-Activity Relationships. En los métodos de modelado se consideran las propiedades de las moléculas en tres dimensiones y son

(10)

importantes, entre otros, la mecánica cuántica, los campos de fuerzas, la termodinámica estadística, y los gráficos moleculares interactivos. Estos últimos permiten la representación y manipulación de las moléculas en tres dimensiones, lo que proporciona una información espacial. [2]

El presente trabajo tiene su origen dentro del proyecto de investigación conjunta del Centro de Química Farmacéutica y la Facultad de Bioinformática de la Universidad de las Ciencias Informáticas denominado Plataforma inteligente para la predicción de actividad biológica de compuestos orgánicos con el cual se persigue disponer de una herramienta para el tamizaje virtual de moléculas pequeñas en la actividad anticancerígena.

Por todos los elementos antes expuestos surge el siguiente problema ¿Cómo predecir la actividad anticancerígena de compuestos orgánicos empleando una plataforma inteligente?

El principal aporte práctico esperado con la realización de este trabajo es brindar una herramienta de trabajo capaz de predecir actividad anticancerígena de compuestos orgánicos a partir del cálculo de descriptores topológicos e híbridos. Donde el objeto de estudio es la Inteligencia Artificial aplicada a la predicción de actividades biológicas.

La programación genética aplicada al estudio de la relación estructura-actividad anticancerígena de compuestos orgánicos utilizando el cálculo de descriptores topológicos e híbridos será el campo de acción.

Para dar solución al problema planteado se trazó como objetivo general desarrollar un módulo para la plataforma capaz de predecir actividad anticancerígena de compuestos orgánicos a partir de descriptores topológicos e híbridos, utilizando programación genética como técnica de inteligencia artificial.

Para cumplir el objetivo general de la investigación se trazaron los objetivos específicos que exponemos a continuación:

 Analizar un módulo basado en la programación genética que permita predecir relaciones entre la estructura y la actividad biológica.

 Diseñar el módulo analizado.

 Implementar el módulo diseñado.

 Validar el modelo implementado.

Para llegar a los objetivos anteriores se determinó desarrollar las siguientes tareas:

 Revisión del estado del arte acerca de sistemas de predicción existentes en el mundo.

(11)

 Selección de la técnica de inteligencia artificial óptima para el desarrollo de un módulo que permita obtener el modelo matemático.

 Elaboración del modelo de dominio correspondiente a un Sistema de Predicción.

 Definición de los requisitos funcionales y no funcionales de la herramienta.

 Desarrollo del diagrama de casos de uso del sistema.

 Descripción de los casos de uso correspondientes al sistema.

 Desarrollo del diagrama de clases del análisis.

 Desarrollo del diagrama de clases del diseño.

 Implementación del algoritmo para crear los modelos matemáticos.

 Implementación del algoritmo para realizar la predicción basada en el modelo creado.

 Validación del modelo desarrollado, comparando los valores obtenidos con valores experimentales.

La tesis esta estructurada en Resumen, Introducción, 4 capítulos como cuerpo fundamental de la tesis, Conclusiones, Recomendaciones, Referencias bibliográficas y Bibliografía. Los capítulos corresponden a diferentes aspectos temáticos:

Capítulo 1: Fundamentación Teórica.

En este capítulo se realiza una breve explicación del estudio realizado sobre los métodos existentes para el diseño racional de fármacos asistidos por computadora y las técnicas de predicción actuales. Se muestran una serie de aplicaciones que están vinculadas a la predicción de la relación estructura-actividad y se describen las tendencias y tecnologías actuales a tener en cuenta para implementar la herramienta.

Capítulo 2: Características del sistema.

Aborda lo referente al funcionamiento del negocio. Se desarrolla un modelo de dominio donde analizamos cada uno de los conceptos y entidades presentes en el negocio. Se plantean cada uno de los requisitos que debe tener la herramienta, se presenta el diagrama de casos de usos del sistema así como la descripción textual de cada uno de ellos.

Capítulo 3: Descripción de la Solución Propuesta.

(12)

En el mismo se exponen los diagramas de clases por cada caso de uso, correspondientes a las etapas de análisis y diseño del sistema y el modelo de despliegue. Se muestra el diagrama de clases persistentes y se enumeran los principios de diseño para la implementación del sistema.

Capítulo 4: Implementación y Validación del Modelo.

En el presente capítulo se describe cómo los elementos del modelo de diseño se implementan en términos de componentes, para esto se muestra el diagrama de componentes. Además se validan los modelos matemáticos generados, mediante técnicas estadísticas, comparando los valores obtenidos con valores experimentales, con el objetivo de determinar el grado de precisión con que predicen los mismos.

(13)
(14)

CAPÍTULO 1: FUNDAMENTACIÓN TEÓRICA

Los estudios de relación estructura-actividad constituyen una especialidad multidisciplinaria pues en ella convergen aspectos de descripción de la estructura química, generación, almacenamiento y recuperación de datos estructurales, de propiedades químico-físicas y biológicas. Otro aspecto importante que es necesario conocer son las diferentes técnicas matemáticas para el procesamiento de dichos datos lo cual constituye la propuesta de solución al problema que se plantea en este documento.

1.1 Búsqueda de nuevos fármacos

La predicción de actividad biológica de compuestos orgánicos posee un papel fundamental para la síntesis de nuevos fármacos. En estos momentos, el desarrollo de la industria farmacéutica internacional ha requerido del uso de herramientas que hagan cada vez más eficiente la búsqueda de nuevos fármacos para el tratamiento de las enfermedades. El método tradicional de búsqueda de nuevos principios activos basado en el sistema de “prueba y error” a través de ensayos masivos de gran número de sustancias químicas, es cada vez más ineficiente, siendo necesario ensayar sobre 10 000 compuestos para encontrar el deseado. A estos datos se unen que el costo del desarrollo de un nuevo medicamento desde su obtención en el laboratorio hasta su uso en terapéutica es de 360-500 millones de USD y en un periodo promedio de 12-15 años. Las vías alternativas en que la industria farmacéutica ha depositado su confianza, y también una gran cantidad de recursos, son la síntesis combinatoria y el diseño computacional de fármacos. Aunque el número de compuestos conocidos sobrepasa los 26 millones, y un gran número de estos está disponible en diferentes bases de datos químicas, muchos de ellos no han encontrado todavía aplicaciones farmacológicas o de otro tipo, lo cual es consecuencia de la diferencia que existe entre la velocidad a la cual las nuevas moléculas son obtenidas y el número de ellas que pueden ser evaluadas en ensayos farmacológicos, toxicológicos y farmacocinéticos. [1]

El descubrimiento de los fármacos esta sustentado en las propiedades de los compuestos que lo conforman y una característica determinante para los efectos deseados es la relación entre la estructura química y la actividad biológica de los mismos.

Uno de los propósitos más ambiciosos de la química moderna es encontrar esta relación entre la

(15)

en forma paralela con las líneas de investigación médica, sobre todo a partir de la década del 20, y han obtenido resultados trascendentales en el campo de las vitaminas, hormonas, proteínas, ácidos nucleícos y otros compuestos farmacológicos asociados a la vida.

1.2 El cálculo de descriptores como forma de describir la estructura química

Una forma de describir el comportamiento y la estructura que caracterizan a compuestos orgánicos, con un alto nivel de precisión, es el cálculo de descriptores. En la actualidad existen una gran cantidad de descriptores, cuyo número sobrepasa las centenas y están distribuidos según el tipo. Poseen varios enfoques y principalmente han sido empleados en el diseño de fármacos y en estudios de relación estructura-propiedad. Entre los tipos de descriptores más conocidos se pueden citar los derivados de mecánica molecular, los químico-cuánticos, los topológicos y los topográficos. Entre los métodos más comunes para el establecimiento de esas relaciones están los basados en la similitud-diferencia entre moléculas, los tridimensionales o 3D QSAR y los químico-físicos, entre otros. Todos estos métodos y descriptores pueden ser aplicables a moléculas, átomos y fragmentos en dependencia de la investigación que se este desarrollando y las preferencia o conocimientos de los especialistas. Con su empleo se genera una lista de resultados que permite caracterizar a las moléculas. El empleo de los estudios QSAR en investigaciones de las propiedades biológicas apoyadas en la teoría de grafos ha sido utilizada para la obtención de modelos aditivos y de regresión para la predicción de propiedades químicas, físicas y biológicas de forma efectiva. [1,3]

En el presente trabajo se emplean los descriptores topológicos e híbridos moleculares, los cuales fueron creados por químicos extranjeros y cubanos para describir la relación cuantitativa de Estructura – Actividad.

1.3 Descriptores

Se conocen como descriptores, los cuantificadores matemáticos que relacionan la estructura molecular y las propiedades físico-químicas de los compuestos a partir de parámetros estructurales simples. Los descriptores son utilizados para caracterizar la estructura química de un compuesto y la calidad de los mismos condiciona la calidad de los modelos matemáticos que describan los fenómenos biológicos.

(16)

Dentro de los descriptores más utilizados se encuentran los Índices topológicos que se basan únicamente en la estructura 2D o topología de la molécula, los cuales se derivan generalmente de las matrices de conectividad o de distancia del grafo molecular.

1.3.1 Descriptores Topológicos Moleculares.

Índice de Randic. [4]

El índice de conectividad de Randic p se define por: p = [ (Vi) (Vj)]-1/2. Donde el grado del vértice (Vi) es el número de vértices con los cuales el átomo i está enlazado directamente, y la suma es sobre todo los vértices adyacentes en la molécula.

Índice de Valencia

El índice de conectividad de Valencia r se define por: Px = [Vi Vj]. Es una generalización del índice χ para la trayectoria de orden P. El índice fue modificado por Kier y Hall al definir subgrafos Gj de tipo árboles en el grafo de G que contiene los enlaces. A cada vértice i del grafo G se le asocia un término σ i (por ejemplo σ i = υ i). Después de esto, para cada subgrafo Gi con vértices j1..., jh+1 se calcula la magnitud:

Donde.

δ

i

= Zv

i

– h

i

ó

Donde Zi es el número total de electrones, Ziv el número de electrones de valencia y hi el número de átomos de hidrógeno enlazados al átomo i.

Índice de Partición de la Refractividad Molecular. [5]

(17)

Este índice emplea el algoritmo de Randic en su definición y su diferencia con este es que parte de la matriz del grafo químico completo. Es decir, considera para el cálculo los átomos de hidrógeno de la molécula y se define según la expresión:

Índices Revisitados. [6]

Después de varios estudios y análisis experimentales realizados por Estrada, este sugirió hacer una sustitución en el grado de la ecuación para el cálculo del Índice de Randic de -1/2 a -1/3 para resolver el problema de la degeneración de los índices en el caso de los isómeros en familias de compuestos.

Índices Híbridos

Momentos Espectrales. [7,8]

Para obtener los valores de estos índices se parte de la matriz de conectividad de las aristas del grafo químico, se eleva a una potencia determinada y se calcula la suma de los elementos de la diagonal principal:

Mk = tr(Ek)

Como se puede apreciar existen varios descriptores y los resultados que se obtienen, con sus cálculos, brindan la posibilidad de emplearse en la obtención de modelos predictivos de la relación estructura- actividad. Por ello surge la tarea de seleccionar una técnica de inteligencia artificial para el desarrollo de un módulo que permita obtener un modelo matemático predictivo de la actividad biológica a partir de elementos estructurales de las sustancias.

1.4 Técnicas de Predicción

El proceso de predicción de clases de un objeto dado, se desarrolla para la clasificación del mismo, en donde el objeto de estudio del aprendizaje y la clasificación, es el descubrimiento de modelos y familias de funciones que permitan representar apropiadamente la pertenencia que tiene el objeto a una clase. Para

(18)

lograr este objetivo se realiza el desarrollo de algoritmos que permitan crear estos modelos a partir de datos.

En general los métodos de aprendizaje y clasificación son extensiones de técnicas clásicas tales como el análisis de discriminante, los métodos basados en árboles de decisión, los métodos de estimación de densidades o las técnicas jerárquicas de formación de grupos. Atendiendo a la naturaleza de los métodos de aprendizaje y clasificación se pueden organizar para su estudio en métodos estadísticos, modelos o algoritmos matemáticos para el reconocimiento de patrones, estrategias basadas en árboles de decisión y sistemas basados en el conocimiento. [9]

Dentro de los métodos estadísticos existe el discriminante lineal, logístico y cuadrático como extensiones del discriminante además de los cluster jerárquicos que pertenecen a técnicas de jerarquías de la formación de grupos. También dentro de la estadística moderna se encuentran la regresión adaptativa multivariada, redes causales y poli-árboles. Estos métodos estadísticos poseen un modelo de probabilidades como base que da lugar más que a una simple clasificación a la probabilidad de que un objeto pertenezca a cada una de las clases. [10]

Los sistemas basados en el conocimiento de la inteligencia artificial en los últimos años han experimentado un aumento en su aplicación y en la actualidad son muy empleados en sistemas de predicción de varias ramas científicas. Estos sistemas se caracterizan por tener una base de conocimiento que posee la información primaria de donde se hará un aprendizaje a través de la máquina de inferencia haciendo un análisis de la base de conocimiento. De aquí que la máquina de inferencia constituya el método de solución y un aspecto fundamental al igual que la base de conocimiento dentro del sistema. En los sistemas basados en el conocimiento están los sistemas basados en probabilidades, en reglas, en casos, en pesos y sistemas de inferencia borrosa entre otros. [11]

Dentro de la inteligencia artificial existen dos enfoques principales, el enfoque Simbólico o Top-down y el enfoque Subsimbólico o bottom-up. El enfoque Subsimbólico se caracteriza por crear sistemas con capacidad de aprendizaje. Éste se puede obtener a nivel de individuo imitando el cerebro y es lo que se conoce como Redes Neuronales, o a nivel de especie, imitando la evolución, lo que se ha denominado Computación Evolutiva, además de estas dos técnicas también esta la Lógica Difusa. [12]

(19)

Por la importancia en el desarrollo de este trabajo analizaremos la computación evolutiva. Esta constituye un método de búsqueda y optimización estocástica, ciega y múltiple de posibles soluciones a un problema determinado. Este proceso es guiado por los principios que rigen la evolución natural. Combina los conceptos de adaptación y supervivencia de los más aptos para producir soluciones subóptimas al problema dado. Esto es logrado mediante la aplicación de operadores de reproducción y cruce entre los individuos de una población que representa soluciones potenciales.

Existen varios modelos de computación evolutiva, los cuales reciben el nombre genérico de algoritmos evolutivos. Estos poseen como característica común su inspiración en la simulación de poblaciones de individuos y sobre el esquema general de los algoritmos evolutivos los principales modelos se clasifican en algoritmos genéticos, programación evolutiva, clasificadores genéticos, programación genética. [13]

La programación genética es un concepto más avanzado y más reciente que surge a comienzo de la década del noventa por estudios realizados por John Koza, sustentados sobre la base de los modelos de algoritmos genéticos y programación evolutiva. [14] Es entonces la disciplina de la computación evolutiva que provee un modo para realizar una búsqueda en el espacio de programas para encontrar aquel programa que sea más apto en la resolución de un problema dado, todo esto de modo independiente al dominio del problema. [15]

A diferencia de los algoritmos genéticos en la programación genética los individuos representan programas computacionales y las estructuras que sufren cambios adaptativos durante la programación genética son activas y capaces de ser ejecutadas en su forma actual. No son codificaciones pasivas a un problema, como lo son los strings de caracteres de longitud fija de los algoritmos genéticos. [15]

La programación genética no sólo se ha utilizado para generar programas, también se emplea en la búsqueda de cualquier tipo de soluciones cuya estructura sea similar a la de un programa. Por ejemplo, circuitos electrónicos, fórmulas matemáticas. Estas últimas estructuras son las más usadas en el desarrollo del algoritmo empleado para dar solución al problema en cuestión.

Principales Conceptos:

Para encontrar un modelo por programación genética se necesita definir una serie de elementos que son fundamentales para resolver el problema antes de entrar a la secuencia de pasos lógicos para el desarrollo del algoritmo. Estos son:

(20)

1. El conjunto de terminales: Los terminales son las hojas de los árboles que corresponden a variables o a valores constantes. Es decir, son las entradas de datos al programa. El conjunto de terminales (junto con el conjunto de funciones) son los ingredientes a partir de los cuales se construye un programa de computador para solucionar total, o parcialmente, un problema. En nuestro caso, el conjunto de terminales o datos de entrada son los descriptores moleculares, utilizados como método para describir la estructura química (Xs del problema).

2. El conjunto de funciones primitivas: Las funciones se usan junto con los terminales para generar la expresión matemática que trata de satisfacer la muestra finita de datos dados. En el conjunto de funciones primitivas pueden incluirse:

 Operaciones aritméticas (+, -, *, etc.).

 Funciones matemáticas (seno, coseno, log, etc.).

 Operadores boléanos (and, or, not, etc.).

 Operadores condicionales (if-then-else).

 Funciones que causen iteración (do-until).

 Funciones que causen recursión.

 Cualquier otro tipo de función específica del dominio que sea definida.

Un programa de computador (árbol de análisis gramatical) es una composición de funciones del conjunto F de funciones y terminales del conjunto T de terminales. Cada una de las funciones del conjunto F debe ser capaz de aceptar, como sus argumentos, cualquier valor y tipo de dato que pueda ser retornado por cualquier función del conjunto de funciones, y cualquier valor y tipo de dato que pueda tomar por cualquier terminal del conjunto T. Esto es, que el conjunto de funciones y el conjunto de terminales deben tener la propiedad de clausura. En este problema de predicción basta con utilizar funciones aritméticas y algunas funciones matemáticas.

3. La medida de la aptitud: Cada programa de computador individual en la población, se mide en términos de que tan bien se comporta en el ambiente del problema particular. Esta medida se llama medida de aptitud. La naturaleza de la medida de aptitud varía con el problema. Para muchos problemas, la aptitud de un programa se mide calculando el error que se produce al evaluar la función. El mejor programa de

(21)

4. Los parámetros para controlar la corrida: Después de que se efectúan las operaciones genéticas sobre la población actual, la población de hijos reemplaza la generación anterior, a cada individuo de la nueva población se le mide su aptitud, y el proceso se repite por muchas generaciones. Es decir, la solución del problema consiste en un proceso combinatorio de optimización de funciones.

En cada etapa de este proceso secuencial controlado localmente, se determina la aptitud de cada uno de los individuos, es decir, se halla el ajuste de las funciones a los datos experimentales y se pondera esa calidad de ajuste. Los parámetros que controlan normalmente la ejecución de la PG son: el tamaño de la población; el número de generaciones; las probabilidades de aplicación de los operadores genéticos de cruce y mutación; y la estrategia de selección de los individuos para la nueva generación.

5. El método para seleccionar un resultado y el criterio para terminar la ejecución del programa: Un método posible de selección del resultado consiste en designar como tal al mejor individuo (función) que haya aparecido en cualquier generación, para lo cual es necesario colocarlo en memoria durante la ejecución. Otro método alternativo es el de seleccionar como resultado al mejor individuo de la población en el momento que termina la ejecución. La coincidencia entre ambos métodos ocurre con relativa frecuencia. Obviamente, no es necesario colocar al individuo en memoria en este último caso.

Un criterio de terminación para la programación genética es fijar un número máximo G de generaciones en una ejecución. Otro es cuando se alcance algún predicado de éxito específico del problema (como por ejemplo, encontrar una solución 100% correcta).

Posterior a la definición de los elementos que son fundamentales para resolver los problemas de PG pasamos a exponer los pasos lógicos para el desarrollo del algoritmo:

1. Generar una población inicial de composiciones aleatorias de funciones y terminales del problema (programas de computadora).

2. Ejecutar iterativamente los siguientes pasos hasta que se satisfaga el criterio de terminación:

a) Ejecutar cada programa en la población y asignarle un valor de aptitud de acuerdo a la calidad en la solución del problema.

(22)

b) Crear una nueva población de programas de computadora aplicando las siguientes dos operaciones primarias. Las operaciones son aplicadas a los programas de computadora en base a cierto criterio de selección.

c) Copiar programas de computadora existentes en la nueva población.

d) Crear nuevos programas de computadora recombinando genéticamente partes aleatorias seleccionadas de dos programas ya existentes.

3. El mejor programa de computadora (función) que haya aparecido en cualquier generación es seleccionado como el resultado de la programación genética. Este resultado puede ser una solución perfecta o aproximada al problema. Como resultado se devolverá una función matemática de mejor ajuste, o mejor individuo. Este mejor individuo será el mejor modelo encontrado y cuando se requiera analizar una nueva molécula o una familia de compuestos, se desfragmentan, se les calculan los descriptores, luego se pasan por el modelo correspondiente que describe la actividad que se quiere analizar y como resultado se obtendrá el por ciento de ese tipo de actividad, que está presente en cada una de las moléculas analizadas.

1.4.1 Campos de aplicación de la programación genética [16]

Regresión simbólica

La regresión simbólica o identificación de funciones involucra encontrar una expresión matemática, en forma simbólica, que provea un ajuste bueno o perfecto entre una muestra finita de valores de variables independientes y los valores asociados de las variables dependientes. Por lo tanto, la regresión simbólica involucra encontrar un modelo que se ajuste a una muestra de datos dada. La regresión simbólica involucra encontrar tanto la forma funcional como así también los coeficientes numéricos del modelo. La regresión simbólica difiere de las regresiones convencionales lineal, cuadrática o polinómica, las cuales involucran meramente encontrar los coeficientes numéricos para una función cuya forma ya ha sido especificada. En cualquier caso, la expresión matemática que es buscada en la regresión simbólica puede ser vista como un programa de computadora que toma los valores de las variables independientes como sus entradas y produce los valores de las variables dependientes como sus salidas.

(23)

El descubrimiento empírico involucra encontrar un modelo que relacione un conjunto dado de valores de variables independientes y los valores asociados (usualmente dispersos) de las variables dependientes para un determinado sistema del mundo real. Una vez que se haya encontrado un modelo para datos empíricos, el mismo puede ser utilizado para pronosticar los valores futuros de las variables del sistema.

El modelo que es buscado en problemas de descubrimiento empírico puede ser visto como un programa de computadora que toma varios valores de las variables independientes como sus entradas y produce los valores observados de las variables dependientes como sus salidas.

Inducción de árboles de decisión

Un árbol de decisión es una manera de clasificar un objeto de un universo dado en una clase particular, utilizando sus atributos como base para dicha clasificación. La inducción de un árbol de decisión es, por lo tanto, un enfoque para la clasificación. Un árbol de decisión corresponde a un programa de computadora que consiste en funciones que prueban los atributos del objeto. La entrada de dicho programa consiste en valores de ciertos atributos asociados a un punto de datos dado. Su salida es la clase en la que se clasifica el punto de datos dado.

Estos son solo unos ejemplos de posibles aplicaciones de la programación genética existen muchos problemas de campos variados en los que la interrelación entre las variables sea desconocida y pueden ser reformulados como la búsqueda de un programa que produzca una determinada salida ante ciertas entradas. De aquí se demuestra que el espacio de búsqueda es el espacio de todos los posibles programas de computadora compuestos por funciones y terminales apropiados al dominio del problema.

Las funciones pueden ser operaciones aritméticas, funciones matemáticas, funciones lógicas o funciones específicas del dominio. Dependiendo del problema en particular, el programa de computadora puede retornar un valor lógico, un valor entero, un valor real, un valor complejo, un vector, un valor simbólico o valores múltiples.

1.5 Software de Predicción [17]

Existen varios software de predicción de actividad biológica que utilizan diferentes métodos para lograr sus objetivos como el sistema experto APEX-3D implementado sobre Silicon Graphics que utiliza teoría lógica combinatoria, para el establecimiento de las relaciones estructura-actividad de grupos de compuestos que constituyen la base de datos suministrada por el usuario. Este sistema experto está

(24)

insertado dentro del paquete de programas Insight II y tuvo su predecesor en el sistema experto OREX implementado sobre IBM PC 80286. Este último se basa en la descomposición topológica de las moléculas en fragmentos estructurales y su asociación a las actividades biológicas reportadas en una base de datos interna de alrededor de 15 000 compuestos. OREX, de una manera rápida, permite con una probabilidad general del 75% predecir simultáneamente las posibles actividades biológicas que puede presentar la sustancia objeto de estudio.

El sistema experto PASS parte también de la fragmentación topológica de la estructura química para la predicción de actividad. En su versión 4.20 predice las probabilidades de presencia/ausencia de 114 actividades biológicas simultáneamente, a partir de un conjunto de entrenamiento de 9314 compuestos.

Versiones en desarrollo incrementaron este número hasta alrededor de 70 000 sustancias biológicamente activas y algo más de 600 tipos de respuestas biológicas que cubren casi todo el espectro de la farmacología conocida hasta la fecha según el criterio de los autores. Este sistema fue mejorado con la incorporación de un diccionario de actividades (IBIAC) que permite identificar relaciones causales y de agrupación entre diferentes respuestas biológicas y mecanismos.

Otro sistema conocido es el ADAPT (Automated Data Analysis using Pattern Recognition Toolkit). Este es un sistema de programas que le permite al usuario el desarrollo de relaciones estructura-actividad y estructura-propiedad. Brinda al usuario la facilidad de entrada gráfica y almacenamiento de estructuras moleculares y sus datos asociados, generación de estructuras 3-D, cálculo de descriptores moleculares y análisis de estos empleando estadística multivariada, reconocimiento de patrones o redes de neuronas para construir modelos predictivos. Los enfoques estadísticos incluyen regresión lineal múltiple, análisis cluster, discriminante y redes neuronales. Se ejecuta sobre estaciones de trabajo bajo sistema operativo UNIX.

1.6 Importancia del Desarrollo del Software

Con el presente trabajo de investigación se logrará un gran impacto en la esfera científico- tecnológica ya que la aplicación de los resultados alcanzados permitirá introducir en la esfera médico-farmacéutica cubana una herramienta capaz de identificar y seleccionar los mejores candidatos a fármacos, en las etapas iníciales del proceso de desarrollo de principios activos, posibilitando un ahorro sustancial de

(25)

recursos humanos y materiales, los cuales son muy importantes dentro del desarrollo científico cubano actual.

1.7 Tecnologías y Tendencias Actuales

Uno de los aspectos fundamentales en la elaboración de un software es seleccionar las tecnologías y tendencias que mayores beneficios aporten. Para el desarrollo de este modulo se realizó un estudio de las posibles herramientas a utilizar en su construcción, teniéndose en cuenta la tendencia actual y las novedades de cada una de ellas.

Procesos de Desarrollo [18]

Existen varios procesos de desarrollo de software cada uno con sus propias características y particularidades aunque sus objetivos o propósitos son los mismos. Ejemplos de estos procesos son:

RUP, XP, FDD.

RUP

El “Proceso Unificado de Desarrollo” es el resultado final de tres décadas de desarrollo y uso práctico.

Esta es una de las causas que conlleva a que sea la metodología que mejor se ajusta a las necesidades que existen actualmente en el desarrollo de software, ya que propone una metodología iterativa e incremental que va eliminando los errores cometidos en las iteraciones previas, logrando que al final del proceso se obtenga como resultado un producto de calidad, muy acorde con la naturaleza cambiante de los requisitos en muchos proyectos.

RUP es un proceso capaz de ser aplicado a cualquier proyecto sin importar la magnitud del mismo, esta estructurado y permite adaptarse a cada proyecto, incluidos proyectos que no sean solo de software. Las fases por las que esta conformado son cuatros y se mencionan a continuación:

1. Inicio (puesta en marcha)

2. Elaboración (definición, análisis, diseño) 3. Construcción (implementación)

4. Transición (fin del proyecto y puesta en producción)

(26)

Figura 1.1 Vista general de RUP

RUP define nueve actividades a realizar en cada fase del proyecto 1. Modelado del negocio

2. Análisis de requisitos 3. Análisis y diseño 4. Implementación 5. Test

6. Distribución

7. Gestión de configuración y cambios 8. Gestión del proyecto

9. Gestión del entorno

(27)

RUP es dirigido por los casos de uso para describir lo que se espera del software y centrado en la Arquitectura del sistema, documentándose lo mejor posible, basándose en UML (Unified Modeling Language) como herramienta principal.

Resumen de puntos claves:

RUP

1. Pesado

2. Dividido en cuatro fases

3. Las fases se dividen en iteraciones

4. El discurrir del proyecto se define en Flujos de Trabajo 5. Los artefactos son el objetivo de cada actividad

6. Se basa en roles 7. UML

8. Muy organizativo 9. Mucha documentación

Por las características de RUP de ser un proceso muy organizativo, orientado a objetos y bien documentado permite ver de forma más descriptiva el proceso de desarrollo, por lo que se llega a la conclusión de que este proceso es el correcto y más indicado para llevar a cabo la descripción de este software.

Lenguaje de Modelado.

UML [4]

El “Lenguaje Unificado de Modelado” (UML) se presentó oficialmente cuando Rumbaugh, Booch y Jacobson unificaron sus estudios con una semántica y notación, para lograr compatibilidad en el análisis y diseño orientado a objetos, permitiendo que los proyectos se asentaran en un lenguaje de modelado maduro, permitiendo a los constructores de herramientas enfocarse en producir características más útiles.

Es un lenguaje para visualizar, especificar, construir y documentar los artefactos de un sistema que involucra una gran cantidad de software.

(28)

La decisión de utilizar UML como notación para el desarrollo del software esta apoyada en que se ha convertido en un estándar con muchas características favorable como las siguientes:

1. Permite modelar sistemas utilizando técnicas orientadas a objetos (OO).

2. Permite especificar todas las decisiones de análisis y diseño, construyéndose así modelos precisos, no ambiguos y completos.

3. Permite documentar todos los artefactos de un proceso de desarrollo (requisitos, arquitectura, pruebas, versiones, etc.).

4. Es un lenguaje muy expresivo que cubre todas las vistas necesarias para desarrollar y luego desplegar los sistemas.

5. A pesar de tener gran expresividad esta notación es fácil de aprender.

6. UML es independiente del proceso, aunque para utilizarlo óptimamente se debería usar en un proceso que fuese dirigido por los casos de uso, centrado en la arquitectura, iterativo e incremental.

Herramienta CASE [19]

CASE (Computer-Aided Software Engineering) es una filosofía que se orienta a la mejor comprensión de los modelos de empresa, sus actividades y el desarrollo de los sistemas de información. Esta filosofía involucra además el uso de programas que permiten:

1. Construir los modelos que describen la empresa, 2. Describir el medio en el que se realizan las actividades, 3. Llevar a cabo la planificación,

4. El desarrollo del Sistema Informático, desde la planificación, pasando por el análisis y diseño de sistemas, hasta la generación del código de los programas y la documentación.

Los principales objetivos que poseen las CASE son:

1. Aumentar la productividad de las áreas de desarrollo y mantenimiento de los sistemas informáticos.

2. Mejorar la calidad del software desarrollado.

3. Reducir tiempos y costes de desarrollo y mantenimiento del software.

(29)

5. Mejorar el archivo de datos (enciclopedia) de conocimientos (know-how) y sus facilidades de uso, reduciendo la dependencia de analistas y programadores.

6. Automatizar:

El desarrollo del software

La documentación

La generación del código

El chequeo de errores

La gestión del proyecto 7. Permitir

 La reutilización del software

 La portabilidad del software

 La estandarización de la documentación

8. Integrar las fases de desarrollo de la ingeniería del software con las herramientas CASE 9. Facilitar la utilización de las distintas metodologías que desarrollan la propia ingeniería del software.

Rational Rose [3]

Rational Rose es la herramienta de modelación visual que provee el modelado basado en UML. La Corporación Rational ofrece un Proceso Unificado (RUP) para el desarrollo de los proyectos de software.

Para cada una de las etapas desde la Ingeniería de Requerimientos hasta la de pruebas existe una herramienta de ayuda en la administración de los proyectos, Rose es la herramienta del Rational para la etapa de análisis y diseño de sistemas.

Rose es una herramienta con plataforma independiente que ayuda a la comunicación entre los miembros de equipo, a monitorear el tiempo de desarrollo y a entender el entorno de los sistemas. Una de las grandes ventajas de Rose es que utiliza la notación estándar en la arquitectura de software UML, la cual permite a los arquitectos de software y desarrolladores visualizar el sistema completo utilizando un lenguaje común, además, los diseñadores pueden modelar sus componentes e interfaces en forma individual y luego unirlos con otros componentes del proyecto.

(30)

Visual Paradigm [20]

Visual Paradigm UML Community es una de las principales compañías de herramientas CASE. Tiene disponible distintas versiones: Enterprise, Professional, Standard, Modeler, Personal y Community la cual es gratuita. La compañía facilita licencias especiales para fines académicos.

Visual Paradigm es una herramienta que sirve para realizar modelado UML siguiendo el estándar UML.

Esta herramienta posee características gráficas muy cómodas que facilitan la realización de los diagramas de modelado que sigue el estándar de UML que son:

1. Diagramas de clase, Casos de Uso, Comunicación, Secuencia, Estado, 2. Actividad, Componentes, etc.

3. Entre otras características importantes que se tienen tenemos:

4. Integración con diversas IDE‟s como son:

 NetBeans(de Sun)

 JDeveloper(de Oracle)

 Eclipse (de IBM)

 JBuilder (de Borland) 5. Ingenieria Inversa para:

 JAVA

 NET

 XML

 Hibernate

6. Exportación de imágenes jpg, png y svg (w3g estándar)

La herramienta está diseñada para una amplia gama de usuarios, incluyendo Ingenieros de Software, Analistas de Sistemas, Analistas de Negocios y Arquitectos de Sistemas que estén interesados en la creación de Grandes Sistemas de Software de manera confiable a través del paradigma Orientado a Objetos.

Visual Paradigm es la herramienta case que se utiliza en la modelación de este proyecto por todas las características que posee y beneficios que brinda.

(31)

Java [20]

Java es un lenguaje de programación con el que podemos realizar cualquier tipo de programa. En la actualidad es un lenguaje muy extendido y cada vez cobra más importancia tanto en el ámbito de Internet como en la informática en general. Está desarrollado por la compañía Sun Microsystems con gran dedicación y siempre enfocado a cubrir las necesidades tecnológicas más punteras.

Una de las principales características por las que Java se ha hecho muy famoso es que es un lenguaje independiente de la plataforma. Eso quiere decir que si hacemos un programa en Java podrá funcionar en cualquier ordenador del mercado. Es una ventaja significativa para los desarrolladores de software, pues antes tenían que hacer un programa para cada sistema operativo, por ejemplo Windows, Linux, Apple, etc.

Esto lo consigue porque se ha creado una Máquina de Java para cada sistema que hace de puente entre el sistema operativo y el programa de Java y posibilita que este último se entienda perfectamente.

La independencia de plataforma es una de las razones por las que Java es interesante para Internet, ya que muchas personas deben tener acceso con ordenadores distintos. Pero no se queda ahí, Java está desarrollándose incluso para distintos tipos de dispositivos además del ordenador como móviles, agendas y en general para cualquier cosa que se le ocurra a la industria.

Java fue pensado originalmente para utilizarse en cualquier tipo de electrodoméstico pero la idea fracasó.

Uno de los fundadores de Sun rescató la idea para utilizarla en el ámbito de Internet y convirtieron a Java en un lenguaje potente, seguro y universal gracias a que lo puede utilizar todo el mundo y es gratuito. Una de los primeros triunfos de Java fue que se integró en el navegador Netscape y permitía ejecutar programas dentro de una página Web, hasta entonces impensable con el HTML. Actualmente Java se utiliza en un amplio abanico de posibilidades y casi cualquier cosa que se puede hacer en cualquier lenguaje se puede hacer también en Java y muchas veces con grandes ventajas. Para lo que nos interesa a nosotros, con Java podemos programar páginas Web dinámicas, con accesos a bases de datos, utilizando XML, con cualquier tipo de conexión de red entre cualquier sistema. En general, cualquier aplicación que deseemos hacer con acceso a través web se puede hacer utilizando Java.

Hemos decidido usar este lenguaje para la realización de la aplicación por las ventajas de ser un lenguaje multiplataforma y un software libre, razón por la que aparecen gran cantidad de aplicaciones realizadas en dicho lenguaje actualmente que van desde móviles, la Web hasta aplicaciones de desktop.

(32)

Entornos de Desarrollo

NetBeans 5.5 [21]

NetBeans es un entorno de desarrollo integrado OpenSource y de distribución gratuita que proporciona herramientas muy cómodas y de fácil uso para el desarrollo de aplicaciones sobre la plataforma JAVA.

Entonces se pueden desarrollar bajo esta IDE soluciones J2SE, J2ME y J2EE.

Entre las características que proporciona tenemos:

1. Desarrollo de aplicaciones multiplataforma sobre: MacOS, Windows, Linux.

2. Add-ons para desarrollo Móvil, desarrollo Web grafico, integración con SOA, optimización de aplicaciones y desarrollo con C y C++.

3. Cliente CVS integrado

4. Crecimiento de plataforma por medio de plugins. Entre los plugins que existen se tienen los siguientes:

 Herramientas java que sirven para la mejora de desarrollo de aplicaciones

 Herramientas de modelado UML

 Herramientas XML, etc.

5. Struts, JSF, EJB, WebServices, etc.

Eclipse [20]

Eclipse es una plataforma de desarrollo extensible, basada en Java y de tipo open-source (CPL).

Originalmente fue desarrollada por Alphaworks, laboratorio de desarrollo de IBM, pero actualmente está manejado por un consorcio de varias empresas, (Borland, Hitachi, etc.). Lo interesante de Eclipse, es que conforma una suerte de estándar o framework. Muchos vendedores de software basan sus ofertas de IDE en eclipse, al que suman conjuntos de plug-ins.

Este entorno de desarrollo integrado ofrece, el control del editor de código, del compilador y del depurador desde una única interfaz de usuario. Su misión consiste en evitar tareas repetitivas, facilitar la escritura de código correcto, disminuir el tiempo de depuración e incrementar la productividad del desarrollador. Estas

(33)

más habituales y mecánicas, de editores que completen automáticamente el código y señalen los errores sintácticos, de gestores de archivos fuente, etc. Eclipse no es un IDE más a añadir a la lista, el objetivo de IBM ha sido crear una plataforma de desarrollo modular que cualquier herramienta de desarrollo pueda usar con cualquier lenguaje de programación.

Conclusiones

Después de un estudio detallado se puede llegar a la conclusión de que se desea desarrollar un módulo de predicción de la relación estructura-actividad anticancerígena de compuestos orgánicos a partir de descriptores topológicos e híbridos, como forma de describir la molécula.

Se ha escogido la programación genética como técnica de inteligencia artificial para desarrollar la predicción.

El lenguaje utilizado para el modelado fue UML y la herramienta CASE escogida es Visual Paradigm. Se ha escogido el lenguaje de programación Java por las posibilidades multiplataforma que este brinda, además por su posibilidad de uso gratuito. El editor seleccionado para la programación de este fue el Eclipse, por sus grandes potencialidades y sus posibilidades de extensión mediante el uso de plug-ins.

(34)

CAPÍTULO 2: CARACTERÍSTICAS DEL SISTEMA

En este capítulo se describe la solución propuesta utilizando los componentes del modelo de dominio de la metodología RUP, se tendrán en cuenta la definición de las entidades y los conceptos principales, así como su representación gráfica y definición de las reglas del negocio. Incluye la descripción de los requisitos funcionales, no funcionales del sistema, los actores que intervienen en el sistema, el diagrama de casos de uso del sistema y la descripción detallada de cada uno de los casos de uso del sistema.

2.1 Modelo del dominio

Un Modelo del Dominio captura los tipos de objetos más importantes en el contexto del sistema. Tiene como objetivo fundamental la comprensión y descripción de las clases más importantes en el sistema.

2.1.1 ¿Por que Modelo del dominio?

Debido a la poca estructuración de los procesos del negocio que tienen que ver con el objeto de estudio y para poder entender el contexto en que se emplaza el sistema necesitamos definir conceptos que podemos agrupar en un Modelo de Dominio.

2.1.2 Breve descripción del problema

El investigador del Centro de Química Farmacéutica desea analizar una familia de compuestos orgánicos para verificar el grado de actividad biológica de compuestos entrados por el investigador. Luego de estar definida la muestra que se desea analizar y escogida la actividad biológica se procede a evaluar los compuestos de dicha muestra en los modelos matemáticos que se encuentran en la base de conocimientos pertenecientes a la actividad biológica seleccionada por el investigador. Terminada la evaluación el sistema devuelve los compuestos con su por ciento de actividad biológica correspondiente ordenados de forma descendente. Si se desea realizar una nueva evaluación para otra actividad biológica con la misma muestra se selecciona una nueva actividad biológica y se realiza una nueva corrida.

2.1.3 Glosario de términos para el dominio

Compuestos Orgánicos: compuestos cuya composición fundamental es sobre la base del elemento químico carbono.

(35)

Modelo Matemático: expresión numérica que simula la realidad.

Predicción: valor estimado que caracteriza una propiedad o fenómeno obtenido de un modelo.

Concentración Efectiva: cantidad de sustancia concentrada por unidades de masa o volumen.

Descriptores: es una forma de describir las moléculas mediante expresiones matemáticas que permite describir la estructura química o una propiedad de la molécula.

(36)

2.1.4 Diagrama Modelo del Dominio

Figura 2.1 Modelo de dominio.

(37)

2.2 Especificación de los requerimientos de software

Requerimientos de software no son más que las condiciones o capacidades que tiene que tener un sistema para satisfacer un contrato o documento formal, se realizará un análisis del Modelo de Sistema, donde se verán cada uno de los casos de usos de este y la descripción de cada uno de ellos.

2.2.1. Requerimientos Funcionales

Los requerimientos funcionales son capacidades o condiciones que el sistema debe cumplir, tareas que debe de realizar el sistema para satisfacer las necesidades del usuario. Definen los límites de la aplicación, proveen las bases sobre las cuales se planificará los contenidos de las iteraciones, permiten estimar el costo y el tiempo de desarrollo

.

R1

:

Crear Modelo.

R2: Guardar los modelos en la base de conocimiento del sistema.

R3: Predecir Actividad Biológica.

R4: Cargar los ficheros de las moléculas.

R5: Cargar modelos matemáticos.

R6: Evaluar modelo matemático.

2.2.2. Requerimientos no Funcionales

Los requerimientos no funcionales son propiedades o cualidades que el producto debe tener. Debe pensarse en estas propiedades como las características que hacen al producto atractivo, usable, rápido o confiable.

1. Requisito de funcionalidad

El sistema debe someterse a una etapa de adiestramiento en la que los usuarios se familiaricen con la aplicación y sean detectados los posibles errores, o puedan surgir posibles cambios en la interfaz para que los usuarios queden totalmente complacidos.

2. Apariencia o interfaz externa

(38)

El sistema debe contar con una interfaz amigable, fácil de comprender y usar, donde el usuario pueda orientarse fácilmente.

3. Usabilidad

El sistema le ofrecerá al investigador la posibilidad de realizar predicciones y analizar los resultados de las predicciones, en este sentido se centra el diseño de la aplicación y en específico de las interfaces que harán posible el intercambio de datos de manera que le resulte al usuario de fácil entendimiento.

4. Rendimiento

La eficiencia del producto estará determinada en gran medida por el aprovechamiento de los recursos que se disponen en el modelo Cliente/Servidor, y la velocidad de las consultas en la Base de Datos. La herramienta propuesta debe ser rápida y el tiempo de respuesta debe ser el mínimo posible, adecuado a la rapidez con que el cliente requiere la respuesta a su acción.

5. Soporte

Terminada la aplicación será sometida a pruebas con el objetivo de comprobar su funcionalidad.

6. Requerimientos de Portabilidad

La herramienta propuesta podrá ser usada bajo cualquier sistema operativo, para su implementación se usaron Herramientas de Programación y Gestión de Bases de Datos que son multiplataforma.

7. Software

Se debe disponer de sistemas operativos Linux, Windows 95 o superior para la instalación de la aplicación. Debe tenerse instalado el Java Runtime Environment (JRE) versión 1.5 o superior.

8. Hardware

Para el desarrollo y puesta en práctica del proyecto se requieren máquinas con los siguientes requisitos:

Procesador Pentium 3 o superior

256 Mb de RAM

50 mb de capacidad del disco duro

(39)

2.2.3 Definición de los casos de uso

Este subepígrafe proporciona la definición de los actores que intervienen con el sistema, muestra el diagrama de caso de uso del sistema y describe textualmente los casos de uso del sistema.

Actores del sistema

El término actor significa el rol que algo o alguien ocupa cuando interactúa con el sistema.

Actores Justificación

Especialista Cualquier usuario que necesite realizar cierta predicción, es el encargado de solicitar que se realice la predicción.

Administrador Es el encargado de actualizar el sistema creando nuevos modelos para la predicción utilizando programación genética.

(40)

Diagrama de Casos de Uso del Sistema

Este diagrama representa de forma gráfica como será concebido el sistema para una mejor comprensión.

Figura 2.2 Diagrama de caso de uso del sistema

(41)

Descripción de los Casos de uso.

Con la posterior descripción de los casos de uso que se componen para el sistema, se obtendrá claramente la idea de cómo se realizarán las operaciones, cuándo y quienes intervienen en ellas.

Caso de Uso Crear Modelo

Actores: Administrador

Resumen: El caso de uso inicia cuando el Administrador solicita Crear Modelo.

Referencia: R1, R2

CU asociados: -

Precondiciones: Existencia de una base de datos molecular con resultados de sus descriptores.

Flujo Normal de Eventos

Acción del Actor Respuesta del Sistema

1. El administrador solicita Crear Modelo.

1.

El sistema pide la entrada de la BDMD.

2. El administrador especifica la dirección donde pueden encontrar estos datos.

2.1 Se comprueba que los datos estén correctos.

2.2 Se crea el modelo matemático.

2.3 Se guardan los modelos en la base de conocimiento del sistema.

Flujos Alternos

Acción del Actor Respuesta del Sistema

Poscondiciones:

Prioridad: Crítico

Especificaciones Complementaria:

Puntos de Extensión

(42)

Caso de Uso: Predecir Actividad Biológica

Actores: Especialista

Resumen:

El caso de uso se inicia cuando el Especialista solicita Realizar Predicción. Posteriormente se realizan los cálculos con los modelos existentes devolviendo los resultados de la predicción al Especialista.

Referencia: R3, R4, R5, R6

CU asociados: -

Precondiciones: Que exista la base de modelos matemáticos.

Flujo Normal de Eventos

Acción del Actor Respuesta del Sistema

1. El especialista gestiona cargar los ficheros de moléculas.

1.

El sistema carga los ficheros de las moléculas

2. El especialista solicita Obtener Predicción

2.1 El sistema realiza los cálculos de los descriptores.

2.2. Selecciona Modelo matemático.

2.3. El sistema realiza la predicción.

2.4. El sistema devuelve la predicción.

3. El especialista Solicita guardar la información en un fichero.

3.1. El sistema guarda el fichero.

Flujos Alternos

Acción del Actor Respuesta del Sistema

Poscondiciones:

Prioridad: Crítico

Especificaciones Complementaria:

Puntos de extensión

(43)

Conclusiones

En el capítulo resultó concluida la fase de descripción del negocio, debido a la poca estructuración de los procesos del negocio y para una mejor comprensión se definieron en este capítulo conceptos, que fueron relacionados mediante un diagrama de Modelo del Dominio para modelar, de forma general, como se desarrolla este proceso y así brindar una clara definición de los requisitos que debe cumplir el sistema.

Fueron seleccionados los actores y los casos de uso con los que constará dicho sistema, estos últimos con sus descripciones correspondientes. Se ganó claridad en cuanto a la concesión del sistema a construir y se sentaron las bases para las restantes fases del proceso de análisis, diseño e implementación.

(44)
(45)

CAPÍTULO 3: ANÁLISIS Y DISEÑO DEL SISTEMA

En este capítulo se describe la solución propuesta para el trabajo, se presentan los diagramas de clases de análisis organizados por casos de uso, con el propósito de una mejor comprensión del diseño.

Después de realizar un estudio profundo sobre el funcionamiento del sistema y todas las clases definidas en el diagrama de clases del análisis, se pasa a la fase de diseño. Se muestran las características de la interfaz del usuario, los posibles errores que pueden cometer el usuario y la respuesta que le dará el sistema a cada uno de ellos.

3.1 Diagrama de clases del análisis

Una vez que se posee el modelo de dominio y la definición de los casos de uso del sistema se procede a realizar un refinamiento de los mismos, chequeando que exista un balance correcto entre los diferentes artefactos que se van obteniendo. En este flujo de trabajo se realizarán las definiciones de las clases de análisis que intervienen en el proceso, a partir de las clases del dominio que se poseen, de las interfaces que se poseen para el intercambio con los actores del sistema, así como de la necesidad de tener controlados cada uno de los procesos que se desarrollan.

Una vez definidas todas las clases del análisis se modelan las asociaciones existentes entre ellas a través del diagrama de clases del análisis correspondiente a cada caso de uso.

(46)

Caso de uso: Predecir actividad.

Figura 3.1 Diagrama de clases correspondiente al CU Predecir actividad.

Caso de uso: Crear modelo.

Figura 3.2 Diagrama de clases correspondiente al CU Crear modelo.

Referencias

Documento similar

La campaña ha consistido en la revisión del etiquetado e instrucciones de uso de todos los ter- mómetros digitales comunicados, así como de la documentación técnica adicional de

"No porque las dos, que vinieron de Valencia, no merecieran ese favor, pues eran entrambas de tan grande espíritu […] La razón porque no vió Coronas para ellas, sería

Entre nosotros anda un escritor de cosas de filología, paisano de Costa, que no deja de tener ingenio y garbo; pero cuyas obras tienen de todo menos de ciencia, y aun

entorno algoritmo.

Habiendo organizado un movimiento revolucionario en Valencia a principios de 1929 y persistido en las reuniones conspirativo-constitucionalistas desde entonces —cierto que a aquellas

The part I assessment is coordinated involving all MSCs and led by the RMS who prepares a draft assessment report, sends the request for information (RFI) with considerations,

Ciaurriz quien, durante su primer arlo de estancia en Loyola 40 , catalogó sus fondos siguiendo la división previa a la que nos hemos referido; y si esta labor fue de

Las manifestaciones musicales y su organización institucional a lo largo de los siglos XVI al XVIII son aspectos poco conocidos de la cultura alicantina. Analizar el alcance y