Human brain is one of the most complex systems that we have ever come across. Despite valuable contributions of neurosciences, our knowledge of this system is very limited. Creating a model that can effectively describe the brain is a big challenge in itself. Also, we know that the brain is organised in various levels—from the sub-cellular process to the overall system. These levels are not mutually-exclusive but interdependent. Analysing the behaviour of such a system is a major challenge. The brain constantly interacts with the real world, perceives and behaves in real-time. This further increases the complexity of the brain.
iqr is a multi-level neuronal simulation environment that helps meet these challenges. All challenges are converted into requirements and transformed into core elements of the simulation environment itself. iqr is implemented in C++, using the Qt widget set. The code of iqr is publicly accessible under GNU general-public licence (GPL).
Take the case of any simulation software. Its design is made keeping in mind the best approach to understand the system under consideration. iqr is not different. It is developed with two main design considerations.
First, the software is developed for large-scale neuronal systems with connectivity between neurons, more important than detailed models of neurons itself.
Second, the high-speed neural simulations should be able to control real-world devices (robots) in real-time. The interfacing should be made available to a large number of hardware devices.
Independent of the activity, elements in the model are updated in a pseudo-parallel way. Instead of going for the conventional method of approximation of differential equations, computations are based on difference equations.
iqr has come up with a lot of user-friendly features for helping designers model large-scale systems that can accommodate thousands of neurons. “The ease of integration with hardware to build systems with neuronal network and the unique framework to define connectivity between the two groups of neurons are some of the features that make this software unique,” says Ulysses Bernardet, the main developer of this software. Let us take a look at some of the features of iqr.
Designing complex neural models graphically. iqr has a very powerful graphical user interface (GUI) with which one can design the system, control the running of simulation and change parameters at run-time. Models in iqr are organised in three levels: the top-level is the system comprising an arbitrary number of processes, which in turn consists of an arbitrary number of groups. The user can easily select a new element in the design from the browser on left side of the main window. Since connectivity is one of the major design considerations, the tool provides very flexible, easy-to-use and compact methods to ensure connectivity.
Monitoring, analysis and storage of data. Monitoring and analysis of data in various elements in the model is very easy in iqr. Frequency and duration sampling is included in data-acquisition. The data sampler helps the user save the state of selected elements. Models in this tool are stored in a format based on XML standard, and can thus be transformed to a wide range of other description grammars for neuronal models.
Predefined interfaces to hardware devices. There is a wide range of predefined interfaces to hardware devices in iqr. Modules can run synchronised or in their own thread, independent of the updated speed of the main simulation. The main predefined interfaces include modules to control Khepera and Koala robots, Lego MindStorms and blimp robots.
Changing model parameters at run-time. The possibility of changing model parameters at run-time helps the designer analyse responses of the system in various test cases and allows him or her to come into conclusion about the behaviour of the system.
Projects using iqr
A large number of projects have made use of this excellent tool for neural simulation. iqr was used for building distributed adaptive control (DAC) series of models. In this project, a mobile robot could form associations about colour patterns during the exploration of an arena. Robots can precisely travel to target locations with the help of memory.
We can also make use of iqr to prepare models of classical conditioning. For example, a model of learning in the auditory cortex can be made with the help of this tool.
Synthetic insect. One interesting project using iqr is a synthetic insect. The model integrated a number of subsystems such as decoding celestial information into a heading direction signal, efficient and biologically-grounded storage of allo-centric information on distance and direction travelled, decoding of memory and computation of home vector, stabilisation of the course based on optic flow, prioritisation of actions and behaviour regulation.