As we have described above, a realistic simulation is a way of efficiently encapsulating knowledge about a neural system. Specifically, we propose to develop a database using GENESIS, the general neural simulation system that has been developed over the last eight years at Caltech, as a foundation. This simulation system already contains a great deal of information about the structure, organization, and behavior of the nervous system. Also, because the system was designed to be user extensible, new information about the nervous system is being added to GENESIS libraries constantly as modelers construct new simulations, and experimentalists provide new data. We propose to use this information as the foundation for the neuroscience database which we are constructing.
We consider GENESIS as a form of knowledge base because it encapsulates the structure, organization, and computational knowledge of the systems it models. It is also suitable as the nucleus of an object oriented database, because as described below, a GENESIS model is inherently object oriented. However, unlike conventional knowledge base systems which are popularly based on a logic-programming or rule-based system (Ullman, 1988), GENESIS is a simulation-based knowledge base system. That is, information is deduced by the execution of numerical algorithms rather than the chaining of rules in a rule-based system.
GENESIS was specifically designed to allow the construction of biological simulations at many different levels, from sub-cellular components, to whole cells to networks of cells (Bower & Hale, 1991). The ultimate objective was to provide a simulation platform that could support simulations of the nervous system at any level of detail and complexity. GENESIS uses a high-level simulation language to construct neurons and their networks in an object oriented manner. Commands may be issued either interactively to a command prompt, by use of simulation scripts, or through the graphical interface.
The design of the GENESIS simulator and interface is based on a ``building block" approach that is fundamentally object oriented. Simulations are constructed of modules/objects which receive inputs, perform calculations on them and then generate outputs. For example, models of single neurons are constructed of small compartments (Segev, Fleshman, & Burke, 1989) which in turn are linked to objects representing variable conductance ion channels. These compartments can then be linked together to form multi-compartmental neurons of any desired level of complexity (Bhalla & Bower, 1993; De Schutter & Bower, 1994a,b). Once constructed, such neurons can be linked together to form neural circuits (Wilson & Bower, 1991; 1992). Neural systems are particularly amenable to this approach because they typically consist of discrete components interacting in quite stereotyped ways and because the different simulations tend to use similar neural components, display routines, numerical integration routines, etc. A particular simulation is set up by writing a sequence of commands in the scripting language that establish 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 can specify a sophisticated simulation.
This object oriented approach is central to the generality and flexibility of the GENESIS system (Bower & Hale, 1991). For example, this modularity means that it is possible to quickly construct a new simulation or to modify an existing simulation by inserting different simulation objects from the existing library of standard simulation components. In this way, individual modules or linked assemblies of modules (such as compartments with channels, entire cells, or networks of cells) may be easily replicated. Each object manages its own variables and objects communicate with one another through message passing. This makes it easy to extend the simulator by writing new modules without the necessity of making changes to existing modules. In this way, the simulation objects available for use within GENESIS continues to grow as the system is used. This growth is reflected in the size and complexity of the libraries of GENESIS objects and simulations that currently exist.
Current GENESIS libraries are quite extensive and have been contributed to by researchers from all over the world. As such, they represent a continuously expanding detailed description of the nervous system. GENESIS libraries can be divided into two types, those that contain whole simulations of cells or networks, and the smulation object libraries which contain the building blocks from which these simulations are constructed. As with the brain component libraries, these simulations contain detailed information about the organization of different brain regions.
A major focus of GENESIS development has been on its graphical interface (Uhley et al., 1990; Bhalla, 1994) which allows neurobiologists to navigate through the complexities of the GENESIS system. The software that has been developed, refered to as XODUS (X-based Output and Display Utility for Simulators) has been intimately incorporated into the GENESIS system itself and allows modelers to interactively set up and control the simulation as well as display simulation results. XODUS was designed to be highly interactive both in setting up, parameterizing, running, and evaluating simulations.
From the outset, the education of neurobiologists in the use of simulation tools has been a major focus of GENESIS development. Several complete demonstration simulations have been constructed to illustrate the properties of single cells and parts of cells, through simple neural circuits, to large networks of neurons. A textbook guide to the use of the tutorials as educational tools is being used in many neuroscience and pre-medical courses (Bower & Beeman, 1994). These tutorials are used by other researchers as a starting point for the construction of their own simulations, as well as for undergraduate and graduate teaching.