Package: navis
NAVis is a Python 3 (3.8 or later) library forNeuronAnalysis andVisualization.DocumentationNAVis is onReadTheDocs.Featuresworks as Jupyter notebook, script or from terminalsupport for various neuron types:skeletons,meshes,dotprops,voxels2D (matplotlib) and 3D (vispy, plotly or k3d)plottingneuronsurgery: cutting, stitching, pruning, rerooting, intersections, ...morphometrics: Strahler analysis, cable length, volume, tortuosity, ...compare & cluster by morphology (e.g.NBLAST, persistence, form factor) and connectivitytransformdata between template brains (support for e.g. HDF5, CMTK, Elastix and thin plate spline transforms)load neurons directly fromneuPrint,neuromorpho.organd otherssimulate neurons and networks using theNEURONsimulatorinterface withBlender 3Dfor high qualityrenderingsinterface withRneuron libraries (e.g.nat,rcatmaid,elmr)import-export from/toSWC, neuroglancer's"precomputed"format and morescalable thanks to out-of-the-box support for multiprocessingdesigned to beextensible- see for examplepymaidGetting startedSee thedocumentationfor detailed installation instructions, tutorials and examples. For the impatient:pip3install'navis[all]'which includes all optional extras providing features and/or performance improvements.
Currently, this isigraph,pathos,shapely,kdtree,hash,flybrains,cloudvolume,meshes,
andvispy-default.3D plotting from a python REPL is provided byvispy, which has a choice of backends.
Different backends work best on different combinations of hardware, OS, python distribution, and REPL, so there may be some trial and error involved.vispy's backends arelisted here, and each can be installed as a navis extra, e.g.pip3 install 'navis[vispy-pyqt6]'.ChangelogA summary of changes can be foundhere.NAVis & friendsNAVis comes with batteries included but is also highly extensible. Some
libraries built on top of NAVis:flybrainsprovides templates and transforms forDrosophilabrains to use with navispymaidpulls and pushes data from/to CATMAID serversfafbsegcontains tools to work with auto-segmented data for the FAFB EM datasetLicenseThis code is under GNU GPL V3AcknowledgmentsNAVis is inspired by and inherits much of its design from the excellentnatverseR packages byGreg Jefferis,Alex Bates,James Mantonand others.ReferencesNAVis implements or provides interfaces with algorithms described in:Comparison of neurons based on morphology: Neuron. 2016 doi: 10.1016/j.neuron.2016.06.012NBLAST: Rapid, Sensitive Comparison of Neuronal Structure and Construction of Neuron Family Databases.Costa M, Manton JD, Ostrovsky AD, Prohaska S, Jefferis GSXE.linkComparison 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.linkComparison of neurons based on synapse distribution: eLife. doi: 10.7554/eLife.16799Synaptic transmission parallels neuromodulation in a central food-intake circuit.Schlegel P, Texada MJ, Miroschnikow A, Schoofs A, Hückesfeld S, Peters M, … Pankratz MJ.linkSynapse flow centrality and segregation index: eLife. doi: 10.7554/eLife.12059Quantitative neuroanatomy for connectomics in Drosophila.Schneider-Mizell CM, Gerhard S, Longair M, Kazimiers T, Li, Feng L, Zwart M … Cardona A.linkContributingFork this repositorygit cloneit to your local machineInstall the full development dependencies withpip install -r requirements.txtInstall the package in editable mode withpip install -e ".[all]"Create,git add,git commit,git push, and pull request your changes.Run the tests locally withpytest -v.Docstrings should use thenumpydocformat,
and make sure you include any relevant links and citations.
Unit tests should bedoctestsand/or usepytestin the./testsdirectory.Doctests have access to thetmp_dir: pathlib.Pathvariable,
which should be used if any files need to be written.