XNBC is a simulation workstation for neurobiologists developped for research purpose.
XNBC means Xwindow Neuro_Bio_Clusters. Xwindow is the unix windowing system, Neuro_Bio is for biological neurons and Clusters is for the way neurons are grouped. XNBC is thus a workstation for biological neural network simulation. This software is a kit of different complementary coherent tools created by neuroscientists who needed for their research to simulate some neural networks in order to test hypotheses.
XNBC allows to build a neural network using neurons grouped at two levels: nuclei and clusters. A nucleus is a collection of neurons. A cluster is a group of neurons sharing the same membrane properties. The nuclei and clusters can be positioned in the network according to the Horsley Clarke coordinate system (in three dimensions), and the neuroscientist can create intra and inter nuclei or cluster connections, according to his experimental protocol.
XNBC provides two neuron simulation levels: the phenomenological neuron model, which is rather simple and fast including membrane potential and threshold, and another more sophisticated model, which is slower and based on conductance variations in different ionic channels.
Five neuron (or cluster) models are actually implemented:
Neurons are grouped together into nuclei. One nucleus can include one or several neuron models (clusters). Perturbations (noise, stimulation, modulation, drugs), can be done either at the level of the nuclei or at the level of the clusters, allowing a high flexibility on the simulated experiment control.
XNBC computes the simulation results and provides different tools for the visualization and the analysis of the results.
XNBC is made of several independent tools integrated by the xnbc program that presents a control panel from which all the process can be controlled.
The XNBC simulation toolkit is thus made of several parts:
a time series analysis tool with 31 different analyzes a nucleus activity tool with 8 different analyzes
A neuron is the basic element of XNBC. It represents a neural entity that has a particular physical type, and has a specified location. It is of course a real concept. The neurons are the basis of the neural activities. Each neuron is individually simulated and has its own parameters evolution (membrane potential, ionic conductance, etc...). A neuron can share some basic properties with other neurons (we say that they pertain to the same cluster -see below-), but has its own life, different from the other neurons. Each neuron can be anatomically positioned in the 3D space if needed.
Four different ways of modeling the neurons can be chosen to describe the neuron and thus to constitute the clusters:
The concept of cluster has proven to be a very powerful concept to describe large sets of neurons and to group them. When only one cluster is used in a nucleus (see below), the cluster can be viewed as a nucleus.
The nucleus is a new concept introduced with XNBC V8.0. It is a convenience object to design a group of neurons (each belonging to a given cluster) that have the same location area, specified by a center and a radius arround this center. This concept introduces the spatial influence in the networks interactions and allows to take into account
A nucleus is constituted by several neurons. These neurons can pertain to one or several clusters, and clusters can span several nuclei (since they are only a way to describe the neuron behavior, not the neuron location). When nuclei contain only one cluster, nucleus and cluster can be viewed as equivalent (in this case, the simple network editor can be used).
Neurons inside nuclei can be connected together and to the other nuclei.
A network is made of one or several nuclei and/or one or several isolated neurons. Nuclei and neurons can be anatomicaly positioned if necessary. Nuclei and neurons are connected together by links representing the axons of constituting neurons (see below).
Neurons can be connected together. Connections can be either excitatory, inhibitory or with NMDA (long lasting excitation), or a mix of excitatory and inhibitory, called random connection. Inter neural transmission of action potentials, called interneural delay (or referred as axon length) can be adjusted, as well as the number of synaptic boutons at the axon ending, called also synaptic weight. The connection matrix can be defined either globally or individually, neuron to neuron.
Efforts were made to provide an ergonomic and user friendly user interface in order to allow neuroscientists to use XNBC without any expertise in computer sciences.
To use XNBC, the user sequentially call several programs using the control panel displayed by the main program xnbc. This control panel displays pushbuttons arranged to guide the user to perform neuron and network definition, simulations and analyses.
The very first thing to do is to choose a name for the simulation. This name will be used as a generic base name. Using this name, a directory is created with the name chosen_name_nbc in which all files created during the simulation session. This allows to isolate and keep together all related files. Then the user must sequentially
Nevertheless, the simulator itself (whose name is nbc_x, described in chapter 8) allows to control also, in the same way, all the simulation process, using pulldown menus instead of graphic pushbuttons.
These five steps are detailed below. A separate chapter is devoted to each tool.
Three models of neurons are available, an enhanced leaky integrator, a conditional burster and a Hodgkin-Huxley type model with 14 different ionic currents.
Inputs to the simulated neurons can be provided by data stored in files from actual experiments, allowing to make ``hybrid'' networks. The possibility to mix actual recorded data and simulated data allows to consider these actual data as a fourth model. The modelled neurons as well as the network are described using graphic tools.
Neuron and network parameters can be modified during the simulation, to mimick electrical stimulations and drugs action.
After simulation the temporal evolution of the network or those of selected neurons can be visualized, and point process, frequential and dynamic analyzes can be performed.
There exist two graphic editors to adjust the neuron parameters.
XNBC's PUM is derived from the classical leaky integrator implementing properties such as fatigue and post-spike membrane shunt (for a complete description of this model, see Vibert et al., 1994).
The user adjusts the parameters by sliding scale cursors on the right part of the screen, while the temporal evolution of the membrane potential changes in real time according to the parameter values on the left part of the screen.
In this models, a pacemaker behavior can be obtained with a threshold below the resting potential. A small amount of noise can be added to the membrane potential. When the parameters are correctly tuned, the user saves the unit parameters nad can print a copy of the graph (Fig. 1.1).
A classical leaky integrator model is available (LIM), with possibility to have threshold adaptation. The main difference with PUM reside in the way postsynaptic potential (PSP) are modeled (see below) (Fig. 1.2).
A conditional burster referred as a Burster Unit Model (BUM)is also available from the same neuron editor (Fig. 1.3).
In PUM and BUM, the postsynaptic potential (PSP) parameters, namely their amplitude, rise and decay time constant, depend on the membrane on which the postsynaptic receptor is, and are consequently a neuron characteristic. The three parameters can be adjusted separately. In LIM, PSPs are modeled as pulses with a decay time constant identical to the membrane time constant.
XNBC's conductance model is derived from the Hodgkin-Huxley (HH) model, and incorporates 14 different transmembranar currents. This model explicitly takes into account the Na+, K+, Ca++, and Mg++ ions. The following currents are implemented by XNBC: INa, INa + , ICa, It, IK, IM, IA, IAHP, IC, IH, INMDA, Ileak, Isynepspand Isynipsp. The currents are modeled using the dynamics of their activation/inactivation constants. All parameters of the CBM can be individually adjusted. The NMDA receptor for glutamatergic synapses neuromodulation is also implemented in this model (for a complete description of this model, see Vibert et al., 1994). The user adjusts the parameters by moving the double dials cursors (or by typing the value), while the temporal evolution of the membrane potential and ionic current (left part of the screen) change in real time according to the parameter values. A graphic submenu allows to plot any parameter versus any other parameter in order to study the dynamics of neuron behavior (Fig. 1.4). Current and voltage clamp experiments can be simulated in order to adjust the conductance values. Drugs such as TTX and TEA can be released to compare the neuron behavior with and without the corresponding blocked channels.
The postsynaptic potential (PSP) parameters, namely their amplitude, rise and decay time constant, depend on the membrane on which the postsynaptic receptor is, and are consequently a neuron characteristic. The three parameters can be adjusted separately, and are modelled as a synaptic current Isyn, according to the chosen model.
The neuron model can also be a ``virtual model'', that is, an actually recorded neuron, whose spike time arrivals are used as input on the simulated neurons or networks. This allows to build hybrid networks.
The connection matrix of the modeled network can be described using one of the two graphic network editors. According to the pushbutton selected above the network editor pushbutton (dark blue text), the simple or the full featured network editor is launched when the network editor pushbutton is pressed.
The units of one nucleus can be connected with the units of any other nucleus (including itself) through either all excitatory, all inhibitory or both excitatory and inhibitory synapses.
According to the type of network you want to build, the simple network editor can be enough, or the full featured network editor can be necessary. Figure 1.5 schematizes networks and the best editor choice.
It allows to build nuclei containing only one cluster each. It is made for rapidly build large networks made of one or several nuclei that can be mixed together (LIM, BUM, CBM or virtual). It allows to finely edit the connection matrix.
It does not allow to see individually the neurons inside the clusters, to geographically position the neurons nor to work in Horsley-Clarke coordinates. It does not allow to describe the NMDA connections.
It allows to build nuclei containing several clusters each. It is made for build small (or large if you have time...) networks made of several clusters that can be mixed together (LIM, BUM, CBM or virtual). It allows to finely edit the connection matrix and to choose the connection density around a given neuron. It is a rather sophisticated tool.
It allows to see individually the neurons and their connections inside the nuclei, and to work in Horsley-Clarke coordinates. Connections with glutamate release acting on NMDA receptors can also be specified.
Once the network is built, the simulation can be run.
It is possible to define a new arbitrarily named drug and to define which existing transmembranar current (one or several) it inactivates. Evidently, this is available only with CBM.
After the iteration step and simulation duration are set, the simulation can be run. The integration method is the exponential algorithm described in MacGregor (1987). During the simulation process, the network behavior can be observed on a graphic display representation if necessary. At any time, the simulation can be momentarily stopped in order to modify the external input to one or several nuclei, to give stimulation, drug, or change any parameter. It is also possible to modify some anatomical characteristics, such as connections between two nuclei, mimicking a lesion, or the membrane properties, mimicking pharmacological effects of drugs. The simulation can be stopped at any time, and the network state kept for later simulation.
After the simulation, the visualization tool can display the behavior of the modeled network with respect to time, using several representations with adjustable speed, color and time scale. Data have also to be analyzed.
The visualization tool is similar to a video tape player allowing to run, stop, go to a given iteration, or change the display speed. It allows to display:
Two analysis tools are available.
The original name of XNBC was Neuro_bio_clusters (NBC), developed in 1988 on a MicroVax II, under Ultrix V2. Versions 2 and 3 of NBC implemented a LIM and few analysis tools. Subsequently, beginning with version 4, NBC evolved toward a tool devoted to the general simulation of neural networks. In version 5 the CBM was introduced, and version 6 saw the arrival of the notion of virtual cluster, of a graphic network editor and of a visualization tool (Vibert et al., 1994b). NBC versions 4 to 6 were menu-driven, with only some parts using an Xwindow interface. Version 7 was the first version where the control menu was replaced by an Xwindow interface, and was consequently renamed XNBC. With version 7 began also the possibility to mix within a single simulation the LIM and the CBM (Vibert et al., 1995b). For XNBC V8, presented here, the interface was completely redesigned, including a second network editor, a new version of the ion-conductance based model editor, an Xwindow version of the simulator and the apparition of the concept of nucleus, allowing to take into account the anatomy of the modeled network. XNBC development is still in progress through close collaboration with neuroscientists.
XNBC is written in portable ANSI C, and was compiled on Ultrix, Digital Unix, IBM AIX, SUN Solaris, HP Ux, Linux and DEC VMS and OpenVMS. XNBC runs on Xwindow workstations and needs the Motif library. When possible, the GNU C compiler (gcc) should be preferred. XNBC produces generally simple ASCII data files that can be easily converted to any format required by common graphic programs or spreadsheets. It produces native color PostScript files (that can be directly used to prepare figures). XNBC is a public domain software package available freely for academic research purpose on Internet (ftp://ftp.b3e.jussieu.fr/pub/XNBC) and informations about new versions at URL http://www.b3e.jussieu.fr/logiciels/xnbc.html.
XNBC in its present version is due to the joint efforts of many peoples, engineers, neurobiologists, biomathematicians, medical doctors, and all the users that asked for the interface enhancement, and that helped to discover bugs...
Below the contributor and affiliation, is the program they contributed to.
We are pleased to thank all these peoples, as well as those that used the different versions and helped to discover bugs or gave ideas for the improvement of the user interface or the implementation of new features or related tools.
We are also pleased to thanks the DRET for it financial support (Contract 91/1246A and 94/2526A).
XNBC8 IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND. WE MAKE NO WARRANTIES, EXPRESS OR IMPLIED, THAT IT IS FREE OF ERROR, OR IS CONSISTENT WITH ANY PARTICULAR STANDARD OF MERCHANTABILITY, OR THAT IT WILL MEET YOUR REQUIREMENTS FOR ANY PARTICULAR APPLICATION. IT SHOULD NOT BE RELIED ON FOR SOLVING A PROBLEM WHOSE INCORRECT SOLUTION COULD RESULT IN INJURY TO A PERSON OR LOSS OF PROPERTY. IF YOU DO USE IT IN SUCH A MANNER, IT IS AT YOUR OWN RISK. THE AUTHORS DISCLAIM ALL LIABILITY FOR DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES RESULTING FROM YOUR USE OF THE PROGRAM.
This software is provided as an Open Sources shareware.
It was developped for academic researh purpose. Academic institutions and students can use it freely. Nevertheless, donations are welcome to help to maintain and develop XNBC. Non academic users are asked to contact the author to obtain the conditions for a commercial usage.