This repository hosts the User Interface for NetPyNE. NetPyNE is a python package to facilitate the development, parallel simulation and analysis of biological neuronal networks using the NEURON simulator.
Select one option to install the NetPyNE User Interface.
If you are familiar with NEURON and have already NEURON installed in your machine you can proceed using Pip. If you want a container which comes with everything preinstalled including NEURON you can use the Docker image. Using docker you will still be able to mount a local folder which will be your NetPyNE workspace. If you don't have docker installed in your system and you have had troubles installing it you can opt for the Virtual Machine installation.
We recommend the use of a new python 3.7 virtual environment. Currently, NetPyNE-UI only supports Python 3.7, but that can change in the future.
For NetPyNE-UI, the preferred way of creating a virtual env is to pass by conda/miniconda or mamba/micromamba.
The pyenv tool can be also used, but it requires to be compiled with some special options to have NEURON running properly the simulation using nrniv
.
The reason behind this is that NEURON is distributed as a Python wheel with a specific option which force NEURON to look for the CPython dynamic lib.
However, pyenv by default installs the static version of the CPython lib, resulting in nrniv -python
not being able to run.
The way of creating the virtualenv using (mini)conda is the following
conda create -n netpyne python=3.7
conda activate netpyne
Here is how to create the virtualenv using (micro)mamba
mamba create -n netpyne python=3.7 -c conda-forge
mamba activate netpyne
You can also directly create a virtualenv using your python3
executable, obviously if it's the 3.7 version.
python3 -m venv npenv
source npenv/bin/activate
If you want to use anyway pyenv, here is how to properly create the virtualenv and activate it.
env PYTHON_CONFIGURE_OPTS="--enable-shared" pyenv install --verbose 3.7.17
pyenv virtualenv 3.7.17 netpyne
pyenv shell netpyne
When you are in your virtualenv, here is how you can install the "basic" version of NetPyNE-UI:
python utilities/install.py
If you want to have a different version of NetPyNE or geppetto meta, you can pass the version you want to the installer:
python utilities/install.py --dev --netpyne development --geppetto development --no-test
This command will install the development
version of netpyne and geppetto and disable the tests during the installation.
./NetPyNE-UI
For debugging you can use run.py
instead
python run.py
To run the UI in dev mode, you need to run python run.py
in one terminal, and use yarn
from the webapp
folder, using node v14 (use nvm
if you need to have a different version of node than the one installed on your system):
cd webapp
yarn start
You can then navigate to http://127.0.0.1:8081/
to access the dev version of the UI.
Ensure that you have Docker installed on your system.
Build the image
docker build -t netpyne-ui .
Run the image
docker run -p 8888:8888 netpyne-ui
End-to-end tests are located in tests/deployment/frontend/e2e
. Ensure that the application is running in a blank
state, since end-to-end tests interact with the running application.
Install packages
cd tests/frontend/e2e
npm install
Start tests
npm run test
You can also use docker-compose
to run the tests. Ensure that you have Docker installed on your system.
Build the images
cd tests/deployment
sh build.sh
Run the tests
docker-compose up --abort-on-container-exit --exit-code-from netpyne-ui-e2e
NetPyNE-UI is being developed in collaboration with the Neurosim Lab. See the Wiki for more info!