Ikaros Simulation Framework 1.0
Ikaros is a framework for writing and running component-based simulators.
A simulation consists of modules written in C or C++ that are connected in the simulator, with connections specified in an XML file. It runs on the console, and can optionally generate a dynamic browser-based UI with SVG for graphics generation.
There are also socket-based hooks for adding a full GUI. The package contains a number of modules and complete documentation for working with the framework.
The goal of the Ikaors project is to develop an open infrastructure for system level modelling of the brain including databases of experimental data, computational models and functional brain data.
The infrastructure will support a seamless transition from a pure modelling set-up to real-time control systems for robots running on one or several computers in single or multiple threads or processes communicating over a local network or Internet.
We will make heavy use of the emerging standards for Internet based information such as XML and will make all information collected accessible through an open web-based interface.
This infrastructure will be used within the project for system level brain modeling, but it will also be proposed as a standard for brain modeling. As a standard it will be minimally demanding allowing modelers to program in their own way while still taking full advantage of the experimental data collected within the project.
We believe that the project proposed here will radically change the way system level modeling of the brain is performed in the future by defining standard benchmarks for brain models and substantially increase the gain from cooperative research between groups.
Here are some key features of "Ikaros Simulation Framework":
· A platform independent simulation kernel
· A set of computational brain models
· A set of I/O modules for interfacing with data files and peripheral such as robots or video cameras
· Tools for building systems of interconnected models
· A plug-in architecture that allows new models to be easily added to the system
· A database with data from learning experiments that can be used for validation of the computational models.
The databases and modeling infrastructure we will develop will allow:
- Comparative studies of brain models and learning models
- Standard benchmark sets for model validation
- Easy access to a large body of experimental data and functional data
- Computer supported research through an advanced query/inference system
The target users of the databases will be:
- Modelers that can validate network structure and performance
- Educators what will get access to a large body of data in an accessible way.
The project will be divided into four main areas:
- the construction of three interacting databases with experiment data, brain connectivity data and computational models
- the construction of web-based interfaces for the three databases that allows easy access to their content both in human-readable form and as a source of simulation data
- a modeling infrastructure will be developed that will include a programming interface to the different databases; and
- the development of models of functional subsystems in the brain.
In our earlier studies of classical conditioning we have developed an extensive database of the design and results of conditioning experiments. The development of this database started in 1996 and now contains approximately 200 different experiments. The database is stored in a way that allows the experimental descriptions to be used as input to computer simulations of learning by classical conditioning. As a part of the Ikaros project, we want to extend the experiment database by adding more experiment types and by translating the database to a more accessible format.
First, we will add experiment description for other learning paradigms besides classical conditioning. This includes operant conditioning experiment as well as more cognitively oriented experiments. The goal is to cover all experiment types that are regularly used with animals and humans. We estimate that the final database will include approximately 1000 experiments.
The entry for each experiment will include all information that is necessary to reproduce the experimental conditions in a simulator or a real experiment. This includes detailed data of the stimuli used, the apparatus, the exact timing etc. It will be important to differentiate between the part of the experiment description that contains the logic of the experiment and features such as timing and spatial location that are often not essential. This will allow modelers to adapt experiments to their needs in much the same way that an experiment developed for one species has to be changed to fit another.
The database will also contain experiment descriptions in narrative form and pointers to external databases such as Medline and BIOSIS when appropriate.
To allow easy access to the experiment database, it will be coded in the XML format that is widely used for on-line data. The choice of XML for the database is natural since it allows for an evolving and continually expanding database structure. It can also be used to mediate the transfer of information from other already existing databases. Apart from translating the already existing database to this format, we will also develop tools that can be used to encode and visualize experiments through a web-based interface.
Functional Brain Database
The second database that will be developed will contain brain data in a form that is useable for system level modelers. The level of description will lie between local neural circuits and data for large regions of the type obtained through imaging techniques such as fMRI. Entries in the database will describe suggested functions for specific brain regions and interaction between areas. It will be a re-coding of experimental results and anatomical data from the literature in a way that is useful for computer assisted search and inferences.
Like the experiment database, information will be coded in XML format and have a web interface for search and data entry. It differs from the experiment database in that the query engine will be more advanced. To support searches, inference rules will be added to the database that can be used to derive statements that are supported by the entries in the database. Contrary to most automatic inference system, it is not the goal of the search engine to find true statements. Since the data is often unreliable, it must be the role of the modeler to judge whether the found inferences should be considered valid or not.
To increase the usefulness of the database it will be cross-referenced with the experiment database. This will allow inferences about experimental differences resulting from, for example, lesions. Given a network of brain areas, the search engine will return articles supporting or refuting the different interactions as well as experiments that are relevant for the network. This data can subsequently be used to validate the network model.
The size of this database will greatly depend on the level of support gained for the project.
Computational Model Database
The third database will contain executable code for the subsystems developed within the project and by other groups that adhere to the required programming interface (described below). Modules in the database are intended to model the function of specific brain regions and the standardized programming interface will make sure that they can be connected in a network. Like the other databases, the models will be available through the Internet.
Models in the database can be connected through an XML based specification language. In the extension, it will be possible to validate specification of models of the brain with the the brain database. The simulation infrastructure described below is used to reproduce experiments in the experiment database with the specified models.
Initially, this database will contain the modules developed by the group at LUCS including models of sensory cortex, early and late visual processing, amygdala, hippocampus, prefrontal cortex and superior colliculus. The database will gradually be extended with new modules developed both within the project and models suggested in the literature that will be adapted to the programming interfaced defined within the project.
Although the databases described below will be publicly available and can be used on their own, they become the most useful when they are combined with the programming interface that we intend to develop. We will define programming interfaces and parsers for the different databases, a communication protocol for modules and interactive tools for network creation and validation. The infrastructure will also contain modules that allows simulations to interface with various hardware such as video cameras and robots. For example, these will offer an easy interface to the various standards for video capture.
The goal of the infrastructure specification is to be minimally demanding for anyone developing a system module. It must be possible to learn to use it in a few minutes and must be platform independent. This is absolutely necessary if anyone outside the project is to use the interface. An overall idea is to design a programming interface that is so easy to use that the easiest way to gain access to the experimental database is to use that interface. As a byproduct, this will make any model that uses the interface conform with the requirements of the model database.
In essence, by offering an extensive training data in the form of the experimental database, we want to convince modelers to use the programming interface that allows their models to interface with other modules developed within the project. As the database of modules grows, this in itself will be an incentive for conforming to the programming interface we will define, since this will allow modelers to reuse and test modules already developed by other groups.
What's New in This Release:
· This release is compatible with OS X, Windows, and Linux.
· It includes a large number of new features, including a polished Web interface, support for multiple threads for multiprocessors systems, a new math library with support for math/vector coprocessors, and realtime functionality.
· There is also a new file format for models, IKC, which allows complex hierarchical structures to be built.