Skip to content
Neuronal Morphology Analysis Tool
Jupyter Notebook AGS Script Python
Branch: master
Clone or download

Latest commit

Fetching latest commit…
Cannot retrieve the latest commit at this time.


Type Name Latest commit message Commit time
Failed to load latest commit information.
.binder Use plotly in tutorial notebook (#800) Feb 3, 2020
apps morph_stat can now extract all features with the '-f' flag (#817) Mar 10, 2020
doc Fix tutorial links and notebook metadata (#805) Feb 3, 2020
examples Moving features in features folder (#795) Feb 13, 2020
ipynb Merge remote-tracking branch 'neurom/master' Sep 25, 2017
neurom path_distance issue in section_taper (#822) Mar 27, 2020
test_data Fix coverage (#808) Feb 5, 2020
.codecov.yml Coverage fixes May 13, 2016
.coveragerc Switch to Tox (#720) Jan 9, 2019
.gitignore Update documentation (#737) Apr 23, 2019
.readthedocs.yml readthedocs: use site packages, when possible (#754) May 7, 2019
.travis.yml Various Travis CI improvements (#809) Feb 11, 2020 Add HBP funding acknowledgment and main authors file. Jun 17, 2016 Update Nov 24, 2017
LICENSE.txt Fix license text; May 7, 2015 morph_stats and morph_checks print their default config url Jan 9, 2019 morph_stat can now extract all features with the '-f' flag (#817) Mar 10, 2020
asv.conf.json added ASV benchmarking (#568) Dec 7, 2016
package.json Updated package.json Sep 22, 2017
pylintrc reduce error messages like: 'No handlers could be found for logger' (#… Feb 28, 2019
pyproject.toml wheel is required in pyproject.toml (#753) May 7, 2019
requirements_benchmark.txt added ASV benchmarking (#568) Dec 7, 2016
requirements_docs.txt Cleanup author (#820) Mar 24, 2020
tox.ini Various Travis CI improvements (#809) Feb 11, 2020

NeuroM Logo


NeuroM is a Python toolkit for the analysis and processing of neuron morphologies.

Build Status license Documentation Status DOI


This project/research received funding from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Framework Partnership Agreement No. 650003 (HBP FPA). For license and authors, see LICENSE.txt and respectively.


NeuroM documentation is built and hosted on readthedocs.


It is recommended that you use pip to install NeuroM into a virtualenv. The following assumes a virtualenv named nrm has been set up and activated. We will see three ways to install NeuroM

1. From the Python Package Index

(nrm)$ pip install neurom

2. From git repository

(nrm)$ pip install git+

3. From source

Clone the repository and install it:

(nrm)$ git clone
(nrm)$ pip install -e ./NeuroM

This installs NeuroM into your virtualenv in "editable" mode. That means changes made to the source code are seen by the installation. To install in read-only mode, omit the -e.

Tutorial notebook

To gain an understanding of some of the capabilities of NeuroM, you can launch the NeuroM tutorial on MyBinder. Click the badge to launch, no need to download or install!



  • Extract morphometrics from one or many morphology files:
$ morph_stats some/path/morph.swc # single file

$ morph_stats some/path # all files in directory
  • Perform checks on neuron morphology files:
(nrm)$ morph_check some/data/path/morph_file.swc # single file
INFO: ========================================
INFO: File: some/data/path/morph_file.swc
INFO:                      Is single tree PASS
INFO:                     Has soma points PASS
INFO:                  Has sequential ids PASS
INFO:                  Has increasing ids PASS
INFO:                      Has valid soma PASS
INFO:                  Has valid neurites PASS
INFO:                  Has basal dendrite PASS
INFO:                            Has axon PASS
INFO:                 Has apical dendrite PASS
INFO:     Has all nonzero segment lengths PASS
INFO:     Has all nonzero section lengths PASS
INFO:       Has all nonzero neurite radii PASS
INFO:             Has nonzero soma radius PASS
INFO:                                 ALL PASS
INFO: ========================================

(nrm)$ morph_check some/data/path # all files in directory
  • Load a neuron and obtain some information from it:
>>> import neurom as nm
>>> nrn = nm.load_neuron('some/data/path/morph_file.swc')
>>> apical_seg_lengths = nm.get('segment_lengths', nrn, neurite_type=nm.APICAL_DENDRITE)
>>> axon_sec_lengths = nm.get('section_lengths', nrn, neurite_type=nm.AXON)
  • Visualize a neuronal morphology:
>>> # Initialize nrn as above
>>> from neurom import viewer
>>> fig, ax = viewer.draw(nrn)
>>> fig, ax = viewer.draw(nrn, mode='3d') # valid modes '2d', '3d', 'dendrogram'


The build-time and runtime dependencies of NeuroM are:

Reporting issues

Issues should be reported to the NeuroM github repository issue tracker. The ability and speed with which issues can be resolved depends on how complete and succinct the report is. For this reason, it is recommended that reports be accompanied with a minimal but self-contained code sample that reproduces the issue, the observed and expected output, and if possible, the commit ID of the version used. If reporting a regression, the commit ID of the change that introduced the problem is also extremely valuable information.

You can’t perform that action at this time.