Quickstart¶
Install¶
Install the latest release:
$ pip install neurom
Note
It is recommended that you install NeuroM
into a virtualenv.
See virtualenv setup for details on how to set that up.
Analyze, visualize, and check¶
The neurom
module has various helper functions and command line applications
to simplify loading morphologies from files into neurom
data structures and
obtaining morphometrics, either from single or multiple morphologies.
The functionality described here is limited, but it is hoped
that it will suffice for most analyses.
Extract morphometrics with neurom.features.get()
¶
Analyze morphologies via neurom.features.get()
. This way you can get things like segment
lengths, section lengths, etc.
import neurom as nm
m = nm.load_morphology('tests/data/swc/Neuron.swc')
m_ap_seg_len = nm.features.get('segment_lengths', m, neurite_type=nm.APICAL_DENDRITE)
pop = nm.load_morphologies('tests/data/valid_set/')
pop_ap_seg_len = nm.features.get('segment_lengths', pop, neurite_type=nm.APICAL_DENDRITE)
For more details see Features.
Iterate over neurites with neurom.core.morphology.iter_neurites()
¶
neurom.core.morphology.iter_neurites()
function allows to iterate over the neurites
of a single morphology or a morphology population. It can also be applied to a single
neurite or a list of neurites. It allows to optionally pass a function to be
mapped onto each neurite, as well as a neurite filter function. In this example,
we apply a simple user defined function to the apical dendrites in a population:
import neurom as nm
def user_func(neurite, section_type):
return len(neurite.points)
stuff = [x for x in nm.iter_neurites(pop, user_func, lambda n : n.type == nm.APICAL_DENDRITE)]
View morphologies with neurom.view
¶
There are also helper functions to plot a morphology in 2 and 3 dimensions.
neurom.view()
function allows the user to make two and three-dimensional plots of neurites, somata and morphologies.
It also has a dendrogram morphology plotting mode.
Extract morphometrics into JSON files¶
The neurom stats application lets you obtain various morphometrics
quantities from a set of morphology files. It is highly configurable, and gives access
to all the features available via the neurom.features.get()
function.
For example,
$ neurom stats some/path/morph.swc # 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 # all files in directory
See also
Check data validity¶
The neurom check application applies some semantic checks to morphology data files in order to determine whether it is suitable to construct a morphology structure and whether certain defects within the structure are detected. It can be invoked from the command line, and takes as main argument the path to either a single file or a directory of morphology files.
For example,
$ neurom check some/path/morph.swc # single file
INFO: ========================================
INFO: File: test_data/swc/Neuron.swc
INFO: Is single tree PASS
INFO: Has soma points PASS
INFO: No missing parents 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: ========================================
$ neurom check test_data/swc # all files in directory
# loops over all morphology files found in test_data/swc
See also