navis

Python library for analysis of neuroanatomical data.

https://github.com/navis-org/navis

Science Score: 59.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
    Found 4 DOI reference(s) in README
  • Academic publication links
    Links to: zenodo.org
  • Committers with academic emails
    2 of 14 committers (14.3%) from academic institutions
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (15.8%) to scientific vocabulary

Keywords

3d anatomy blender connectome flywire hemibrain meshes morphometric nblast neuprint neuroanatomy neurons neuroscience python segmentation skeletons swc transform visualization volumes
Last synced: 6 months ago · JSON representation

Repository

Python library for analysis of neuroanatomical data.

Basic Info
Statistics
  • Stars: 104
  • Watchers: 6
  • Forks: 34
  • Open Issues: 45
  • Releases: 30
Topics
3d anatomy blender connectome flywire hemibrain meshes morphometric nblast neuprint neuroanatomy neurons neuroscience python segmentation skeletons swc transform visualization volumes
Created about 7 years ago · Last pushed 7 months ago
Metadata Files
Readme License Code of conduct

README.md

Docs Tests Test tutorials Open In Colab DOI Downloads

NAVis is a Python 3 library for Neuron Analysis and Visualization.

Documentation

Visit our documentation here!

Features

  • polyglot: work with and convert between neuron skeletons, meshes, dotprops and images
  • visualize: 2D (matplotlib) and 3D (octarine, vispy, plotly or k3d) plots
  • process: skeletonization, meshing, smoothing, repair, downsampling, etc.
  • morphometrics: Strahler analysis, cable length, volume, tortuosity and more
  • similarity: compare & cluster by morphology (e.g. NBLAST, persistence or form factor) or connectivity metrics
  • transform: move data between template brains (built-in support for HDF5, CMTK, Elastix and landmark-based transforms)
  • interface: load neurons directly from neuPrint, neuromorpho.org and other remote data repositories
  • model neurons and networks using the NEURON simulator
  • render: use Blender 3D for high quality visualizations
  • R neuron libraries: interfaces with nat, rcatmaid, elmr and more
  • import-export: read/write SWCs, neuroglancer's "precomputed" format, NMX/NML, NRRD, mesh-files and more
  • fast: uses functions compiled in Rust under-the-hood (see fastcore)
  • scalable: out-of-the-box support for multiprocessing
  • extensible: build your own package on top of navis - see pymaid for example

Getting started

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

sh pip3 install "navis[all]"

which includes all optional extras providing features and/or performance improvements. If you encounter issues, you may want to try a minimal installation and install optional dependencies as needed. Please see the Install Instructions for a detailed explanation.

movie

Questions?

Questions on how to use navis are best placed in discussions. Same goes for cool projects or analyses you made using navis - we'd love to hear from you!

Changelog

A summary of changes can be found here.

NAVis & friends

NAVis comes with batteries included but is also highly extensible. Some libraries built on top of NAVis: * flybrains provides templates and transforms for Drosophila brains to use with navis * pymaid pulls and pushes data from/to CATMAID servers * fafbseg contains tools to work with auto-segmented data for the FAFB EM dataset including FlyWire

Who uses NAVis?

NAVis has been used in a range of neurobiological publications. See here for a list.

We have implemented various published algorithms and methods:

  1. NBLAST: Comparison of neurons based on morphology (Costa et al., 2016)
  2. Vertex Similarity: Comparison of neurons based on connectivity (Jarrell et al., 2012)
  3. Comparison of neurons based on synapse distribution (Schlegel et al., 2016)
  4. Synapse flow centrality for axon-dendrite splits (Schneider-Mizell et al., 2016)

Working on your own cool new method? Consider adding it to NAVis!

Citing NAVis

We'd love to know if you found NAVis useful for your research! You can help us spread the word by citing the DOI provided by Zenodo DOI

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.

Contributing

Want to contribute? Great, here is how!

Report bugs or request features

Open an issue. For bug reports please make sure to include some code/data with a minimum example for us to reproduce the bug.

Contribute code

We're always happy for people to contribute code - be it a small bug fix, a new feature or improved documentation.

Here's how you'd do it in a nutshell:

  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.

Feel free to get in touch either through an issue or discussion if you need pointers or input on how to implement an idea.

Owner

  • Name: NAVis
  • Login: navis-org
  • Kind: organization
  • Location: United Kingdom

Tools for Neuron Analysis & Visualization

GitHub Events

Total
  • Create event: 8
  • Issues event: 15
  • Release event: 3
  • Watch event: 20
  • Delete event: 4
  • Issue comment event: 55
  • Push event: 63
  • Pull request review event: 8
  • Pull request review comment event: 5
  • Pull request event: 18
  • Fork event: 1
Last Year
  • Create event: 8
  • Issues event: 15
  • Release event: 3
  • Watch event: 20
  • Delete event: 4
  • Issue comment event: 55
  • Push event: 63
  • Pull request review event: 8
  • Pull request review comment event: 5
  • Pull request event: 18
  • Fork event: 1

Committers

Last synced: over 2 years ago

All Time
  • Total Commits: 1,746
  • Total Committers: 14
  • Avg Commits per committer: 124.714
  • Development Distribution Score (DDS): 0.177
Past Year
  • Commits: 126
  • Committers: 9
  • Avg Commits per committer: 14.0
  • Development Distribution Score (DDS): 0.111
Top Committers
Name Email Commits
Philipp Schlegel o****g@w****e 1,437
Philipp Schlegel s****p 208
Chris Barnes c****s@m****k 43
Chris Barnes b****c@j****g 30
Andrew Champion a****n@g****m 7
Dominik Krzeminski d****3@c****k 5
Sri j****n@g****m 4
Rob Court r****t@g****m 3
Stuart Berg b****s@j****g 2
bdpedigo b****o@g****m 2
Frank Loesche l****f@j****g 2
Peter Newstein p****n@g****m 1
antortjim n****u@g****m 1
Yervand Azatian y****n@g****m 1
Committer Domains (Top 20 + Academic)

Issues and Pull Requests

Last synced: 6 months ago

All Time
  • Total issues: 82
  • Total pull requests: 85
  • Average time to close issues: 4 months
  • Average time to close pull requests: 17 days
  • Total issue authors: 30
  • Total pull request authors: 19
  • Average comments per issue: 3.65
  • Average comments per pull request: 2.51
  • Merged pull requests: 59
  • Bot issues: 0
  • Bot pull requests: 1
Past Year
  • Issues: 11
  • Pull requests: 22
  • Average time to close issues: 11 days
  • Average time to close pull requests: 6 days
  • Issue authors: 8
  • Pull request authors: 5
  • Average comments per issue: 4.27
  • Average comments per pull request: 1.14
  • Merged pull requests: 15
  • Bot issues: 0
  • Bot pull requests: 0
Top Authors
Issue Authors
  • schlegelp (30)
  • clbarnes (8)
  • jakobtroidl (5)
  • dadanhan (4)
  • fcollman (3)
  • kuanawanda (3)
  • wanqingy (2)
  • psynaptix1 (2)
  • mwinding (2)
  • jasper-tms (2)
  • AEVEC (1)
  • ASiliciano (1)
  • ariematsliah-princeton (1)
  • floesche (1)
  • BenCaiello (1)
Pull Request Authors
  • schlegelp (34)
  • clbarnes (33)
  • floesche (7)
  • aschampion (4)
  • jinhan (4)
  • fcollman (4)
  • Robbie1977 (3)
  • guspan-tanadi (3)
  • dokato (2)
  • jakobtroidl (2)
  • stuarteberg (1)
  • antortjim (1)
  • dependabot[bot] (1)
  • bdpedigo (1)
  • fabrice102 (1)
Top Labels
Issue Labels
enhancement (14) question (1)
Pull Request Labels
dependencies (1)

Packages

  • Total packages: 1
  • Total downloads:
    • pypi 2,370 last-month
  • Total dependent packages: 9
  • Total dependent repositories: 12
  • Total versions: 38
  • Total maintainers: 1
pypi.org: navis

Neuron Analysis and Visualization library

  • Versions: 38
  • Dependent Packages: 9
  • Dependent Repositories: 12
  • Downloads: 2,370 Last month
Rankings
Dependent packages count: 1.1%
Dependent repos count: 4.2%
Average: 5.7%
Forks count: 7.5%
Downloads: 7.8%
Stargazers count: 8.0%
Maintainers (1)
Last synced: 6 months ago

Dependencies

binder/requirements.txt pypi
  • jupyter_contrib_nbextensions ==0.5.0
docs/preinstall_requirements.txt pypi
  • setuptools ==57.5.0
docs/requirements.txt pypi
  • ipykernel *
  • mock *
  • nbconvert *
  • nbsphinx *
  • neuprint-python *
  • neuron *
  • numpydoc *
  • pygraphviz *
  • setuptools ==57.5.0
  • sphinx >=3.1
  • sphinx-autodoc-typehints *
  • sphinx-bootstrap-theme *
  • sphinx-copybutton *
  • wheel >=0.35.1
.github/workflows/notebooktest-package.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v1 composite
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/publish-to-pypi.yml actions
  • actions/checkout master composite
  • actions/setup-python v1 composite
  • pypa/gh-action-pypi-publish master composite
.github/workflows/test-install.yml actions
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • styfle/cancel-workflow-action 0.6.0 composite
.github/workflows/test-package.yml actions
  • GabrielBB/xvfb-action v1 composite
  • actions/checkout v2 composite
  • actions/setup-python v2 composite
  • styfle/cancel-workflow-action 0.6.0 composite