Skip to main content

Neuron Analysis and Visualization library

Project description

Documentation Status Tests Run notebooks Coverage Status Binder DOI Downloads

NAVis is a Python 3 (3.7 or later) library for Neuron Analysis and Visualization.

Documentation

NAVis is on ReadTheDocs.

Version 1.0.0 comes with some breaking changes! Please check out the changelog for a list of relevant changes.

Features

  • work in Jupyter or terminal
  • support for various neuron types: skeletons, meshes, dotprops, voxels
  • 2D (matplotlib) and 3D (vispy, plotly or k3d) plotting
  • neuron surgery: cutting, stitching, pruning, rerooting, intersections, ...
  • analyze morphology (e.g. NBLAST) and connectivity
  • transform data between template brains (support for e.g. HDF5, CMTK, Elastix and thin plate spline transforms)
  • load neurons directly from neuPrint, neuromorpho.org and others
  • simulate neurons and networks using the NEURON simulator
  • interface with Blender 3D
  • interface with R neuron libraries (e.g. nat, rcatmaid, elmr)
  • import-export from/to SWC, neuroglancer's "precomputed" format and more
  • designed to be extensible - see for example pymaid

Getting started

See the documentation for detailed installation instructions, tutorials and examples. For the impatient:

pip3 install navis[all]

which includes all optional extras providing features and/or performance improvements. Currently, this is igraph, shapely, pykdtree and pathos.

Alternatively click on the launch binder badge above to try out navis hosted by mybinder!

movie

NAVis & friends

NAVis comes with batteries included but is also highly extensible. Some libraries built on top of NAVis:

  • flybrains provides templates and transforms to use with navis
  • pymaid pulls and pushes data from/to CATMAID servers
  • fafbseg contains tools to work with autosegmented data for the FAFB EM dataset

License

This code is under GNU GPL V3

Acknowledgments

NAVis is inspired by and inherits much of its design from the excellent natverse R packages by Greg Jefferis, Alex Bates, James Manton and others.

References

NAVis implements or provides interfaces with algorithms described in:

  1. Comparison of neurons based on morphology: Neuron. 2016 doi: 10.1016/j.neuron.2016.06.012 NBLAST: Rapid, Sensitive Comparison of Neuronal Structure and Construction of Neuron Family Databases. Costa M, Manton JD, Ostrovsky AD, Prohaska S, Jefferis GSXE. link
  2. Comparison of neurons based on connectivity: Science. 2012 Jul 27;337(6093):437-44. doi: 10.1126/science.1221762. The connectome of a decision-making neural network. Jarrell TA, Wang Y, Bloniarz AE, Brittin CA, Xu M, Thomson JN, Albertson DG, Hall DH, Emmons SW. link
  3. Comparison of neurons based on synapse distribution: eLife. doi: 10.7554/eLife.16799 Synaptic transmission parallels neuromodulation in a central food-intake circuit. Schlegel P, Texada MJ, Miroschnikow A, Schoofs A, Hückesfeld S, Peters M, … Pankratz MJ. link
  4. Synapse flow centrality and segregation index: eLife. doi: 10.7554/eLife.12059 Quantitative neuroanatomy for connectomics in Drosophila. Schneider-Mizell CM, Gerhard S, Longair M, Kazimiers T, Li, Feng L, Zwart M … Cardona A. link

Contributing

  1. Fork this repository
  2. git clone it to your local machine
  3. Install the full development dependencies with pip install -r requirements.txt
  4. Install the package in editable mode with pip install -e .[all]
  5. Create, git add, git commit, git push, and pull request your changes.

Run the tests locally with pytest -v.

Docstrings should use the numpydoc format, and make sure you include any relevant links and citations. Unit tests should be doctests and/or use pytest in the ./tests directory.

Doctests have access to the tmp_dir: pathlib.Path variable, which should be used if any files need to be written.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

navis-1.2.1.tar.gz (2.2 MB view hashes)

Uploaded Source

Built Distribution

navis-1.2.1-py3-none-any.whl (2.3 MB view hashes)

Uploaded Python 3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page