Quick and easy analysis

The neurom.fst module

The neurom.fst replaces the deprecated neurom.ezy module and brings together various neurom components and helper functions to simplify loading neuron morphologies from files into neurom data structures and obtaining morphometrics, either from single or multiple neurons. The functionality is limited, but it is hoped that it will suffice for most analyses.

These are some of the properties can be obtained for a single neurite type or for all neurites regardless of type via the neurom.fst.get() function:

  • Segment lengths
  • Section lengths
  • Segment radii
  • Number of sections
  • Number of sections per neurite
  • Number of neurites
  • Number of segments
  • Local and remote bifurcation angles
  • Section path distances
  • Section radial distances
  • Section branch orders
  • Total neurite length

This function also allows obtaining the soma radius and surface area.

There are also helper functions to plot a neuron in 2 and 3 dimensions.

See also

The neurom.fst documentation for more details and examples.

The neurom.viewer module

The neurom.viewer.draw() function allows the user to make two and three-dimensional plots of neurites, somata and neurons. It also has a dendrogram neurom plotting mode.

See also

The neurom.viewer documentation for more details and examples.

Data checking application

The morph_check application applies some structural and semantic checks to morphology data files in order to determine whether it is suitable to construct a neuron 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,

$ morph_check test_data/swc/Neuron.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: ========================================

$ morph_check test_data/swc # all files in directory
# loops over all morphology files found in test_data/swc

The application also produces a summary json file, which can be useful when processing more than one file:

{
    "files": {
        "test_data/swc/Neuron.swc": {
            "Is single tree": true,
            "Has soma points": true,
            "No missing parents": true,
            "Has sequential ids": true,
            "Has increasing ids": true,
            "Has valid soma": true,
            "Has valid neurites": true,
            "Has basal dendrite": true,
            "Has axon": true,
            "Has apical dendrite": true,
            "Has all nonzero segment lengths": true,
            "Has all nonzero section lengths": true,
            "Has all nonzero neurite radii": true,
            "Has nonzero soma radius": true,
            "ALL": true
        }
    },
    "STATUS": "PASS"
}

The tests run are in submodules of neurom.check, particularly structural_checks, neurite_checks and soma_checks.

For more information, use the help option:

$ morph_check --help
....