Skip to content

This repository hosts the development of the NESTInstrumentationApp.

License

Notifications You must be signed in to change notification settings

compneuronmbu/NESTInstrumentationApp

Repository files navigation

NEST Instrumentation App

The NESTInstrumentationApp is a graphical user interface to connect recording and stimulation devices to networks in NEST.

The app client is implemented in JavaScript, with the libraries three.js and React. The server uses a Flask microframework with NEST in a separate process. The interaction between the server and NEST is done with ØMQ, using a Python module called nett.

Dependencies

You need NEST built with Python support, and importable from Python. To run simulations directly from the app, you need the NEST developer version with tag External/TopologySelectNodes or later.

For using the LFP detector, you have to compile and install the module found in nest_lfp_module, as explained here.

The communication between the Flask server and NEST is done with the included nett module. However, using the nett module requires some paths to be added to PYTHONPATH and LD_LIBRARY_PATH. To easily add these, run

source ./nett_modules/exports.sh

Be aware that this will replace everything in PYTHONPATH, so remember to add your PyNEST path to it afterwards. Additionally, you will need the following non-standard Python modules: gevent, Flask, and Flask-SocketIO.

You also need a JavaScript package manager installed, like Yarn or npm. For brevity we will use Yarn in the examples, but if you're using npm, simply replace yarn with npm below. To run the JavaScript tests, you will also need Node.js, and for testing the Python backend, you'll need nose. For generating documentation on the Python backend, you will need Sphinx.

Inside the folder ../certs you need to generate a self-signed SSL certificate and key called fsd-cloud42_zam_kfa-juelich_de.key and fsd-cloud42_zam_kfa-juelich_de.pem.

Once you have a package manager for JavaScript, installing the dependencies for running the app is done by simply running

$ yarn

Running the App

First start the server with

$ yarn start

Then open your web browser and go to https://127.0.0.1:7000/NESTInstrumentationApp.

Running the testsuite

To run the full testsuite, run

$ yarn test_all

You can also run only the JavaScript testsuite with

$ yarn test

or just the Python testsuite with

$ nosetests

Generating the documentation

To generate the documentation, run

$ yarn doc

Documentation on the JavaScript part can then be found in documentation/javascript/index.html, while documentation on the Python backend can be found in documentation/python/build/html/index.html.