Skip to content

MetaCell/NetPyNE-UI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

eb3b3a3 · Mar 29, 2024
Feb 28, 2024
Feb 23, 2021
Nov 14, 2023
Jan 16, 2024
Feb 22, 2024
Mar 12, 2024
Dec 20, 2023
Mar 5, 2024
Jun 20, 2022
Jul 13, 2023
Dec 16, 2020
Feb 27, 2024
Nov 6, 2018
Apr 7, 2022
Oct 20, 2023
Feb 20, 2018
Apr 18, 2022
Jul 14, 2020
Feb 19, 2018
Jul 8, 2020
Feb 14, 2024
Jan 30, 2023
Feb 14, 2024

Repository files navigation

Docker Automated buil Build Status Codefresh build status

Screenshot

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.

Install NetPyNE User Interface

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.

Pip Docker Virtual Box

Install NetPyNE User Interface from sources (for developers)

Python Dependencies

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

Run install script

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.

Start application

./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.

Run NetPyNE User Interface in Docker

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

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

Containerized tests

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

Additional Notes

NetPyNE-UI is being developed in collaboration with the Neurosim Lab. See the Wiki for more info!