NeuroM is a Python toolkit for the analysis and processing of neuron morphologies.
NeuroM documentation is built and hosted on readthedocs.
Refer to the doc page on this topic.
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
(nrm)$ pip install neurom
(nrm)$ pip install git+https://github.com/BlueBrain/NeuroM.git
Clone the repository and install it:
(nrm)$ git clone https://github.com/BlueBrain/NeuroM.git
(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
.
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:
$ neurom stats some/path/morph.swc --full-config # single file
{
"some/path/morph.swc":{
"axon":{
"total_section_length":207.87975220908129,
"max_section_length":11.018460736176685,
"max_section_branch_order":10,
"total_section_volume":276.73857657289523
},
"all":{
"total_section_length":840.68521442251949,
"max_section_length":11.758281556059444,
"max_section_branch_order":10,
"total_section_volume":1104.9077419665782
},
"mean_soma_radius":0.17071067811865476,
"apical_dendrite":{
"total_section_length":214.37304577550353,
"max_section_length":11.758281556059444,
"max_section_branch_order":10,
"total_section_volume":271.9412385728449
},
"basal_dendrite":{
"total_section_length":418.43241643793476,
"max_section_length":11.652508126101711,
"max_section_branch_order":10,
"total_section_volume":556.22792682083821
}
}
}
$ neurom stats some/path --full-config # all files in directory
- Perform checks on neuron morphology files:
(nrm)$ neurom 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)$ neurom 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.show()
>>> fig, ax = viewer.draw(nrn, mode='3d') # valid modes '2d', '3d', 'dendrogram'
>>> fig.show()
The build-time and runtime dependencies of NeuroM are:
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.
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). This research was supported by the EBRAINS research infrastructure, funded from the European Union’s Horizon 2020 Framework Programme for Research and Innovation under the Specific Grant Agreement No. 945539 (Human Brain Project SGA3). The development of this software was supported by funding to the Blue Brain Project, a research center of the École polytechnique fédérale de Lausanne (EPFL), from the Swiss government’s ETH Board of the Swiss Federal Institutes of Technology.
For license and authors, see LICENSE.txt
and AUTHORS.md
respectively.
Copyright (c) 2015-2021 Blue Brain Project/EPFL