NeuroM is a Python-based toolkit for the analysis and processing of neuron morphologies.
NeuroM documentation is built and hosted on readthedocs.
The build-time and runtime dependencies of NeuroM are:
- numpy
- scipy
- matplotlib
- h5py (optional, required for reading HDF5 files)
- enum34 (pip install takes care of this)
- pyyaml (pip install takes care of this)
It is recommended that you use pip to install into NeuroM
into a virtualenv:
The following assumes virtualenv
named nrm
with access to the dependencies has been set up and activated. We will see two ways to install NeuroM
- From the Python Package Index
- From the git repository
- From source (for NeuroM developers)
(nrm)$ pip install neurom
Install the latest version:
(nrm)$ pip install git+https://github.com/BlueBrain/NeuroM.git
Install a particular release:
(nrm)$ pip install git+https://github.com/BlueBrain/NeuroM.git@neurom-v0.0.1
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 you make to the source code are seen by the installation. To install in read-only mode, omit the -e
.
- Perform checks on neuron morphology files:
(nrm)$ morph_check some/data/path/morph_file.swc # single file
INFO: ================================
INFO: Check file some/data/path/morph_file.swc...
INFO: Has valid soma? PASS
INFO: Has Apical Dendrite? PASS
INFO: Has Basal Dendrite? PASS
INFO: All neurites have non-zero radius? PASS
INFO: All segments have non-zero length? PASS
INFO: All sections have non-zero length? PASS
INFO: Check result: PASS
INFO: ================================
(nrm)$ morph_check some/data/path # all files in directory
....
- Load a neuron and obtain some information from it:
>>> from neurom import ezy
>>> nrn = ezy.load_neuron('some/data/path/morph_file.swc')
>>> apical_seg_lengths = nrn.get_segment_lengths(ezy.TreeType.apical_dendrite)
>>> axon_sec_lengths = nrn.get_section_lengths(ezy.TreeType.axon)
- Visualize a neuronal morphology:
>>> # Initialize nrn as above
>>> fig, ax = ezy.view(nrn)
>>> fig.show()