{"name":"movement","display_name":"movement","visibility":"public","icon":"","categories":[],"schema_version":"0.2.1","on_activate":null,"on_deactivate":null,"contributions":{"commands":[{"id":"movement.make_widget","title":"movement","python_name":"movement.napari.meta_widget:MovementMetaWidget","short_title":null,"category":null,"icon":null,"enablement":null}],"readers":null,"writers":null,"widgets":[{"command":"movement.make_widget","display_name":"movement","autogenerate":false}],"sample_data":null,"themes":null,"menus":{},"submenus":null,"keybindings":null,"configuration":[]},"package_metadata":{"metadata_version":"2.4","name":"movement","version":"0.16.0","dynamic":["license-file"],"platform":null,"supported_platform":null,"summary":"A Python toolbox for analysing animal body movements across space and time","description":"[![Python Version](https://img.shields.io/pypi/pyversions/movement.svg)](https://pypi.org/project/movement)\n[![PyPI Version](https://img.shields.io/pypi/v/movement.svg)](https://pypi.org/project/movement)\n[![Conda Forge Version](https://anaconda.org/conda-forge/movement/badges/version.svg)](https://anaconda.org/conda-forge/movement)\n[![Downloads](https://pepy.tech/badge/movement)](https://pepy.tech/project/movement)\n[![License](https://img.shields.io/badge/License-BSD_3--Clause-orange.svg)](https://opensource.org/licenses/BSD-3-Clause)\n[![CI](https://img.shields.io/github/actions/workflow/status/neuroinformatics-unit/movement/test_and_deploy.yml?label=CI)](https://github.com/neuroinformatics-unit/movement/actions)\n[![codecov](https://codecov.io/gh/neuroinformatics-unit/movement/branch/main/graph/badge.svg?token=P8CCH3TI8K)](https://codecov.io/gh/neuroinformatics-unit/movement)\n[![Binder](https://mybinder.org/badge_logo.svg)](https://mybinder.org/v2/gh/neuroinformatics-unit/movement/gh-pages?filepath=notebooks/examples)\n[![Code style: Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/format.json)](https://github.com/astral-sh/ruff)\n[![pre-commit](https://img.shields.io/badge/pre--commit-enabled-brightgreen?logo=pre-commit&logoColor=white)](https://github.com/pre-commit/pre-commit)\n[![project chat](https://img.shields.io/badge/zulip-join_chat-brightgreen.svg)](https://neuroinformatics.zulipchat.com/#narrow/stream/406001-Movement/topic/Welcome!)\n[![DOI](https://zenodo.org/badge/DOI/10.5281/zenodo.12755724.svg)](https://zenodo.org/doi/10.5281/zenodo.12755724)\n\n# movement\n\nA Python toolbox for analysing animal body movements across space and time.\n\n\n![](docs/source/_static/movement_overview.png)\n\n## Quick install\n\nCreate and activate a conda environment with movement installed (including the GUI):\n```bash\nconda create -n movement-env -c conda-forge movement napari pyqt6\nconda activate movement-env\n```\n\n\n> [!Note]\n> Read the [documentation](https://movement.neuroinformatics.dev/latest) for more information, including [full installation instructions](https://movement.neuroinformatics.dev/latest/user_guide/installation.html) and [examples](https://movement.neuroinformatics.dev/latest/examples/index.html).\n\n## Overview\n\nDeep learning methods for motion tracking have revolutionised a range of\nscientific disciplines, from neuroscience and biomechanics, to conservation\nand ethology. Tools such as\n[DeepLabCut](https://www.mackenziemathislab.org/deeplabcut) and\n[SLEAP](https://sleap.ai/) now allow researchers to track animal movements\nin videos with remarkable accuracy, without requiring physical markers.\nHowever, there is still a need for standardised, easy-to-use methods\nto process the tracks generated by these tools.\n\n`movement` aims to provide a consistent, modular interface for analysing\nmotion tracks, enabling steps such as data cleaning, visualisation,\nand motion quantification. We aim to support all popular animal tracking\nframeworks and file formats.\n\nFind out more on our [mission and scope](https://movement.neuroinformatics.dev/latest/community/mission-scope.html) statement and our [roadmap](https://movement.neuroinformatics.dev/latest/community/roadmaps.html).\n\n<!-- Start Admonitions -->\n\n> [!Tip]\n> If you prefer analysing your data in R, we recommend checking out the\n> [animovement](https://animovement.dev/) toolbox, which is similar in scope.\n> We are working together with its developer\n> to gradually converge on common data standards and workflows.\n\n<!-- End Admonitions -->\n\n## Join the movement\n\n`movement` is made possible by the generous contributions of many [people](https://movement.neuroinformatics.dev/latest/community/people.html).\n\nWe welcome and encourage contributions in any form—whether it is fixing a bug, developing a new feature, or improving the documentation—as long as you follow our [code of conduct](CODE_OF_CONDUCT.md).\n\nGo to our [community page](https://movement.neuroinformatics.dev/latest/community/index.html) to find out how to connect with us and get involved.\n\n\n## Citation\n\nIf you use movement in your work, please cite the following Zenodo DOI:\n\n> Nikoloz Sirmpilatze, Chang Huan Lo, Sofía Miñano, Brandon D. Peri, Dhruv Sharma, Laura Porta, Iván Varela & Adam L. Tyson (2024). neuroinformatics-unit/movement. Zenodo. https://zenodo.org/doi/10.5281/zenodo.12755724\n\n## License\n⚖️ [BSD 3-Clause](./LICENSE)\n\n## Package template\nThis package layout and configuration (including pre-commit hooks and GitHub actions) have been copied from the [python-cookiecutter](https://github.com/neuroinformatics-unit/python-cookiecutter) template.\n","description_content_type":"text/markdown","keywords":null,"home_page":null,"download_url":null,"author":null,"author_email":"Nikoloz Sirmpilatze <niko.sirbiladze@gmail.com>, Chang Huan Lo <changhuan.lo@ucl.ac.uk>, Sofía Miñano <s.minano@ucl.ac.uk>","maintainer":null,"maintainer_email":null,"license":null,"classifier":["Development Status :: 3 - Alpha","Programming Language :: Python","Programming Language :: Python :: 3","Programming Language :: Python :: 3.12","Programming Language :: Python :: 3.13","Programming Language :: Python :: 3.14","Operating System :: OS Independent","Framework :: napari"],"requires_dist":["numpy>=2.0.0","pandas","h5py","netCDF4<1.7.3","tables>=3.10.1","attrs","pooch","tqdm","shapely","sleap-io","xarray[accel,io,viz]","PyYAML","napari-video>=0.2.13","pyvideoreader>=0.5.3","qt-niu","loguru","pynwb","ndx-pose>=0.2.1","jsonschema","orjson","typer>=0.9.0","napari[all]>=0.6.0; extra == \"napari\"","pytest; extra == \"dev\"","pytest-cov; extra == \"dev\"","pytest-mock; extra == \"dev\"","pytest-benchmark; extra == \"dev\"","coverage; extra == \"dev\"","tox; extra == \"dev\"","mypy; extra == \"dev\"","pre-commit; extra == \"dev\"","ruff; extra == \"dev\"","codespell; extra == \"dev\"","setuptools_scm; extra == \"dev\"","pandas-stubs; extra == \"dev\"","types-attrs; extra == \"dev\"","check-manifest; extra == \"dev\"","types-PyYAML; extra == \"dev\"","types-requests; extra == \"dev\"","pytest-qt; extra == \"dev\"","scipy-stubs; extra == \"dev\"","types-shapely; extra == \"dev\"","types-jsonschema; extra == \"dev\"","movement[napari]; extra == \"dev\"","movement[napari]; extra == \"docs\"","ablog>=0.11.13; extra == \"docs\"","linkify-it-py; extra == \"docs\"","myst-parser; extra == \"docs\"","nbsphinx; extra == \"docs\"","pydata-sphinx-theme; extra == \"docs\"","sphinx; extra == \"docs\"","sphinx-autodoc-typehints; extra == \"docs\"","sphinx-design; extra == \"docs\"","sphinx-gallery; extra == \"docs\"","sphinx-notfound-page; extra == \"docs\"","sphinx-sitemap; extra == \"docs\"","setuptools_scm; extra == \"docs\""],"requires_python":">=3.12.0","requires_external":null,"project_url":["Homepage, https://github.com/neuroinformatics-unit/movement","Bug Tracker, https://github.com/neuroinformatics-unit/movement/issues","Documentation, https://movement.neuroinformatics.dev/","Source Code, https://github.com/neuroinformatics-unit/movement","User Support, https://neuroinformatics.zulipchat.com/#narrow/stream/406001-Movement"],"provides_extra":["napari","dev","docs"],"provides_dist":null,"obsoletes_dist":null},"npe1_shim":false}