The GEneral NEural
SImulation System, GENESIS for short, started as an advanced
software application for biologically accurate neuronal modeling
in the late eighties. Today it continues to be used for neuronal
simulations but it has also been applied to various domains outside
computational neuroscience. However, with a history of over 30 years
the software architecture has become obsolete resulting in many
deficiencies such as duplicate code, no automated regression testing
Further extension of the source code proves to be extremely difficult.
One of the core problems
responsible for this situation, is that GENESIS is a monolithic
software system, implementing many different user-visible
functions.
The Neurospaces project is a development center for
software components of computational neuroscience simulators.
Some of the advantages of developing independent software
components are:
It simplifies the individual components and encourages other
developers to get involved.
It allows for separate testing of the components. More than
1500 use case tests have been
defined for the individual software components. Of course
there are also many integration tests. The regression
tester output can be found here.
Interfacing to an individual component is more simple than
interfacing to a do-all monolithic system. As an example
the compartmental solver developed for the Neurospaces
project, Heccer, can be directly connected to Matlab.
Integrating different components, gives different flavors of
the same simulator, and enhances the user experienced
consistency when constructing, exploring and running
multi-scale models.
A component based software system avoids vendor-lockin. Its
life-cycle is more smooth than that of a monolithic system,
because software components can be upgraded one at a time.
The Neurospaces project delivers many software components that
have first been developed in isolation, then possibly been integrated into a single simulator.
The core of the
important components was finished several years ago.
Software components that have been developed, include:
The Genesis Script Language
Interface: a scripting component that reads Genesis 2 scripts and
feeds them to the Neurospaces model container.
GShell: an interactive
front-end that integrates with other software components.
Heccer: a fast compartmental solver, a backend.
Neurospaces Model
Container: provides a solver independent internal and
external storage format for models.
The Exchange Module:
provides the model-container with interfaces to XML based
model descriptions such as
NeuroML.
Discrete Event System (DES): consists
of a discrete event distributor and queuer. This is used
for abstract modeling of an action potential traveling
inside an axon as a 'discrete event'. This component is
optimized for networks of realistic neuronal models that
have Hodgkin-Huxley channels and / or a neuronal morphology.
SSP: a flexible scheduler written
in Perl, to run simulations with the Neurospaces model
container and Heccer.
The Neurospaces Studio: some
tools for graphical browsing and command line usage.
The Geometry Library is a
general purpose geometry library, with some essential
geometrical operators, not commonly found in other
geometrical libraries.
The Reconstruct Interface
uses the Geometry Library to support the conversion of
contours exported by
the Reconstruct
software to the Neurospaces declarative NDF format.
The Neurospaces
Project Browser for browsing projects and inspecting
simulation results.
The Developer Package
contains the Neurospaces installer and developer tools that
have emerged from developing Neurospaces software
components.
The Configurator package
contains configuration utilities for the other tools. It is
not needed for the other tools to work properly. Rather, it
allows to set up model database and simulation servers in a
convenient way.
The Neurospaces
Workflow Automation Engine helps automating complicated
system shell tasks during the development of a software
project.
Typical examples of workflow automation are shell commands
with arguments and options that are hard to remember, to
compile source code on a build server, to convert
documentation to a web page, to flash a binary image such as
the Linux kernel to a small or embedded device, or start the
execution of command sequences in synchrony on different
virtual machines.
Allan D. Coop, George N. Reeke Jr.: The Composite Neuron: A
Realistic One-Compartment Purkinje Cell Model Suitable for
Large-Scale Neuronal Network Simulations. Journal of
Computational Neuroscience 10(2): 173-186 (2001)
explains the capabilities of the Dash compartmental solver.
George N. Reeke Jr., Allan D. Coop: Estimating the Temporal
Interval Entropy of Neuronal Discharge. Neural Computation
16(5): 941-970 (2004))
H. Cornelis and E. De Schutter, Neurospaces parameter handling,
Neurocomputing 58-60: 1079-1084 (2004)
http://www.tnb.ua.ac.be/publications/pub081/CornelisNC04.pdf
Explains algorithms that allow (1) to access models in an
intuitive way, and (2) to optimize the memory use of
Neurospaces. The latter is actually a preparation of
partitioning algorithms for large models, see below.
H. Cornelis, Examining Neuronal models with Neurospaces studio
(poster presentation at Wam-bamm 2006).
Hugo Cornelis, Huo Lu, Angelica Esquivel and James M. Bower,
Modeling a single dendritic compartment using Neurospaces
and GENESIS-3 (poster presentation, CNS 2007).
Reports about a multi-scale computational neuroscience
project, using tools of the Neurospaces project.
Hugo Cornelis, Huo Lu, Julia S. Georgi and James M. Bower,
Comparative computational study of cerebellar Purkinje cell
form and function (poster presentation, Society for
Neuroscience Meeting, November 2007).
Reports about a project that compares the passive electrical
properties of Purkinje cells of 5 different species. In
total 120,000 simulations were run in about four weeks of
time. The Neurospaces project browser was crucial to run
and manage the simulations, analyze the results, and
visualize color-coded representations of the morphologies.
Hugo Cornelis, Michael Edwards, Allan D. Coop, James
M. Bower: The CBI Architecture for Computational Simulation
of Realistic Neurons and Circuits in the GENESIS 3 Software
Federation (poster presentation, Computational Neuroscience
Meeting, July 2008).
Establishes the relationships between the CBI architecture,
the GENESIS 3 neuronal simulator, and the Neurospaces
project.
Hugo Cornelis, Allan D. Coop, James M. Bower: The
Neurospaces Project Browser in the GENESIS 3 Software
Federation: Design and Targets (poster presentation,
Computational Neuroscience Meeting, July 2008).
Documents the capabilities of the Neurospaces project
browser, the interfaces, the file distribution mechanisms.
James M. Bower, Hugo Cornelis, Rachael Wilcox: Comparative
Evolutionary Computational Analysis of Cerebellar Purkinje
Cell Structure and Function (poster presentation,
Computational Neuroscience Meeting, July 2009).
Allan D. Coop, Hugo Cornelis, Armando Rodriguez, James
M. Bower: Using GENESIS 3 for single neuron modeling (poster
presentation, Computational Neuroscience Meeting, July
2009).
Documents the capabilities of the GENESIS 3 simulation and
documentation systems.
Allan D. Coop, Hugo Cornelis, Fidel Santamaria: Dendritic
excitability modulates dendritic information processing in a
Purkinje cell model
Frontiers in Computational Neuroscience, 30 March 2010
https://www.frontiersin.org/articles/10.3389/fncom.2010.00006/full
A paper that uses the GENESIS 3 simulation system to
conveniently run thousands of research simulations with the
project browser.
Hugo Cornelis, Armando L. Rodriguez, Allan D. Coop, James M. Bower: Python as a
Federation Tool for GENESIS 3.0 (January 20, 2012).
Documents the use of the Python programming language to
establish the CBI as a open and federated software
architecture.
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0029018
Hugo Cornelis, Allan D. Coop, James M. Bower: A Federated
Design for a Neurobiological Simulation Engine: The CBI
Federated Software Architecture (January 5, 2012).
https://journals.plos.org/plosone/article?id=10.1371/journal.pone.0028956
Documents the philosophical underpinnings, the design and
the architecture of a Neurospaces based simulator.