The NDF File Format and Procedural Model Descriptions
The Model Container
The Model Container is used as an abstraction layer on top of a simulator and
deals with biological entities and end-user concepts instead of mathematical
equations. It provides a solver independent internal storage format for models that
allows user independent optimizations of the numerical core. By ‘containing’ the
biological model, the Model Container makes the implementation of the
numerical core independent of software implementation.
The Model Container API abstracts away all the mathematical and
computational details of the simulator. Optimized to store large models in little
memory–it stores neuronal models in a fraction of the memory that would be used
by conventional simulators–and provides automatic partitioning of the model such
that simulations can be run in parallel. From the modeler’s perspective, the
Model Container will be able to import and export NeuroML files to facilitate
model exchange and ideas.
- Covers models from the network level down to the level of mechanism. A
Perl interface converts and imports GENESIS .p and SWC morphology
files. These conversions are done on an “as needed just in time”
basis. (For example, it can reproduce an exact match with the
Purkinje Cell Model).
- Defines models in a purely declarative, extensible language.
- Keeps and maintains a conceptual ‘algorithmic’ representation of a
model, as well as an expanded representation of the model.
- Knows about biological entities like cells, populations and projections
(note that for some simulators such entities can be commands instead
of biological entities).
- Annotates the structures and concepts of the model with biological,
physical, and mathematical quantities.
- Supports setup of the most complicated mathematical solvers. In
principle, it is capable of supporting the transparent setup of multiscale
models and simulations.
- Gives different views of the same network model. These views are
visualized in the GUI.
- Knows about specific parameters vs. actual parameters, e.g. specific
membrane capacitance vs. scaled membrane capacitance. The biological
objects in the model container generally rely on the parent, children,
and siblings of the model hierarchy to infer a number of their own
- Provides for arbitrary nesting of network models, including nesting of
projections and populations.
- Allows inspection of the connectivity of a network model in an intuitive
- Stores very large models in little memory, needed for full model
inspection and automated validation (the more complicated the
model the more efficient the compression scheme–from the theoretical
perspective the compressed image scales logarithmically with the
- Can save and reload connections between components. Costly
computation of connections required to be done only once.
Extending the Model Container