GENESIS (the GEneral NEural SImulation System) is a general purpose software
platform that was developed to support the biologically realistic simulation
of neural systems, ranging from subcellular components and biochemical
reactions to complex models of single neurons, simulations of large
networks, and systems-level models. The object-oriented approach taken by
GENESIS and its high-level simulation language allows modelers to easily
extend the capabilities of the simulator, and to exchange, modify, and reuse
models or model components.

Purpose and Modeling Philosophy

GENESIS (the GEneral NEural SImulation System) was designed as an
extensible general simulation system for the realistic modeling of
neural and biological systems, based on the known anatomical and physiological
organization of neurons, circuits and networks (Bower, 1995; Bower and Beeman, 1998).
Thus, single cell models in GENESIS usually include dendritic morphology and a variety of
ionic conductances, whereas realistic network models attempt to duplicate
known efferent and afferent projection patterns. Models of this type at all
levels of analysis require that finer scale single components be linked
together into larger structures whose emergent behavior is then predicted
numerically.

Thus, from the outset, the design of GENESIS has been premised on the
assumption that advancement in understanding neural function requires the
ability to build computer models based on the actual anatomy and physiology
of the nervous system itself (Bower, 1992; 2005). Further, both the software
design and support for the GENESIS project has assumed that such a system
should

support the construction of models at many different levels of scale from sub-cellular to systems (Thus GENESIS was the first broad scale modeling system in computational biology);

be organized in such a way as to allow modelers to continue to develop and share model features and components;

have minimal dependence on any particular computer (Our commitment to Unix, C and open graphics standards has facilitated very broad-based use of the system);

include a graphical interface that supported users with a range of computer expertise (thus the success of GENESIS is engaging real neurobiologists in modeling);

for success, have to foster and support the educational use of the system to build modeling expertise within the neuroscience community (thus, GENESIS has been involved in many international courses in computational neuroscience, and the project has supported use of the system in university courses at both the graduate and undergraduate levels); and

have to commit considerable time and resources to user support (accordingly, GENESIS was the first computational modeling effort to make extensive use of the World Wide Web).

History

GENESIS was originally developed in the laboratory of Dr. James M. Bower at
Caltech. From the beginning, it was designed for large realistic network
simulations, such as the Wilson and Bower (1992) piriform cortex model. The
system was first released in June of 1988 in association with the first
annual Methods in Computational Neuroscience Course at the Marine Biological
Laboratory in Woods Hole, MA and then released to the public in July 1990.
Since then, there have been many subsequent releases that reflect the
continuing development of the simulator. The current release of GENESIS and
PGENESIS (ver. 2.3, March 17, 2006) is available from the GENESIS web site:
http://www.genesis-sim.org/GENESIS/.

GENESIS was designed so that it could be easily adapted for use on parallel
computers. Parallel GENESIS (PGENESIS) is an extension to GENESIS that runs
on almost any parallel cluster, SMP, supercomputer, or network of
workstations where MPI and/or PVM is supported, and on which serial GENESIS
itself is runnable. It is customarily used for large network simulations
involving tens of thousands of realistic cell models, or for parameter
searches in which many simulations are run simultaneously with different
parameter values.

Features

Overview of GENESIS

GENESIS is an object-orient simulation system in which simulations and their
Graphical User Interfaces are based on a "building block" approach.
Simulations are constructed from modules that receive inputs, perform
calculations on them, and then generate outputs. Model neurons are
constructed from these basic components, such as compartments. and variable
conductance ion channels. Compartments are linked to their channels and are
then linked together to form multi-compartmental neurons of any desired
level of complexity. Neurons may be linked together to form neural circuits.
This object-oriented approach is central to the generality and flexibility
of the system, as it allows modelers to easily exchange and reuse models or
model components. In addition, it makes it possible to extend the
functionality of GENESIS by adding new commands or simulation components to
the simulator, without having to modify the GENESIS base code.

GENESIS uses a high-level simulation language to construct neurons and their
networks. Commands may be issued either interactively to a command prompt,
by use of simulation scripts, or through the graphical interface. A
particular simulation is set up by writing a sequence of commands in the
scripting language that creates the network itself and the graphical
interface for a particular simulation. The scripting language and the
modules are powerful enough that only a few lines of script are needed to
specify a sophisticated simulation. The principal components of the
simulation system and the various modes of interacting with GENESIS are
illustrated below.

Figure 1:

The underlying level of the GENESIS user interface is the Script Language
Interpreter (SLI). This is a command interpreter similar to a Unix system
shell with an extensive set of commands related to building, monitoring and
controlling simulations. GENESIS simulation objects and graphical objects
are linked together using the scripting language. The interpreter can read
SLI commands either interactively from the keyboard (allowing interactive
debugging, inspection, and control of the simulation), or from files
containing simulation scripts.

The GENESIS Simulation Engine consists of the simulator base code that
provides the common control and support routines for the system, including
those for input/output and for the numerical solution of the differential
equations obeyed by the various neural simulation objects.

In addition to receiving commands from the SLI and the GUI, the simulation
engine can construct simulations using information from data files and from
the pre-compiled GENESIS object libraries. For example, the GENESIS cell
reader allows one to build complex model neurons by reading their
specifications from a data file, instead of from a lengthy series of GENESIS
commands delivered to the SLI. Similarly, network connection specifications
may be read from a data file with the fileconnect command.

The GENESIS object libraries contain the building blocks from which many
different simulations can be constructed. These include the spherical and
cylindrical compartments from which the physical structure of neurons are
constructed, voltage and/or concentration activated channels,
dendro-dendritic channels, and synaptically-activated channels with synapses
of several types including Hebbian and facilitating synapses. In addition,
there are objects for computing intracellular ionic concentrations from
channel currents, for modeling the diffusion of ions within cells (e.g.,
concentration pools, ionic pumps, and buffers), modeling biochemical
reactions, and for allowing ligand gating of ion channels (e.g., magnesium
blocking for NMDA channels).

There are also a number of device objects that may be interfaced to the
simulation to provide various types of input to the simulation (pulse and
spike generators, voltage clamp circuitry, etc.) or measurements
(peristimulus and interspike interval histograms, spike frequency
measurements, auto- and cross-correlation histograms, etc.).

The GENESIS Graphical User Interface

The object-oriented design of GENESIS and its scripting language are among
the greatest strengths of the simulator. The ease with which existing
simulations can be modified for new purposes also extends to the graphical
user interface (GUI) for a GENESIS simulation as well.

A GENESIS GUI is implemented with XODUS, the X-windows Output and Display
Utility for Simulations. This provides a higher level and user-friendly
means for developing simulations and monitoring their execution. XODUS
consists of a set of graphical objects that are the same as the
computational modules from the user's point of view, except that they
perform graphical functions. As with the computational modules, XODUS
modules can be set up in any manner that the user chooses to display or
enter data. Furthermore, the graphical modules can call functions from the
script language, so the full power of the SLI is available through the
graphical interface. This makes it possible to interactively change
simulation parameters in real time to directly observe the effects of
parameter variations. The mouse may also be used to plant recording or
injection electrodes into a graphical representation of the cell. In
addition to provisions for plotting the usual quantities of interest
(membrane potentials, channel conductances, etc.), XODUS has visualization
features that permit such things as using color to display the propagation
of action potentials or other variables throughout a multi-compartmental
model, and to display connections and cell activity in a network model.

GENESIS also offers general purpose graphical environments for the
construction, running, and visualization of single cell models (Neurokit)
and biochemical reactions (Kinetikit) with little or no script programming.
Nevertheless, most GENESIS modelers prefer the control and flexibility that
the scripting language provides for constructing custom GUIs. These are
typically based on simple modifications of the many examples provided with
GENESIS, or with the GENESIS Modeling Tutorials package (Beeman, 2005).

The figure below shows a customizable GUI that was constructed for network
simulations. This simulation is one of the examples provided in the GENESIS
Modeling Tutorial, and consists of a grid of simplified neocortical
regular spiking pyramidal cells, each one coupled with excitory synaptic
connections to its four nearest neighbors. The example simulation script was
designed to be easily modified to allow one to use other cell models,
implement other patterns of connectivity, or to augment with a population of
inhibitory interneurons and the several other types of connections found in
a realistic cortical network.

This animated image of the network activity visualization display shows
repeating sequences from the view widget that represents the membrane
potentials for each of the cells in the network, using a cold to hot color
scale. Here, one can see propagating waves of action potentials.

GENESIS as an Educational Tool

The GENESIS project has a particular commitment to the use of simulation technology in education. GENESIS tutorials have been used for education in neuroscience and computational neuroscience in more than 50 universities around the world. "The Book of GENESIS" (Bower and Beeman, 1998) provides an introduction both to GENESIS and to its use in education and modeling, and is now available for free from the GENESIS web site. Several GENESIS-based tutorials are available at the GENESIS website, and several others have
recently been published in association with the new on-line journal, Brains, Minds, and Media
(http://www.brains-minds-media.org).

Over the last 19 years, the GENESIS project has witnessed and contributed to a major growth in the use of realistic modeling in computational biology. During this time, GENESIS use has grown until it is now one of the two most widely used modeling systems for realistic models (NEURON being the other).

User Support and Documentation

Support for GENESIS is obtained through email to genesis@genesis-sim.org,
through the Sourceforge GENESIS development site, and the GENESIS Users
Group, BABEL.

The Sourceforge GENESIS development site
contains the CVS Repository for the latest GENESIS 2 versions, as well as public forums for reporting bugs or compiling problems, and for discussing issues related to GENESIS use.

Members of BABEL are entitled to access the BABEL directories and email
newsgroup. These are used as a repository for the latest contributions by
GENESIS users and developers. These include new simulations, libraries of
cells and channels, additional simulator components, new documentation and
tutorials, bug reports and fixes, and the posting of questions and hints for
setting up GENESIS simulations. As the results of GENESIS research
simulations are published, many of these simulations are being made
available through BABEL.

The GENESIS user community comes together in an annual meeting in San
Antonio specifically focused on realistic modeling and its application to
biology (www.wam-bamm.org).

The GENESIS Neural Modeling Tutorials are an evolving package of HTML
tutorials intended to teach the process of constructing biologically
realistic neural models with the GENESIS simulator. The GENESIS Neural
Modeling Tutorials, and others from WAM-BAMM*05, have been published in
article form (both in browseable HTML and downloadable PDF format) in the
November 2005 special issue on Realistic Neural Modeling in the electronic
journal Brains, Minds, and Media (http://www.brains-minds-media.org/).

Future Growth

As the use of realistic modeling techniques continues to expand, the GENESIS project will continue to adapt and grow and serve the needs of the computational biology community. In this regard, plans are now underway for the design and development of GENESIS 3.0 which will be a major revision and update of the system. The core
simulator functionality is being reimplemented in C++, with a more
modern modular design. This will not only result in improved
performance and portability to MS Windows and non-UNIX platforms,
but will also allow the use of alternate script parsers and user
interfaces, as well as the ability to communicate with other
modeling programs and environments. The GENESIS development team is
participating in the NeuroML project (http://www.neuroml.org/),
along with the developers of NEURON. GENESIS 3 will export and
import model descriptions in a common simulator-independent XML
format. More about the plans for GENESIS 3 can be found on the
GENESIS web page, with links to the development forums and
repositories.

As evidenced by the growing use of realistic modeling techniques, and even their expansion into molecular and cellular biology, GENESIS will continue to play a role in the growth of computational biology as a whole. In a larger context, we believe that the growing use of realistic modeling techniques is essential to efforts to understand and organize the increasingly overwhelming amount of neurobiological data (Bower, 1996; 2005), Realistic models of the sort specifically supported by GENESIS are expected to increasingly provide a means to synthesize new information about the nervous system while also facilitating communication within the field.

Availability and System Requirements

GENESIS and its graphical front-end XODUS are written in C and run under
most UNIX-based systems with the X Window System, including Linux, MacIntosh
with OS/X, and Microsoft Windows with the Cygwin environment.

The current release of GENESIS and PGENESIS is available from the GENESIS
web site: http://www.genesis-sim.org/GENESIS/. The GENESIS source
distribution contains full source code and documentation, as well as a large
number of tutorial and example simulations. Documentation for these
tutorials is included along with online GENESIS help files and the hypertext
GENESIS Reference Manual. In addition to the full GENESIS distribution with
source code, precompiled binary versions are also available for Linux, Mac
OS/X, and Windows with Cygwin.
The GENESIS site also contains other information and tutorials on realistic
neural modeling in general, and modeling with GENESIS in particular.

The GENESIS project is supported by a grant from the U.S. National
Institutes of Health, the Vice Chancellor for Health Affairs of the
University of Texas System, and the U.S. NCRR.