miind main page

Multiple Interacting Instantiantions of Neuronal Dynamics

MIIND

MIIND goes PYTHON

miind_0.05 released (17 July 2009)

Some of the functionality of DynamicLib and PopulistLib are now combined in a single Python module. We have provided some working examples, but the documentation is still patchy. Please let us know what you want do with an email to: miind_general@lists.sourceforge.net what you want to do and we can provide directed assistance. Networks of nodes governed by Wilson-Cowan equations and population density equations can now also be created in and run from Python. See the Python pages on the WIKI for more information.

MIIND mailing list

Is available: miind_general@lists.sourceforge.net

MIIND on CNS2009

MIIND will be presented on the Computational Neuroscience 2009 Conference in Berlin. The poster is here.

MIIND is a collection of C++ libraries which are used in cognitive neuroscience modelling. They are aimed to solve specific problems, rather than to provide a complete framework 'for modelling the brain'. A modeller can pick a specific subset of modules that suits his or her needs, without being forced into a specific tradition of modelling. The reasons for developing the different parts of MIIND are described in the Philosophy of MIIND.

The following libraries are available:

  • SparseImplementationLib, a library for building, representing and serializing sparse irregular networks. Many networks in biology and other natural sciences are sparse and irregular. Even if what happens at the nodes may greatly differ from case to case, the way in which networks are built, written to disk and in which they represent information is often remarkably similar. C++'s template mechanism makes it possible to implement many network functions without knowing what the nodes or the links represent.
  • DynamicLib, is a very generic way for solving large coupled systems of equations. These equations can be coupled systems of differential equations, partial differential equations or whatever. Key idea is that is that the coupling in many cases can be described in terms of a sparse network. This library builds on top of SparseImplementationLib. Examples in cognitive modelling are large sets of coupled Wilson-Cowan equations, but more complex systems using systems of coupled Fokker-Planck equations also have been explored.
  • PopulistLib contains algorithms which are based on population density methods. Essentially a large group of neurons is described by a probability density function. Their evolution can be described by a partial differential equation, usually a Fokker-Planck type equation. Networks of populations can be simulated efficiently and also a considerable body of analytical results exist. Cortical circuits can be analyzed at several levels: analytic, Monte Carlo simulation and population density methods. This is the only Open Source implementation of such algorithms that we are aware of. The theoretical underpinnings are described here and here.
  • LayerMappingLib. Sometimes SparseImplementationLib is not the most efficient way to represent large networks. Layered networks with a weight matrix which is translation invariant may sometimes be represented more consiely b a collection of filters which are applied to the previous layer. LayermappingImplementation is a library whch can be used for such cases.
  • ConnectionismLib doesn't really deserve the name since it only contains Backpropagation and Hebbian learning. It has been useful in some models, though.
  • StructnetLib allows the definition of artificial neural networks in terms of their spatial structure. It underlies the CLAM model.

How can I use MIIND?

We use CMake to generate project files for the platform you're using. You can build under various Unix flavours and use CMake to generate Makefiles, or generate Visual C++ project files under windows. Our WIKI describes the build process in detail. MIIND is for developers: at the moment we don't offer script languages, GUIs, or other executables. You can create a few test executables to see if the code is working, but at the moment that's it. The MIIND API does allow you to create fairly complicated architectures with relatively little effort, however, and also it makes a considerable number of sophisticated algorithms available, which are typically not available in Open Source. If you are already modelling in C++, MIIND can reduce your development time considerably in some cases.

Is it Open Source?

Yes. It is essentially a BSD license with an extra provision: cite the currently valid reference if you have used it for writing a scientific publication.

Can it be used stand alone?

Almost. You will need the GNU Scientific Library. Om most *NIX systems this will be installed or your sysad can easily do this. Alternatively you can compile your own versions, which should be within your range of skills if you're going to use MIIND anyway. Windows users can download Csaba Kiss' WinGSl. Although this is a fairly old version of the GSL, it works without a problem, at least for the features that MIIND relies on.

Those who are considering using the PopulistLib or DynamicLib are strongly encouraged to install ROOT, a powerful class library which allows efficient storage and visualization of data, among other things. It is free.

Who uses MIIND ?

MIIND is used at the University of Leeds (Marc de Kamps and students), the Technische Universität München (Melanie Dietz, Johannes Drever, Christian Osendorfer, Lorenz Mösenlechner), the Ludwig Maximilians Universität München (Volker Baier and students) and the Universiteit Leiden (Frank van der Velde, Gwendid van der Voort van der Kleij)

Will it be extended?

Yes. We now have a group of people that is using the code regularly and it is to be expected that this will help in making the code friendlier to use. At some point we definetely want to introduce GUIs and scripting but we first need more person power to invest in that. For the time being development is mainly for our own needs although we do take up bug reports and will consider feature requests.

Can I get help?

There is a WIKI and a mailing list.

SourceForge.net Logo