Post on 27-Aug-2020
Benemérita UniversidadAutónoma de Puebla
FACULTAD DE CIENCIAS DE LA COMPUTACIÓN.
“SISTEMA DE ANÁLISIS DE ACTIVIDAD ELÉCTRICA
NEURONAL”
T E S I S
Q U E P A R A O B T E N E R E L T Í T U L O D E :
LICENCIADO EN COMPUTACIÓN.
P R E S E N T A :
XOCHITL LAURA GRADAS GARCÍA.
A S E S O R :
Dr. Enrique Soto Eguibar. y
M.C. Rosario Vega.
C O A S E S O R :
Dr. Manuel Martín Ortíz.
PUEBLA, PUE. 2001
CCOONNTTEENNIIDDOO
CI1
2
3
!!!!
C-1
ontenido _____________________________________________________C-1ntroducción ___________________________________________________ I-1. Introducción a la programación visual____________________________ 1-11.1. Generalidades.__________________________________________________ 1-11.2. Programación controlada por sucesos ______________________________ 1-21.3. Programación basada en objetos __________________________________ 1-41.4. Los objetos_____________________________________________________ 1-7
1.4.1. Definición de objeto____________________________________________________1-71.4.2. Creación de objetos____________________________________________________1-81.4.3. Las propiedades ______________________________________________________1-9
1.5. Los sucesos___________________________________________________ 1-101.5.1. Descripción de un suceso ______________________________________________1-101.5.2. Objetos y sucesos ____________________________________________________1-11
. La neurona y el sistema nervioso ________________________________ 2-12.1 La neurona básica _______________________________________________ 2-1
2.1.1 El cuerpo de la célula ___________________________________________________2-22.1.2 Las dendritas _________________________________________________________2-22.1.3 El axón ______________________________________________________________2-22.1.4 Sinapsis _____________________________________________________________2-32.1.6 Dos tipos de neurona ___________________________________________________2-5
2.2 Actividad eléctrica de la neurona ___________________________________ 2-52.2.2 Membranas y canales de membrana_______________________________________2-72.2.3 Potencial de acción ____________________________________________________2-82.2.4 Potenciales sinápticos _________________________________________________2-10
. Análisis y diseño _____________________________________________ 3-13.1 Introducción ____________________________________________________ 3-13.2. Archivos _______________________________________________________ 3-2
3.2.1 Archivos de datos______________________________________________________3-23.2.2 Archivos de EPSPs y espigas ____________________________________________3-33.2.3 Archivos de intervalos __________________________________________________3-33.2.4 Importar archivos ______________________________________________________3-3
3.3. Módulo de métodos______________________________________________ 3-43.3.1 Inspeccionar registro ___________________________________________________3-43.3.2 Analizar datos de EPSPs y espigas________________________________________3-53.3.3 Analizar datos de espigas _______________________________________________3-5
C-2
3.4. Módulo de análisis y despliegue ___________________________________ 3-63.4.1 Amplifica _____________________________________________________________3-73.4.2 Borrar datos a partir del cursor____________________________________________3-73.4.3 Diagrama de fases _____________________________________________________3-73.4.4 Búsqueda y clasificación de eventos _______________________________________3-73.4.5 Filtrado digital _________________________________________________________3-93.4.6 Gráfica disparada por eventos ____________________________________________3-93.4.7 Intervalos espiga _____________________________________________________3-113.4.8 Rutinas de archivo en disco _____________________________________________3-113.4.9 Quitar datos _________________________________________________________3-123.4.10. Todo en pantalla ____________________________________________________3-123.4.11. Umbral ____________________________________________________________3-123.4.12. Otras características _________________________________________________3-13
4. Implementación ______________________________________________ 4-14.1 Introducción ____________________________________________________ 4-14.2 Archivo ________________________________________________________ 4-3
4.2.1 Leer archivos de datos __________________________________________________4-54.2.2 Leer EPSPs y Espigas (spikes) ___________________________________________4-64.2.3 Leer Archivos de intervalos ______________________________________________4-74.2.4 Importar Fetchex ______________________________________________________4-84.2.5 Importar Pclamp ______________________________________________________4-10
4.3. Métodos ______________________________________________________ 4-114.3.1 Inspeccionar registro __________________________________________________4-124.3.2 Analizar datos EPSPs y espigas _________________________________________4-154.3.3 Analizar datos de espigas ______________________________________________4-20
4.4. Análisis_______________________________________________________ 4-274.4.1 Ajustar registro a la pantalla_____________________________________________4-274.4.2 Amplifica ____________________________________________________________4-284.4.3. Borrar Datos ________________________________________________________4-304.4.4 Diagramas de fases ___________________________________________________4-304.4.5 Búsqueda y clasificación de eventos ______________________________________4-314.4.6 Filtrado _____________________________________________________________4-344.4.7Gráfica disparada por eventos ___________________________________________4-354.4.8 Intervalos espigas_____________________________________________________4-404.4.9 Quitar Datos Maquillaje ________________________________________________4-414.4.10 Rutinas de archivo en disco ____________________________________________4-414.4.11 Todo en pantalla_____________________________________________________4-414.4.12 Umbral ____________________________________________________________4-44
4.5 Ayuda_________________________________________________________ 4-464.5.1 Ayuda comandos _____________________________________________________4-474.5.2 Acerca de.. __________________________________________________________4-47
Conclusiones y resultados ____________________________________ CyR-1Bibliografía.____________________________________________________B-1
IINNTTRROODDUUCCCCIIÓÓNN
n
E
p
o
a
L
n
a
é
t
m
n
2
s
g
d
!!!!
I-1
En la electrofisiología es importante la detección de potenciales de acción
euronal (spikes) los cuales son pequeños en relación con el ruido de fondo.
xiste una variedad de métodos para la detección de los potenciales de acción,
ero recientemente, un discriminador de ventana analógico ha sido una buena
pción para la detección de éstos.
Han sido desarrollados algoritmos para la detección de picos basados en el
nálisis vectorial del registro y métodos usando filtros lineales y redes neuronales.
a mayoría de los sistemas de análisis de potenciales de acción usan un ajuste de
ivel de umbral, proporcionado por el usuario para la detección de potenciales de
cción y un subsecuente análisis del disparo de los potenciales de acción. Por
stas razones, es deseable un enfoque diferente con el fin de desarrollar un sis-
ema con gran versatilidad, alto nivel de confiabilidad, fácil de usar como un siste-
a de análisis y capaz de correr en una PC.
El presente trabajo describe el “Sistema de análisis de actividad eléctrica
euronal”; éste se implementó en Delphi 2.0 que funciona bajo Windows 95, 98 y
000; este es un lenguaje de programación visual; es decir; en tiempo de diseño
e muestra como va quedando la interfaz de usuario; además de que es un len-
uaje orientado a objetos, lo que permite un manejo transparente de las propieda-
es y los métodos a los que responden los elementos u objetos típicos de un pro-
INTRODUCCIÓN
I-2
grama bajo Windows como son ventanas, menús desplegables, botones, manejo
del ratón.
Dicho sistema de software tiene una interfaz amigable formada por un menú
principal con distintas opciones para el análisis y despliegue de datos; además de
botones de acceso rápido y ayudas que permiten al usuario un análisis y/o manejo
de los datos con el simple hecho de oprimir un botón o una de las opciones de
menú.
Aunque ya se tiene un programa que realiza estas tareas, existe el incon-
veniente de que corre sobre el Sistema Operativo MS-DOS y como actualmente la
mayoría de las computadoras trabajan con el Sistema Operativo Windows 95 o
superior, se vio la necesidad de crear un sistema que se ejecutara sobre Windows
95, además de esta forma se logra una interfaz mas intuitiva y fácil de manejar.
También cuenta con un archivo de ayuda en línea para facilitar algunas de las ta-
reas a llevar a cabo con el programa.
El presente documento consta de una introducción 4 capitulos y una
sección de conclusiones y resultados que se describen a continuación:
• Capítulo 1. Introducción a la programación visual: en esta sección se expli-
caran los conceptos de la programación visual como son la programación
controlada por sucesos, la programación basada en objetos así como una
definición de los mismos.
• Capítulo 2. La neurona y el sistema nervioso: en este capítulo se hablará
sobre la estructura de la neurona; así como de la comunicación entre las
neuronas.
INTRODUCCIÓN
I-3
• Capítulo 3. Análisis y diseño: En esta parte del documento se plantea el
diseño del sistema y de cada uno de los módulos que lo conforman.
• Capítulo 4. Implementación: se explicarán las funciones y/o procedimientos
más importantes asociadas a cada una de las opciones de menú basándo-
se en las pantallas que forman el sistema.
• Conclusiones y resultados: esta sección como su nombre lo dice se listan
los resultados que se obtuvieron como también las características del sis-
tema y se proponen mejoras para e mismo.
IINNTTRROODDUUCCCCIIÓÓNN AA LLAAPPRROOGGRRAAMMAACCIIÓÓNN VVIISSUUAALL
1.1. G
D
y conce
phi le o
do con
E
Window
tos.
L
ceptos
ción. A
jetos, p
visuales
capítulo
cómo la
llegado
1
1-1
ENERALIDADES.
elphi es un entorno de desarrollo que utiliza muchas de las características
ptos avanzados del entorno gráfico de usuario de Microsoft Windows. Del-
frece un amplio control a su aplicación, estando este hecho muy relaciona-
el propio Windows.
ste capítulo trata los conceptos básicos del desarrollo de aplicaciones
s. Aquí se hablará sobre:
• Los conceptos de la programación controlada por sucesos (events).
• Los objetos: qué son y cómo se relacionan con los sucesos.
• Las propiedades de los objetos: qué son y cómo influyen en los obje-
os entornos de programación visual utilizan una serie de términos y con-
para hacer referencia a las distintas “cosas” que constituyen una aplica-
fortunadamente, muchos términos de programación visual incluyendo ob-
ropiedades y sucesos tienen un significado estándar en muchos entornos
de programación, independientemente del lenguaje de que se trate. Este
tiene como propósito comprender esos términos y conceptos explicando
programación controlada por sucesos -no sólo en el entorno Windows- ha
a alcanzar la importancia que tiene hoy en día [MaJ+97].
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-2
1.2. PROGRAMACIÓN CONTROLADA POR SUCESOS
La programación controlada por sucesos ha estado presente desde antes
de los entornos gráficos de usuario (GUIs) y está disponible para cualquier pro-
gramador. Este tipo de programación puede ser implementada de diferentes for-
mas. Con la introducción del ratón y las posibilidades que los GUIs ofrecen a la
interfaz de usuario, la programación controlada por sucesos se ha convertido en
un requisito para los desarrolladores profesionales de hoy en día.
Antes de la aparición de los entornos de programación controlados por su-
cesos, los estilos de programación basada en procedimientos descendente eran
considerados como la mejor solución. Esta técnica de diseño de programas es
muy útil cuando se construyen segmentos de código encargados de realizar gran-
des tareas de procesamiento. De hecho, las aplicaciones construidas con las téc-
nicas de programación descendente a menudo resultan elegantes y sencillas de
mantener. Sin embargo, antes de aparecer la programación controlada por suce-
sos, las aplicaciones construidas utilizando esta técnica tenían, normalmente,
complejos sistemas de menús y secuencias de teclas rápidas. Los usuarios de
estas aplicaciones generalmente requerían de un conocimiento más profundo del
programa de lo que realmente necesitaban. [ReL96]
La programación controlada por sucesos no sustituye a la programación
basada en procedimientos, sino que la complementa con un marco de trabajo que
proporciona una separación más clara entre la interfaz de usuario y el procesa-
miento de una actividad específica. Delphi, y otros entornos de programación con-
trolados por sucesos, proporcionan estos marcos de trabajo permitiendo al pro-
gramador concentrarse más en la lógica específica de la aplicación que en los
problemas que se plantean con el manejo y el control de la interacción entre el
usuario y la aplicación. Con la programación controlada por sucesos, la interfaz de
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-3
usuario (finalmente el usuario) controla el código de programa.
Algunos ejemplos controlados por sucesos se dan con bastante frecuencia
en la vida diaria. Imagine que está en una de las habitaciones de su casa. Los si-
guientes fenómenos son sucesos provocados por (o controlados por) otros suce-
sos externos.
• Su televisor se enciende como respuesta a la pulsación del botón de
encendido de su control a distancia.
• Cuando la temperatura baja de los 20 grados centígrados, el termos-
tato detecta esta cambio y avisa al sistema de calefacción para que consuma
más combustible y produzca una mayor cantidad de calor. Aquí, el termostato
dispara un suceso como respuesta a otro que procede del exterior. Cuando la
caldera recibe este suceso enviado por el termostato, ordena a su sistema el
aumento de la cantidad de combustible a quemar para crear más calor.
• Un amigo marca su número de teléfono. Como respuesta a la señal
enviada, su teléfono suena utilizando su procedimiento de llamada.
• Su teléfono suena, pero usted no lo descuelga. Tras el cuarto tono, su
contestador automático se activa y recoge el mensaje.
• Su amigo no le deja ningún mensaje y decide ir a visitarle. Cuando lle-
ga a su puerta, toca el timbre. Como respuesta a ese sonido, usted abre la
puerta.
Todos nosotros tomamos todos estos hechos por algo cotidiano, pero real-
mente son ejemplos válidos de sucesos controlados de la rutina diaria (o de la
aplicación) que son activados por sucesos externos. [MaJ+97]
Los sucesos son fenómenos que ocurren en tiempo real como resultado
específico de una o más acciones activadas por un suceso inicial. La clave de la
programación controlada por sucesos es determinar cuáles requieren de un trata-
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-4
miento especial. Se suelen producir muchos sucesos cuando se trabaja en
Windows, pero sólo será necesario procesar aquellos que estén relacionados con
su aplicación. Quizás no le importe si el usuario hace una doble pulsación con el
ratón sobre una zona determinada de la pantalla, pero, por ejemplo, sí quiere que
su aplicación reaccione cuando pulse la tecla <suprimir>. Los entornos controla-
dos por sucesos, incluyendo a Delphi, proporcionan mecanismos que permiten
ligar su código de programa de una aplicación específica o de trabajo a los suce-
sos seleccionados.
Algunos entornos de desarrollo basados en el Sistema Operativo DOS cre-
cieron para ofrecer interfaces controladas por sucesos, así como una programa-
ción que las soportara sin la gran ostentación del propio Windows. Las pautas de
trabajo ofrecidas, controlaban los sucesos “al estilo Windows”, como por ejemplo:
la navegación por las ventanas, pulsación de botones y otros sucesos no disponi-
bles hasta entonces. En la mayoría de los casos, aquellos programadores que
emigraban desde un entorno de programación controlada por sucesos en DOS
hacia la programación en Windows, estaban mejor preparados que los que entra-
ban directamente en la programación en Windows desde un entorno basado en
procedimientos tradicionalmente descendente. [UsG96]
1.3. PROGRAMACIÓN BASADA EN OBJETOS
La industria del software avanza a través de fases de promoción de nuevas
tecnologías y metodologías para el desarrollo del software. Estas promociones
vienen, a menudo, acompañadas por una campaña y por la llegada de un nuevo
conjunto de términos.
Antes de cambiar a otro entorno de programación, es interesante comparar
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-5
detalladamente sus ventajas con las características de su entorno actual. No se
obtiene demasiadas ventajas cambiando a un producto diferente que tan solo
ofrece ventajas marginales.
A mediados de la década de los ochenta, la prensa especializada anunció
la inteligencia artificial(IA) como el nuevo estilo de programación. La tormenta cesó
después de que la industria del software introdujo el concepto de la programación
basada en objetos (POO). La caída de la IA se debió en cierta forma al hecho de
que ésta no estaba definida y sólo era un concepto. [MaJ+97]
A diferencia de la novedosa IA, la POO tenía claramente definido un con-
junto de objetivos y fué capaz de dar lo que había prometido a los desarrolladores
de software: metodologías estructuradas para facilitar el desarrollo de entornos
reutilizables. Mientras algunos han llegado a afirmar que la POO es ineficiente y
provoca más sobrecarga que los entornos tradicionales, comparando las alternati-
vas, la POO sigue siendo aún más atractiva. La POO ha sido aceptada en la co-
munidad de desarrollo de software en PC´s gracias a productos tales como Micro-
soft Visual C++, Borland C++ Java y ahora más claramente con Delphi.
La programación basada en objetos se encuentra en un nivel superior a la
programación descendente, debido a su capacidad de crear código reutilizable y a
una mejor representación de las situaciones reales. La llegada de Microsoft
Windows motivó un desplazamiento hacia los lenguajes POO como la solución
más racional. Esto se debe a que la POO y el entorno GUI se complementan entre
sí creciendo hasta el punto en el que no puede existir uno sin el otro.
La programación de aplicaciones Windows utilizaba un lenguaje no basado
en objetos como C; éste todavía estaba basado en un estilo similar al que se utili-
zó originalmente tanto para construir Microsoft Windows, como para las aplicacio-
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-6
nes Windows en sus primeras etapas. Se necesitaba escribir cantidades excesivas
de código para mostrar una simple ventana con el mensaje “Hola mundo”. La POO
permite hacer más fáciles las tareas más complicadas encapsulando las funciones
complejas en “objetos” necesarios para la programación en Windows.
Posteriormente, los desarrolladores de software empezaron a prestar más
atención a los sucesores de los compiladores existentes, basados en objetos, ta-
les como C++ basado en C. Los últimos años de la década de los ochenta fueron
testigos de la llegada de las extensiones de los lenguajes POO para DOS basados
en compiladores de Pascal y de Modula-2. Sólo fue cuestión de tiempo, antes de
que varios lenguajes (como C++, Pascal, SmallTalk, Actor y Modula-2), armados
con las características de la POO, se introdujeran en la programación de las apli-
caciones Windows.
Aunque estos primeros entornos POO poseían verdaderas características
basadas en objetos, les faltaba la capacidad de dibujar con facilidad objetos vi-
suales así como para gestionar su interacción con los sucesos externos. A pesar
de estar mucho mejor organizados, aún se requería escribir una gran cantidad de
código para obtener objetos que funcionasen como realmente se deseaba. Bási-
camente, la POO era difícil de aprender y utilizar por el programador medio, impi-
diendo así su aceptación.
Llenando el vacío que existía ante la necesidad de una herramienta de de-
sarrollo visual en Windows que fuera fácil de utilizar, Microsoft introdujo Visual
Basic, un entorno de programación visual basado en BASIC (Código de Instruc-
ciones Simbólicas Multipropósito para Principiantes), es decir un lenguaje de pro-
gramación para principiantes. Aunque Visual Basic carecía de apuntadores y de
las extensiones formales de un lenguaje POO, implementaba un conjunto de ele-
mentos POO esenciales. [NaP96]
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-7
Lo que faltaba en Visual Basic eran las características POO. Con el lanza-
miento de Delphi de Borland, no tendrá que volver a decidir entre la programación
visual sin verdaderas características POO y la programación POO sin las caracte-
rísticas de la programación visual. Delphi, le permite utilizar su lenguaje de objetos
en Pascal en un entorno de programación visual con auténticas extensiones POO.
Esta combinación es revolucionaria, ya que sitúa al mismo nivel la programación
visual y el potente paradigma basado en objetos.
La programación basada en objetos es un paradigma increíblemente pode-
roso y natural para crear programas que sobreviven a los cambios inevitables que
acompañan al crecimiento y envejecimiento de cualquier sistema. Debido a que se
entiende la función de cada objeto y se tienen interfaces limpias y fiables entre los
objetos, se pueden extraer partes de un sistema antiguo con facilidad.[NaP96]
1.4. LOS OBJETOS
Debido a la maquinaria de ventas de la industria del software, el término
objeto ha perdido algunos de sus significados desde que se introdujo con la pro-
gramación basada en objetos. Objeto se utiliza con más libertad ahora que en el
pasado, al incluir esta nueva palabra en las cajas de muchos productos de soft-
ware, anunciando que están orientados por objetos cuando, quizás estén técnica-
mente controlados por sucesos, basados en objetos.
1.4.1. Definición de objeto
La definición de un objeto no requiere la utilización de una terminología de
programación compleja. Simplemente, un objeto es una cosa con la que se puede
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-8
hacer otra. En Delphi al igual que en otros entornos visuales, los objetos pueden
ser opcionales, tales como botones, etiquetas, listas, campos y muchos más, bási-
camente, cualquier opción que haya sido creada para utilizarla en una aplicación.
El Objeto es un término genérico que debería ser utilizado para definir algo más
específico.[MaJ+97]
Los objetos son aquellos elementos que componen su aplicación, indepen-
dientemente del nivel de abstracción desde el que se quiera hablar de ellos.
Un objeto es simplemente una entidad lógica que contiene datos y un códi-
go que manipula esos datos. Dentro de un objeto, parte de ese código o datos
pueden ser privados del objeto e inaccesibles desde fuera de él. De esta forma, un
objeto proporciona un significativo nivel de protección contra modificaciones acci-
dentales o contra un uso incorrecto. El enlazado de código y datos de esta forma
se denomina frecuente mente encapsulación.[ScH92]
1.4.2. Creación de objetos
Los entornos de programación visual añaden una nueva dimensión a la
creación de aplicaciones al permitir que los objetos sean dibujados en la pantalla
antes de la ejecución del programa. Sin la programación visual, el proceso de “di-
bujo” requeriría de la escritura del código fuente necesario para crear y personali-
zar estos objetos. Antes, la visualización de los objetos codificados sólo era posi-
ble durante la ejecución del programa. Conseguir ver un objeto en ese entorno se
podía llegar a convertir en un proceso excesivamente largo que requería del ajuste
continuo del código del programa, para después volver a ejecutarlo y poder ver los
resultados finales.
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-9
Gracias a las herramientas de desarrollo visual, ahora es posible trabajar
con los objetos de forma visual, observando los resultados en la pantalla de forma
inmediata. La capacidad de ver los objetos tal y como aparecerán durante la eje-
cución, elimina muchos de los pasos requeridos en un entorno no visual, indepen-
dientemente de si está basado en objetos o no. Una vez que el objeto se sitúa en
la ficha de un entorno de programación visual, los atributos del objeto (tamaño,
posición, y otras propiedades) se incluyen en el código que soporta el objeto como
una unidad ejecutable. [UsG96]
1.4.3. Las propiedades
Además de la capacidad para reaccionar ante los sucesos, los objetos tie-
nen propiedades. Las propiedades son atributos que pertenecen a un objeto en
particular y ayudan a describirlo. Las propiedades incluyen, entre otras, opciones
como el color, altura, anchura y posición. Las propiedades pueden afectar la apa-
riencia de un objeto así como a otros elementos no visuales del mismo, como por
ejemplo, su comportamiento.
Para un objeto, las propiedades son como las variables locales a un proce-
dimiento. Para un procedimiento estas variables le pertenecen y son utilizadas por
éste durante su procesamiento. Las propiedades están directamente relacionadas
con los objetos y de la misma forma son los atributos del objeto que describen sus
detalles. [ScH92]
El modificar una variable local dentro de un procedimiento afecta a su pro-
cesamiento. De manera similar, el cambio de una propiedad de un objeto afecta al
propio objeto. Las propiedades pertenecen al objeto, pero se diferencian de las
variables propias de los procedimientos en que dichas propiedades pueden ser
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-10
vistas por objetos externos y por su código fuente. “Ver” las propiedades de un
objeto es la capacidad de inspeccionar externamente los contenidos de una pro-
piedad específica de un objeto.
1.5. LOS SUCESOS
Los siguientes apartados le permitirán conocer los sucesos de Delphi, es-
pecialmente la forma en que interactúan con los objetos.
1.5.1. Descripción de un suceso
Las aplicaciones Windows utilizan métodos controlados por sucesos; para
gestionar la interacción entre el programa y el usuario, el entorno incluye las ac-
ciones del usuario y las acciones del propio entorno operativo de Windows. La
mayor parte del código que se desarrolla en Delphi estará motivado por los suce-
sos generados por el usuario y por el sistema. Solamente necesitará determinar
qué sucesos son necesarios para el código de su aplicación. En Delphi, un proce-
dimiento que debe su existencia a un suceso se denomina procedimiento maneja-
dor (handler) de sucesos. [MaJ+97]
Delphi responde a los sucesos del ratón, del teclado y del sistema llamando
a las partes adecuadas del código, o procedimientos. Si un procedimiento no está
asociado a un suceso determinado, éste se ignora activándose el comportamiento
por defecto. Por ejemplo, a los botones del ratón se les asocian sucesos de
“apretar” y “soltar”. Cuando el usuario aprieta un objeto botón, el suceso on-
MouseDown se activa. De la misma forma, cuando el usuario deja de apretarlo, el
suceso onMouseUp se activa. Si un programador que desarrolla código para un
objeto de botón decide no escribir código para el suceso onMouseUp (lo que es
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-11
normal), este objeto hará lo que se supone que debe hacer cuando el botón del
ratón no está pulsado, volverá a su estado normal.
Para darle una idea general del ciclo vital de un suceso en Delphi, conside-
re el suceso generado por una pulsación con el ratón sobre un objeto de botón de
la siguiente forma:
1. El suceso es generado por el usuario al realizar una pulsación con el ratón
sobre el objeto de botón denominado btnOk.
2. El objeto btnOk reconoce la acción como un suceso que debe ser gestio-
nado (objetos de tipo botón asociados con pulsaciones del botón izquierdo
del ratón).
3. Delphi busca un procedimiento asociado al nombre del objeto sobre el que
se ha actuado (btnOk) más el nombre del suceso (Click). En este ejemplo,
Delphi ejecutará el procedimiento btnOkClick().
Gran parte del código que se escribe para las aplicaciones con Delphi serán
procedimientos para la gestión de los sucesos. Delphi hace innecesarios los bu-
cles explícitos de código para gestionar sucesos (por ejemplo, el bucle Re-
peat...Until). Delphi también se encarga de escribir el exterior de los procedimien-
tos de gestión de los sucesos, también conocidos como una línea de trabajo con-
trolada por sucesos.
1.5.2. Objetos y sucesos
Los sucesos son ocasionados por acciones realizadas por el usuario o por
el sistema. ¿Por tanto, para qué sirven? En Delphi, se puede enlazar de una ma-
nera sencilla un suceso al código utilizando un navegador de sucesos, el cual es
simplemente un segmento de código que se puede utilizar tanto para controlar la
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-12
interfaz de usuario(UI) como para enlazarlo al código de su aplicación específica.
Los manipuladores de sucesos son las claves para enlazar su código a los suce-
sos generados por su propia aplicación. [ReL96]
Todos los objetos generalmente responden a sucesos. Aunque muchos
objetos básicos, como las etiquetas de texto, responden a muy pocos sucesos,
tendrá aún la posibilidad de decidir entre las siguientes opciones cuando seleccio-
ne los sucesos que formarán parte de su aplicación:
• Ignorar el suceso. Permitir el comportamiento por defecto del objeto.
• Capturar el suceso. Vincularlo al navegador de sucesos y adaptar, modifi-
car o prevenir el comportamiento por defecto, dependiendo una u otra op-
ción de determinadas condiciones.
La modificación del comportamiento por defecto del objeto puede ser tan
simple como cambiar el estilo del cursor sobre un objeto en concreto. La alteración
del comportamiento puede también incluir la presentación de un mensaje al usua-
rio cuando pulsa con el ratón sobre un objeto de botón y se invoca una función
importante que realice cálculos.
Estas opciones no se construyen fácilmente en cualquier otro entorno visual
de desarrollo. Por tanto, es su responsabilidad tener una idea clara de lo que uno
(o los usuarios) quieren que la aplicación haga y cuándo lo haga. [UsG96]
También existen otras plataformas de desarrollo similares a Delphi que
permiten al programador dedicarse principalmente a lo que es la programación y
facilitan todo lo concerniente a la interfaz de usuario que en los entornos bajo DOS
era una gran parte del programa como son:
1. INTRODUCCIÓN A LA PROGRAMACIÓN VISUAL
1-13
" C++ Builder: Este es un lenguaje de programación visual basado en
objetos y que tiene como base el lenguaje C.
" Java Builder: Este es un lenguaje de programación visual basado en
objetos y que tiene como base el lenguaje Java.
" Visual C++: Visual C++, integrada en Visual Studio, es la plataforma de
desarrollo que Microsoft propone a los programadores para la creación
de sus aplicaciones en el lenguaje C.
" Visual J++: Visual J++, integrada en Visual Studio, es la plataforma de
desarrollo que Microsoft propone a los programadores para la creación
de sus aplicaciones en el lenguaje Java.[WHiEC]
LLAA NNEEUURROONNAA YY EELL SSIISSTTEEMMAANNEERRVVIIOOSSOO
2.1 L
L
tituyen
importa
dañan
sos tipo
2
2-1
A NEURONA BÁSICA
as neuronas son células individuales, separadas una de otra, y que cons-
la unidad anatómica y funcional del sistema nervioso.[TaR87] Una cualidad
nte de las neuronas es que no son substituidas por neuronas nuevas si se
- la función del cerebro se repara usando las células existentes. Hay diver-
s o formas de neuronas, pero la estructura básica es siempre igual.
Figura 2-1 La célula piramidal una neurona común
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-2
La figura 2-1 muestra una célula piramidal, una neurona típica en la clase
de neuronas corticales. La neurona se compone de un cuerpo, una prolongación
principal denominada axón, un conjunto de terminales denominadas dendrítas.
Todos estos componentes varían tanto en sus dimensiones como en su forma en
los diferentes tipos de neuronas.
2.1.1 El cuerpo de la célula
El cuerpo de la célula o soma es donde se encuentra el núcleo y la maqui-
naria química para fabricar proteínas y otras moléculas, además es la porción en-
cargada de manejar e integrar la información. Varía de tamaño y forma, depen-
diendo del estado funcional de la célula.[GeoCCH4]
2.1.2 Las dendritas
Las dendritas constituyen la parte receptora de la información de la célula,
toman señales de la entrada de información sensorial, u otras células del nervio, y
después las integran. Una célula puede tener muchas dendritas con multitud de
ramificaciones, su superficie es irregular y cubierta por espinas dendríticas que,
son las zonas donde se hacen las conexiones sinápticas de la entrada de informa-
ción. [LucTSS]
2.1.3 El axón
El axón es una prolongación celular que constituye en lo general la 'línea de
salida' de la neurona. El axón puede tener una gran longitud y a lo largo de su tra-
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-3
yecto no presenta ninguna especialización. Arranca desde un solo sitio del soma
pero puede después ramificarse profusamente[TaR87].
2.1.4 Sinapsis
El sistema nervioso está compuesto de unidades discontinuas, las neuro-
nas, pero se comporta como un sistema de transmisión continua, hay conexiones
funcionales entre las neuronas. Estas conexiones se llaman sinapsis, que es una
región en donde una célula se pone en contacto con otra e influye en ella. Los im-
pulsos normalmente solo pasan en una dirección: los de las neuronas sensoriales
pasan a los órganos sensoriales a la médula espinal y al cerebro; los de las neu-
ronas motoras, del cerebro y de la médula espinal a los músculos y glándu-
las.[TaR87]
Los axones se ramifican en terminales especializados llamados botones o
terminales presinápticos que descansan sobre la superficie de la membrana de
una dendrita o cuerpo celular de otra neurona. Este punto de contacto se conoce
como la sinapsis y a través de él se transmiten impulsos de una neurona a otra. El
proceso es el siguiente:
Figura 2-2 Sinapsis
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-4
1. Con el impulso nervioso hay salida para las vesículas que transportan los neu-
rotransmisores,
2. Cuando llegan al final del mismo las vesículas vacían su contenido de neuro-
transmisores en la hendidura sináptica
3. El neurotransmisor actúa en la neurona postsináptica
4. La neurona postsináptica recibe la información.
Hay dos tipos de sinapsis, eléctrica y química.
Figura 2-3 Tipos de sinapsis
Las sinapsis eléctricas ocurren cuando la terminal presináptica esta en con-
tinuidad eléctrica con la postsináptica. Los iones y las moléculas pequeñas que
pasan a través de los canales se conectan a partir de una célula a las siguientes.
Los cambios eléctricos en una célula se transmiten casi instantáneamente a la
siguiente. Los iones pueden fluir generalmente en ambas direcciones en estas
uniones; es decir, que tienden a ser bidireccionales, aunque hay uniones eléctricas
donde los iones pueden fluir solamente en una dirección. [GeoCCH4]
En la sinapsis de tipo químico el espacio entre las terminales pre y postsi-
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-5
nápticas es más grande. La transmisión se hace por la liberación de una substan-
cia química desde la terminal presináptica. Hay dos tipos de sinapsis químicas. El
tipo I es una sinapsis excitatoria, se encuentra generalmente en las dendritas. El
tipo II es una sinapsis inhibitoria y se encuentra generalmente en los cuerpos de la
célula. La dirección del flujo de la información es generalmente unidireccional en
estas uniones. [TaR87]
2.1.6 Dos tipos de neurona
Hay dos tipos principales de neurona: Neuronas del tipo I de Golgi y tipo II
de Golgi, también llamado neuronas de la asociación. Las neuronas del tipo I de
Golgi son las neuronas de axón largo que llevan la información a partir de una
porción del cerebro a otra, o del cerebro, o médula espinal a los órganos efectores
tales como músculos. Son más grandes que el tipo II que tienen un axón corto, a
veces ninguno, que se utilizan localmente para el proceso e integración de la in-
formación. Hay muchos subtipos de neuronas bajo estas dos categorías. Los ce-
rebros de animales más altamente desarrollados contienen más del tipo II que las
células de tipo I. En el tipo I, los contactos sinápticos se encuentran generalmente
en las dendritas y el cuerpo de la célula. [GeoCCH4]
2.2 ACTIVIDAD ELÉCTRICA DE LA NEURONA
Los nervios son un conjunto de axones de las neuronas sensitivas que lle-
van la información hacia la médula espinal y el cerebro, y de las motoneuronas
hacia los músculos, la información que cada neurona es capaz de recibir y enviar
es de naturaleza eléctrica; cada axón, por consiguiente, genera en su sitio de ori-
gen una corriente eléctrica, que es capaz de conducirla a todo lo largo de él, sin
perder intensidad, hasta el sitio donde termina y establece comunicación. [GeoCCH4]
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-6
Figura 2-3 Intercambios Eléctricos en el Sistema Nervioso
La información es llevada y codificada en neuronas mediante el uso de se-
ñales eléctricas. Por debajo de la generación de esta señal hay un voltaje sosteni-
do en las mismas células, el interior de las células es negativo con respecto al ex-
terior, este voltaje se conoce como el potencial de reposo (-70mV en algunas cé-
lulas). Hay otros tipos de potencial implicados en transmitir estas señales. La figu-
ra 2-3 muestra la actividad eléctrica implicada en la función del sistema nervioso.
Los estímulos sensitivos actúan sobre los receptores, que contestan creando po-
tenciales del receptor, éstos en respuesta causan lo qué se conoce como poten-
ciales de acción que son los qué llevan información por largas distancias a través
del sistema nervioso. Mientras que la información pasa a partir de una neurona a
otra por medio de las uniones sinápticas, los potenciales sinápticos se originan en
neuronas presinápticas y causan potenciales de acción en células postsinápticas.
Los potenciales del receptor pueden también evocar directamente potenciales si-
nápticos en neuronas adyacentes, los mismos potenciales sinápticos pueden ge-
nerar otros de naturaleza similar. Estos potenciales sinápticos pueden conducir a
la activación de efectores tales como músculos, dando por resultado diferentes
comportamientos. [TaR87]
Potenciales deAcción
Receptores
Potencialesdel Receptor
PotencialesSinápticos
Efectores
EstímuloSensitivo
Comportamiento
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-7
Aunque los potenciales de receptor y sinápticos (también conocido como
generador) y los potenciales de acción son ambos eléctricos en naturaleza, tienen
comportamientos muy diferentes. [LucTSS]
2.2.1 Diferencias entre el generador de potenciales ypotenciales de acción
Generador de Potenciales Potenciales de Acción
Las amplitudes se califican según laintensidad del estímulo; cuanto másfuerte es el estímulo, más grande es elpotencial.
Todos los potenciales son del mismo ta-maño, sin importar fuerza del estímulo
Los potenciales pueden durar tantocomo el estímulo dura. Las célulaspueden adaptarse al estímulo.
Los potenciales tienen una duraciónconstante.
Los potenciales minúsculos se puedenevocar con el estímulo posible máspequeño.
Los potenciales de acción requieren uncambio substancial en el potencial de lamembrana para su generación.
Los potenciales se suman cuando dosestímulos se presentan juntos.
Un período refractario de cerca de 1,5 msocurre después de cada potencial de ac-ción durante el cual no puede ser gene-rado otro potencial de acción, sin importarla longitud del estímulo.
Los potenciales se esparcen pasiva-mente del sitio de la generación; sonmás grandes donde se producen y lle-gan a ser progresivamente más pe-queños lejos de ese punto.
Los potenciales se regeneran activa-mente a lo largo de un axón; un potencialregistrado en el final de un axón es delmismo tamaño que uno registrado al prin-cipio de un axón.
2.2.2 Membranas y canales de membrana
Todos los potenciales eléctricos en sistemas biológicos se generan a través
de las membranas de la célula. Los potenciales son creados por el movimiento de
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-8
iones a través de las membranas, estos se hacen a través de los canales. Hay
cinco tipos básicos de canal de la membrana:
Los canales de escape explican la permeabilidad natural de la membrana a
los iones.
Los canales sensibles al voltaje, varían en permeabilidad dependiendo de
voltaje de la membrana, y se pueden encontrar principalmente en axones.
Los canales sensibles aligando, responden a agentes químicos específicos
y se abren o se cierran en la presencia del agente, y se pueden encontrar en las
dendritas y los cuerpos de la célula en los sitios postsinápticos.
Los canales mecanosensibles, responden a la deformación del canal o de
la membrana que los rodea, y se encuentran en células del receptor.
Los canales del hendidura-unión permiten que los iones se muevan entre
las células, especialmente en las sinapsis eléctricas.
2.2.3 Potencial de acción
Los potenciales de acción son impulsos de voltaje transitorios, definitivos
(todo o nada) que las neuronas emplean para transmitir la información dentro de
un axón. Cuando una cantidad pequeña de corriente circula dentro de un axón, de
modo que el cambio inducido en el potencial de la membrana sea menor 15 mV, la
respuesta es pasiva - el cambio del voltaje refleja las características resistivas y
capacitivas de la membrana. Sin embargo, si el voltaje es cambiado por más que
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-9
15 mV en la dirección positiva (de despolarización) ocurre un cambio en el poten-
cial de la célula. [TaR87]
Figura 2-4 Cambios de Voltaje Implicados en un Potencial de Acción
El potencial de reposo en neuronas es -70mV, si éste es cambiado por más
de15mV, es decir; el potencial en la célula pasa por arriba de -55mV, provoca un
cambio rápido en potencial. El voltaje de membrana de la célula se convierte rápi-
damente en positivo, alcanzando el sobretiro alrededor de 1ms y repolarizándose
para alcanzar el potencial de reposo e incluso hiperpolarizándose a -90mV, des-
pués vuelve al potencial de reposo. Este cambio masivo del voltaje se llama el
potencial de acción.[GeoCCH4]
Lo que sucede en la membrana es que el mecanismo mediante el cual el
receptor, en el momento de reconocer el transmisor, es capaz de excitar a toda la
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-10
membrana de la neurona a la cual pertenece, para que esta dispare sus señales.
Este mecanismo es muy interesante. Como en el medio externo a las neuronas
hay átomos que tienen carga positiva, especialmente sodio, lo que sucede cuando
el transmisor se combina con el receptor es que se abren unos pequeñísimos ca-
nales de membrana, y por estos canales penetran rápidamente los átomos de so-
dio. Dado que el sodio tiene carga positiva, su entrada genera cambio en las ca-
racterísticas eléctricas de la membrana, y la consecuencia de estos cambios es
que la neurona se excita al grado de generar en su axón los impulsos eléctricos de
que hemos venido hablando.[TaR87]
De esta manera, mediante una intima relación de las moléculas receptoras
con los canales que permiten el paso del sodio, se lleva a cabo una nueva traduc-
ción del lenguaje, podríamos decir que en reversa: inicialmente el lenguaje eléctri-
co se convirtió en lenguaje químico mediante la liberación del neurotransmisor en
las terminales axónicas mientras que ahora, como resultado de la combinación del
transmisor con el receptor, a través de la apertura de canales para sodio es recon-
vertido en lenguaje eléctrico, cerrándose el mecanismo de comunicación entre
neuronas.[TaR87]
2.2.4 Potenciales sinápticos
Como se mencionó las sinapsis químicas pueden ser: inhibitorias y excitato-
rias, una pequeña despolarización ocurre en los sitios de la membrana postsináp-
tica y provoca una sinapsis excitatoria, a esta despolarización se le denomina
EPSP (potencial postsináptico excitatorio); en cuanto a las sinapsis inhibitoria, el
efecto es hiperpolarizar IPSP (potencial postsináptico inhibitorio). Los EPSP's e
IPSP's son pequeñas variaciones en el potencial de la membrana postsináptica y
al sumarse cambian el potencial de la membrana de forma importante. Los EPSP's
2.LA NEURONA Y EL SISTEMA NERVIOSO
2-11
son dependientes de los iones de Na+ y K+, mientras que los IPSP's son depen-
dientes de los iones del Cl-.[GeoCCH4]
En la sinapsis eléctrica, la corriente se mueve relativamente sin obstáculo a
través de las hendiduras sinápticas. Los canales de las hendiduras sinápticas son
los medios por los cuales la corriente fluye, y pueden permanecer abiertos por pe-
ríodos largos de tiempo, hasta 100ms. Es a menudo imposible distinguir las caras
post y pre-sináptica, ambas caras de la unión pueden ser o post o presináptica y la
corriente puede fluir en ambas direcciones.[TaR87]
Con esto se termina la revisión de los conceptos y aspectos de la fisiología
que serán tratados en la propuesta de tesis.
AANNÁÁLLIISSIISS YY DDIISSEEÑÑOO
3.1 In
L
delo de
en etap
con la s
este mo
E
mucho
DOS y
bloques
los.
Análisición de
mie
3
3-1
troducción
a implementación de dicho programa se desarrolló basándose en el mo-
cascada. Este modelo pretende que un sistema de software se desarrolle
as sucesivas, es decir, después de definir una etapa y concluirla continuar
iguiente. A continuación se muestra un diagrama de los pasos a seguir en
delo.
Figura 1.-Modelo de cascada
n cuanto al análisis y definición de requerimientos del sistema no hubo
que hacer por que se inicio a partir de una versión del mismo para MS-
el diseño de este se conserva casi intacto en cuanto a la organización por
los menús y sus opciones, así como las funciones que realizan los cálcu-
s y defini- requeri-ntos.
Diseño del sis-tema
Implementacióny pruebas de
unidad
Integración ypruebas del sis-
temaOperación y
mantenimiento
3. ANALISIS Y DISEÑO
3-1
En general el diseño es un proceso que involucra la aplicación de varias
técnicas heurísticas y principios con el propósito de definir un sistema en detalle
para permitir su realización física. El diseño sirve de fundamento para las fases de
desarrollo, implementación y mantenimiento del sistema.
El diseño de la arquitectura del sistema, el cual se deriva de un proceso
de partición en donde se establecen las relaciones entre los elementos de una
solución de software con partes del mundo real.
El software que se ha planteado desarrollar esta formado por tres módulos
básicos (figura 3-1) que a continuación se listan:
1) Adquisición de datos.
2) Métodos.
3) Análisis y desplegado.
Fig 3-1.- Diagrama a bloques del sistema
En las secciones siguientes se describe la función principal de cada uno de
los módulos que forman el sistema y como se dividen para un mejor entendimiento
del problema.
Sistema para análisis y detecciónde actividad eléctrica neuronal
Archivos. Métodos Análisis ydesplegado.
3. ANALISIS Y DISEÑO
3-2
3.2. Archivos
El módulo de archivos se encarga de leer los archivos creados por el pro-
grama mismo e importa archivos generados desde otros programas comerciales.
Figura 3-2
Este módulo a su vez, esta formado por cinco módulos para la lectura de
distintos tipos de archivos como son: archivos de datos (DAT y REP), archivos de
EPSP´s y espigas (EPP), archivos de intervalos (IN7), archivos Fetchex (DS) y
archivos Pclamp (Bu0..9). En los siguientes apartados se explica en detalle cada
uno de ellos.
3.2.1 Archivos de datos
Lee archivos con extensión ’dat’ que consisten de dos archivos uno con
extensión ‘REP’ y el archivo con extensión ‘DAT’. El archivo con extensión REP
Archivos
archivos dedatos
EPSPs yespigas
archivos deIntervalos.
ImportarFETCHEX
ImportarPclamp.
3. ANALISIS Y DISEÑO
3-3
es un archivo de texto que contiene información acerca del experimento; por
ejemplo: el nombre de éste, la fecha en que se realizó, la frecuencia a la que se
hizo la captura, el número de datos capturados y otros datos relacionados con
éste y el archivo ‘DAT’ contiene los datos crudos (es decir, los datos directos del
registro sin ningún tratamiento) capturados a partir de la tarjeta .
3.2.2 Archivos de EPSPs y espigas
Lee archivos con extensión ’EPP’ estos archivos son archivos de tipo texto
que contienen información acerca de EPSP´s y espigas como su nombre lo indica
y son generados a partir del mismo programa que contiene un módulo para la
búsqueda de este tipo de eventos y que se explicará a detalle más adelante.
3.2.3 Archivos de intervalos
Archivos con extensión ’in7’ estos son archivos de intervalos entre eventos
generados por el propio programa en la opción intervalos espigas del sub-menu
‘Análisis’.
3.2.4 Importar archivos
Además se tiene la opción de importar archivos FETCHEX (archivos con
extensión ‘ds’) y archivos Pclamp (archivos con extensión ‘bu0’).
3. ANALISIS Y DISEÑO
3-4
3.3. Módulo de métodos
El módulo de métodos se encarga de desplegar y/o analizar los datos
obtenidos de los archivos que se leen desde el módulo anterior y esta formado por
tres módulos que son: ‘Inspeccionar registro’, ‘analizar datos de EPSP´s y espigas’
y finalmente la opción ‘Analizar datos de espigas’.
Figura 3-3
3.3.1 Inspeccionar registro
Esta opción permite presentar, inspeccionar y analizar los datos presentán-
dolo por pantallas o también saber el valor de un dato en un punto especifico; por
que cuenta con un cursor que avanza sobre el registro y que devuelve en una ba-
rra de estado el milisegundo en donde esta el cursor e indica el voltaje en ese
punto.
Métodos
InspeccionarRegistro
Analizar datos deEPSPs y Espigas
Analizar Datosde Espigas
3. ANALISIS Y DISEÑO
3-5
3.3.2 Analizar datos de EPSPs y espigas
Permite analizar datos de amplitud y frecuencia de los EPSPs, construyen-
do sus histogramas de frecuencia y amplitudes. Previamente los EPSPs deben
haber sido leídos de disco con la opción Leer archivos de EPSPs y espigas del
Menú Archivos. Este análisis permite además guardar dos archivos (tipo ASCII),
que contienen los datos de construcción de los histogramas con las siguientes
extensiones y características.
Archivo de histograma intervalos entre potenciales sinápticos extensión
‘IPS’, de amplitudes ‘APS’; estos archivos tienen la siguiente información: el bin
para construir el histograma y los datos de intervalos.
3.3.3 Analizar datos de espigas
El proceso de análisis presenta inicialmente la gráfica de intervalos ordena-
dos, y permite en caso de existir un dato inapropiado en los intervalos eliminarlo,
esto depende del criterio del usuario. Posteriormente se generan el histograma de
intervalos apareados (diagrama de pseudo fase o diagrama de Poincaré), en el
cual se grafican el dato i versus i+1, el histograma de intervalos (el bin lo seleccio-
na el usuario), el autocorrelograma de orden K (donde K puede tener un máximo
igual al número de datos entre dos), y el histograma de autocorrelación con bin y
orden seleccionable por el usuario. Se despliegan también datos numéricos res-
pecto al intervalo medio, desviación estándar, coeficiente de variación, número de
intervalos y archivos asociados al registro en cuestión.
Los datos numéricos se almacenan de manera automática en un archivo de
tipo ASCII con extensión ‘.IND’ y con la siguiente información:
3. ANALISIS Y DISEÑO
3-6
" ExpID,
" nombre del archivo, origen,
" Resolución temporal,
" número de datos,
" media de los intervalos:
" desviación
" coeficiente de variación.
3.4. Módulo de análisis y despliegue
El módulo de análisis y despliegue incluye rutinas para análisis estadísti-
co y gráfico de los archivos de datos. En este módulo es posible amplificar los da-
tos para verlos de una forma mas detallada, borrar datos, hacer búsqueda y clasi-
ficación de eventos (EPSP´s y espigas), generar la derivada de los datos, filtrar la
señal, crear gráficas disparadas por eventos, buscar espigas y crear archivos aso-
ciados, mover el umbral o bien detectarlo, mostrar en pantalla todos los datos.
Figura 3-4
Análisis
Umbral
Todo en Pantalla
Rutinas de Archivo
Quitar Datos, Maqui-llaje
Intervalos espiga
Grafica Disparadapor eventos
Filtrado Digital
Búsqueda y Clasifi-cación de eventos
Diagrama deFases
Borrar Datos aPartir del cursor
Amplificación
3. ANALISIS Y DISEÑO
3-7
A continuación se explica cada una de las opciones de este menú de análi-
sis.
3.4.1 Amplifica
Esta función permite multiplicar la señal por un valor entero que proporcio-
nado por el usuario.
3.4.2 Borrar datos a partir del cursor
Permite eliminar datos del conjunto a partir del punto donde se encuentre el
cursor en ese momento.
3.4.3 Diagrama de fases
Construye el diagrama de fases mV vs dmV. La derivada se obtiene por el
método Newton Raphson aplicando la siguiente formula:
diXX ii −+1
3.4.4 Búsqueda y clasificación de eventos
Activa un sistema inteligente de búsqueda y clasificación de eventos. Para
el proceso de clasificación el programa propone al usuario una serie de paráme-
tros que pueden modificarse. Con base en un algoritmo algebraico de detección
3. ANALISIS Y DISEÑO
3-8
de picos, el programa clasifica al menos dos tipos de eventos que denominamos
como (EPSP’s y espigas). Cada evento que se detecta se presenta gráficamente
al usuario quien si seleccionó una búsqueda con confirmación puede aceptar o
rechazar la selección del programa. Una vez colectado el número de eventos de-
seado o al llegar al final del registro, se almacenan los datos respecto a la ampli-
tud, tiempo al pico, tiempo de bajada y ocurrencia de EPSP’s y espigas, para
posteriormente construir las gráficas de frecuencia, amplitud, velocidad de subida
y duración (opción "Análisis de EPSP y espigas” del menú de ‘Métodos’).
Esta opción permite generar archivos de la amplitud e intervalos de los
EPSP´s su extensión es ‘EPP’, estos archivos son tipo ASCII y tienen la siguiente
composición:
Fecha:
Nombre Experimento
Numero de EPSPs
Frecuencia de Muestreo
Amplificación
Amplitud
valores de EPSP encontrados y el tiempo
Numero de Spikes
Intervalos
valores de las espigas
El módulo de detección de potenciales de acción discrimina automáti-
camente un potencial de acción con base en una estimación de la variación de los
datos de entrada. Por esto, el usuario especifica previamente la relación señal a
ruido mínima, la cual es suficiente para considerar que un evento representa un
potencial de acción. El programa calcula la media y la variación del registro du-
rante los últimos n milisegundos (retraso, seleccionable entre 2 y 2048).
3. ANALISIS Y DISEÑO
3-9
La variación media de la señal ( XVT ), para el tiempo t, está definida como
la suma del valor absoluto de la diferencia entre la media (Xmean) y el último dato
(Xi), así la fórmula de la variación media es:
La decisión acerca de si hay o no un potencial de acción en el registro, es
hecha por medio de la comparación de los datos de entrada con el valor medio del
retraso mas n veces la variabilidad, donde n es la relación señal a ruido especifi-
cado por el usuario. El programa se comporta como un comparador de amplitud
con nivel adaptativo de línea base (determinado por la media del retraso del dato);
así, los cambios en la línea base de DC no afectan la detección de eventos.
3.4.5 Filtrado digital
La opción de filtrado digital utiliza una función para suavizar la señal con
base en la siguiente ecuación:
411 +− ++ iii XXX
3.4.6 Gráfica disparada por eventos
En este caso, el programa busca los eventos que crucen el nivel umbral,
toma cien puntos antes y cuatrocientos después y los muestra en pantalla para
que el usuario defina si los desea conservar. Cuando se han adquirido diez de
3. ANALISIS Y DISEÑO
3-10
estos eventos se presentan en un gráfico tridimensional.
Esta opción tiene además dos sub-opciones:
Guardar: guarda los datos de los diez segmentos colectados (archivo con
extensión ‘REG’), o guardar los datos del promedio de los diez
segmentos colectados (archivo con extensión ‘PRO’). Ambos son
archivos tipo ASCII exportables.
Promediar: Esta opción hace un promedio de los segmentos colectados y
permite realizar una serie de mediciones cuando hay un potencial
de acción. Para ello, se obtiene la derivada del registro promedio
(método Newton-Raphson). Se calcula el potencial de membrana
(medido como el valor medio de los datos previos a que la varian-
za de la derivada cambie 5 veces por arriba de los primeros 80
datos), la pendiente de subida del potencial de acción mV/ms,
pendiente de bajada mV/ms, amplitud del potencial, duración del
potencial (medida en el punto en que la derivada en sentido positi-
vo alcanza su máximo), amplitud y pendiente de la posthiperpola-
rización. Se presenta un gráfico con todas las mediciones y sus
valores numéricos. Automáticamente estos datos se guardan en
un archivo con extensión ‘MED’ si los datos fueron capturados con
el propio programa o extensión ‘ME1..n’ si los datos corresponden
a columnas de registros importadas de pClamp (versión 6 - ).
El orden en estos archivos tipo ASCII es como sigue:
Nombre del experimento,
Nombre del archivo,
Origen,
3. ANALISIS Y DISEÑO
3-11
Frecuencia de Muestreo,
Potencial de membrana,
Amplitud AP,
depolarización rate del AP,
repolarización rate del AP,
duración AP,
amplitud AHP,
pendiente de la AHP y
número de registros promediados
3.4.7 Intervalos espiga
Una vez puesto el umbral, permite medir los intervalos entre los eventos que
crucen el nivel umbral. Generará en pantalla una pequeña gráfica de frecuencia y
ofrece la opción para crear un archivo de intervalos. Este archivo tipo ASCII tiene
la extensión ‘IN7’ y la siguiente estructura:
Fecha
Nombre del experimento
Repetición
Numero de espigas
Es un archivo creado en 'Analnew'’
Si
'Resolucion temporal:',ResTemp
No
‘Resolucion temporal:', FrecMuestreo);
escribe a archivo los datos de las espigas
3.4.8 Rutinas de archivo en disco
Permite generar todos los archivos de datos generables (.DAT, .REP, .INT y
.EPP), adicionalmente ofrece la opción para crear archivos tipo ASCII de los datos
3. ANALISIS Y DISEÑO
3-12
digitalizados (con el fin de exportar a otros programas ya que los tipo .DAT no son
exportables). Para los archivos de tipo ASCII las extensión es .ASC, se componen
de la siguiente manera:
Nombre del experimento
Fecha
Nombre del archivo
Numero de Datos
Amplificación
Ganancia
Frecuencia Muestreo
Escribe dato por dato
3.4.9 Quitar datos
Esta opción permitirá quitar datos (maquillaje) solo temporalmente mien-
tras se hace el análisis y da la opción de borrar solo un dato o los diez siguientes.
3.4.10. Todo en pantalla
Esta opción del menú permitirá al usuario visualizar todo el registro en una
sola pantalla.
3.4.11. Umbral
nivel umbral: Esta función permite definir gráficamente un nivel de voltaje y
detectar los cruces positivos que en él se producen.
3. ANALISIS Y DISEÑO
3-13
detectar umbral: Detecta los cruces al nivel umbral y pone el cursor en el
primero que encuentra a partir de la posición actual del cursor.
3.4.12. Otras características
Flechas: avanzar cursor. Asociadas a las flechas en el teclado hay un cur-
sor que avanza sobre la señal reportando los valores en X e Y en la parte inferior
de la pantalla.
Páginas: avanza el registro 640 puntos y lo muestra.
Este programa está diseñado de manera que sea simple de usar, en todo
momento se presentan ayudas al usuario, botones de acceso rápido y los datos se
pueden exportar fácilmente a programas especiales de graficado y analisís de
datos como el Sigmaplot.
IImmpplleemmeennttaacciióónn
4.1 IN
las fun
pantalla
nal “An
parte s
grama
todos,
estos c
do don
pantalla
cación
4
4-1
TRODUCCIÓN
Este es uno de los capítulos más importantes por que en el se explicarán
ciones asociadas a cada una de las opciones del menú basándose en las
s que forman el sistema de software análisis de actividad eléctrica neuro-
alnew”, así como y también se muestra el botón asociado a estas.
La pantalla principal (Figura 4-1) contiene los siguientes elementos; en la
uperior de la ventana se encuentra el icono, así como el nombre del pro-
además del nombre del archivo que se encuentra abierto en este momento.
También cuenta con un menú principal con las opciones de Archivo, Mé-
Análisis y Ayuda; se explicaran en los apartados siguientes cada uno de
on todas sus sub-opciones.
Además en la parte superior justo debajo del menú hay una barra de esta-
de se muestra información acerca del archivo que se esta visualizando en
como son el número de datos que se esta analizando así como la amplifi-
y el número de página.
4. IMPLEMENTACIÓN
4-2
Figura 4-1 Pantalla Principal del Sistema
En el lado izquierdo de la pantalla se encuentra una barra con botones de
acceso rápido que nos permiten tener acceso a los mismos métodos del menú
principal solo que de una forma más rápida y en la parte inferior de la pantalla se
encuentra otra barra de estado con información acerca del umbral, el cursor, la
fecha y un conjunto de botones rápidos para mover el registro por pantallas y así
poder analizar los datos de cada registro.
En los apartados siguientes se describe que hace cada una de las opcio-
nes del menú principal
4. IMPLEMENTACIÓN
4-3
4.2 ARCHIVO
En La opción del menú principal Archivo (figura 4-2) se agrupan todas las
opciones relacionadas con la lectura de los diversos tipos de archivos permitidos
por el sistema. Cada una de estas opciones son descritas a continuación:
Figura 4-2 Menu Archivo
Estas opciones tienen un procedimiento en común que es el que abre la
ventana de dialogo (figura 4-3) para obtener el nombre del archivo y la ruta donde
se encuentra dicho archivo para después llamar a cada uno de los procedimientos
específicos para abrir los diferentes tipos de archivos.
Figura 4-3 cuadro de dialogo para abrir archivos
4. IMPLEMENTACIÓN
4-4
Funciones asociadas a esta opción del menú
NOMBRE:TForm1.Leer1Click(Sender: TObject);TForm1.LeerEPSPsyespigas1Click(Sender: TObject);TForm1.LeerarchivosdeIntervalos1Click(Sender: TObject);TForm1.ImportarF1Click(Sender: TObject);TForm1.Importar1Click(Sender: TObject);
DESCRIPCIÓN:Abre la ventana de dialogo para leer los distintos tipos de archivos y
despliega los datos correspondientes al archivo abierto.
ENTRADA:Nada.
SALIDA:Pantalla del sistema.
DESTINO:Las funciónes:
ReadDiskData(Filename), { Lee archivos tipo ‘DAT’}
ReadEPSPsDataFile(Filename), { Lee archivos tipo ‘EPP’}
Read_Interval_Files(Filename) { Lee archivos tipo ‘INT’ e ‘IN7’}
ReadFetchData(Filename) {Importa archivos FETCHEX ‘DS’}
ReadPclampData(Filename) { Importa archivos PCLAMP’BU*’}
Todas estas funciones se encuentran en la unidad ‘IOArch.pas’.'
DEVUELVE:Nada.
ACCIONES:1. FileName=’ ‘;
2. A continuación se especifica el la extensión de los archivos que se van a abrir
estas pueden ser ‘Dat’, ‘.EPP’, ‘.INT, etc.’
3. Se ejecuto OPENFILE
Si
Llama al procedimiento correspondiente según el tipo de archivo4. Muestra el archivo leído, activa las opciones correspondientes.
4. IMPLEMENTACIÓN
4-5
4.2.1 Leer archivos de datos
Recoger datos de disco archivos de tipo ‘.DAT’ que contienen los datos
crudos que se obtuvieron al hacer la adquisición con su respectivo archivo ASCII
con extensión ‘.REP’ que contiene información acerca del experimento como son:
Nombre del experimento, la frecuencia a la que se capturó, el número de datos en
el archivo así como otra información con respecto al experimento.
Botón asociado a esta opción
Funciones asociadas a esta opción del menú
NOMBRE:ReadDiskdata(const AFilename: string);
DESCRIPCIÓN:Lee archivos de datos tipo ‘DAT’ y su respectivo archivo asociado
‘REP’.
ENTRADA:Nombre del archivo que se leerá.
SALIDA:Nada
DESTINO:TForm1.Leer1Click(Sender: TObject);
DEVUELVE:Datos del archivo.
ACCIONES:1. Obtiene el nombre del archivo sin extensión
2. A continuación se asigna al próximo archivo por abrir, que será el archivo con
extensión ‘.REP’.
3. Revisa que exista el archivo
4. IMPLEMENTACIÓN
4-6
Si
Origen:=AnalnewDeDisco:=Trueesto indica que el origen de los datos es el programa Analnew y que se estánleyendo los datos de disco.No
Escribe ‘Archivo no valido’.4. Después de esto lee los siguientes datos:
Nombre del archivo(Nam),
Fecha de realización del experimento(day),
identificador del experimento (ExpId),
Nombre del archivo ‘.DAT’ asociado
Numero de datos(NumDeDatos)
Amplificación (amplifica)
Ganancia (gain)
Frecuencia(FrecMuestreo)
5. Se cierra el archivo con extensión ‘REP’
6. Asigna a di:=1000/FrecMuestreo.
7. Luego asigna al próximo archivo por abrir el nombre del archivo ahora con ex-
tensión ’DAT’.
8. Revisa que exista el archivo con extensión ‘DAT’.
Si:
lee los datos de la siguiente manera read(a,ADdato^)
y a continuación cierra el archivo
No
Manda un mensaje que dice que encontró el archivo de reporte (REP) pero
no encontró el archivo de datos (DAT)
4.2.2 Leer EPSPs y Espigas (spikes)
Leer archivos de tipo ‘.EPP’
Botón asociado a esta opción
Funciones asociadas a esta opción del menú
4. IMPLEMENTACIÓN
4-7
NOMBRE:ReadEPSPDataFile(const AFilename: string);
DESCRIPCIÓN:Lee archivos de datos tipo ‘.EPP’.
ENTRADA:Nombre del archivo que se leerá.
SALIDA:Nada
DESTINO:TForm1.LeerEPSPsyespigas1Click(Sender: TObject);
DEVUELVE:Nada.
ACCIONES:1. Limpia los arreglos Amplitud y Tiempo del EPSP.
2. A continuación se asigna a el próximo archivo por abrir será el archivo con
extensión ‘.EPP’.
3. Revisa que exista el archivo
si existe el archivo
Lee Fecha de realización del experimento(fecha),
identificador del experimento (ExpId),
Número de EPSP’s (Nepsp)
Frecuencia(Freq)
Amplificación (amplifica)
Lee datos de EPSP
4. Se cierra el archivo con extensión ‘EPP’
5. Asigna a di:=1000/FrecMuestreo.
4.2.3 Leer Archivos de intervalos
Recoger datos de disco archivos de tipo ‘IN7’ que contienen los datos que
se obtuvieron al ejecutar la opción Intervalos espigas.
4. IMPLEMENTACIÓN
4-8
Botón asociado a esta opción
Funciones asociadas a esta opción del menú
NOMBRE:Read_Interval_Files(const AFilename: string);
DESCRIPCIÓN:Lee archivos de datos tipo ‘.IN7’.
ENTRADA:Nombre del archivo que se leerá.
SALIDA:Nada
DESTINO:Nada.
DEVUELVE:Nada.
ACCIONES:1. Obtiene el nombre del archivo
2. Abre el archivo y revisa si es un archivo valido
Si
Continua paso 3
No
Manda mensaje archivo no valido y va al paso 6
3. Lee información relacionada con el archivo como son: Fecha, Nombre, repeti-
ción, número de espigas resolución temporal
4. lee los datos de las espigas
5. Cierra el archivo
6. Termina
4.2.4 Importar Fetchex
Esta opción permite importar archivos fetchex y como se dijo en esta mis-
4. IMPLEMENTACIÓN
4-9
ma sección primero se llama a un procedimiento es el que abre una caja de dialo-
go para obtener el nombre del archivo a leer y luego se llama al procedimiento
ReadFetchData para leer los datos del archivo.
Botón asociado a esta opción
Funciones asociadas:
NOMBRE:Read_Fetch_Data(const AFilename: string);
DESCRIPCIÓN:Lee archivos de datos tipo ‘.IN7’.
ENTRADA:Nombre del archivo que se leerá.
SALIDA:Nada
DESTINO:Nada.
DEVUELVE:Nada.
ACCIONES:1. Obtiene el nombre del archivo sin extensión
2. Revisa si es un archivo valido
Si
Continua paso 3
No
Cierra el archivo, manda un mensaje de archivo no valido y sigue paso 9
3. Inicializa las variables: t2 =0 y ji =1
4. Mientras no encuentre el fin de archivo
4.1. Asigna t2 a t1
4.2. Lee dato t2 para calcular la frecuencia de muestreo
4.3. Lee dato del voltaje
4.4. Lee y guarda los datos en el arreglo AdDato
4. IMPLEMENTACIÓN
4-10
4.5. Incrementa la variable ji
5. Calcula Di=t2-t1
6. Pregunta si di es cero;
si entonces a di=0.5
7. Calcula FrecMuestreo=1000/di
8. Asigna valores a las variables: amplifica= 1, gain = 10 y leiFile= true
9. Cierra el archivo
10. Envia un mensaje del número de datos leído
4.2.5 Importar Pclamp
Importa datos Pclamp 6.0 (ASCII), archivos con extensión ‘BU0’. El pro-
grama busca el número de registros almacenados. Deberá indicarse el registro a
importar, pro que puede tener varios registros en un mismo archivo esto se indica
cuando se lee la información acerca del archivo en cuestión y se informa al usua-
rio cuantos registros contiene y después se le pregunta cuál de los registros es el
que se quiere leer.
Botón asociado a esta opción
NOMBRE:ReadPClampData(const AFilename: string);
DESCRIPCIÓN:Este procedimiento toma datos generados PClamp 6.0 almacenados
en forma de ASCII y los convierte a archivos compatibles con Anal-
new.
ENTRADA:Nombre del archivo Pclamp a leer.
SALIDA:Nada
DEVUELVE:Nada.
4. IMPLEMENTACIÓN
4-11
ACCIONES:1. Inicializa variables
2. Obtiene el nombre del archivo
3. Revisa si es un archivo valido
Si
Continua paso 4
No
Cierra el archivo, manda un mensaje de archivo no valido y sigue paso 12
4. Lee el número de columnas y manda un mensaje diciendo cuantas columnas
tiene el archivo
5. Cuenta cuantos datos tiene cada columna y manda un mensaje a la pantalla pa-
ra reportar el número de datos contenidos en cada columna
6. Pregunta al usuario cuantos datos se quieren analizar y este valor lo guarda en
la variable NumDeDatos
7. Pregunta el número de columna de la que se va a obtener los datos y lo guarda
en la variable Tn
8. Obtiene un tiempo t0 y t1 y calcula di =t1-t0
9. Lee los datos
10. Calcula frecuencia de muestreo FrecMuestreo=1000/di
11. Cierra el archivo
12. Salir.- Termina todo y sale del programa.
4.3. MÉTODOS
Esta opción del menú esta formada por tres opciones mas como puede ver-
se en la figura 4-4; la función principal de estas es visualizar los distintos tipos de
datos leídos desde las opciones del menú Archivo.
Figura 4-4 Opción del Menú Métodos
4. IMPLEMENTACIÓN
4-12
4.3.1 Inspeccionar registro
Permite presentar, inspeccionar y analizar (figura 4-1) los datos se han leído
de disco con la opción ‘Leer Archivos de Datos’ del menú Archivo.
Botón asociado a esta opción
Funciones relacionadas
NOMBRE:PresentaRegistro(timer);
DESCRIPCIÓN:Este procedimiento dibuja los datos de un archivo ‘DAT’ previamente
leído con la opción ‘Leer archivos de Datos’ del menú ‘Archivo’.
ENTRADA:. El registro de datos.
SALIDA:Nada
DESTINO:DEVUELVE:Nada.
ACCIONES:1. Inicializa variables
2. Hace la conversión de los datos en el archivo a voltaje además de hacer un
ajuste para que quepan los datos en pantalla llamado a la función ConvertDa-taToVolts.
3. Dibuja la gráfica con la función PintaPagina(pagina,point,0,timing,u)
NOMBRE:ConvertDataToVolts
DESCRIPCIÓN:Este procedimiento convierte los datos de un archivo ‘dat’ previa-
4. IMPLEMENTACIÓN
4-13
mente leído con la opción ‘Leer archivos de Datos’ del menú ‘Archivo’
para que puedan ser desplegados en pantalla.
ENTRADA:Nada
SALIDA:Nada
DESTINO:El procedimiento PresentaRegistro(timer);
DEVUELVE:Nada.
ACCIONES:1. Inicializa variables maxdato=1, mv= InputRange/4096 Cuantos mV por punto
2. Para i desde 1 hasta NumDeDatos empieza
2.1. Revisa que DF= dato[i]*amplifica*mv este dentro del rango de los enteros
Si
DatosC[i] = Round(DF)
No
Manda un mensaje a pantallla y a DatosC[i]=-32768
2.2. Si DatosC[i] >= maxdato entonces a maxDato= DatosC[i]
3. Asigna InputAjusta=(MaxDato*2) + ((MaxDato*2) div 10)
4. Termina
NOMBRE:PintaPagina(pagina, pcursor, ad, t, umbral)
DESCRIPCIÓN:Este procedimiento dibuja los datos de un archivo ‘dat’ previamente
leído con la opción ‘Leer archivos de Datos’ del menú ‘Archivo’.
ENTRADA:Pagina (número de página actual), point(punto donde se encuentra el
cursor), ad (cuantas paginas se va avanzar o regreasar), t (es la fre-
cuencia de muestreo) y umbral (valor actual del umbral para espigas)
SALIDA:
4. IMPLEMENTACIÓN
4-14
pantalla
DESTINO:PresentaRegistro(timer);
DEVUELVE:Nada.
ACCIONES:1. .Borra la página
2. Revisa no salirse de los datos
3. Pag=pag+ad
4. Calcula el valor del primer punto en la página
[ ]
+=
MaxYaInputAjustpagMaxXDatosCRoundaDatoP 1*int
5. Pag<0
Si
Pag=0
No
continua paso 6
6. Para i de (MaxX*pag+2 ) a (Max*pag +MaxX) empieza
6.1 si (i<NumdeDatos) entonces paso 6.2
6.2 Reasigna el primer dato DatoViejo =DatoPinta
6.3 Calcula
[ ]
=
MaxYaInputAjust
iDatosCRoundaDatoP int
6.4 Pinta la linea de DatoViejo a DatoPinta
6.5 Termina
7. Escribe el número de página, la amplificación, número de datos,frecuencia
8. Termina
4. IMPLEMENTACIÓN
4-15
4.3.2 Analizar datos EPSPs y espigas
Permite analizar datos de amplitud y frecuencia de los datos de los EPSPs
primero muestra una pantalla con los parámetros (figura 4-5) para construir sus
histogramas de frecuencia y amplitudes (figura 4-6).
Botón asociado a esta opción
Figura 4-5
Previamente los EPSPs deben haber sido definidos mediante la opción
“Búsqueda y clasificación de eventos” en el editor de registros o haber sido leídos
de disco con la opción “Leer EPSPs y Espigas” del menú principal. Este análisis
permite además guardar dos archivos (tipo ASCII), que contiene los datos de
construcción de los histogramas con las siguientes extensiones y características
4. IMPLEMENTACIÓN
4-16
Archivo de histograma intervalos entre potenciales sinápticos extensión
.IPS, de amplitudes .APS; estos files tienen la siguiente estructura:
Valor de bin para construir el histogramaescritura al archivo en tira de datos
Figura 4-6
Funciones asociadas
NOMBRE:analizardatosdeEPSPsy1Click(Sender: TObject)
DESCRIPCIÓN:Este procedimiento Permite analizar datos de amplitud y frecuencia
de los datos de los EPSPs
4. IMPLEMENTACIÓN
4-17
ENTRADA:Nada
SALIDA:pantalla
DESTINO:
DEVUELVE:Nada.
ACCIONES:1. Revisa si el Numero de EPSP`s es mayor que 5
Si
Sigue paso 3
No
Sigue paso 9
2. Abre un caja de dialogo con los parámetros para la construcción de histogra-
mas de amplitud y frecuencia de EPSP`s
3. Revisa si se oprimió el botón aceptar
Si
Sigue paso 4
No
Sigue paso 9
4. Llama al procedimiento MediaDs(Amplitud, Nepsp, 'Amplitudes EPSPs');que calcula la media, el rango, la desviación estándar y el coeficiente de varia-
ción de la amplitud de los datos
5. Asigna valores al arreglo DatInt[i-1]= TiempodelEPSP[i] - TiempodelEPSP[i-1]
6. Llama al procedimiento MediaDs(DatInt, Nepsp, 'Intervalos EPSPs'); que
calcula la media, el rango, la desviación estándar y el coeficiente de variación
de los intervalos de los EPSP`s
7. Llama a graficasDeEPSPs; que es el que dibuja los histogramas.
8. Pregunta si se desea analizar espigas
Si
Llama a AnalizaSpikes;No Sigue paso 9
9. Termina
4. IMPLEMENTACIÓN
4-18
NOMBRE:MediaDs(dat : arregloI; N: word; letrero : string);
DESCRIPCIÓN:Este procedimiento calcula la media, el rango, la desviación estándar
y el coeficiente de variación de los datos
UBICACIÓN:Estatis.pas
ENTRADA:Nada
SALIDA:pantalla
DESTINO:
DEVUELVE:Nada.
ACCIONES:1. Revisa si el número de datos (N) es mayor de 5
Si
Continua paso 2
No
Sigue al paso 9
2. Inicializa valores:
Max=dat[1], Min=dat[1], Suma =0, SumCuad=0
3. Busca el máximo y el mínimo para el rango; Para i de 1 a N empieza
3.1 Letrero es ‘Amplitudes de los EPSP’s’
Si
DatR[i]=dat[i] {Deja elarreglo igual}
No {Es calculo de Intervalos}
DatR[i]=dat[i]*d {Divide los datos del arreglo entre
di}
3.2 Es (DatR[i] > Max) Si entonces Max = DatR[i]
4. IMPLEMENTACIÓN
4-19
3.3 Es (DatR[i] < Max) Si entonces Min = DatR[i]
3.4 Calcula la suma de los datos
[ ]iDatRsumaSuma +=
3.5 hace suma del cuadrado de los datos
SumCuadSumCuad = + 2 DatR[i]
3.6 Termina
4. Calcula el cuadrado de la suma
=CuadSum 2suma5. Calcula la desviación estándar de los datos
=desviacion ( )1−
−
NN
CuadSumSumCuad
6. Calcula la media de los datos
Nsumamedia =
7. Media es diferente de 0
Si
mediadesviacionCoefVar =
No
0=CoefVar8. Escribe a pantalla los resultados de los cálculos realizados
9. Termina
NOMBRE:GraficasDeEPSPs
DESCRIPCIÓN:Este procedimiento dibuja los histogramas de amplitud e intervalos
de EPSP’s
UBICACIÓN:Estatis.pas
4. IMPLEMENTACIÓN
4-20
ENTRADA:Nada
SALIDA:pantalla
DESTINO:
DEVUELVE:Nada.
ACCIONES:1. Revisa si Numero de EPSP’s mayor que cero
Si
Sigue paso 2
No
Mensaje ‘No hay suficientes datos’ sigue paso 5’
2. Para i de 2 a Nepsp
[ ] [ ] [ ]( )( )diiPSPTiempoDelEiPSPTiempoDelERoundiIntEPSP *11 −+=−
3. Para i de 1 a Nepsp
[ ] [ ]
=
GainiAmplitudRoundiAmpMv
4. Llama a la función pintahistograma para amplitudes e intervalos que dibuja
los histogramas de estos.
5. Termina
4.3.3 Analizar datos de espigas
El proceso de análisis presenta inicialmente la gráfica de intervalos ordena-
dos (figura 4-7) y permite en caso existir un artefacto entre los intervalos eliminar-
lo.
Botón asociado a esta opción
4. IMPLEMENTACIÓN
4-21
Figura 4-7
Posteriormente se generan el histograma de intervalos apareados (diagra-
ma de pseudo fase o diagrama de Poincare), en el cual se grafican el dato i versus
i+1, el histograma de intervalos (el bin lo selecciona el usuario), el autocorrelogra-
ma de orden K (donde K puede tener un máximo igual al número de datos entre
dos), y el histograma de autocorrelación con bin y orden seleccionable por el usua-
rio. Se despliegan también datos numéricos respecto al intervalo medio, desvia-
ción estándar, coeficiente de variación, número de intervalos y archivos asociados
al registro en cuestión (figura 4-8).
4. IMPLEMENTACIÓN
4-22
Figura 4-8
Los datos numéricos se almacenan de manera automática en un archivo de
tipo ASCII con extensión ‘IND’ con la siguiente estructura.
write(f, ExpID, nombre del archivo, origen, Resolución temporal:6:1, número de da-
tos:6:0, media de los intervalos:6:2, desviación:6:2 y coeficiente de variación:6:2);
Funciones asociadas
NOMBRE:AnalizaSpikes
DESCRIPCIÓN:
4. IMPLEMENTACIÓN
4-23
Este procedimiento obtiene el valor medio de la pantalla y llama al
procedimiento que dibuja la gráfica de intervalos en pantalla.
UBICACION:La unidad Unitanal
ENTRADA:Nada
SALIDA:pantalla
DESTINO:Ninguno
NOMBRE:analizardatosdeEPSPsy1Click(Sender: TObject)
DESCRIPCIÓN:Este procedimiento Permite analizar datos de amplitud y frecuencia
de los datos de los EPSPs
ENTRADA:Nada
SALIDA:pantalla
DESTINO:
DEVUELVE:Nada.
ACCIONES:1. Revisa si el Numero de EPSP`s es mayor que 5
Si
Sigue paso 3
No
Sigue paso 9
2. Abre un caja de dialogo con los parámetros para la construcción de histogra-
mas de amplitud y frecuencia de EPSP`s
4. IMPLEMENTACIÓN
4-24
3. Revisa si se oprimió el botón aceptar
Si
Sigue paso 4
No
Sigue paso 9
4. Llama al procedimiento MediaDs(Amplitud, Nepsp, 'Amplitudes EPSPs');que calcula la media, el rango, la desviación estándar y el coeficiente de varia-
ción de la amplitud de los datos
5. Asigna valores al arreglo DatInt[i-1]= TiempodelEPSP[i] - TiempodelEPSP[i-1]
6. Llama al procedimiento MediaDs(DatInt, Nepsp, 'Intervalos EPSPs'); que
calcula la media, el rango, la desviación estándar y el coeficiente de variación
de los intervalos de los EPSP`s
7. Llama a graficasDeEPSPs; que es el que dibuja los histogramas.
8. Pregunta si se desea analizar espigas
Si
Llama a AnalizaSpikes;No
Sigue paso 9
9. Termina
NOMBRE:MediaDs(dat : arregloI; N: word; letrero : string);
DESCRIPCIÓN:Este procedimiento calcula la media, el rango, la desviación estándar
y el coeficiente de variación de los datos
UBICACIÓN:Estatis.pas
ENTRADA:Nada
SALIDA:pantalla
DESTINO:
4. IMPLEMENTACIÓN
4-25
DEVUELVE:Nada.
ACCIONES:1. Revisa si el número de datos (N) es mayor de 5
Si
Continua paso 2
No
Sigue al paso 9
2. Inicializa valores:
Max=dat[1], Min=dat[1], Suma =0, SumCuad=0
3. Busca el máximo y el mínimo para el rango; Para i de 1 a N empieza
3.1 Letrero es ‘Amplitudes de los EPSP’s’
Si
DatR[i]=dat[i] {Deja elarreglo igual}
No {Es calculo de Intervalos}
DatR[i]=dat[i]*d {Divide los datos del arreglo entre
di}
3.2 Es (DatR[i] > Max) Si entonces Max = DatR[i]
3.3 Es (DatR[i] < Max) Si entonces Min = DatR[i]
3.4 Calcula la suma de los datos
[ ]iDatRSumaSuma +=
3.5 hace suma del cuadrado de los datos
SumCuadSumCuad = + 2 DatR[i]
3.6 Termina
4. Calcula el cuadrado de la suma
=CuadSum 2suma5. Calcula la desviación estándar de los datos
=desviacion ( )1−
−
NN
CuadSumSumCuad
6. Calcula la media de los datos
Nsumamedia =
7. Media es diferente de 0
4. IMPLEMENTACIÓN
4-26
Si
mediadesviacionCoefVar =
No
0=CoefVar8. Escribe a pantalla los resultados de los cálculos realizados
9. Termina
NOMBRE:GraficasDeEPSPs
DESCRIPCIÓN:Este procedimiento dibuja los histogramas de amplitud e intervalos
de EPSP’s
UBICACIÓN:Estatis.pas
ENTRADA:Nada
SALIDA:pantalla
DEVUELVE:Nada.
ACCIONES:1. Revisa si Número de EPSP’s mayor que cero
Si
Sigue paso 2
No
Mensaje ‘No hay suficientes datos’ sigue paso 5’
2. Para i de 2 a Nepsp
[ ] [ ] [ ]( )( )diiPSPTiempoDelEiPSPTiempoDelERoundiIntEPSP *11 −+=−
3. Para i de 1 a Nepsp
[ ] [ ]
=
GainiAmplitudRoundiAmpMv
4. IMPLEMENTACIÓN
4-27
4. Llama a la función pintahistograma para amplitudes e intervalos que dibuj
alos histogramas de estos.
5. Termina
4.4. Análisis
Con esta opción del menú podemos analizar y estudiar los datos adquiridos
y los servicios que ofrecerá el sistema serán los siguientes:
Figura 4-9
4.4.1 Ajustar registro a la pantalla
Permite modificar el valor de la variable inputajusta la cual influye en el ta-
maño de la gráfica mostrada en pantalla al seleccionar esta opción aparece una
4. IMPLEMENTACIÓN
4-28
ventana (figura 4-10).
Figura 4-10
La funcion asociada a esta opcion del menu es la siguiente
NOMBRE:AjustaRegistroALaPantallaClick
DESCRIPCIÓN:Este procedimiento cambia el valor de inputAjusta.
ENTRADA:Nada.
SALIDA:El nuevo valor de amplifica y de InputAjusta.
DESTINO:La función convertDataToVolts
DEVUELVE:Nada.ACCIONES:
1. Pide el nuevo factor para modificar el tamaño de la gráfica.
2. Lo asigna a InputAjusta
3. Llama a función PintaPagina (pagina, point, 0, timer, u);
4.4.2 Amplifica
Permite multiplicar la señal por un valor entero, al dar click sobre el botón o
4. IMPLEMENTACIÓN
4-29
la opción del menú muestra una pantalla (figura 4-6) preguntando el factor de am-
plificación después de esto manda a llamar la función ‘amplificar’ que se describe
a continuación.
Figura 4-11
Botón asociado a esta opción
La funcion asociada a esta opcion del menu es la siguiente
NOMBRE:Amplificar
DESCRIPCIÓN:Este procedimiento cambia el valor de amplifica y el de inputAjusta.
ENTRADA:Nada.
SALIDA:El nuevo valor de InputAjusta.
DESTINO:La función convertDataToVolts
DEVUELVE:Nada.
ACCIONES:4. Pide el nuevo factor de amplificación y lo lee.
5. Lo asigna a amplifica
6. Calcula InputAjusta := InputAjusta div amplifica
7. Llama a función PintaPagina (pagina, point, 0, timer, u);
4. IMPLEMENTACIÓN
4-30
4.4.3. Borrar Datos
Esta función permite eliminar datos del conjunto de información mostrada
en pantalla a partir de la posición en que se encuentre el cursor.
Botón asociado a esta opción
La funcion asociada a esta opcion del menu es la siguiente
NOMBRE:Borrar
DESCRIPCIÓN:Borra datos a partir del cursor.
ENTRADA:El punto a partir de cual se empezara a borrar.
SALIDA:
DESTINO:Nada.
DEVUELVE:Nada.
ACCIONES:1. Toma el punto a partir del cual se dio borrar.
2. Y lo pone como último dato
4.4.4 Diagramas de fases
Esta opción del menú muestra la derivada Newton-Raphson de los datos
4. IMPLEMENTACIÓN
4-31
Botón asociado a esta opción
La funcion asociada a esta opcion del menu es la siguiente
NOMBRE:DiagramasDeFases(ip)
DESCRIPCIÓN:Este procedimiento calcula la derivada de la gráfica a partir del
punto sobre el que esta posicionado el cursor mediante la siguiente
formula
diXX ii −+1
ENTRADA:Point el punto donde esta el cursor actualmente.
SALIDA:pantalla.
DESTINO:
DEVUELVE:Nada.ACCIONES:
1. Calcula i
ip
ddatosCdatosCrounddOld ip)( 1 += +
2. Calcula la derivada para los siguientes puntos
3. Manda a dibujar la derivada
4.4.5 Búsqueda y clasificación de eventos
Esta opción primero muestra una pantalla (fig 4-7) con los valores por de-
fault para iniciar la búsqueda, después de verificar estos valores el usuario le da
4. IMPLEMENTACIÓN
4-32
aceptar o cancelar en caso de que el usuario haya presionado el botón aceptar
aparece una pantalla (fig 4-8) ;
Figura 4-12
preguntando si se desea hacer una búsqueda automática o no dependiendo
de esto inicia la búsqueda
Figura 4-13
Si se contesta ‘Si’ (Yes) a la pregunta se inicia una búsqueda de los EPSP y
espigas que no se puede interrumpir a hasta que recorrió todo el registro. En cam-
bio si se responde ‘No’ el programa muestra cada una de las espigas o EPSP´s
según sea el caso y pregunta si es aceptable o no (figura 4-14) para almacenarlo
en un registro temporal en caso de que se responda ‘Si’, para después guardarlo
4. IMPLEMENTACIÓN
4-33
en un archivo y/o analizarlo según decisión y necesidades del usuario.
Figura 4-14
Botón asociado a esta opción
NOMBRE:DetectaEPSPsSpikes(var point: integer )
DESCRIPCIÓN:Este procedimiento busca los eventos EPSP´s y las espigas de un
registro.
UBICACIÓN: Epsp.pas
4. IMPLEMENTACIÓN
4-34
ENTRADA:Point el punto donde esta el cursor actualmente.
SALIDA:pantalla.
DESTINO:
DEVUELVE:Nada.ACCIONES:
1. Es point <=100 si entonces point=101
2. Inicializa valores
3. Repite hasta que point>=NumDeDatos – (300+round(DuraMax)) o
Nepsp >= TotalEPSPsSpikes
4. Llama BuscaMinI que busca el mínimo de tres puntos ( )11 ,, +− iii XXX y lo
guarda en la variable global minI
5. Llama a BuscaMax Busca el máximo de tres puntos ( )11 ,, +− iii XXX y lo
guarda en la variable max.
4.4.6 Filtrado
El programa utiliza un una función para suavizar la señal con base en la
siguiente ecuación:
4
11 +− ++ iii XXX
Botón asociado a esta opción
y la función que lo realiza es la siguiente
NOMBRE:Filtros
4. IMPLEMENTACIÓN
4-35
DESCRIPCIÓN:
Este procedimiento utiliza la siguiente función para suavizar la señal.
221 XX −
ENTRADA:
Nada.SALIDA:
Los nuevos valores de la función para ser graficada.DESTINO:
La función convert DataToVolts
DEVUELVE:Nada.ACCIONES:1. X1 := round( (X1 + X2) / 2);
2. for i := 2 to (NumDeDatos – 1) do
3. Begin
4. DF := (X[i-1] + 2X[i] + X[i+1]) / 4.0;
5. if ((DF >= -32768) and (DF <= 32767)) then DatosC^[i] := round(DF)
else Begin
if DF > 32767 then DatosC^[i] := 32767
else DatosC^[i] := -32768;
Escribe ‘Cuidado ¡ la amplificación seleccionada satura el registro ‘
end;
end;
X[NumDeDatos] := round((X[NumdeDatos-1]+X[NumDeDatos])/2)
4.4.7Gráfica disparada por eventos
En este caso, el programa busca los eventos que crucen el nivel de
umbral, toma cien puntos antes y cuatrocientos después y los muestra en pantalla
4. IMPLEMENTACIÓN
4-36
para que el usuario defina si lo desea conservar. Cuando se han adquirido diez de
estos eventos se presenta en un gráfico tridimensional figura 4-10.
Figura 4-15
Después de que se seleccionaron los diez segmentos aparece una venta en
la parte superior izquierda preguntando cuál es la siguiente opción a seguir:
• Promediar esta opción del menú nos lleva a una pantalla donde
se muestra en primer lugar la gráfica del resultado de promediar
los diez datos colectados y da la opción de mover el umbral (Vol-
taje de membrana) y los puntos de donde se van a realizar los cál-
culos figura 4-16.
4. IMPLEMENTACIÓN
4-37
Figura 4-16
Una vez fijados estos datos se muestra la pantalla en la (figura 4-17) con
información sobre el experimento como son:
Nombre del experimento
la ganancia
el voltaje de membrana,
la amplitud y la duración del potencial de acción,
la cantidad de registros promediados y
el nombre del archivo.
4. IMPLEMENTACIÓN
4-38
Figura 4-17
• Guardar guarda los datos de los segmentos colectados o el pro-
medio pero el almacenamiento del promedio se puede hacer solo
después de que se promedió.
Figura 4-18
• Continuar regresa a la pantalla de inspeccionar registro.
4. IMPLEMENTACIÓN
4-39
Botón asociado a esta opción
Funciones asociadas
NOMBRE:SpikeStimInterval(x: integer; umbral: integer)
DESCRIPCIÓN:Este procedimiento busca eventos EPSP´s y las espigas de un re-
gistro.
UBICACIÓN: Busctren.pas
ENTRADA:X el punto donde esta el cursor actualmente, el valor actual del um-
bral.SALIDA:
pantalla.DEVUELVE:Nada.ACCIONES:
1. Es x <=100 si entonces x=101
2. Mientras X este dentro del registro y no se de cancelar y el numero de seg-
mentos capturados sea menor de 10 entonces
3. Limpia pantalla
4. Calcula el umbral MaxY
aInputAjustUmbralUR *=
5. Se buscan los puntos que sobrepasen el umbral; incrementa X hasta que
UR<=1-xDatosC o URDatosCx >
6. Una vez obtenido el valor del punto (X) dibuja el segmento donde se encon-
tró el evento que sobrepaso el umbral
7. Es aceptable el evento
Si
Sigue paso 8
8. Incrementa el índice de Pintam que es el arreglo donde se van a guardar los
eventos
4. IMPLEMENTACIÓN
4-40
9. Y guarda los datos del evento en el arreglo Pintam
10. Luego obtiene el elemento mayor del arreglo
11. Termina el ‘while’ que inicio en el paso 5
12. Dibuja en pantalla todos segmentos colectados
13. Termina
4.4.8 Intervalos espigas
Una vez puesto el umbral permite medir los intervalos entre los eventos que
crucen el nivel de umbral y ofrece la opción de crear un archivo de intervalos. Este
archivo tipo ASCII tiene la extensión ‘IN7’ y tiene la siguiente estructura.
Figura 4-19
Botón asociado a esta opción
4. IMPLEMENTACIÓN
4-41
4.4.9 Quitar Datos Maquillaje
Esta opción del menú permite borrar datos temporalmente para hacer algún
análisis en especial ya sea que se quieran borrar 1 o 10 datos a la vez
Botón asociado a esta opción
4.4.10 Rutinas de archivo en disco
Permite generar todos los archivos de datos generables (‘DAT’, ‘REP’, ‘INT’
y ‘EPP’) adicionalmente ofrece la opción para crear archivos tipo ASCII de los da-
tos digitalizados (con el fin de exportar a otros programas ya que los de tipo ‘DAT’
no son exportables). Para los archivos de tipo ASCII la extensión es ‘ASC’.
Figura 4-20
4.4.11 Todo en pantalla
El programa gráfica todos los datos de un registro en una sola pantalla (fi-
4. IMPLEMENTACIÓN
4-42
gura 4-21). Lo cual permite tener una mejor visión acerca del comportamiento de
la señal.
Botón asociado a esta opción
Figura 4-21
y la función que lo realiza es la siguiente
NOMBRE:PlotArray()
DESCRIPCIÓN:Este procedimiento permite graficar todo un arreglo en una sola
pantalla.
4. IMPLEMENTACIÓN
4-43
UBICACIÓN:Plotall.pas
ENTRADA:Nada.
SALIDA:Pantalla
DESTINO:Nada
DEVUELVE:Nada.
ACCIONES:1. Inicializa valores: Frst=1, Last=TotalDatos
2. Obiene el Máximo (MaxDat) y el Mínimo (MinDat) de los datos
3. Es MaxDat igual a Mindat
Si
1=ScrAjustYNo
MindatMaxDatTopeMaxYScrAjustY
−−=
4. Calcula DatxPix
−=
iniMaxXLastTruncDatxPix
5. Es la parte fraccionaria de DatxPix diferente de cero
0<>
− iniMaxXLastFrac
Si
1DatXPixDatXPix +=
6. Es 1DatXPix < Si entonces 1DatXPix =7. A la variable ii asignale (ii =1)
8. Repite hasta que LastIndexBlock=Last
8.1 1* −+= iiDatxPixFrstlockLastIndexB8.2 Si LastlockLastIndexB > entonces LastlockLastIndexB =
4. IMPLEMENTACIÓN
4-44
8.3 Obtiene el máximo del conjunto de datos
( )( )lockLastIndexBiiDatXPixFrstValueOfMaxMaxOfBlock ,1* −+=
8.4 Obtiene el mínimo del conjunto de datos
( )( )lockLastIndexBiiDatXPixFrstValueOfMinMaxOfBlock ,1* −+=
8.5 Dibuja la línea que representa ese bloque
8.6 Incrementa ii
9. Termina
4.4.12 Umbral
Esta opción del menú permite hacer el manejo de las funciones asociadas
al umbral como son mover nivel umbral y detectar umbral como se ve en la figura.
Figura 4-22
• Nivel Umbral .- Esta función permite definir gráficamente un nivel de
voltaje y detectar los cruces positivos que en él se producen.
Botón asociado a esta opción
4. IMPLEMENTACIÓN
4-45
NOMBRE:PonNivelUmbral
DESCRIPCIÓN:Este procedimiento cambia el valor del umbral el que indica que un
cruce positivo .
ENTRADA:El unbral actual.
SALIDA:El nuevo valor de umbral.
DESTINO:
DEVUELVE:Nada.
ACCIONES:1. Revisa cual es la tecla que oprimió después de que se dio la opción de po-
ner nivel de umbral.
2. Si es la flecha arriba entonces umbral := umbral +1
3. Si es la flecha abajo entonces umbral := umbral –1
4. Si es la página arriba entonces umbral := umbral +10
5. Si es la página abajo entonces umbral := umbral –10
Detectar Umbral
Detecta los cruces al nivel umbral y pone el cursor en el primero que en-
cuentra a partir de la posición del cursor.
Botón asociado a esta opción
NOMBRE:DetectaUmbral
4. IMPLEMENTACIÓN
4-46
DESCRIPCIÓN:Este procedimiento el primer punto mas alto en el arreglo de
datos a partir del cursor.
ENTRADA:El valor de Umbral y el punto en el que esta posicionado el cursor.
SALIDA:El valor del dato que podría usarse como umbral.
DESTINO:La función cursor.
DEVUELVE:Nada.
ACCIONES:1. Calcula cada valor real en la pantalla.
2. Luego avanza sobre los datos y termina hasta que el dato sea mayor que el
dato anterior o hasta que se haya terminado de revisar todos los datos.
4.5 AYUDA
La última opción del menú principal es el llamado ayuda (figura 4-23) que
contiene dos opciones: ‘Ayuda comandos’ y ‘acerca de..’ como se puede ver en la
figura 4-23 y a continuación se explica cual es su función.
Figura 4-23
4. IMPLEMENTACIÓN
4-47
4.5.1 Ayuda comandos
Esta opción del menú muestra la ayuda acerca de los comandos y paráme-
tros del Sistema
Botón asociado a esta opción
Figura 4-24
4.5.2 Acerca de..
Al dar click sobre la opción acerca de aparece la siguiente ventana donde
se da el nombre del sistema, la versión, el lugar de realización y el nombre del de-
sarrollador.
Figura 4-25
CyR-1
CCOONNCCLLUUSSIIOONNEESS YY RREESSUULLTTAADDOOSS
El sistema de software ‘Analnew’ cumple con los objetivos que se fijaron en
la propuesta como son:
# Archivos creados y/o leídos por el programa y el tipo de datos que con-
tienen.
Extensión Tipo Datos Acción
APS ASCII Histograma de amplitudes de EPSPs L/E*
ASC ASCII Mismos que en .DAT L/E
DAT Complejo Valores directos del convertidor AD L**
EPP ASCII Intervalos y amplitudes EPSPs y espigas L/E
IN7 ASCII Intervalos entre eventos (dat continuos) L/E
IND ASCII Estadística intervalos entre eventos L/E
INT ASCII Intervalos entre eventos L/E
IPS ASCII Histograma de intervalos de EPSPs L/E
M1..n ASCII Mediciones sobre registros de Pclamp L
MED ASCII Mediciones sobre promedio L/E
PRO ASCII Promedio de segmentos de registro L/E
REG ASCII N segmentos de registro L/E
REP ASCII Datos acerca del archivo .DAT asociado L/E
*’L/E’ lee y escribe ** ‘L’ Lee tipo archivo
# Despliega los datos ya sea por pantalla (cada punto un píxel y los une
con líneas) o bien todos los datos del registro en una sola pantalla.
!!!!
CyR-2
# Amplifica datos.
# Permite borrar datos a partir de la posición donde se encuentre el cur-
sor.
# También tiene otra opción para borrar solo un dato o los diez siguientes
a partir de la posición del cursor.
# Genera el diagrama de fases de los datos.
# Hace búsqueda y clasificación de eventos (EPSPs y espigas).
# Filtrado digital de la señal.
# Busca eventos que crucen el nivel de umbral los promedia y guarda en
archivos.
# Permite fijar el nivel del umbral y también detecta los cruces del mismo.
El sistema cuenta con las siguientes características:
# Corre sobre sistemas Windows 95 ó 98.
# Tiene una interfaz gráfica amigable.
# Cuenta un archivo de ayuda en línea.
# Además tiene botones de acceso rápido.
CyR-3
# Y barras de estado para indicar por ejemplo la posición del cursor o del
umbral además de otros datos relacionados con el registro que se esta
visualizando.
En cuanto a limitaciones:
# La resolución mínima para visualizar el sistema es de 800*600.
# Que se desarrollo sobre delphi 2.0 y actualmente existen versiones más
nuevas.
Cabe mencionar que este sistema de software es solo una parte de un sis-
tema más completo que se planea tener a futuro, este además contará con:
# Un módulo para adquisición de datos en tiempo real.
# Migrar el sistema a una versión más actualizada de Delphi
# Incluir otros análisis.
El presente trabajo fue muy importante para mi; porque por supuesto
aprendí muchas cosas nuevas como son: un poco acerca de la actividad eléctrica
en neuronas, la programación visual controlada por sucesos y además fue una
muy buena oportunidad para trabajar en otras áreas y así extender el área de tra-
bajo y de conocimiento con el que contaba en el momento en el que deje las aulas
y empece a trabajar en proyectos que realmente se van a utilizar como base para
CONCLUSIONES Y RESULTADOS
CyR-4
investigaciones en el Laboratorio de Neurofisiología del instituto de Fisiología de la
Benemérita Universidad Autónoma de Puebla.
BIBLIOGRAFÍA
B-1
BBIIBBLLIIOOGGRRAAFFÍÍAA..
[MaJ+97] Jonathan Matcho, Brian Salmanowitz, Scott Strool, Bren Biely, Scott t.
Jurkoich, Susan Berry, Lawrence Sleeper, Dan Dumbrill, Eric Uber;
Edición Especial DELPHITM 2, Prentice Hall (Madrid 1997)
[NaP96] Patrick Naughton; Manual de Java; Osborne/McGraw-Hill (España
1996)
[ScH92] Herbert Schildt; Turbo C/C++ Manual de Referencia; McGraw-Hill
(México 1992)
[ReL96] Reference Library Guide Borland Delphi 2.0, Borland International.
(USA 1996).
[UsG96] User’s Guide Borland Delphi 2.0, Borland International. (USA 1996).
[TaR87] Ricardo Tapia; Las células de la mente; Fondo de cultura económica
(México 1987)
[SoE+87] Soto E. and Vega R. : A turbo Pascal program for on spike data acqui-
sition and analysis, J Neuroscience Methods, 19 (1987) 61-68.
[SoE+89] Soto E., Echagüe J.V. and Vega R. Computer program for statistical
Mann- Whitney U nonparametric analysis of neuronal spike activity,
!!!!
BIBLIOGRAFÍA
B-2
computer Methods and Programs in Biomedicine, 28 (1989) 197-200.
[SoE+87] Soto E., Manjarrez E. and Vega R. : A Microcomputer program for
automated neuronal spike detection and analysis, International Journal
of Biomedical Computing, 44 (1997) 203,212.
[GeoCCH4] http://geocities.com/CapeCanaveral/Hangar/4434/
[LucTSS] http://lucas.simplenet.com/trabajos/sistnerv/sistnerv.html
[WHiEC] http://www.hispan.com/eltaller/CursoVisualJ++1.html