navis


Namenavis JSON
Version 1.6.0 PyPI version JSON
download
home_pagehttp://navis.readthedocs.io
SummaryNeuron Analysis and Visualization library
upload_time2024-04-07 15:47:30
maintainerNone
docs_urlNone
authorPhilipp Schlegel
requires_python<4.0,>=3.9
licenseGNU GPL V3
keywords neuron analysis visualization morphometrics morphology anatomy connectivity transform neuroscience nblast skeletons swc neuprint
VCS
bugtrack_url
requirements h5py matplotlib morphops ncollpyde networkx numpy pandas pint plotly pynrrd pypng requests seaborn setuptools scipy six tqdm typing-extensions trimesh fuzzywuzzy molesq rdata igraph skeletor pathos Shapely rpy2 pykdtree xxhash flybrains cloud-volume vispy open3d pyfqmr jupyter neuprint-python Shapely flake8 wheel mypy pytest pytest-env pytest-xvfb gitpython
Travis-CI
coveralls test coverage
            [![Documentation Status](https://readthedocs.org/projects/navis/badge/?version=latest)](http://navis.readthedocs.io/en/latest/?badge=latest) [![Tests](https://github.com/navis-org/navis/actions/workflows/test-package.yml/badge.svg)](https://github.com/navis-org/navis/actions/workflows/test-package.yml) [![Run notebooks](https://github.com/navis-org/navis/actions/workflows/notebooktest-package.yml/badge.svg)](https://github.com/navis-org/navis/actions/workflows/notebooktest-package.yml) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/navis-org/navis/blob/master/examples/colab.ipynb) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8191725.svg)](https://zenodo.org/doi/10.5281/zenodo.4699382) [![Downloads](https://pepy.tech/badge/navis)](https://pepy.tech/project/navis)

<img src="https://github.com/navis-org/navis/raw/master/docs/_static/logo_new.png" height="150">

NAVis is a Python 3 library for **N**euron **A**nalysis and **Vis**ualization.

## Documentation
NAVis is on [ReadTheDocs](http://navis.readthedocs.io/ "NAVis ReadTheDocs").

## Features
* **polyglot**: work and convert between neuron skeletons, meshes, dotprops and images
* **visualize**: 2D (matplotlib) and 3D (vispy, plotly or k3d)
* **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](https://neuprint.janelia.org), [neuromorpho.org](http://neuromorpho.org) and other data sources
* **model** neurons and networks using the *NEURON* simulator
* **render**: use Blender 3D for high quality [visualizations](https://youtu.be/wl3sFG7WQJc)
* **R** neuron libraries: interfaces with [nat](https://github.com/jefferis/nat), [rcatmaid](https://github.com/jefferis/rcatmaid), [elmr](https://github.com/jefferis/elmr) and more
* **import-export**: read/write SWCs, neuroglancer's ["*precomputed*"](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed) format, NMX/NML, NRRD, mesh-files and more
* **scalable**: out-of-the-box support for multiprocessing
* **extensible**: build your own package on top of navis - see [pymaid](https://pymaid.readthedocs.io/en/latest/) for example

## Getting started
See the [documentation](http://navis.readthedocs.io/ "NAVis ReadTheDocs") 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.
Currently, this is
`igraph`,
`pathos`,
`shapely`,
`kdtree`,
`hash`,
`flybrains`,
`cloudvolume`,
`meshes`,
and `vispy-default`.

3D plotting from a python REPL is provided by `vispy`, 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 are [listed here](https://vispy.org/installation.html#backend-requirements), and each can be installed as a navis extra, e.g. `pip3 install 'navis[vispy-pyqt6]'`.

![movie](https://user-images.githubusercontent.com/7161148/114312307-28a72700-9aea-11eb-89a6-ee1d72bfa730.mov)

## Questions?
Questions on how to use `navis` are best placed in [discussions](https://github.com/navis-org/navis/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](https://navis.readthedocs.io/en/latest/source/whats_new.html).

## NAVis & friends
<p align="center">
<img src="https://github.com/navis-org/navis/blob/master/docs/_static/navis_ecosystem.png?raw=true" width="700">
</p>

NAVis comes with batteries included but is also highly extensible. Some
libraries built on top of NAVis:
* [flybrains](https://github.com/navis-org/navis-flybrains) provides templates and transforms for *Drosophila* brains to use with navis
* [pymaid](https://pymaid.readthedocs.io/en/latest/) pulls and pushes data from/to CATMAID servers
* [fafbseg](https://fafbseg-py.readthedocs.io/en/latest/index.html) 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](publications.md) for a list.

We have implemented various published algorithms and methods:

1. NBLAST: Comparison of neurons based on morphology [(Costa et al., 2016)](https://www.cell.com/neuron/fulltext/S0896-6273(16)30265-3?_returnURL=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS0896627316302653%3Fshowall%3Dtrue)
2. Vertex Similarity: Comparison of neurons based on connectivity [(Jarrell et al., 2012)](http://science.sciencemag.org/content/337/6093/437.long)
3. Comparison of neurons based on synapse distribution
[(Schlegel et al., 2016)](https://elifesciences.org/content/5/e16799)
4. Synapse flow centrality for axon-dendrite splits [(Schneider-Mizell et al., 2016)](https://elifesciences.org/articles/12059)

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](https://zenodo.org/badge/DOI/10.5281/zenodo.8191725.svg)](https://zenodo.org/doi/10.5281/zenodo.4699382)

## License
This code is under [GNU GPL V3](LICENSE).

## Acknowledgments
NAVis is inspired by and inherits much of its design from the excellent
[natverse](http://natverse.org) R packages by
[Greg Jefferis](https://github.com/jefferis), [Alex Bates](https://github.com/alexanderbates),
[James Manton](https://github.com/ajdm) and others.

## Contributing
Want to contribute? Great, here is how!

#### Report bugs or request features
Open an [issue](https://github.com/navis-org/navis/issues). 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](https://numpydoc.readthedocs.io/en/latest/format.html) format,
and make sure you include any relevant links and citations.
Unit tests should be [doctests](https://docs.python.org/3/library/doctest.html)
and/or use [pytest](https://docs.pytest.org/en/stable/) 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](https://github.com/navis-org/navis/issues)
or [discussion](https://github.com/navis-org/navis/discussions) if you need
pointers or input on how to implement an idea.

            

Raw data

            {
    "_id": null,
    "home_page": "http://navis.readthedocs.io",
    "name": "navis",
    "maintainer": null,
    "docs_url": null,
    "requires_python": "<4.0,>=3.9",
    "maintainer_email": null,
    "keywords": "Neuron Analysis Visualization Morphometrics Morphology Anatomy Connectivity Transform Neuroscience NBLAST Skeletons SWC neuPrint",
    "author": "Philipp Schlegel",
    "author_email": "pms70@cam.ac.uk",
    "download_url": "https://files.pythonhosted.org/packages/3d/9f/b3b1c6559b667f4154471168309f4848ae7c5b725c3d303f51b329c644ef/navis-1.6.0.tar.gz",
    "platform": null,
    "description": "[![Documentation Status](https://readthedocs.org/projects/navis/badge/?version=latest)](http://navis.readthedocs.io/en/latest/?badge=latest) [![Tests](https://github.com/navis-org/navis/actions/workflows/test-package.yml/badge.svg)](https://github.com/navis-org/navis/actions/workflows/test-package.yml) [![Run notebooks](https://github.com/navis-org/navis/actions/workflows/notebooktest-package.yml/badge.svg)](https://github.com/navis-org/navis/actions/workflows/notebooktest-package.yml) [![Open In Colab](https://colab.research.google.com/assets/colab-badge.svg)](https://colab.research.google.com/github/navis-org/navis/blob/master/examples/colab.ipynb) [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8191725.svg)](https://zenodo.org/doi/10.5281/zenodo.4699382) [![Downloads](https://pepy.tech/badge/navis)](https://pepy.tech/project/navis)\n\n<img src=\"https://github.com/navis-org/navis/raw/master/docs/_static/logo_new.png\" height=\"150\">\n\nNAVis is a Python 3 library for **N**euron **A**nalysis and **Vis**ualization.\n\n## Documentation\nNAVis is on [ReadTheDocs](http://navis.readthedocs.io/ \"NAVis ReadTheDocs\").\n\n## Features\n* **polyglot**: work and convert between neuron skeletons, meshes, dotprops and images\n* **visualize**: 2D (matplotlib) and 3D (vispy, plotly or k3d)\n* **process**: skeletonization, meshing, smoothing, repair, downsampling, etc.\n* **morphometrics**: Strahler analysis, cable length, volume, tortuosity and more\n* **similarity**: compare & cluster by morphology (e.g. NBLAST, persistence or form factor) or connectivity metrics\n* **transform**: move data between template brains (built-in support for HDF5, CMTK, Elastix and landmark-based transforms)\n* **interface**: load neurons directly from [neuPrint](https://neuprint.janelia.org), [neuromorpho.org](http://neuromorpho.org) and other data sources\n* **model** neurons and networks using the *NEURON* simulator\n* **render**: use Blender 3D for high quality [visualizations](https://youtu.be/wl3sFG7WQJc)\n* **R** neuron libraries: interfaces with [nat](https://github.com/jefferis/nat), [rcatmaid](https://github.com/jefferis/rcatmaid), [elmr](https://github.com/jefferis/elmr) and more\n* **import-export**: read/write SWCs, neuroglancer's [\"*precomputed*\"](https://github.com/google/neuroglancer/tree/master/src/neuroglancer/datasource/precomputed) format, NMX/NML, NRRD, mesh-files and more\n* **scalable**: out-of-the-box support for multiprocessing\n* **extensible**: build your own package on top of navis - see [pymaid](https://pymaid.readthedocs.io/en/latest/) for example\n\n## Getting started\nSee the [documentation](http://navis.readthedocs.io/ \"NAVis ReadTheDocs\") for detailed installation instructions, tutorials and examples. For the impatient:\n\n```sh\npip3 install 'navis[all]'\n```\n\nwhich includes all optional extras providing features and/or performance improvements.\nCurrently, this is\n`igraph`,\n`pathos`,\n`shapely`,\n`kdtree`,\n`hash`,\n`flybrains`,\n`cloudvolume`,\n`meshes`,\nand `vispy-default`.\n\n3D plotting from a python REPL is provided by `vispy`, which has a choice of backends.\nDifferent backends work best on different combinations of hardware, OS, python distribution, and REPL, so there may be some trial and error involved.\n`vispy`'s backends are [listed here](https://vispy.org/installation.html#backend-requirements), and each can be installed as a navis extra, e.g. `pip3 install 'navis[vispy-pyqt6]'`.\n\n![movie](https://user-images.githubusercontent.com/7161148/114312307-28a72700-9aea-11eb-89a6-ee1d72bfa730.mov)\n\n## Questions?\nQuestions on how to use `navis` are best placed in [discussions](https://github.com/navis-org/navis/discussions). Same goes for cool projects or analyses you made using `navis` -\nwe'd love to hear from you!\n\n## Changelog\n\nA summary of changes can be found\n[here](https://navis.readthedocs.io/en/latest/source/whats_new.html).\n\n## NAVis & friends\n<p align=\"center\">\n<img src=\"https://github.com/navis-org/navis/blob/master/docs/_static/navis_ecosystem.png?raw=true\" width=\"700\">\n</p>\n\nNAVis comes with batteries included but is also highly extensible. Some\nlibraries built on top of NAVis:\n* [flybrains](https://github.com/navis-org/navis-flybrains) provides templates and transforms for *Drosophila* brains to use with navis\n* [pymaid](https://pymaid.readthedocs.io/en/latest/) pulls and pushes data from/to CATMAID servers\n* [fafbseg](https://fafbseg-py.readthedocs.io/en/latest/index.html) contains tools to work with auto-segmented data for the FAFB EM dataset including FlyWire\n\n## Who uses NAVis?\nNAVis has been used in a range of neurobiological publications. See [here](publications.md) for a list.\n\nWe have implemented various published algorithms and methods:\n\n1. NBLAST: Comparison of neurons based on morphology [(Costa et al., 2016)](https://www.cell.com/neuron/fulltext/S0896-6273(16)30265-3?_returnURL=https%3A%2F%2Flinkinghub.elsevier.com%2Fretrieve%2Fpii%2FS0896627316302653%3Fshowall%3Dtrue)\n2. Vertex Similarity: Comparison of neurons based on connectivity [(Jarrell et al., 2012)](http://science.sciencemag.org/content/337/6093/437.long)\n3. Comparison of neurons based on synapse distribution\n[(Schlegel et al., 2016)](https://elifesciences.org/content/5/e16799)\n4. Synapse flow centrality for axon-dendrite splits [(Schneider-Mizell et al., 2016)](https://elifesciences.org/articles/12059)\n\nWorking on your own cool new method? Consider adding it to NAVis!\n\n## Citing NAVis\nWe'd love to know if you found NAVis useful for your research! You can help us\nspread the word by citing the DOI provided by Zenodo [![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.8191725.svg)](https://zenodo.org/doi/10.5281/zenodo.4699382)\n\n## License\nThis code is under [GNU GPL V3](LICENSE).\n\n## Acknowledgments\nNAVis is inspired by and inherits much of its design from the excellent\n[natverse](http://natverse.org) R packages by\n[Greg Jefferis](https://github.com/jefferis), [Alex Bates](https://github.com/alexanderbates),\n[James Manton](https://github.com/ajdm) and others.\n\n## Contributing\nWant to contribute? Great, here is how!\n\n#### Report bugs or request features\nOpen an [issue](https://github.com/navis-org/navis/issues). For bug reports\nplease make sure to include some code/data with a minimum example for us to\nreproduce the bug.\n\n#### Contribute code\nWe're always happy for people to contribute code - be it a small bug fix, a\nnew feature or improved documentation.\n\nHere's how you'd do it in a nutshell:\n\n1. Fork this repository\n2. `git clone` it to your local machine\n3. Install the full development dependencies with `pip install -r requirements.txt`\n4. Install the package in editable mode with `pip install -e \".[all]\"`\n5. Create, `git add`, `git commit`, `git push`, and pull request your changes.\n\nRun the tests locally with `pytest -v`.\n\nDocstrings should use the [numpydoc](https://numpydoc.readthedocs.io/en/latest/format.html) format,\nand make sure you include any relevant links and citations.\nUnit tests should be [doctests](https://docs.python.org/3/library/doctest.html)\nand/or use [pytest](https://docs.pytest.org/en/stable/) in the `./tests` directory.\n\nDoctests have access to the `tmp_dir: pathlib.Path` variable,\nwhich should be used if any files need to be written.\n\nFeel free to get in touch either through an [issue](https://github.com/navis-org/navis/issues)\nor [discussion](https://github.com/navis-org/navis/discussions) if you need\npointers or input on how to implement an idea.\n",
    "bugtrack_url": null,
    "license": "GNU GPL V3",
    "summary": "Neuron Analysis and Visualization library",
    "version": "1.6.0",
    "project_urls": {
        "Changelog": "https://navis.readthedocs.io/en/latest/source/whats_new.html",
        "Documentation": "http://navis.readthedocs.io",
        "Homepage": "http://navis.readthedocs.io",
        "Source": "https://github.com/navis-org/navis"
    },
    "split_keywords": [
        "neuron",
        "analysis",
        "visualization",
        "morphometrics",
        "morphology",
        "anatomy",
        "connectivity",
        "transform",
        "neuroscience",
        "nblast",
        "skeletons",
        "swc",
        "neuprint"
    ],
    "urls": [
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "14f8da8c55aefdbfe8e8fd32c0344e265d483156461b03f04d4efbd306900dd9",
                "md5": "87880274349b270940d4bb3dfa5bc5c8",
                "sha256": "a6e369093332520978704d1ae94d6c16929371c520ea6ecc4dd034237565e67c"
            },
            "downloads": -1,
            "filename": "navis-1.6.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "87880274349b270940d4bb3dfa5bc5c8",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": "<4.0,>=3.9",
            "size": 2410875,
            "upload_time": "2024-04-07T15:47:27",
            "upload_time_iso_8601": "2024-04-07T15:47:27.733401Z",
            "url": "https://files.pythonhosted.org/packages/14/f8/da8c55aefdbfe8e8fd32c0344e265d483156461b03f04d4efbd306900dd9/navis-1.6.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": "",
            "digests": {
                "blake2b_256": "3d9fb3b1c6559b667f4154471168309f4848ae7c5b725c3d303f51b329c644ef",
                "md5": "0ea3a80ac1646abcd5042e569de9569a",
                "sha256": "a46425ae192ef723dc4e063c2e43b02859241f96e19fff9d9d38a056e476df04"
            },
            "downloads": -1,
            "filename": "navis-1.6.0.tar.gz",
            "has_sig": false,
            "md5_digest": "0ea3a80ac1646abcd5042e569de9569a",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": "<4.0,>=3.9",
            "size": 2298396,
            "upload_time": "2024-04-07T15:47:30",
            "upload_time_iso_8601": "2024-04-07T15:47:30.935548Z",
            "url": "https://files.pythonhosted.org/packages/3d/9f/b3b1c6559b667f4154471168309f4848ae7c5b725c3d303f51b329c644ef/navis-1.6.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2024-04-07 15:47:30",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "navis-org",
    "github_project": "navis",
    "travis_ci": true,
    "coveralls": true,
    "github_actions": true,
    "requirements": [
        {
            "name": "h5py",
            "specs": [
                [
                    ">=",
                    "3.1"
                ]
            ]
        },
        {
            "name": "matplotlib",
            "specs": [
                [
                    ">=",
                    "3.6"
                ]
            ]
        },
        {
            "name": "morphops",
            "specs": [
                [
                    ">=",
                    "0.1.11"
                ]
            ]
        },
        {
            "name": "ncollpyde",
            "specs": [
                [
                    ">=",
                    "0.18"
                ]
            ]
        },
        {
            "name": "networkx",
            "specs": [
                [
                    ">=",
                    "2.4"
                ]
            ]
        },
        {
            "name": "numpy",
            "specs": [
                [
                    ">=",
                    "1.16"
                ]
            ]
        },
        {
            "name": "pandas",
            "specs": [
                [
                    ">=",
                    "1.0"
                ]
            ]
        },
        {
            "name": "pint",
            "specs": [
                [
                    ">=",
                    "0.10"
                ]
            ]
        },
        {
            "name": "plotly",
            "specs": [
                [
                    ">=",
                    "4.9"
                ]
            ]
        },
        {
            "name": "pynrrd",
            "specs": [
                [
                    ">=",
                    "0.4.2"
                ]
            ]
        },
        {
            "name": "pypng",
            "specs": [
                [
                    ">=",
                    "0.0.18"
                ]
            ]
        },
        {
            "name": "requests",
            "specs": [
                [
                    ">=",
                    "2.20"
                ]
            ]
        },
        {
            "name": "seaborn",
            "specs": [
                [
                    ">=",
                    "0.10"
                ]
            ]
        },
        {
            "name": "setuptools",
            "specs": [
                [
                    ">=",
                    "65.5.1"
                ]
            ]
        },
        {
            "name": "scipy",
            "specs": [
                [
                    ">=",
                    "1.5"
                ]
            ]
        },
        {
            "name": "six",
            "specs": [
                [
                    ">=",
                    "1.11"
                ]
            ]
        },
        {
            "name": "tqdm",
            "specs": [
                [
                    ">=",
                    "4.45"
                ]
            ]
        },
        {
            "name": "typing-extensions",
            "specs": [
                [
                    ">=",
                    "3.7.4"
                ]
            ]
        },
        {
            "name": "trimesh",
            "specs": [
                [
                    ">=",
                    "3.8"
                ]
            ]
        },
        {
            "name": "fuzzywuzzy",
            "specs": [
                [
                    ">=",
                    "0.18"
                ]
            ]
        },
        {
            "name": "molesq",
            "specs": [
                [
                    ">=",
                    "0.2.0"
                ]
            ]
        },
        {
            "name": "rdata",
            "specs": [
                [
                    ">=",
                    "0.5"
                ]
            ]
        },
        {
            "name": "igraph",
            "specs": [
                [
                    "!=",
                    "0.10.1"
                ],
                [
                    "!=",
                    "0.10.0"
                ]
            ]
        },
        {
            "name": "skeletor",
            "specs": [
                [
                    ">=",
                    "1.0.0"
                ]
            ]
        },
        {
            "name": "pathos",
            "specs": [
                [
                    ">=",
                    "0.2.7"
                ]
            ]
        },
        {
            "name": "Shapely",
            "specs": [
                [
                    ">=",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "rpy2",
            "specs": []
        },
        {
            "name": "pykdtree",
            "specs": []
        },
        {
            "name": "xxhash",
            "specs": []
        },
        {
            "name": "flybrains",
            "specs": []
        },
        {
            "name": "cloud-volume",
            "specs": [
                [
                    ">=",
                    "5.2.0"
                ]
            ]
        },
        {
            "name": "vispy",
            "specs": [
                [
                    ">=",
                    "0.6.4"
                ]
            ]
        },
        {
            "name": "open3d",
            "specs": []
        },
        {
            "name": "pyfqmr",
            "specs": []
        },
        {
            "name": "jupyter",
            "specs": []
        },
        {
            "name": "neuprint-python",
            "specs": []
        },
        {
            "name": "Shapely",
            "specs": [
                [
                    ">=",
                    "1.6.0"
                ]
            ]
        },
        {
            "name": "flake8",
            "specs": []
        },
        {
            "name": "wheel",
            "specs": []
        },
        {
            "name": "mypy",
            "specs": []
        },
        {
            "name": "pytest",
            "specs": []
        },
        {
            "name": "pytest-env",
            "specs": []
        },
        {
            "name": "pytest-xvfb",
            "specs": []
        },
        {
            "name": "gitpython",
            "specs": []
        }
    ],
    "lcname": "navis"
}
        
Elapsed time: 0.22599s