The conductance based model graphic editor is called G_neuron. G_neuron is intended to simulate a single neuron that can receive some connections from other neurons at chosen times and with chosen synaptic weight. G is here to recall the conductance electrical symbol, since the model implements the transmembranar currents using the Hodgkin-Huxley formalism[2]. The user acts on the model behavior by interactively adjusting the current conductances (G).
The current version (see About G_neuron in the Menu Help) implements 12 differents transmembranar currents plus 2 synaptic currents.
The currents are modeled using a simplified HH type of kinetics (e.g. see Av-Ron et al., 1991 [1]) and Michaelis-Menton type of kinetics for chemical activation/inactivation variables. For a description of this model, see Vibert et al., 1994b[6].
G_neuron allows to simulate a conductance based model (CBM) of neuron based on the Hodgkin-Huxley (HH) model (Hodgkin and Huxley, 1952 [2]). The CBM incorporates 14 different transmembrane currents. This model explicitly takes into account the Na+, K+, Ca+ +, and Mg+ + ion concentrations. The following currents are implemented in the CBM: INa, INa+persistant, ICa, It, IK, IM, IA, IAHP, IC, IH, INMDA and Ileak. A new current can be added at the C source level. The source is documented to make it relatively simple4.1. The currents are modeled using a simplified HH type of kinetics and Michaelis-Menton type of kinetics for chemical activation/inactivation variables (Av-Ron et al., 1991). The neuron editor is used to adjust the parameters of the CBM including all the ion-kinetic parameters. Noise may be added to the membrane potential. Once the parameters are tuned, they can be saved for further use.
Three integration methods are proposed: exponential (MacGregor, 1987 [3]), Euler and order 4 Runge-Kutta. All parameters of the CBM can be individually adjusted. The user interface of G_neuron is user friendly. Parameters are adjusted by moving the double dial cursors (or by typing the value), while the temporal evolutions of the membrane potential and ionic current (left part of the screen) change in real time according to the updated parameter values. A graphic submenu allows to plot any variable versus any other variable. Current and voltage clamp experiments can be simulated in order to adjust the conductance values.
Effect of drugs such as TTX and TEA can be simulated to compare the model behavior with and without the corresponding blocked channels. The postsynaptic potential are modeled using alpha functions with rise and decay time constant and amplitude as one of the two synaptic currents (I_syn_epsp and I_syn_ipsp). Synapses with glutamate release can induce an NMDA neuromodulation with a long lasting membrane modification.
Printout are produced as PosScript files automaticaly spooled on the printer indicated by the environment variable PRINT_PLOT_PS (see Output Help topic and section 3.3.1).
The man-machine interface allowing data input and interaction with the program is done through a user friendly Xwindow/Motif graphic user interface. All parameters have reasonable default values that are always at a mouse click.
Model parameters are adjusted with scale cursors or dials with an on line dynamic visual feedback on the neuron membrane potential shape and the current temporal evolution. Figure 4.1 displays the graphic interface for G_neuron. On the left part, the modeled neuron is drawn (upper part: potential, two lower parts: currents); on the right part, dials and input windows are used to adjust the parameters. Times are in ms. Neuron parameters can be saved to constitute a neuron data base, since the conductance parameters, the time constants and many other parameters can greatly vary among neuron categories.
On line help is available for most of objects on the screen, at the bottom of the left panel. More detailed help (in fact the different parts of this manual are available form the [Help][On Context] pulldown menu of the main menu bar (Fig. 4.2). Topics can be selected from the pulldown [Topics] menu. Help can be printed on the the printer defined by the PRINT_PLOT_PS environment variable (see PostScript output section).
Fourteen different currents can be used and separately adjusted.
All transmembranar currents can have their parameters adjusted separately. Since they necessitates many parameters to describe a current, these parameters are grouped in several windows.
The activation/inactivation parameters are grouped together, the equilibrium potentiel too, and only the conductance adjustment (lower dial on the right panel) and the current selection are directly available to the user. The radio box panel at the right of the lower dial allows to select a current. The dial acts only after a current as been chosen and selected by double clicking on one of the radio buttons. The radio box is in a scrolled window, and, according to the screen size, it can be necessary to move the scrolling bar to get access to the lower ones. When a current is selected, its name appears above the lower dial, and the curren conductance value appears in the input text field below the dial (see How to use dials Help topic and section 4.7.3). When pressing the [Activation/Inactivation parameters] pushbutton, the correspondant pannel is displayed (see Current parameters Help topic and section 4.2.1).
All equations used to make the simulation can be obtained by pressing the [Equation] pushbutton located on the panel used to adjust current parameters (see Current parameters (section 4.2.3) and NMDA (section 4.2.4) Help topics). Equations are given in the Appendix E.
Current activation/inactivation parameters are adjusted using a general panel of 8 input text field (see How to use input fields (section 4.7.4) Help topic)(Fig. 4.3). The 4 input text field upper row are for activation, the 4 input text field lower row for inactivation. Only some of the input fields can be presents according to the selected current. At the bottom of the panel, three graphs are visible where the evolution of the relevant parameters versus membrane potential is represented. Modifying the parameter values automatically updates the corresponding graphs.
The [Print curves] pushbutton at the bottom of the panel produces a color PostScript file (*G_unit_activ.ps) to keep a hardcopy of the graphs. Parameter values are printed together with the graph. The [Press to obtain the equation] pushbutton at the top of the panel pops up the equation used to simulate the selected current action.
The panel proposes the following parameters:
The NMDA current requires parameters differents than the other currents. This is why its parameters are grouped together in a separated panel (Fig. 4.4).
Selecting the NMDA current is done either as for other currents, or using the [NMDA] item in the [Parameters] pulldown menu of the menu bar. Since the NMDA synapses are special one, specific glutamate releasing synapse have to be installed on the soma to see the effect of the glutamate release on the NMDA receptors. This is why the NMDA panel proposes the possibility to connect NMDA synapses to the soma. The number, the time arrival and the synaptic weight can be adjusted separately for each connection (see Neuronal connections Help topic and section 4.4.3). The other parameters are:
An [Equation] pushbutton at the bottom of the panel pops up the equation used to simulate the NMDA action.
G_neuron set all variables to default initial values. These values are used each time the simulation run (automatic or manual update) (see Manual versus automatic update Help topic and section 4.3.1). These values can be modified by the user. Some constants such as equilibrium potentials can also be changed (Fig. 4.5).
Choose in the [Constants] popdown menu the [Initializations] item. This opens a panel with 12 input text fields, and choose the value to modify (see How to use input text fields Help topic).
For the equilibrium potentials modification, choose in the [Parameters] popdown menu the [Equil. pot., sp. det...] item. This opens a panel with 14 input text fields, among them several concern equilibrium potentials and others ion concentrations. Choose the value to modify (see How to use input text fields Help topic (section 4.7.4).
The simulation can be controled by several parameters. Time step and duration, integration method, manual or automatic updating, can be chosen (see Fig. 4.1).
Each time a parameter is modified, the simulation is run and the graphs are updated. When long simulations and very small time step are required, this can be a serious waste of time. This is why it is recommanded to modify all the necessary parameters and only then re-evaluate the simulation and update the graphs.
This is the reason of the option menu labeled [Update] and proposing [Automatic] (default) and [Manual] options. When [Manual] option is set, the [Update] pushbutton is set sensitive and the computation and graphics are updated only when pressing it. In this case, if the window size is changed or a window moved, the graphs are not updated, and become blanck until the next time [Update] is depressed. When [Automatic] (default) option is set, the [Update] pushbutton is set insensitive and the computation and graphics are updated each time an [OK] button (or Return hit) is done in an input field, or a dial modified, or again a window resize or move is performed.
Two input text fields (see How to use input fields Help topic) allow to set the simulation duration (defaulting to 100 ms) and the time step (defaulting to 0.1 ms). Both values can be changed at will. The left panel of the screen shows the result of the simulation using graphics (the temporal evolution of the membrane potential and the transmembranar currents). The size of the panel can be modified to expand the graph, in any direction. All other panels are scrolled windows that automatically add scroll bars when necessary to cope with small screens.
Thre integration methods are implemented in this version of G_neuron.
The exponential integration method (see Mac Gregor, Brain modeling, 1987 [3]), the default method, the Euler method and the order 4 Runge-Kutta method (from "Numerical Recipes in C", Version 2.02 [5]). The first method is more rapid, but can be less accurate when precise spike counts are required. The Euler method is more accurate, but needs smaller time steps. Prefer the more accurate (and slower) Runge-Kutta method. Choice between methods is done using the option menu labelled [Integration] and proposing [Exponential] (default), [Euler] and [Runge-Kutta] options. The current selected integration method is those currently appearing on the option menu. Note that the Euler method is valid only if the time step is equal to or less than 0.01 ms. When the Euler method is selected, the time step is reset to 0.01 ms if necessary. A message panel warns the user. Note also that the Runge-Kutta method is valid only if the time step is equal to or less than 0.025 ms. When the Runge-Kutta method is selected, the time step is reset to 0.025 ms if necessary. A message panel warns the user.
Several types of experiment can be performed: voltage or current clamp, external constant input, external neuronal inputs, background noise modification, drug action.
G_neuron allows to make simulated voltage clamp experiments where Command potential and Holding potentials can be adjusted (see Fig. 4.4).
First, choose in the menu bar the [Parameters] popdown menu and the [Simulation] item. A window will pop up to select the experiment type: Current or Voltage clamp. The default choice is the Current clamp. Select the Voltage clamp radio button, and close the window ([Close] button at the bottom of the window). Then choose in the same [Parameters] popdown menu the [PSP, noise, ...] item. The two Holding and Command potentials parameters are in this panel. The holding voltage sets the value of an imposed new "resting" membrane potential. The command potential is the potential value added to the holding potential and monitored to keep the voltage constant at the clamped value (clamped potential = holding_potential + command potential). The command potential start and stop is controlled by the start stimulation and stimulation duration input fields (see Stimulation control Help topic (section 4.4.2)). Voltage clamp experiment are only available with Exponential integration method
Stimulation can be given to the neuron. Stimulation starts at the time given in the [Start Stimulation at (ms)] scale, and its end is given in the [Stop Stimulation at (ms)] scale. Its duration is given in the [Stimulation duration (ms)] scale field. A push button allows to keep the duration fixed and to move the stimulation moment by either the beginning or the end. Scales are updated according. Its amplitude is adjusted interactively using teh upper dial in the Conductance window on the right part of the screen. The stimulus is materialised on the upper graph pannel by a sky blue line, below the membrane potential.
To see the effect of the excitatory and inhibitory synaptic conductance, it is necessary to connect other neurons to the simulated neuron. PSP can be added, or removed or modified at will. One of the panels allows to adjust the post synaptic current characteristics: time constant of the first part, called PSP attack symbolised by a double line (increasing for an EPSP, decreasing for an IPSP), time constant of the second part called PSP decay (decreasing for an EPSP, increasing for an IPSP). Time constants are in ms (Fig. 4.4).
Choose in the [Parameters] popdown menu the [PSP, noise, ...] item. The left part of the panel proposes 4 input text fields to adjust these 4 parameters (see How to use input fields Help topic). To adapt the number of synaptic buttons, choose in the [Parameters] popdown menu the [Simulation] item. Choose in the [Parameters] popdown menu the [Simulation] item. A panel pops up and allows to select the synaptic button characteristics (Fig. 4.6). The middle part of the panel proposes one input text fields to choose the number of synaptic buttons to create. When validate a corresponding set of one scale and one input field text appears in the window below the input field.
The scale at left allows to position the epsp at the correct time of arrival, while the scale at righ allows to chose the psp weight. Positive numer gives epsp while negative gives ipsp.
It is recommended to chose first the weight, and then to adkust the time of occurrence using the scale and looking at the graph. If the menu item [Option/Static update] is not selected, the graph is updated dynamically, in real time by the scale. If [Option/Static update] is selected, the update is done only when releasing the mouse button. This is necessary when computation is long (long simulation, short time step, or Runge-Kutta integration method).
It is possible to send back an epsp or an ipsp to the neuron after a spike fired. The option menu has a recurrent item [Option/Recurrent] allowing enable or disable this feature. If enable, a panel pops up to give the weight of the epsp and the delay (in ms) between the firing and the epsp.
Spike detection must be enabled to detect firing and send recurrent psp. If not, the recurrent button has no effect.
Hybrid simulations are simulation were input to the simulated neuron comes from experimental data. These one must be stored in a [.tms] file (those produced for xtms, see the chapter 10 for file format and xtms usage). The [File] menu proposes an item to select an input .tms file in which the arrival time of epsp are stored. Epsp or ipsp time occurence are read from the selected file.
Background noise can be added to the membrane potentiel to mimick the synaptic noise. The noise added is a gaussian noise whose mean and standard deviation can be chosen by the user. Choose in the [Parameters] popdown menu the [PSP, noise, ...] item. The two background noise mean and standard deviation (sd) parameters are in this panel (Fig. 4.4).
No noise is obtained by setting both parameters to 0 (their default values). Increasing the noise mean provides a constant input. Increasing the noise sd increases the noise amplitude. Generally, only the sd parameter is changed, with a mean noise of 0 (centered on the membrane potential value).
Drugs can be added to the simulated neurons. TEA that blocks the Potassium channels and TTX that blocks the Sodium channels are implemented. Practically, they simultaneously block all the concerned channels (by transiently setting to zero the corresponding conductances). Other drugs can be simulated by setting to zero the corresponding conductance(s). See the Trends in Neurosciences Supplement, TINS, 1996 [4]) to know what current is affected by what drug. A [Drugs] pushbutton at the rightmost part of the menu bar pops up a window with one option menu per drug. If set to [Yes], the drug in effect is activated and deactivated if set to [No].
Several graphic representations are available to visualy control the simulation process and the parameters adjustments.
G_neuron displays the temporal evolution of many relevant variables (membrane potential, currents, stimulus) on the left panel of the screen. These representations are permanently visible on the left part of the screen. The screen is divided onto three panels. The top panel is for membrane potential versus time representation. Simultaneously, are represented the equilibrium potential of Na+ and K+, the EPSP and IPSP reversal potential as well as the external input. The middle and bottom panels are for the different currents, plus the [Ca+ +] (see Fig. 4.1). Axis scales can be modified using the [Parameters Menu/Scales...]. A window appears where the 3 axis are adjustable separately for minimum and maximum.
Other graphs can be obtained. Any variable can be plotted versus any other variable, in order to study the relationship between any couple of parameter. When the parameters are chosen, a specific window displays the graph (Fig. 4.7) . This a two step process: first, choose what to put on X axis and what to put on Y axis and second, draw the graph. The graph can be saved and plotted as a PostScript file (see Outputs Help topic).
Choose in the [Graphs] popdown menu the [Axis choice] item. This opens a panel with a double list of all variables available for drawing. Select one in each column (Y: left column; X ridght column) and press the [Draw] pushbutton. Once this choice is done, the graphs can be obtained directly from the [Draw] item of the [Graphs] popdown menu. The panel with the graph appears then. It can be resized at will to modify the drawing appearence. To obtain a PostScript hardcopy, press the [Print] pushbutton. The window can be rescaled at will in order to choose the best representation. A pushbutton allows to produce a PostScript hardcopy of the plotted graph. The produced plot keeps the proportions set by the user by recaling the window. The printout will automatically select the way it is printed (portrait or landscape) in order to fit correctly on the page.
During the adjustment of the current parameters (see Current parameters help), the corresponding graph of the activation and inactivation versus voltage are displayed at the bottom of the window (three graphs) (see Fig. 4.3). These graphs are dynamically updated when the value of a parameter is modified. A pushbutton allows to produce a PostScript hardcopy of the displayed graphs.
Several types of outputs can be obtained: a neuron description file can be saved (and read back later), as well as PostScript files representing the membrane potential and the different currents as a function of time, or one as a function of the other. Currents' values can also be saved for further analysis.
G_neuron provides several types of graphs on screen. All can be obtained as PostScript files and printed for hard copies using the plot_ps package. They are automatically spooled and deleted. Files can be kept if the Keep PostScript pushbutton of the XNBC control panel is set.
The following graphs can be obtained:
file_name_G_unit.ps: the membrane potential and currents
file_name_G_unit_XY.ps: the XY phase plane plot
file_name_G_unit_activ.ps: the current acivity/inactivity curves
G_neuron allows to save in a file the spikes point process (the date of arrival of spikes). This allows to:
The [File] menu proposes an item to select an output tms file name.
Spike detection must be enabled to detect firing and store spike times. If not, the button has no effect.
The parameters of the neuron can be saved in a file whose extension is .G_unit. The file produced can be read back by G_neuron (and related programs, as XNBC V8 [7]) to continue the simulation later.
To read a neuron, choose in the menu bar the [File] popdown menu, and the [Read neuron] pushbutton. A file selection box will pop up to give a name. No extension is needed, it is added to the name automaticaly. If changing parameters, further savings can be done using the [Write neuron back...] pushbutton in the [File] popdown menu. It is a prudent habit to save regularly his work. If no file was read previously, and thus no name was given previously, the file selection box will pop up to give a name. No extension is needed, it is added to the name automaticaly.
To save a neuron, choose in the menu bar the [File] popdown menu the [Save neuron as...] pushbutton. A file selection box will pop up to give a name. No extension is needed, it is added to the name automaticaly. When a name has been given, the [OK] pushbutton saves the neuron. Consequently, further savings can be done using the [Write neuron back...] pushbutton in the [File] popdown menu. It is a prudent habit to save regularly his work.
When exiting, and if a parameter has been changed after the last saving operation, a message warns the user that the file was not saved, and allows to return to the program to normally save the neuron.
This feature is intended for the people using G_neuron as a neuron editor for the XNBC simulator ([7]. It allows to detect the presence of spikes using a slope criteria. This feature is necessary to produce the time series (*.tms files) to analyse the neurons behavior, and is necessary since the conductance based model has no firing threshold as it is found in the leaky integrator model. Choose in the [Parameters] popdown menu the [Equil. pot., sp. det...] item. The spike detection input field is at the bottom of this panel (see Fig. 4.4). Adjust the value in order to get a vertical purple line at the very beginning of the each spike. The value is not very critical, the parameter being robust. Normaly the value is between 10 and 30 (default: 20). Spike detection can be disabled by setting a setting a large value or by using the [Option/Spike detection] menu.
This menu and its submenu allow to be either disabled or enabled. When enable the visible marker (the purple vertical line) is drawn on the potential graph. This can be disturbing, thus the marker can be itself set unvisible or not in the same submenu.
Spike detection is necessary if time series output (see section 4.6.2) and recurrent stimulation.
Help is provided either on line at the bottom of the left panel, or using the [Help] menu allowing to browse the manula or to read the different topics directly in, without the figures.
Some values can be adjusted visually using an analog double dial, associated with an input field (see the Input field Help topic) and its 4 associated buttons. This allows to provide a value either analogically or numerically, according to the user's preference.
The name of the dial field is given above it. The external dial allows to adjust the value between the two extrema indicated at left and right extremities of the dial. The internal dial allows to adjust precisely the value.
To move the indicators, position the mouse outside of the internal dial to move the small indicator (low precision) or inside the internal dial to move the long indicator (high precision). Then click the left button of the mouse (button 1 down), the indicator will jump to the mouse cursor place, and drag the indicator to the desired position. The value is sent to the program when the mouse button is released (button 1 up). Only the place where the button is pressed or released is important. While dragging, it is not necessary to follow precisely the indicator curved path (practically, the indicator is always on the radius made by the mouse cursor and the dial center).
While dragging the indicator, the value indicated in the text field below the double dial is updated in real time, allowing to precisely control the desired value.
When reaching either the maximum or minimum, the dial sounds the bell and indicates above the input text field that the limit is reached and that you have to turn back.
As an alternative, the value can be entered by typing it directly in the editable text field associated to the dial. When a value is precisely known, this can be a more rapid and precise way to enter a value.
The left pushbutton labeled D (for Default) recalls the default value associated with this field. Generally, this is the value indicated in the field when the program starts.
The right pushbutton labeled OK validates the input and makes it available to the program. Usually (but it is dependant on the Xwindows configuration colors), when a new value is typed in the text field, the name of the input field (above it) is highlighted until the OK pushbutton is pressed or the RETURN key hit.
The two small pushbuttons labeled + and - allow to respectively increase or decrease the value. Each time the + pushbutton (or the -) is pressed the rightmost digit is increased (or decreased) by one. Pressing these pushbuttons continuously change the value slowly at the beginning and accelerates exponentially.
To enter the value manually, simply select the editable text field an type in the value. Usually (but it is dependant on the Xwindows configuration colors), when a new value is typed in the text field, the name of the input field (above it) is highlighted until the OK pushbutton is pressed or the RETURN key hit.
Only a fixed number of decimals is allowed for a given input field. If you try to enter more, a bip will sound. If an integer is asked, a bip will sound if you type a decimal point. In any case all characters except the set [0123456789.e+-] will sound the bip (as well as more than one . or sign).
The default value is predefined when the program starts, as well as the number of digits after the decimal point. These values can be modified interactively by pressing simulatenously the shift key and one of the mouse buttons while the mouse cursor is in the dial area part of the dial input widget:
Note, if the current value has no decimals, the new default will don't have decimals. Take care of putting the right number od decimals before to change the default value.
Each input is given using a specific input field4.2 and the associated 4 buttons.
The name of the input field is given above the editable text field. The left pushbutton labeled D (for Default) recalls the default value associated with this field. Generally, this is the value indicated in the field when the program starts.
The right pushbutton labelled OK validates the input and makes it available to the program. Usually (but it is dependant on the Xwindows configuration colors), when a new value is typed in the text field, the name of the input field (above it) is highlighted until the OK pushbutton is pressed or the RETURN key hit.
The two small pushbuttons labeled + and - allow to respectively increase or decrease the value. Each time the + pushbutton (or the -) is pressed the rightmost digit is increased (or decreased) by one. Pressing these pushbuttons continuously change the value slowly at the beginning and accelerates exponentially.
To enter the value manually, simply select the editable text field an type in the value. Usually (but it is dependant on the Xwindows configuration colors), when a new value is typed in the text field, the name of the input field (above it) is highlighted until the OK pushbutton is pressed or the RETURN key hit.
Only a fixed number of decimals is allowed for a given input field. If you try to enter more, a bip will sound. If an integer is asked, a bip will sound if you type a decimal point. In any case all characters except the set [0123456789.e+-] will sound the bip (as well as more than one . or sign).
Input: file_name.G_Unit
Output: file_name.G_unit, file_name_G_unit.ps,
file_name_G_unit_XY.ps,
file_name_G_unit_activ.ps
Voltage clamp is available only with exponential integration. No other known problems.