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.
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
First start the server with
$ yarn start
Then open your web browser and go to https://127.0.0.1:7000/NESTInstrumentationApp
.
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
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
.