SciELO - Scientific Electronic Library Online

 
vol.10 suppl.1Experiencias usando algoritmos genéticos en la planificación de proyectosExperiencia de Formación en Gestión del Cambio en la Educación de Ingeniería índice de autoresíndice de assuntospesquisa de artigos
Home Pagelista alfabética de periódicos  

Serviços Personalizados

Journal

Artigo

Indicadores

  • Não possue artigos citadosCitado por SciELO

Links relacionados

  • Não possue artigos similaresSimilares em SciELO

Compartilhar


Revista Cubana de Ciencias Informáticas

versão On-line ISSN 2227-1899

Rev cuba cienc informat vol.10  supl.1 La Habana  2016

 

ARTÍCULO ORIGINAL

 

Herramienta de visualización dinámica de simulaciones del proceso de difusión en microfluidos con componentes biológicos

 

Dynamical visualization tool for the diffusion process of microfluids with biological components

 

 

David Alejandro Martínez Pérez1*,Edisel Navas Conyedo2, Jorge Gulín González2

1Departamento de Ciencias Básicas, Facultad 3, Universidad de las Ciencias Informáticas, La Habana, Cuba
2Centro de Estudio de Matemática Computacional, Facultad 6, Universidad de las Ciencias Informáticas, La Habana, Cuba {enavas, gulinj}@uci.cu

*Autor para la correspondencia: dmartinezp@uci.cu

 

 


RESUMEN

Los softwares para la visualización desempeñan un papel protagónico en la actualidad ya que permiten observar paso a paso la evolución de un sistema en estudio. Estas pueden ser estáticas o dinámicas, en el primer caso toda la información necesita ser visible a la vez, lo que puede conducir a algunos problemas incluso si se trabaja con un conjunto pequeño de datos; en el segundo caso se pueden crear diferentes vistas de los mismos datos, las características fundamentales son la animación, la interacción y que la visualización se realiza en tiempo de ejecución. En la simulación de sistemas físicos, en los que se quiere realizar una predicción del comportamiento en correspondencia con ciertos parámetros descriptivos, que además pueden ser variables en el tiempo, se hace necesario que la visualización se realice de una manera dinámica debido a que de esta manera se pueden corregir estos parámetros para lograr un comportamiento lo más cercano al real. Se desarrolló una herramienta de software de visualización para microfluidos con componentes biológicos, con un protocolo de comunicación basado en socket que puede ser integrado a diversos softwares de simulación que hagan consumo de este protocolo.

Palabras clave: software de visualización, difusión, componentes correlacionados, visualización dinámica, parámetros de comportamiento


ABSTRACT

The software for visualization play a leading role today and for observing step by step the evolution of a system under study. These can be static or dynamic, in the first case all the information needs to be visible at a time, which can lead to some problems even if working with a small data set; in the second case you can create different views of the same data, the main features are animated, interaction and visualization are done at runtime. In the simulation of physical systems, in which one wants to make a prediction of behavior corresponding to certain descriptive parameters, which can also be time varying, it is necessary that the display is performed in a dynamic manner because this so you can correct these parameters to achieve a behavior as close to real. A dynamic visualization software tool for microfluidics with biological components was developed, with a communication protocol based on socket that can be integrated into various simulation software to make use of this protocol.

Key words: visualization software, diffusion, correlated components, dynamic visualization, behavioral parameters


 

 

INTRODUCCIÓN

En la actualidad la simulación de procesos correspondientes a fenómenos físicos ha tomado un gran auge en la comunidad científica a nivel mundial, debido a que a través de esta se pueden recrear escenas y predecir comportamientos de un sistema sin la necesidad de interactuar directamente con él. Según (Robert E. Shannon, 1975) se entiende por simulación computacional el proceso de diseñar y utilizar un modelo computarizado de un sistema o proceso, y conducir experimentos con este modelo, con el propósito de entender el comportamiento del sistema o evaluar varias estrategias con las cuales se puede operar el mismo. Este término se encuentra altamente relacionado con el de visualización dinámica debido a que es muy complicado estudiar un proceso físico teniendo como referencia solamente datos numéricos, también es necesario observar en imágenes lo que ocurre en cada instante de tiempo.

La visualización dinámica es en concepto la proyección de una porción de la información visual en diferentes pequeños intervalos de tiempo, en cada uno de los cuales se muestra una porción diferente, consiguiendo así proyectar toda la información (Cruz, 2012). Este efecto se consigue por lo que se denomina tiempo de retención de la retina, lo cual explica que una imagen dura pequeñas fracciones de segundo en nuestra retina, si se logra presentar todas las porciones de la información visual antes de que termine este tiempo el cerebro procesa todo esto como una sola imagen porque aun retiene las porciones anteriores. Gracias al efecto anterior es posible proyectar una imagen obturándola a más de 24Hz (entiéndase poniéndola y quitándola más de 24 veces por segundo) y ser percibida, por el ojo humano, como una imagen fija. Este efecto es la base de los vídeos, solo que no se presenta la misma imagen únicamente sino que se presenta imágenes de forma simultánea cada una con un pequeño desplazamiento con respecto a la anterior.

En las simulaciones de procesos de difusión en microfluidos con componentes biológicos complejos donde los parámetros de comportamiento son variables en el tiempo, para realizar un análisis profundo de la evolución del sistema es imprescindible poder visualizar el comportamiento de las estructuras espaciales (sistemas de partículas, polímeros, superficies, entre otras) a lo largo de toda la simulación y esto solamente es posible si la visualización se realiza de manera dinámica.

Existen herramientas que complementan a las simulaciones y son los analizadores y los visualizadores, que permiten que se pueda procesar y observar respectivamente cada paso de lo que se intenta recrear. El objetivo de estas como un conjunto es transformar los datos que envían los simuladores de un estado en específico a imágenes y valores numéricos descriptivos que especifiquen lo que está ocurriendo, este envío de datos se realiza a través de un protocolo de comunicación (SOCKET, UDP, SPX, entre otros) si la visualización es dinámica, en otro caso la información de la simulación se guarda en ficheros, para ser analizados posteriormente. De esta manera el usuario puede interactuar con una aplicación que le permita llegar a conclusiones orientando la visualización a sus intereses.

 

MATERIALES Y MÉTODOS

Para el estudio del proceso de difusión en microfluidos es necesario tener un conocimiento básico del comportamiento de las estructuras bases a visualizar, porque al conocer sus características podemos predecir cual serán las particularidades del nuevo estado en el que se encontrará el sistema en un período de tiempo determinado y de esta manera se pueden variar los parámetros de simulación para corregir posibles resultados no esperados.

En cuanto a la visualización se pueden definir dos elementos que resultan claves, uno es la información relevante a representar y el otro el modelo de representación esquemática de cada componente.
A continuación, se explican los términos fundamentales relacionados con el proceso de difusión en microfluidos para un mejor entendimiento del mismo.

Sistema de partículas: En mecánica se considera un sistema de partículas como un conjunto de N partículas que se mueven por separado, si bien interactúan entre sí y están sometidos a fuerzas externas. Cuando el número de partículas es reducido se puede abordar el problema dinámico analizando cada una por separado. Cuando es elevado, es preciso recurrir a promedios y descripciones colectivas (como la mecánica estadística, la elasticidad o la mecánica de fluidos) (Martin y Serrano, 2014) o descripciones estocásticas que usan la teoría de la difusión (Jurado, 2007).

Los sistemas se clasifican en abiertos o cerrados. Un sistema cerrado es aquél en el que no existe una entrada o salida de partículas, y por tanto, su masa permanece constante. Un sistema abierto es aquel que permite el paso de partículas a través de los límites del sistema (Martin y Serrano, 2014).

Polímeros: Los polímeros se definen como macromoléculas compuestas por una o varias unidades químicas o partículas bases (monómeros) que se enlazan formando una cadena (Vincent, y otros, 2006).

La parte básica de un polímero son los monómeros, estos representan a cada una de las partículas que forman el polímero y son las unidades químicas que se repiten a lo largo de toda la cadena de un polímero, por ejemplo, el monómero del polietileno es el etileno, el cual se repite x veces a lo largo de toda la cadena (Vincent, y otros, 2006). En la figura 1 se muestra un ejemplo de un polímero

f01

Mallas Geométricas: Una malla geométrica es una colección de vértices, aristas y caras, que define la forma de un objeto complejo en base a polígonos (2D) y poliedros (3D), es decir, en base a formas simples y conocidas. Se distinguen dos tipos de mallas (Cumsille, 2010):

  • Mallas Estructuradas: se componen de celdas del mismo tipo y tamaño, como, por ejemplo, rectángulos o triángulos en (2D) y hexaedros o tetraedros (3D).

  • Mallas No Estructuradas: se componen de celdas del mismo o distinto tipo, pero de tamaños diferentes. Existen en general, algunas zonas con celdas pequeñas y otras con celdas de mayor tamaño.

En la figura 2 se muestra un mallado del corazón.

f02

Metodología de desarrollo de software

Como metodología de desarrollo de software se utilizó la programación extrema (Extreme Programming, XP en adelante) que está centrada en potenciar las relaciones interpersonales como clave para el éxito en desarrollo de software, promoviendo el trabajo en equipo, preocupándose por el aprendizaje de los desarrolladores, y propiciando un buen clima de trabajo. XP se basa en realimentación continua entre el cliente y el equipo de desarrollo, comunicación fluida entre todos los participantes, simplicidad en las soluciones implementadas y coraje para enfrentar los cambios (Letelier Torres, y otros, 2003).

Un proyecto XP tiene éxito cuando el cliente selecciona el valor de negocio a implementar basado en la habilidad del equipo para medir la funcionalidad que puede entregar a través del tiempo. El ciclo de desarrollo consiste (a grandes rasgos) en los siguientes pasos (Jeffries, Anderson y Hendrickson, 2001):

  1. El cliente define el valor de negocio a implementar.

  2. El programador estima el esfuerzo necesario para su implementación.

  3. El cliente selecciona qué construir, de acuerdo con sus prioridades y las restricciones de tiempo.

  4. El programador construye ese valor de negocio.

  5. Vuelve al paso 1.

En todas las iteraciones de este ciclo tanto el cliente como el programador aprenden. No se debe presionar al programador a realizar más trabajo que el estimado, ya que se perderá calidad en el software o no se cumplirán los plazos. De la misma forma el cliente tiene la obligación de manejar el ámbito de entrega del producto, para asegurarse que el sistema tenga el mayor valor de negocio posible con cada iteración (Jeffries, Anderson y Hendrickson, 2000). El ciclo de vida ideal de XP consiste de seis fases que pueden ser consultadas con profundidad en la referencia (Beck, 2000).

La herramienta de visualización propuesta permite la visualización dinámica de simulaciones de la difusión en microfluidos con componentes biológicos y se integra a los simuladores que existen en el proyecto CCSD. Su funcionamiento se basa en el uso de dos sockets, uno para recibir los datos de las estructuras, que se envían desde el simulador y el otro para recepcionar las imágenes que son enviadas desde la máquina cliente.

Los sockets no son más que puntos o mecanismos de comunicación entre procesos que permiten que un proceso hable (emita o reciba información) con otro proceso incluso estando estos procesos en distintas máquinas. Esta característica de interconectividad entre máquinas hace que el concepto de socket nos sirva de gran utilidad. La comunicación entre procesos a través de sockets se basa en la filosofía CLIENTE-SERVIDOR: un proceso en esta comunicación actuará de proceso servidor creando un socket cuyo nombre conocerá el proceso cliente, el cual podrá "hablar" con el proceso servidor a través de la conexión con dicho socket nombrado (Walton, 2001).

El mecanismo de comunicación vía sockets tiene los siguientes pasos:
1.  El proceso servidor crea un socket con nombre y espera la conexión.
2.  El proceso cliente crea un socket sin nombre.
3.  El proceso cliente realiza una petición de conexión al socket servidor.
4.  El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre.

Es muy común en este tipo de comunicación lanzar un proceso hijo, una vez realizada la conexión, que se ocupe del intercambio de información con el proceso cliente mientras el proceso padre servidor sigue aceptando conexiones (Walton, 2001).

Para garantizar la comunicación entre el simulador y el visualizador se utiliza una programación multihilo, de esta manera se optimiza el renderizado de las estructuras bases a visualizar, permitiendo un mejor análisis de los procesos de difusión en microfluidos con componentes biológicos complejos. En la figura 3 se muestra el funcionamiento multihilo de la aplicación.

f03

A continuación, se explica la relación existente entre el simulador, el visualizador y los hilos de ejecución:

El simulador envía los datos de las estructuras a visualizar a través de un socket, estos datos son recibidos en otro socket que se ejecuta en el Hilo Parse, aquí se crean las estructuras que representan un estado específico de la simulación en curso. Luego se envían al Hilo Visualizador que es el encargado de ejecutar la interfaz principal del visualizador y representar en pantalla todas las estructuras bases que han sido recibidas. Concurrentemente con este proceso se efectúa otro envío de datos por parte del simulador, en este caso es una imagen que representa el diagrama de comportamiento de la simulación. Esta foto se envía por otro socket y es recibida en el Hilo Imagen por un socket que tiene como responsabilidad recibir cada actualización que se produzca en el diagrama de un estado a otro. Finalmente, la imagen se representa en otra ventana al lado de la aplicación facilitando un mejor entendimiento de los fenómenos que se simulan.

Interface simulador-visualizador

La comunicación entre el simulador y el visualizador se realiza mediante el envío de cadenas de texto a través de un socket, cada tipo de estructura tiene una nomenclatura específica, este será el lenguaje que el visualizador entenderá. A continuación, se realiza una descripción de esta nomenclatura para cada tipo de estructura:

Partículas

1. "radio/color/posición x/posición y/posición z/velocidad x/velocidad y/velocidad z”.
Ejemplo: 0.1000/azul/0.4/-0.2145/0.1236/10/10/1
2. El carácter “/” significa que un nuevo atributo viene a continuación.
3. Los caracteres “--” significan que una nueva partícula viene a continuación.

Superficies

Ejemplo: "0.2/0.4/0>2/1=0.5/0.4/0>2/0=0.2/0.6/0>0/1"
                "0/0/0>1/2/3=0/1/0>2/3=1/0/0>3=1/1/1>n"
1. El carácter “/” significa que un nuevo atributo viene a continuación.
2. Los tres primeros parámetros son las coordenadas x, y, z de un punto.
3. El carácter “>” significa que a continuación aparecerán los vecinos del punto (los números
 son las posiciones que ocupan en la lista de puntos).
4. El carácter “=” significa que un nuevo punto viene a continuación.
5. En el caso de que un punto no tenga vecinos se le pone una “n”.

Polímeros

“radio/color/posición x/posición y/posición z>1”
"0.1000/rojo/0.8/0.354/0.5236>1<0.1000/blanco/0.2145/0.5145/0.5236>0/2<0.1000/amarillo/0.5145/0.5145/0.5236>n"
1. Los 5 primeros parámetros coinciden con los 5 primeros de las partículas.
2. El carácter “>” significa que a continuación aparecerán las partículas con las que se
 enlaza la partícula que se está analizando (los números son las posiciones que ocupan
 en la lista de partículas).
3. El caracter “<” significa que viene una nueva partícula.
4. En el caso de que una partícula no se enlace con ninguna se le pone una “n”.

 

RESULTADOS Y DISCUSIÓN

La herramienta está formada por una ventana principal que tiene en su parte superior un menú con las siguientes opciones: Archivo, Vista, Navegación, Partícula y Superficie (ver figura 4).

f04

Menú Archivo: En el menú archivo aparecen las opciones de: Reiniciar, Guardar imagen, Mostrar varias estructuras y Salir (ver figura 5).

Reiniciar: Esta opción permite deshacer todos los cambios que pudo realizar el usuario usando las opciones del menú Navegación, retornando la vista al estado inicial de la visualización en curso.

Guardar imagen: Esta opción le brinda la posibilidad al usuario de guardar la imagen que se encuentra en pantalla en el directorio que él determine.

Mostrar varias estructuras: Esta opción brinda la posibilidad de representar un conjunto de estructuras de diferentes tipos (superficies, mallas y polímeros) intercalados entre sí. Ya que la opción por defecto es representar una única estructura.

Salir: Esta opción como su nombre lo indica permite el cierre de la aplicación.

f05f06

Menú Vista: En el menú vista aparecen las opciones de: Plano-xy, Plano-yz y Plano-xz (ver figura 6).

Plano-xy: Esta opción le permite al usuario cambiar la posición de la cámara en el plano-xy, es decir podrá ver las imágenes por delante y por detrás.

Plano-yz: Esta opción le permite al usuario cambiar la posición de la cámara en el plano-yz, es decir podrá ver las imágenes por la izquierda y por la derecha.

Plano-xz: Esta opción le permite al usuario cambiar la posición de la cámara en el plano-xz, es decir podrá ver las imágenes por arriba y por abajo.

Menú Navegación: En el menú Navegación aparecen las opciones de: Activar movimiento por cursores, Activar zoom, Activar rotación y Activar traslación (ver figura 7).

Activar movimiento por cursores: Esta opción permite activar o desactivar el movimiento a través de los cursores.

Activar zoom: Esta opción permite activar o desactivar el zoom, es decir la capacidad de acercar o alejar un objeto visual.

Activar rotación: Esta opción permite activar o desactivar la posibilidad de que los objetos visuales roten alrededor de la pantalla.

Activar traslación: Esta opción permite activar o desactivar la traslación por parte de los objetos visuales.

Menú Partícula: En el menú Partícula aparecen las opciones de: Ver movimiento, Partículas y Campo-Vectorial (ver figura 8).

Ver movimiento: Esta opción permite ver el movimiento de todas las partículas que se encuentran en pantalla, inicialmente todas van a estar estáticas. Se muestra una animación que se repite de forma continua hasta que se actualizan los datos suavizando la transición entre imágenes.

f07 f08

Partículas: Esta opción permite mostrar una vista con las partículas representadas como esferas y también es posible mostrar su movimiento.

Campo-Vectorial: Esta opción permite mostrar una vista de las partículas diferente, aquí se representa su campo vectorial, donde el tamaño de cada vector representa la magnitud de su velocidad, y la dirección y sentido permiten conocer para donde será su movimiento.

Menú Superficie: En el menú Superficie aparecen las opciones de: Color y Modo de Vista (ver figura 9 y 10).

Color: Esta opción permite cambiar el color de las superficies que están representadas en pantalla.

Modo de Vista: Esta opción permite cambiar el modo de vista en que se muestran las superficies entre uno de los siguientes modos:

  1. Superficie: permite que las superficies sean observadas de manera volumétrica.

  2. Triángulos: permite observar los triángulos que forman a las superficies.

  3. Puntos: permite observar los puntos que forman a las superficies.
 

f0910

 

A continuación, se muestra una imagen donde se representa un grupo de partículas (Figura 11):

f11


Validación de la herramienta

Para validar que el proceso de visualización dinámica cumpliera con todos los requisitos, así como la existencia de una buena calidad visual se hizo uso de la técnica Juicio de Expertos.

El juicio de expertos se define como una opinión informada de personas con trayectoria en el tema, que son reconocidas por otros como expertos cualificados en éste, y que pueden dar información, evidencia, juicios y valoraciones (Escobar y Cuervo, 2008). La cantidad de expertos seleccionada para la evaluación fue de cinco personas, teniendo en cuenta que el proceso de difusión en microfluidos con componentes biológicos complejos es un proceso de larga duración.

Esta técnica se utilizó mediante la Agregación Individual, que consiste en obtener la información de manera individual de cada uno de ellos, sin la exigencia de que se pongan en contacto (Cabero y Llorente, 2013).

El procedimiento utilizado para la selección de los expertos fue el biograma. El mismo consiste en elaborar una biografía del experto en función de sus respuestas sobre aspectos de su trayectoria como, por ejemplo, años de experiencia y formación, investigaciones o acciones formativas, conocimiento del objeto de estudio, a partir de los cuales se infiere su adecuación y pertinencia para su actividad de experto (Cabero y Llorente, 2013).

En la etapa de selección de los expertos fueron seleccionados cinco expertos de la UCI, tres de ellos pertenecientes al Grupo de Matemática y Física Computacionales y dos pertenecientes al centro CEIGE de la facultad 3.

Los expertos son:

  • Dr. Jorge Gulín González

  • Lic. Edisel Navas Conyedo.

  • MsC. Yailen Costa Marrero.

  • MsC Handy Hernández Dalmau.

  • MsC Julio Cesar Diaz Vera.

Mediante una entrevista individual se les presentó un modelo con una explicación breve sobre los objetivos del trabajo y los resultados que se deseaban obtener. Se les presentó los aspectos avalorar a través de una tabla Aspectos / Rangos de Valoración y un vídeo con las imágenes de un proceso de difusión en un microfluidos con componentes biológicos complejos. Los aspectos a evaluar son la visualización de las estructuras bases: partículas, polímeros y superficies y la interacción entre ellas. Los rangos de valoración son: Muy Mala, Mala, Regular, Buena y Muy Buena. Ver tabla 1.

 

CONCLUSIONES

Se desarrolló una herramienta de visualización dinámica que incluye las funcionalidades necesarias para ser aplicadas en los estudios de simulaciones de microfluidos con componentes biológicos.

El protocolo de comunicación vía sockets implementado puede ser utilizado por los programas de simulación para la visualización en tiempo de simulación de sus diversos estados y extendido para realizar análisis específicos.

 

REFERENCIAS BIBLIOGRÁFICAS

CABERO, Almenara J. y LLORENTE, Cejudo M. 2013. 2013, Revista de TIC en Educación, págs.11-22.

Cruz, Josué. 2012. Visualización dinámica con la familia de microcontrolador 80c51. [En línea] 2012. [Citado el: 15 de Octubre de 2014.] http://www.buenastareas.com/ensayos/Visualizacion-Dinamica-Con-La-Familia-De/3688476.html.

Cumsille, Javiera Alejandra. 2010. Visualizador y Evaluador de Mallas Geométricas Mixtas 3D. Memoria para Optar al Título de Ingeniero Civíl en Computación. [En línea] 2010. [Citado el: 3 de Noviembre de 2014.] http://repositorio.uchile.cl/tesis/uchile/2011/cf-mascaro_jc/pdfAmont/cf-mascaro_jc.pdf.

Escobar, Cuervo. 2008. Validez de contenido y Juicio de Expertos: una aproximación a su utilización. 2008.

Jeffries, R., Anderson, A. y Hendrickson, C. 2000. Una explicación de la programación extrema. s.l.: Addison Wesley, 2000.

Jurado, Edith. 2007. Una introducción a la difusión anómala. Tesis para obtener el título de Licenciada en Física y Matemáticas. [En línea] 2007. [Citado el: 17 de Mayo de 2015.] http://www.repositoriodigital.ipn.mx/bitstream/handle/123456789/5908/JURADO%20GALICIA%20EDITH%20Tesis%202007.pdf?sequence=1.

Letelier, Patricio y Penadés, Carmen. Ciclo de vida de un proyecto XP. [En línea] [Citado el: 18 de Diciembre de 2014.] http://oness.sourceforge.net/proyecto/html/ch05s02.html.

Martin y Serrano. 2014. Definición y propiedades de un sistema de partículas. [En línea] 2014. [Citado el: 15 de Noviembre de 2014.]
http://laplace.us.es/wiki/index.php/Definici%C3%B3n_y_propiedades_de_un_sistema_de_part%C3%ADculas.

Shannon, R. E. 1975. Systems Simulation: The Art and Science. Englewood Cliffs : Prentice-Hall,1975.

Vincent, María Cinta, Alvarez, Silvia y Zaragoza, José Luis. 2006. Ciencia Y Tecnología de Polímeros. s.l.: UPV, 2006. pág. 127. 8497059646, 9788497059640.

Walton. 2001. LOS SOCKETS. [En línea] 2001. [Citado el: 3 de Mayo de 2015.]https://sistemas.uniandes.edu.co/~isis1301/dokuwiki/lib/exe/fetch.php?media=recursos:sockets.pdf.

 

Recibido: 11/07/2016
Aceptado: 23/09/2016

Creative Commons License Todo o conteúdo deste periódico, exceto onde está identificado, está licenciado sob uma Licença Creative Commons