As computational neuroscience in particular and computational biology in general continue to expand, simulator flexibility and adaptability will be increasingly important. Unfortunately, most current simulators have been constructed by either single individuals or a restricted group of insiders and therefore are limited in their scalability and adaptability. While, the scripting language interface of most neuronal modeling platforms generate highly efficient simulations, neither simulations nor the platform are easy to modify or extend. The primary reason is that the basecode for these simulators does not cleanly separate into its underlying components, thus reducing the scalability of the software. This results in increasing difficulty in the addition of more modern interfaces and new simulator functionality, alternate script parsers, or the implementation of different, field specific, interfaces including those facing the world wide web . In this presentation we will describe an architecture we have developed within the Computational Biology Initiative (CBI) in San Antonio that was specifically designed to allow for simulator scalability. The CBI architecture is the basis for the third generation of the GENESIS simulator (GENESIS 3.0).
The CBI architecture provides a modular paradigm that places stand-alone software components into logical relationships. The distinguishing feature is a back end that comprises numerical solvers rather than relational databases. Data layers correspond to high-level data associated with biological concepts and extend to low level data such as numerical values. The benefit of this data layering is that it distinguishes and separates the mathematical and biological components of a model.
Simplification of model development and simulation
Clear delineation of functional modules within the software architecture allows developers and users to contribute to a single component with limited complexity, instead of being forced to contribute to the tremendous complexity of a whole simulator. Within the CBI paradigm each software component is self contained running independently within the simulation platform. This facilitates the interoperability of software originating from different sources by: 1. reduced complexity of software modules compared to a unitary system, 2. Simplified documentation of modules in terms of inputs and outputs, 3. Easy incorporation into or removal of modules from a simulator run-time as required, 4. Simplified development and testing of components as stand-alone modules, and 5. Clear delineation of scope for new module development.
The CBI architecture provides three significant advantages for software development: 1. Modules can be run separately on different machines, 2. Decomposition of a model into multiple software components allows reuse and extension of individual components, clearly facilitating model development and research progress, and 3. Individual modules can be independently updated, enhanced or replaced as needed, providing for a much longer life-cycle for the simulation platform.
In addition to the overall architecture, we will present instances of specific models running on this new system.
We acknowledge D. Beeman, Z. Wang, and M. Rodriguez for discussion and comment.