Bio-electronic engineers around the world are working on neural simulations for quite a long time. They have been sorting out ways to make a physical description of the nervous system for developing general principles of organisation, function and computation of the same. For this, they are simulating the behaviour of various brain structures like the cerebral cortex.
All researches are considered to be futile if these cannot contribute anything to the society. One question that disturbs the researchers in this area is, “Can we develop software that can program an implanted device for simulating the nervous system in individuals with neurodegenerative diseases?” GEneral NEural SImulation System (GENESIS) is an answer to this question. Let us take a look at this software in detail and an interesting case study at the end.
What is GENESIS
GENESIS is a simulation environment that enables the user to construct realistic models of neurobiological systems. We can simulate neural systems of any level of complexity, from sub-cellular components and biochemical reactions to whole cells, networks of cells and systems-level models using this tool. GENESIS allows the user to exchange, modify and re-use models or model components in the simulator. This is made possible with the help of the object-oriented approach taken by the software and its high-level simulation language.
GENESIS is implemented in C language using X-Windows system, and runs under most varieties of UNIX, including Linux. The design of the software is such that it could easily be adapted for parallel computing. An extension to GENESIS, called parallel GENESIS (PGENESIS), 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 run-able.
Why use a general simulator for neural modelling. The intention of using a general simulation system is clearly described by Dr Bower and Beeman in The Book of GENESIS. If the tool had a dedicated code for particular simulations, simulation speed and memory utilisation would have been optimal. But the processing power and speed of computers have increased over the years. The price of the memory has also decreased marginally. So, sticking to these two parameters is not an absolute necessity any more.
First, unlike in dedicated simulations, we can modify the existing code for including new components. This dramatically boosts-up the speed of modelling, which is the time-consuming part in most of simulations.
Second, model components can be shared between different simulations. If we are able to use the previously-developed-and-tested components, it can easily boost-up the speed of new simulations.
Third, general simulations can serve as a means of communication between different laboratories interested in the same system. GENESIS allows researchers to test the modelling results of other researchers working in the same area.
Beyond this, there are a lot of technical advantages, such as assurance on credibility of software core of simulations, accessibility to parallel computers, new integration techniques or graphics and some form of standardisation for model descriptions.
Let us take a look at the key design features of this tool.
Building-block approach. Simulations and the graphical user interface (GUI) in GENESIS are based on the building-block (modular) approach. Each building block performs well-defined functions (that is, receiving input, performing computations, producing output) and communicates with each other in a standardised way. The advantage of using this approach for neural simulations is that, these systems typically consist of discrete components that interact with each other in quite stereotypical ways, and more simulations use similar neural components, display routines, numerical-integration routines, etc.
The user can choose any combination of these blocks and extend the tool for a new application by adding new blocks with the help of an object-oriented design. Individual modules or linked assemblies of modules can easily be replicated.
Flexible interaction. GENESIS allows the user to input commands through Script files, GUI or using GENESIS command shell.
Script language interpreter (SLI) is the underlying level of GENESIS user interface. This interpreter has an extensive set of commands related to the building, monitoring and controlling of 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.
GENESIS has a smart GUI called X-Windows Output and Display Utility for Simulations (XODUS). Users can easily develop simulations and monitor these with the help of XODUS. The set of graphical modules present in this interface is exactly the same as that of computational modules from the user’s perspective. Just like in the case of computational modules, the user can choose the manner in which data can be entered or displayed.
Also, graphical modules ensure full power of SLI, with the provision of calling functions from the script language.