MIIND website

The Barcelona tutorial (13/07/2019)

On Monday 8 July 2017 documentation for the MIIND tutorial at CNS2019 in Barcelona will appear here. It is strongly recommended you bring a laptop, we will bring virtual machines with MIIND preinstalled, so if you can run Virtual Box or similar, you will be able to participate. If you run Ubuntu, a Debbian package will be made available, that will run faster.

drawing

MIIND: a population level simulator.

What is MIIND? It is a simulator that allows the creation, simulation and analysis of large-scale neural networks. It does not model individual neurons, but models populations directly, similarly to a neural mass models, except that we use population density techniques. Population density techniques are based on point model neurons, such as leaky-integrate-and-fire (LIF), quadratic-integrate-and-fire neurons (QIF), or more complex ones, such as adaptive-exponential-integrate-and-fire (AdExp), Izhikevich, Fitzhugh-Nagumo (FN). MIIND is able to model populations of 1D neural models (like LIF, QIF), or 2D models (AdExp, Izhikevich, FN, others). It does so by using statistical techniques to answer the question: "If I'd run a NEST or BRIAN simulation (to name some point model-based simulators), where in state space would my neurons be?" We calculate this distribution in terms of a density function, and from this density function we can infer many properties of the population, including its own firing rate. By modeling large-scale networks as homogeneous populations that exchange firing rate statistics, rather than spikes, remarkable efficiency can be achieved, whilst retaining a connection to spiking neurons that is not present in neural mass models.

Getting started

Obtaining and Installing MIIND

MIIND is currently supported on OSX and unix style operating systems. There is also a Docker image available with some limited functionality. We recommend building MIIND from source on the target machine as this affords the most customisation and guarantees all installed features are supported. However, for ease of installation, we also provide two debian packages, one with CUDA support and one without. Both have ROOT support disabled.

If you have any problems with your installation, please raise an issue ticket at https://github.com/dekamps/miind

Installing the .deb package (Admin rights required)

The debian packages can be found in the package directory of this repository. If your system has a CUDA enabled graphics card, you can choose miind_1.05-1_all_cuda.deb. Otherwise, download miind_1.05-1_all.deb. With admin rights, use apt or your preferred package installer to install miind. There are some additional python libraries which need to be installed using pip or conda:

matplotlib shapely descartes

Installing MIIND from source on linux

Once cloned or extracted, use the following instructions to build and optionally install MIIND:

MIIND dependencies

MIIND has the following dependencies which must be installed before continuing:

cmake-curses-gui g++ libx11-dev libxpm-dev libxft-dev libxext-dev binutils lsb-core libboost-all-dev libgsl-dev libfftw3-dev freeglut3-dev mesa-utils libxmu-dev libxi-dev

Python is required and the dependencies here can be ignored if you already have anaconda python3 or other version of python3 installed. However, these installations must contain scipy and tk.

python3 python3-pip python3-scipy python3-tk

To support MPI and OPENMP, the following dependencies are required:

openmpi-bin openssh-client openssh-server libopenmpi-dev

To support CUDA, the following dependencies are required. At time of writing, CUDA supports C++ 6 or earlier. Therefore, make sure that this is the version which is installed or set them as alternatives

nvidia-cuda-toolkit gcc-6 g++-6

To enable alternatives in debian:

update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-6 60 --slave /usr/bin/g++ g++ /usr/bin/g++-6

To allow ROOT support, please go to ROOT LINK and follow the installation instructions there. Python3 has additional required libraries. Use pip or conda to install the following:

matplotlib shapely descartes

Finally, the MIIND installation needs to know the location of Python.h in your chosen python3 installation. Add the location of Python.h in your chosen python3 include directory to the environment variable CPLUS_INCLUDE_PATH.

Configure and Install MIIND

Open a new terminal and set the current working directory to the root miind directory (We will refer to this as MIIND_ROOT). Create a new directory called build Change your current working directory to MIIND_ROOT/build Call cmake .. You will be presented with the options menu as shown in figure blah Set the property CMAKE_BUILD_TYPE to Release The following build options should be set to ON if they are available on your system: ENABLE_CUDA ENABLE_MPI ENABLE_OPENMP ENABLE_ROOT Allow cmake to fully configure by repeatedly pressing c to configure and checking for errors. If you encounter an error check that all dependencies have been satisfied. Once you are able to do so, generate and exit. If you have admin rights, we recommend that you call make install which will install MIIND to system directories. Otherwise, simply call make and MIIND will be built in place.

Some environment variables must be set up to enable MIIND to function correctly. We recommend adding these to your persistent user preferences (eg .bashrc). If MIIND was installed with OPENMP enabled, set OMP_NUM_THREADS to the number of available cores. If MIIND was built using make install, add /usr/local/share/miind/python to your PATH and to PYTHONPATH. Otherwise, if MIIND was built using make in MIIND_ROOT/build directory, add MIIND_ROOT/python to PATH and PYTHONPATH.

Installing the MIIND Docker

The MIIND docker image can be found at hughosborne/miind on dockerhub. Currently, CUDA and the OpenGL display functionality are not supported in this version due to difficulties with the need for graphics card drivers in docker. The docker image is based on the ubuntu linux distro. Log in to dockerhub within docker. You must have a dockerhub account to do this. docker login Pull the latest version of the miind image. docker pull hughosborne/miind:latest Create a new container (eg named MyMiind) and open a bash shell. docker run -it --name MyMiind miind /bin/bash To open the container again later. docker exec -it MyMiind /bin/bash

Basic Functionality Tutorial (As seen in CNS 2019)

The CNS Tutorial Materials.

Gallery

Single Population: Fitzhugh-Nagumo (Grid method)

Izhikevich

Replication of Half Center Central Pattern Generator