NeuronC News


Many improvements have been made since the NeuronC simulator was first described in J. Neuroscience Methods in 1992.


  • The retsim retinal simulator script generates a model of a ganglion cell and its presynaptic circuit. Both interpreted and compiled versions are provided.

  • Completely compiled version of NeuronC is now available. Construction mode runs ~2-3 fold faster, and all the power of C++, and widely used math and matrix libraries is available.

  • Save and restore a simulation's state. This allows you to equilibrate a model, then save it for a later restore operation. This saves time when running repetitive models.

  • Calcium T- and L-type channels, Ca diffusion, dynamic buffering, membrane transporters, and realistic Ca currents from GHK equations.

  • GHK current equation can be utilized for any channel type.

  • The simulator runs several channel types including Markov sequential-state versions of Hodgkin-Huxley Na, Nav1.1, Nav1.6, K, KA, Kca and Ih channels. AMPA, NMDA, cGMP, and GABA ligand-gated Markov channels. Channel types contain individual data structures for unitary conductance, rate functions, temperature dependence of conductance and rates, relative permeabilities to major ions, and sensitivities to receptor ligands.

  • Synaptic and voltage-gated channel functions can implement Markov channel descriptions. Noise kinetics derived from Markov description. Synaptic, channel, and photoreceptor noise can originate in independent noise generators to maintain the same noise waveshape when you change the neural circuit. Synapses can be controlled calcium concentration, allowing a presynaptic terminal's release to be defined by any calcium channel type.

  • Photoreceptors have adaptation through feedback from calcium. The photoreceptor spectral sensitivity functions have second-order interpolation from sensitivity tables and turtle cone functions (default=primate). Photoreceptor kinetics can be varied, and their state can be stored and recalled to save on equilibration time. Stimuli and optical blur can be generated at any scale (default=1 um) to allow very fine resolution.

  • The stimulus generator can create spot, bar, grating, gabor, or concentric stimuli. Transparency and masking allow combinations of stationary objects and motion. Stimuli can be in any wavelength and with any blur or scatter function. Point-spread functions for the human eye at 2 and 5.8 mm pupils are included.

  • The simulator generates realistic images of neural circuits using the "povray" ray tracer, and movies of the spread of voltage or calcium in neural circuits, and can display them at a variable rate for careful study.

    Feb, 2018 addition:

  • The model of channel-rhodopsin-2 from Williams et al (2013) has been added. This model is one of the most complete models of channel-rhodopsin. It can be run with or without noise properties. It shows adaptation from bright photopic (daylight) light levels, and qualitatively matches channel-rhodopsin in transgenic mice.

  • Dec, 2017 addition:

  • The model of mouse rod phototransduction from Invergo et al (2014) has been added. This model is one of the most complete models of rod phototransduction and contains 96 differential equations. It shows adaptation well into photopic (daylight) light levels, and qualitatively matches transgenic knockouts of the transduction cascade.

  • Dec, 2016 additions:

  • Several new random number sequence generators have been added, a) Mersenne Twister, b) Tiny MT, c) Taus113. Each of the random sequence generators has its advantage. They can all be started at different points in their sequences with a seed, which can be set constant or can change automatically with each job. The original Taus sequence (from GSL) is the fastest, with a sequence length of 2^88 (10^26), Taus113 is almost as fast with a sequence length of 2^113 (10^34), the Mersenne Twister has a very long sequence (2^19937) and is almost as fast as Taus113, and TinyMT is a little slower, but can generate many different sequences.
  • A model of CICR has been added, which is important for some synapses because it can produce extra gain. Several new channel types have been added (NMDA, GABA, CYCG). A new method for fitting models to data has been added. Called "modelfit", it allows multi-stage Levenberg-Marquardt fitting (Stincic et al., 2016).

    2014 additions:

  • Previously only Ca channels used the GHK current equation. Now any channel type, both voltage-gated and ligand-gated, can utilize the nonlinear GHK equation, based on ionic gradients set from the overall defaults, or gradients specifically defined for the channel type, or gradients defined for the specific channel.

  • An expanded least-squares model fitting program has been added. It is called "modelfit", and uses the Levenberg-Marquardt algorithm for fitting. It runs the simulator, either "nc" or "retsim" and provides a command line with parameters selected by the LM fitting algorithm. Up to 12 parameters can be fitted, each limited (if wanted) to a specific range. The output of the simultor is correlated with a template that selects which part of the output to compare to the original data. A simple program is included to create templates that can be edited with a text editor. To increase fitting speed, the modelfit program can run in parallel on several processors or computers in a network (using Mosix job tasking).

  • Mar, 2013 additions:

  • Cooperative calcium control of synaptic release added, allowing Ca flux to control release through a power function.

    June, 2009 additions:

  • 2D Levenberg-Marquardt least-squares fitting further developed, allowing compiled version to quickly fit a user-defined function to a set of data points. Constraints on the values of the points can be set. An example difference-of-Gaussians fitting procedure is included.

    Feb, 2008 additions:

  • Levenberg-Marquardt least-squares fitting added, allowing either interpreted or compiled version to quickly fit a user-defined function to a set of data points. Constraints on the values of the points can be set.

    July, 2007 additions:

  • Retsim extended by M. Schachter with C++ classes to provide flexible interface for defining channel properties.

    Oct, 2006 additions:

  • Completely compiled version of NeuronC, runs exactly the same as interpreted version, with slightly different syntax. Construction mode runs ~2-3 fold faster, and all the power of C++, and widely used math and matrix libraries is available.

    "Retsim" retinal simulator generates a model of ganglion cell and its presynaptic circuit. Both interpreted and compiled versions are provided.

    Feb, 2006 additions:

  • simulator state save, restore

    August, 2005 additions:

  • synaptic release can be controlled by calcium
  • input and output streams defined for C++ standard library, allowing simulator to be run without command line. Precursor to multi-platform graphics.

    April, 2005 additions:

  • Nav1.8, Markov channel type added.

  • Vid can create movies with variable interval.

    Jan, 2005 additions:

  • Line editor added to allow interactive editing.

    Oct, 2004 additions:

  • Nav1.1, Nav1.5 and Nav1.6 Markov channel types added.

    May, 2003 additions:

  • Sine-wave, gabor, concentric sine-wave stimuli added.
  • Masking and transparency added to stimuli.

    Nov, 2002 additions:

  • Arrays can be passed (by reference) into procedures and returned from functions. Many operators work with arrays of numbers and strings. Arrays can be initialized in several ways.
  • Pre-processing of scripts with CPP to allow macros to modify the basic simulator script language.
  • Scatter and blur functions for stimuli improved. Several point-spread functions added for the cat and human eye, including human for 2 mm and best-refracted 5.8 mm pupil.

    Jan, 2001 additions:

  • Synaptic transfer function can include dynamic auto-regulation by the "readily releasible pool".
  • Multiple traces can be assigned to each separate plot. Each plot can have its size assigned. Plots can be labeled.
  • Multiple presynaptic and postsynaptic mechanisms can be assigned to each synapse.
  • Any function may be directly plotted.
  • Stochastic search simulated annealing curve fitter to find the best-fitting model to a template function.

    June, 2000 additions:

  • All channels are defined at 22 deg C to allow standard application of temperature coefficients.
  • Function that returns the minimum distance between two neural elements.
  • Tapered cables.

    December, 1998 additions:

  • Dynamic calcium buffering.
  • Default unitary conductance for each channel type.
  • Temperature dependence of unitary conductance, Ca pump, Ca exchanger, Ca buffering.
  • Markov channel types for postsynaptic mechanism.
  • Multiple neurotransmitter types, affinity for postsynaptic receptors.
  • Permeabilities of channels to major ions.
  • Use of GHK current equation to define Ca currents.
  • Use of GHK voltage equation to define reversal potential for Na, K, and Ca channels.
  • Membrane voltage offset generated optionally by external Ca concentration (surface charge effects).
  • Johnson noise with independent random noise generator for each compartment.

    October, 1998 additions:

  • Membrane channel definition code improved to simplify adding new channel types.
  • Na type 2 channel from Vandenberg and Bezanilla, 1991.
  • AMPA, NMDA, cGMP, and GABA Markov channels.
  • Integrate-and-fire Markov channel.
  • Number of shells in Ca diffusion model can be varied.
  • Weighted neurotransmitter action for multiple ligands.

    July, 1998 additions:

  • Set Q10 for Na channels = 2 (instead of 3 for K chans).
  • Corrected ion current in Ca-Na exchanger.
  • Modified KA kinetics to be more like Fohlmeister & Miller (1997)
  • Tapered cables.
  • Function to return 3D distance between 2 neural elements.

    April, 1998 additions:

  • Sequential-state versions of Hodgkin-Huxley Na and K channels, KA, Kca, Ih channels.
  • Sequential-state channels can produce Markov state noise with noise kinetics set by rate functions.
  • Synaptic vesicle fluctuation noise is set by Poisson function with optional refractory period.
  • Synaptic vesicle noise can be set by Gamma function for more regularity.
  • Synaptic and Hodgkin-Huxley channels can produce 2-state Markov noise with Lorenzian rolloff frequency.
  • Synaptic temporal filters can be low-pass or high-pass with arbitrary order and time constants.
  • Postsynaptic binding of neurotransmitter can be cooperative (Hill coeff can be > 1)
  • Postsynaptic second-messenger cascade can include sign inversion and threshold nonlinearity.
  • Photoreceptor sensitivity functions include turtle cone spectral sensitivities.
  • Photoreceptor spectral sensitivity functions include second-order interpolation.
  • Simulation language contains array operators +, -, *, /, print

    July, 1997 additions:

  • Voltage-gated gap junctions with optional rectification.
  • Photoreceptor impulse response duration can be set faster or slower.
  • State of photoreceptors can be saved and restored for fast equilibration.
  • Drag'n drop NeuronC files and commands with 'xfm' and 'tkdesk'
  • Stim file can be compressed with gzip.
  • Simulation language includes local dynamically allocated arrays.
  • Simulator includes DOS version.
  • Simulator can be run as subroutine from standard C program with access to simulator variables and arrays.

    Jan, 1995 additions:

  • Calcium channels, compartments, and diffusion.
  • Ca-sensitive K channels.
  • Independent noise generators for individual photoreceptors and synapses.
  • Stimuli and optical blur can be set to any scale for finer resolution.
  • 3D surfaces rendered by ray-tracing with "povray".
  • Windowed trimming of neural elements.