Compiling and running NEURON requires several tools; how they are installed depends on the Linux distribution.
For Ubuntu 18.04
sudo apt install libx11-dev git bison flex automake libtool libxext-dev libncurses-dev python3-dev xfonts-100dpi cython3 libopenmpi-dev python3-scipy make zlib1g-dev
For CentOS 7
sudo yum -y install epel-release sudo yum -y install python34-devel.x86_64 sudo yum -y install libX11-devel sudo yum -y group install "Development Tools" sudo yum -y install xorg-x11-fonts-100dpi sudo yum -y install python34-Cython sudo yum -y install python34-pip # have to upgrade pip because the version provided by python34-pip # does not check the installed Python version and will attempt to # install modules that require newer versions of Python sudo pip3 install --upgrade pip sudo pip3 install scipy sudo yum -y install ncurses-devel sudo yum -y install openmpi openmpi-devel sudo yum -y install libXext libXext-devel export PATH=$PATH:/usr/lib64/openmpi/bin sudo PATH=$PATH:/usr/lib64/openmpi/bin pip3 install mpi4py
Download code if you haven't already
git clone https://github.com/neuronsimulator/nrn git clone https://github.com/neuronsimulator/iv
If you're going this route, you must use autotools to build configure scripts:
cd nrn ./build.sh cd ../iv ./build.sh cd ..
Download NEURON: https://neuron.yale.edu/ftp/neuron/versions/v7.6/nrn-7.6.tar.gz
Download InterViews: https://neuron.yale.edu/ftp/neuron/versions/v7.6/iv-19.tar.gz
Note that InterViews is NEURON's graphical library; you will not be able to use NEURON's GUI without it, and compiling without it requires modifications to the instructions below.
tar -zxvf nrn-7.6.tar.gz etc) both NEURON and InterViews; rename the folders to nrn and iv, respectively.
Setup InterViews (NEURON graphics)
This must be done before NEURON can be compiled.
cd iv ./configure make -j sudo make install -j cd ..
cd nrn ./configure --with-iv --with-paranrn --with-nrnpython=python3 make -j sudo make install -j cd src/nrnpython sudo python3 setup.py install
python3 may be replaced with
python2 in the above, if desired.)
Add NEURON to your PATH
Add the following line to
In a new terminal window, or after otherwise updating your paths, you should be able to get a NEURON prompt and GUI controls via:
and then from inside Python:
from neuron import h, gui
5. Update your PATH environment variable. For Linux, add the following line to the .bashrc file
and create an nrnenv file in $HOME/neuron with the contents
export IV=$HOME/neuron/iv export N=$HOME/neuron/nrn # for this concrete example, we assume hostcpu is i686 export CPU=i686 export PATH="$IV/$CPU/bin:$N/$CPU/bin:$PATH"
Installation without the GUI
- Don't bother to download, configure, make, or install InterViews.
- The "configure" command for NEURON becomes ./configure --with-nrnpython --with-paranrn --without-iv
More explanations and complications
You may not ever need to know any of these things--but just in case . . .
1. Where things are installed
The --prefix option in the configure statement controls where the installation will be placed. If you don't specify a prefix, a default installation directory is used. For InterViews this is /usr/local/iv, and for NEURON it is /usr/local/nrn
2. Where the NEURON installation looks for InterViews
This is controlled by the --with-iv option when you execute ./configure . . . in the nrn-n.n directory. If you don't specify a --with-iv, it looks first in prefix/.../iv and then in /usr/local/iv.
3. Putting things in other locations
Other configure options are also available. You can also build in a different directory than the sources, e.g. because you have different cpu's sharing the same sources, or because you desire several versions with different configure options (profiling, non-shared, code coverage, with and without Python).