SciELO - Scientific Electronic Library Online

 
vol.29 issue2Motor skills in children victims of physical abuseKnowledge attitudes and skills in adolescents from the public sector of Barranquilla (Colombia) related to their sexuality author indexsubject indexarticles search
Home Pagealphabetic serial listing  

Services on Demand

Journal

Article

Indicators

Related links

  • On index processCited by Google
  • Have no similar articlesSimilars in SciELO
  • On index processSimilars in Google

Share


Revista Salud Uninorte

Print version ISSN 0120-5552

Salud, Barranquilla vol.29 no.2 Barranquilla May/Aug. 2013

 

Artículo original / ORIGINAL ARTICLE

Data Exporter: A complementary tool to export data simulation from neuron

Data Exporter: Una herramienta complementaria para exportar datos obtenidos de simulaciones con neuron

Óscar Emilio Hernández1, Daladier Jabba2, Fabián Muñoz3

Correspondencia: óscar Emilio Hernández Bustos, Professor, Departamento de Química y Biología, Universidad del Norte, Km 5, Antigua vía a Puerto Colombia, Barranquilla (Colombia). ohernandezb@uninorte.edu.co, oscaremilio.hernandez@gmail.com.

Fecha de recepción: 14 de marzo de 2013
Fecha de aceptación: 5 de julio de 2013


Abstract

Objectives: To develop a computational tool for NEURON simulation environment, user friendly, to store the results generated during simulation and to make subsequent analysis with other tools such as Matlab and IgorPRo

Materials and Methods: Data Exporter was implemented in the programming language hoc. This algorithm is divided in 13 sections or blocks. The first section is necessary to edit in a new simulation. These new configuration determine the geometry, biophysic properties the neurons to simulate and path to save data.

Results: To check the efficiency of the algorithm, we simulated the propagation of action potential in TRN(thalamic reticular nucleus) neuron in different large of simulation. We determine that the time of simulation is linear respect to time of simulation.

Conclusions: Data Exporter makes easier to start to neural simulation in NEURON reducing the steps of programming to geometry and biophysical properties of the neuron and to allow save data to next steps of analysis.

Keywords: Data Exporter, Computational simulation tool, NEURON's programming language hoc, Complex neuronal geometry, Action potentials.


Resumen

Objetivos: Desarrollar una herramienta computacional en ambiente lenguaje de programación hoc de NEURON y de fácil uso, que permita el rápido almacenamiento de los resultados obtenidos para su posterior análisis en otros software tales como Matlab or IgorPro.

Materiales y métodos: Para el desarrollo de Data Exporter se escribió un algoritmo en lenguaje de programación hoc de NEURON. El algoritmo, escrito en un único archivo de texto, esta dividido en 13 bloques, de los cuales solo el primero debe ser modificado para adaptarlo a una geometría y biofísica neuronal particular y para determinar la ruta de almacenamiento de los datos.

Resultados: Se desarrollo un software que simula la propagación de potenciales de acción a través de geometrías neuronales complejas. El uso de esta herramienta permite el almacenamiento de los resultados obtenidos, como potenciales y corrientes de membrana en diferentes puntos de toda la neurona, sin incremento significativo en el tiempo para el desarrollo de los procesos.

Conclusiones: Data Exporter es un software que le da mayor flexibilidad a NEURON facilitando el acceso a nuevos neurocientíficos, los cuales pueden usarlo con solo conocer los códigos necesarios para el desarrollo de los archivos relacionados con las propiedades geométricas y biofísicas neuronales.

Palabras clave: Data Exporter, Herramienta de simulación computacional, Lenguaje de programación hoc de NEURON, Geometrías neuronales complejas, Potenciales de acción.


Introduction

The amount of data collected in neurophysiology experiments for both single neuron and neural networks has increased exponentially during recent years. These data allow the modeling of complex neuronal networks with unprecedented amount of biophysical and anatomical information. These large-scale neural models are frequently non-linear dynamical systems that require numerical simulation to observe their behavior. Currently, there are several specialized software packages available to observe neural phenomena from different perspectives. For example, NEST (1,2) uses single compartmental models; NEURON (3-7) and GENESIS operate with both single and multi-compartmental models (8,9). Other software such as XPPAUT (10,11) is centered primarily on dynamical system analysis.

NEURON is the most popular with a great amount of papers published demonstrating its computationally efficiency in simulations resembling experimental data, especially in problems that range from parts of the single cells to small numbers of cells in which cable properties play a crucial role (12-14). NEURON allows the semiautomatic creation of individual neurons as sections which are subdivided into individual compartments.

The geometry neuron code is based in hoc language, but Python graphic interface is also available. Furthermore, the programs can be written interactively in a command-line shell as well. The properties of the membrane channels of a neuron in terms of kinetic schemes or sets of simultaneous differential and algebraic equation are expressed in NMDOL, a high level programming language (16). Nonetheless, NEURON requires many hours of programming especially when it is necessary to store simulation results for subsequent analysis in other software such as Matlab or IgorPro, for example. Here, we show a complementary code for NEURON 7.0 for Linux version that efficiently exports data without a big impact to the simulation time.

Materials and methods

A simulation in NEURON require, at least, one file with the neurons geometry (.hoc) and other with kinetic properties of each channel (.mod). Simulation conditions are included in the hoc file. In the introduction we mentioned the possibility of building models using graphic interface, however, with the interest to keep short time to simulate, we chose to use hoc language.

Two alternative methods are normally used to build neural geometry with NEURON, Stylized and 3D Method. Stylized specifies the length and diameter of each neuron section (soma, dendrite, etc). 3D Method uses the pt3dadd (x, y, z, diameter) command to define spatial location in Cartesian coordinates and diameter for different neuron (Figure 1A). We chose a 3D Method for this work.

The pt3dadd command is based on using cylindrical or truncated cone shapes (Figure 1B), which it is called line segment. From here, NEURON determines the area to calculate the current density (in mA/cm2) and the membrane potential (in mV) in the center of each cylinder or truncated cone. These geometric parameters should be stored previously to any posterior simulation (17,18).

The simulation were tested on a standard PC (an Intel ® Core TM2 Duo processor of 2.66Hz and 3.468GB of RAM memory).

Figure 1

Data Exporter is a routine that stores current and voltage data from simulation in .dat files (Figure 2). Additionally, two more text files are generated. The first file (neuronal_geometry.txt) is neuron morphology, it describes the Cartesian coordinates (x, y, z) and diameters for each line segment.

The second (general_data_relevant.txt) has general information related to simulation conditions, for example, total time (ms), stimulus frequency (Hz), number of line segments, neural sections, files generated with membrane currents and membrane current densities and approximation of total superficial area of neuron membrane (um2).

Results

Tools Details

Data Exporter will generate a folder called "OUTPUT" in the username main folder where data will be stored (Figure 3 and 4). Three sub-folders will also be included: CURRENTS (membrane currents), CURRENT_ DENSITIES_MPLS (membrane current densities) and POTENTIALS_MPLS (membrane potentials). The term MPLS refers to Membrane Potential by Lineal Segment.

We designed a main script, DATA_EXPORTER.hoc, divided into 13 comment blocks, with a series of modifiable fields that assign software conditions to a specific neuron type. The meaning can be checked inside each section (Figure 2). These fields can be modified before a new simulation in necessary case.

Figure 2

Block 1: Username

First, it should be modified the field user_ name by corresponding name of user.

username = "username"

Next, it should be included the hoc files name that defined the geometry and biophysical characteristics of a neuron in following fields:

Geometry = "geometryfile.hoc" Biophysics ="biophysics_file.hoc"

Now, the names of currents involved in the neuron (ionics, passive, and capacitive) are added. For example, list_curr.o(0).s = "ina"(sodium current) list_curr.o(1).s = "ik"(potassium current) list_curr.o(2).s = "i_pas" (passive current) list_curr.o(3).s = "i_cap"(capacitive current) list_curr.o(4).s = "ica"(calcium current)

To add more currents in case were necessary, follow this syntax list_curr.o (i).s = "current_i", where "i" corresponds to the name of the new current. If there are less currents that defined by default only delete from the list. Subsequently, you can set the position where the current will be measured in the section. In NEURON, every section has length equal 1, then electrode could located in coordinates goes between 0 to 1, in this example we chose at the middle of the section.

section_stim = "section_name" x_stim = 0.5 (middle section)

The last list of parameters correspond to stimulation conditions as:

Minimum time interval or time lapse (ms): st = 0.01

Total simulation time (in ms): tts = 5

Temperature (°C): tgc= 40

Number of current stimulus (square pulses): ns = 4

Time between stimulus current pulses (ms): ipt = 2

Time delay of stimulus initiation (ms): sit = 10

Scope of each current stimulus (nA): ampl = 5

Duration of each current stimulus (ms): durat = 30

The last parameter is the number of dat output files. We fixed to generate up to 50000 , which is written as nma_dat = 50000

Block 2: Imported geometry and Biophysical Files

Here, the geometry biophysics files are imported explicitly using xopen( ) function. After that is created the complete list of sections extracted from imported files.

Block 3: Counter Sections

A counter was defined to include the total number of section created (dendrites, soma and axon). This parameter is possible to display in the NEURON terminal prompted writing vec_sum_segl.sum( ).

Block 4: Setting Simulations

The function param_initio( ) load the simulation conditions set up in block 1.

Block 5: Procedure to write output currents simulation - Part 1

The block creates the procedure to save the output currents of the simulation and these outputs are stored in definition_vector_register.hoc file.

Block 6: Mathematical expression of Section

We defined the segment area under the idea that each section is a truncate cone, as follows:

where D and d are the major and minor diameters of the line segment (Figure 1), this is applied to every section in block 9, which were fixed in block 3.

Block 7: Current stimulus setting

This block create the external current pulses (time start, duration, amplitude and frequency) that were set on blockl.

Block 8: Default names output

The file names of currents, currents densities and potentials are establish as membrane_currents_xxx.dat, membrane_currents_ densities_xxx.dat and membrane_poten-tial_xxx.dat, where xxx are signed the time when was stored.

Block 9: Procedure to write output currents simulation - Part 2

Complementary to block 6. These code lines use the equation in block 6 adapted to each segment (axon, dendrites, soma) to measure the current densities, currents and membrane After that, they are stored in the output file (variable_vector_register.hoc).

Block 10: Neural geometry

The neuronal anatomy is stored in file txt (neuronal_geometry.txt). In contrast, geometry.hoc that we mention above, here is explicit every component (xyz coordinates, name section) to difference geometry.hoc that only are the coordinate and general expression about spatial feature of sections. The data is ordered in columns: a cardinal number, section, (x,y,z) coordinates initial section, diameter initial section, (x,y,z) coordinates end section, diameter end section.

Block 11:

Here is the procedure that creates the vector that store the different type of currents from the simulation.

Block 12: Printing File outputs

This section is a code to print variables created during simulation in the output files (CURRENTS_DENSITIES_MPLS, CURRENT_LS, POTENTIAL_MPLS)

Block 13:

Finally, others aspects of simulation are stored general_data_relevant.txt, for example: total time, stimulus frequency, and number of sections. And some statistics as the number of densities, currents and potentials files is created along with the lateral area neuron.

Discussion

Performance tool

In order to show tool functionality, Thalamic Reticular Nucleus neuron (TRNn) ( Figure 4D) was used as a test. The neuron geometry and biophysics (Table 1) data were obtained from the ModelDB (http:// senselab.med.yale. edu/ModelDB/defa ult. asp), a NEURON database available. The simulation started with a square current pulse as shown in Figure 4C in the soma the TRNn and density current and membrane potential in a dendrite were registered (Figure 4A, 4B).

In Figure 5, we show the output results from Data Exporter, as it was described in block 8 (Tools Details). In detail, a dendrite was labeled as dend1 [6] according to NEURON language (Figure 4B). The spatial neuron coordinates were stored in the neuronal_geometry.txt. To continue, the folders CURRENT_DENSITIES_MPLS and POTENTIAL_MPLS .dat files are labeled in relation to time simulation ( Figure 5). When these files are opened we see two columns, the first corresponds to line segment and the second to membrane current densities or membrane potentials, with this information is useful to analysis with other pieces of software.

In terms of time processing, the implementation showed a linear relation between time simulation and number of files were printed ( Table 2).

Table 1
Table 2

Figure 3

Figure 4

Figure 5

In conclusion, Data Exporter makes easier to start to neural simulation in NEURON reducing the steps of programming to geometry and biophysical properties of the neuron.

In the future, we expect to improve this tool by including a graphical interface compatible with the NEURON as well as exporting other variables such as extracellular potentials. Also adding support for Windows and Mac OS.

Financial Disclosure

This project was financed by Universidad del Norte.


1Profesor de tiempo completo, Departamento de Química y Biología, División de Ciencias Básicas, Universidad del Norte.

2Profesor de tiempo completo, Departamento de Ingeniería Industrial, División de Ingenierías, Universidad del Norte.

3Post-doctoral positions as scientific researcher, Rutgers University, Center for Molecular and Behavioral Neuroscience.


References

(1) Gewaltig M, Diesmann M. NEST. Scholarpedia 2007; 2(4): 1430        [ Links ]

(2) NEST Initiative. Retrieved: 27 June 2013. Available at: http://www.nest-initiative.org/index.php/Software:About_NEST2        [ Links ]

(3) Hines M. A program for simulation of nerve equations with branching geometries. International Journal of Bio-Medical Computing 1989; 24: 55-68.         [ Links ]

(4) Hines M. NEURON - A Program for Simulation of Nerve Equations. Kluwer Academic Publishers 1993; pp. 127-136.         [ Links ]

(5) Hines M, Carnevale N. The NEURON Simulation Environment. Cambridge: MIT Press 1993. pp. 127-136.         [ Links ]

(6) NEURON. Retrieved: 27 June 2013. Available at: http://www.neuron.yale.edu/neuron/        [ Links ]

(7) Hines M, Carnevale N. Discrete event simulation in the NEURON environment. Neuro-computing in press 2004; 58-60: 117-1122.         [ Links ]

(8) Bower D. The Book of GENESIS: Exploring Realistic Neural Models with GEneral NEural Simulation System. Springer-Verlag 1998.         [ Links ]

(9) GENESIS. Retrieved: 27 June 2013. Available at:http://www.genesissim.org/GENESIS/        [ Links ]

(10) Ermentrout B. Simulating, analyzing, and animating dynamical systems: a guide to XPPAUT for researchers and students. Society for Industrial and Applied mathematics (SIAM Review) 2002.         [ Links ]

(11) XPPAUT. Retrieved: 27 June 2013. Available at: http://www.math.pitt.edu/~bard/xpp/xpp.html        [ Links ]

(12) Destexhe T. Contreras D.and Sejnowski A. Steriade A. Model of spindle rhythmicity in the isolated thalamic reticular nucleus. Journal of Neurophysiology 1989; 72: 803-818.         [ Links ]

(13) Destexhe A, Contreras D, Steriade A, Sejnowski T, Huguenard J. In vivo, in vitro, and computational analysis of dendritic calium currents in thalamic reticular neurons. Journal of Neuroscience 1996; 16: 169-185.         [ Links ]

(14) NEURON Models-ModelDB. Retrieved: 27 June 2013. Available at: http://senselab.med.yale.edu/modeldb/        [ Links ]

(15) King J, Hines M, Hill S, Goodman P, Markram H, Schürmann F. A component based extension framework for large-scale parallel simulations in neuron. Frontiers in Neuroinformatics 2009; 3: 1-11.         [ Links ]

(15) Hines M. Expanding neuron's repertoire of mechanisms with nmodl. Neural Computation 2000;12: 839-851.         [ Links ]

(17) Koch C, Gold C, Darrel A, Buzaki G. On the origin of the extracellular action potential waveform: A modeling study. Journal of Neurophysiology 2006; 95(5): 311-328.         [ Links ]

(18) Holt G, Koch C. Electrical Interactions Via the Extracellular Potential Near Cell Body. Journal of Computational Neuroscience 1999; 6(2): 169-184.         [ Links ]