autogaita 1.4.4__tar.gz → 1.5.0__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. autogaita-1.5.0/PKG-INFO +173 -0
  2. {autogaita-1.4.4 → autogaita-1.5.0}/README.md +25 -23
  3. autogaita-1.5.0/autogaita.egg-info/PKG-INFO +173 -0
  4. autogaita-1.5.0/autogaita.egg-info/SOURCES.txt +24 -0
  5. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita.egg-info/requires.txt +3 -1
  6. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita.egg-info/top_level.txt +0 -1
  7. autogaita-1.5.0/pyproject.toml +47 -0
  8. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_group_unit.py +2 -2
  9. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_utils.py +53 -0
  10. autogaita-1.4.4/PKG-INFO +0 -25
  11. autogaita-1.4.4/autogaita/batchrun_scripts/__init__.py +0 -0
  12. autogaita-1.4.4/autogaita/batchrun_scripts/dlc_multirun.py +0 -73
  13. autogaita-1.4.4/autogaita/batchrun_scripts/dlc_singlerun.py +0 -84
  14. autogaita-1.4.4/autogaita/batchrun_scripts/group_dlcrun.py +0 -108
  15. autogaita-1.4.4/autogaita/batchrun_scripts/group_universal3Drun.py +0 -70
  16. autogaita-1.4.4/autogaita/batchrun_scripts/sleap_singlerun.py +0 -82
  17. autogaita-1.4.4/autogaita/batchrun_scripts/universal3D_multirun.py +0 -112
  18. autogaita-1.4.4/autogaita/batchrun_scripts/universal3D_singlerun.py +0 -67
  19. autogaita-1.4.4/autogaita/common2D/__init__.py +0 -0
  20. autogaita-1.4.4/autogaita/common2D/common2D_1_preparation.py +0 -829
  21. autogaita-1.4.4/autogaita/common2D/common2D_2_sc_extraction.py +0 -233
  22. autogaita-1.4.4/autogaita/common2D/common2D_3_analysis.py +0 -423
  23. autogaita-1.4.4/autogaita/common2D/common2D_4_plots.py +0 -929
  24. autogaita-1.4.4/autogaita/common2D/common2D_constants.py +0 -33
  25. autogaita-1.4.4/autogaita/common2D/common2D_utils.py +0 -444
  26. autogaita-1.4.4/autogaita/dlc/__init__.py +0 -0
  27. autogaita-1.4.4/autogaita/dlc/dlc_main.py +0 -76
  28. autogaita-1.4.4/autogaita/group/__init__.py +0 -0
  29. autogaita-1.4.4/autogaita/group/group_1_preparation.py +0 -333
  30. autogaita-1.4.4/autogaita/group/group_2_data_processing.py +0 -664
  31. autogaita-1.4.4/autogaita/group/group_3_PCA.py +0 -460
  32. autogaita-1.4.4/autogaita/group/group_4_stats.py +0 -1144
  33. autogaita-1.4.4/autogaita/group/group_5_plots.py +0 -631
  34. autogaita-1.4.4/autogaita/group/group_constants.py +0 -60
  35. autogaita-1.4.4/autogaita/group/group_main.py +0 -150
  36. autogaita-1.4.4/autogaita/group/group_utils.py +0 -233
  37. autogaita-1.4.4/autogaita/gui/__init__.py +0 -0
  38. autogaita-1.4.4/autogaita/gui/common2D_advanced_config_gui.py +0 -327
  39. autogaita-1.4.4/autogaita/gui/common2D_columninfo_gui.py +0 -470
  40. autogaita-1.4.4/autogaita/gui/common2D_gui_constants.py +0 -68
  41. autogaita-1.4.4/autogaita/gui/common2D_gui_utils.py +0 -209
  42. autogaita-1.4.4/autogaita/gui/common2D_main_gui.py +0 -319
  43. autogaita-1.4.4/autogaita/gui/common2D_run_and_done_gui.py +0 -366
  44. autogaita-1.4.4/autogaita/gui/dlc_gui.py +0 -15
  45. autogaita-1.4.4/autogaita/gui/dlc_gui_config.json +0 -91
  46. autogaita-1.4.4/autogaita/gui/first_level_gui_utils.py +0 -124
  47. autogaita-1.4.4/autogaita/gui/gaita_widgets.py +0 -179
  48. autogaita-1.4.4/autogaita/gui/group_gui.py +0 -1328
  49. autogaita-1.4.4/autogaita/gui/group_gui_config.json +0 -42
  50. autogaita-1.4.4/autogaita/gui/gui_constants.py +0 -76
  51. autogaita-1.4.4/autogaita/gui/gui_utils.py +0 -139
  52. autogaita-1.4.4/autogaita/gui/main_gui.py +0 -132
  53. autogaita-1.4.4/autogaita/gui/sleap_gui.py +0 -15
  54. autogaita-1.4.4/autogaita/gui/sleap_gui_config.json +0 -76
  55. autogaita-1.4.4/autogaita/gui/universal3D_gui.py +0 -1324
  56. autogaita-1.4.4/autogaita/gui/universal3D_gui_config.json +0 -65
  57. autogaita-1.4.4/autogaita/resources/__init__.py +0 -0
  58. autogaita-1.4.4/autogaita/resources/constants.py +0 -8
  59. autogaita-1.4.4/autogaita/resources/folder.png +0 -0
  60. autogaita-1.4.4/autogaita/resources/icon.icns +0 -0
  61. autogaita-1.4.4/autogaita/resources/icon.ico +0 -0
  62. autogaita-1.4.4/autogaita/resources/logo.png +0 -0
  63. autogaita-1.4.4/autogaita/resources/pic_to_demo_for_repo.png +0 -0
  64. autogaita-1.4.4/autogaita/resources/utils.py +0 -521
  65. autogaita-1.4.4/autogaita/sleap/__init__.py +0 -0
  66. autogaita-1.4.4/autogaita/sleap/sleap_main.py +0 -78
  67. autogaita-1.4.4/autogaita/universal3D/__init__.py +0 -0
  68. autogaita-1.4.4/autogaita/universal3D/universal3D_1_preparation.py +0 -548
  69. autogaita-1.4.4/autogaita/universal3D/universal3D_2_sc_extraction.py +0 -485
  70. autogaita-1.4.4/autogaita/universal3D/universal3D_3_analysis.py +0 -821
  71. autogaita-1.4.4/autogaita/universal3D/universal3D_4_plots.py +0 -1021
  72. autogaita-1.4.4/autogaita/universal3D/universal3D_constants.py +0 -41
  73. autogaita-1.4.4/autogaita/universal3D/universal3D_datafile_preparation.py +0 -216
  74. autogaita-1.4.4/autogaita/universal3D/universal3D_main.py +0 -94
  75. autogaita-1.4.4/autogaita/universal3D/universal3D_utils.py +0 -18
  76. autogaita-1.4.4/autogaita.egg-info/PKG-INFO +0 -25
  77. autogaita-1.4.4/autogaita.egg-info/SOURCES.txt +0 -90
  78. autogaita-1.4.4/setup.py +0 -41
  79. autogaita-1.4.4/tests/__init__.py +0 -0
  80. {autogaita-1.4.4 → autogaita-1.5.0}/LICENSE +0 -0
  81. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita/__init__.py +0 -0
  82. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita/__main__.py +0 -0
  83. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita.egg-info/dependency_links.txt +0 -0
  84. {autogaita-1.4.4 → autogaita-1.5.0}/autogaita.egg-info/entry_points.txt +0 -0
  85. {autogaita-1.4.4 → autogaita-1.5.0}/setup.cfg +0 -0
  86. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_common2D_unit_1_preparation.py +0 -0
  87. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_common2D_unit_2_sc_extraction.py +0 -0
  88. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_common2D_unit_3_analysis.py +0 -0
  89. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_common2D_unit_utils.py +0 -0
  90. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_dlc_approval.py +0 -0
  91. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_dlc_unit_1_preparation.py +0 -0
  92. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_group_approval.py +0 -0
  93. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_universal3D_approval.py +0 -0
  94. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_universal3D_unit_1_preparation.py +0 -0
  95. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_universal3D_unit_2_sc_extraction.py +0 -0
  96. {autogaita-1.4.4 → autogaita-1.5.0}/tests/test_universal3D_unit_3_analysis.py +0 -0
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.4
2
+ Name: autogaita
3
+ Version: 1.5.0
4
+ Summary: Automated Gait (and more!) Analysis in Python
5
+ Author-email: Mahan Hosseini <autogaita@fz-juelich.de>
6
+ License: GPLv3
7
+ Project-URL: Homepage, https://github.com/mahan-hosseini/AutoGaitA/
8
+ Project-URL: Documentation, https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0
9
+ Project-URL: YouTube, https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=JBEYuzDDRe7qz5Qd
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: customtkinter>=5.2
14
+ Requires-Dist: pandas<3.0,>=2.0
15
+ Requires-Dist: numpy>=1.24
16
+ Requires-Dist: seaborn>=0.13
17
+ Requires-Dist: matplotlib>=3.7
18
+ Requires-Dist: scikit-learn>=1.2
19
+ Requires-Dist: pingouin>=0.5
20
+ Requires-Dist: scipy>=1.11
21
+ Requires-Dist: scikit-bio>=0.7.1
22
+ Requires-Dist: statsmodels>=0.14
23
+ Requires-Dist: ffmpeg-python>=0.2
24
+ Requires-Dist: openpyxl>=3.1
25
+ Requires-Dist: pillow>=10.3
26
+ Requires-Dist: h5py>=3.11
27
+ Requires-Dist: pyobjc; sys_platform == "darwin"
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest; extra == "dev"
30
+ Requires-Dist: hypothesis; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ ![AutoGaitA](https://github.com/mahan-hosseini/AutoGaitA/blob/main/autogaita/resources/logo.png?raw=true)
34
+ ![Repository Active](https://www.repostatus.org/badges/latest/active.svg)
35
+ [![Test AutoGaitA](https://github.com/mahan-hosseini/AutoGaitA/actions/workflows/autogaita_test_and_black.yml/badge.svg)](https://github.com/mahan-hosseini/AutoGaitA/actions/workflows/autogaita_test_and_black.yml)
36
+ ![Python](https://img.shields.io/badge/python-v3.10+-blue.svg)
37
+ [![PyPI - Version](https://img.shields.io/pypi/v/autogaita)](https://pypi.org/project/autogaita/)
38
+ ![license: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)
39
+ [![paper: biorxiv](https://img.shields.io/badge/paper-biorxiv-blue)](https://doi.org/10.1101/2024.04.14.589409)
40
+
41
+ ![Black](https://img.shields.io/badge/code%20style-black-000000.svg)
42
+ [![Tutorials](https://img.shields.io/badge/YouTube-red?style=for-the-badge&logo=youtube&logoColor=white)](https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&feature=shared)
43
+ [![X URL](https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fautogaita&style=social&label=updates)](https://x.com/autogaita)
44
+
45
+ # Automated Gait Analysis in Python 🐸
46
+
47
+ - AutoGaitA simplifies, accelerates, and standardises gait analyses (as well as the analysis of other rhythmic behaviours) after body posture tracking in 2D with [DeepLabCut](https://github.com/DeepLabCut/DeepLabCut) and [SLEAP](https://github.com/talmolab/sleap) or marker-based as well as marker-less methods for obtaining 3D coordinates.
48
+ - AutoGaitA's first-level tools provide a wide range of automated kinematic analyses for each input video and AutoGaitA Group allows the comparison of up to six groups.
49
+ - AutoGaitA enables comparisons to be made across experimental conditions, species, disease states or genotypes.
50
+ - Despite being developed with gait data, AutoGaitA can be utilised for the analysis of any motor behaviour.
51
+
52
+ # 🚀 Quick Start (Recommended - no Python needed!)
53
+ This approach uses [uv](https://github.com/astral-sh/uv) for installation. It is really simple to set up:
54
+
55
+ ## 1. Install `uv`
56
+ * **macOS / Linux - Open your terminal & enter:**
57
+ ```bash
58
+ curl -LsSf https://astral.sh/uv/install.sh | sh
59
+ ```
60
+ * **Windows - Open Powershell and enter:**
61
+ ```powershell
62
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
63
+ ```
64
+
65
+ ## 2. Install & Run AutoGaitA
66
+ Open your terminal (Mac/Linux) or (restart) PowerShell/CMD (Windows) and run:
67
+
68
+ ```bash
69
+ uv tool install autogaita
70
+ autogaita
71
+ ```
72
+
73
+ **🥳 That's it - AutoGaitA is now installed!**
74
+ You can launch it anytime by opening a terminal and entering `autogaita`.
75
+
76
+ **To update** to the latest release (see the *Releases* panel on the right for the latest versions) open a terminal and enter: `uv tool upgrade autogaita`.
77
+
78
+ # 🐍 Legacy Installation (pip)
79
+ If you prefer to manage your own Python environments, use standard `pip`, or have a version before v1.4.2, you can still install AutoGaitA the traditional way.
80
+
81
+ Please refer to **[Our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing)** for step-by-step instructions on setting up a virtual environment, activating it, and installing via `pip`.
82
+
83
+ For upgrading a pip-installed version activate your virtual environment and enter: `pip install autogaita -U`
84
+
85
+ # Demo Video
86
+ *Check out the video below for a demonstration of AutoGaitA's main workflow!*
87
+ <p><a href="https://youtu.be/_HIZVuUzpzk?feature=shared">
88
+ <img src="https://github.com/mahan-hosseini/AutoGaitA/blob/main/autogaita/resources/pic_to_demo_for_repo.png" width="550">
89
+
90
+ # Tutorials & Examples
91
+
92
+ ## Walkthrough Tutorial Videos
93
+
94
+ **[The AutoGaitA YouTube Channel](https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=mV5p2--nYvbofkPh) provides tutorials for file preparation and instructions on how to use AutoGaitA. This includes in-depth explanations of all details, (main & advanced) configurations, possibilities, and outputs.**
95
+
96
+ *Please note that tutorial videos might not always reflect the most up-to-date version of our toolbox, especially in the beginning when things are regularly changing. We will make sure to record new videos whenever there are major changes though. If updates are just minor we refer to them in the notes below each video. Last tutorial-update was with v1.4.0. (September 2025).*
97
+
98
+ ## Example Data
99
+ We provide an example dataset in the **example data** folder of this repository, with a set of mice walking over differently wide beams and both the beam as well as body coordinates being tracked with DLC. Note that this dataset was used in our tutorial videos introducing *AutoGaitA DLC*, *AutoGaitA Group* and in our video explaining file preparation for *AutoGaitA DLC*. We further provide a **group** folder there that can be used alongside the *AutoGaitA Group* tutorial to confirm that users generate the same set of results following our instructions.
100
+
101
+ ## Annotation Table Examples and Templates
102
+ Annotation Table example and template files for *AutoGaitA DLC* and *AutoGaitA Universal 3D* can be found in the [**annotation tables**](https://github.com/mahan-hosseini/AutoGaitA/tree/main/annotation%20tables) folder of this repository.
103
+
104
+ Users are advised to read the **General Recommendations** section of that folder, use the template to enter their data's timestamp information and to then compare the resulting table with our example to check formatting. Users working with ImageJ/FIJI are encouraged to check out the [AnnotationTable-Plugin](https://github.com/luca-flemming/AnnotationTable-Plugin) developed by our contributor Luca Flemming.
105
+
106
+ # Documentation
107
+
108
+ **[The AutoGaitA Documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing) provides complete guidelines on installation, file preparation, AutoGaitA GUIs, using AutoGaitA via the command line, installing FFmpeg for rotating 3D PCA videos, lists known issues and FAQ.**
109
+
110
+ # Two important options
111
+
112
+ ## Custom joints & angles
113
+ **We strongly advise** users to pay attention to the *custom joints and angles* windows of AutoGaitA's first level toolboxes. Please see the relevant links below. These windows allow users to customise which columns of their data should be analysed and how angles should be computed.
114
+
115
+ By default, *AutoGaitA DLC* and *AutoGaitA Universal 3D* implement standard values for mouse and human locomotion, respectively. If your analysis deviates from these standards (e.g. by focussing on another behaviour or a different species) **you must change these values!**
116
+
117
+ **Find out more about *AutoGaitA's custom joints and angles:***
118
+ - [YouTube - AutoGaitA DLC/SLEAP Advanced Configuration](https://youtu.be/MP9g9kXRE_Q?feature=shared)
119
+ - [YouTube - AutoGaitA Universal 3D](https://youtu.be/vZyWmPcI6ao)
120
+ - [Documentation - AutoGaitA DLC/SLEAP](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.20bg7b7ymt0b)
121
+ - [Documentation - AutoGaitA Universal 3D](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.uz61bpmua7qz)
122
+
123
+ ## Bin number of step cycle normalisation
124
+ An important step in AutoGaitA is normalising step cycles (or instances of other behaviours) to a uniform length before calculating the video-level average. This uniform length is called *bin number*, must be set by users and defaults to a value of 25.
125
+
126
+ Step cycles are normalised via averaging temporally adjacent data points if their original length was larger than the bin number and repeating values if they were shorter originally. Examples are provided here:
127
+ - [Documentation/AutoGaitA DLC/Main Configuration/Option #6](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.bboivsfqr2lz).
128
+
129
+ **We strongly advise** users to think carefully about an appropriate bin number for their datasets. The correct value varies and depends strongly on the studied species, behaviour and the frame rate of cameras.
130
+
131
+ # 2D Kinematics in AutoGaitA Universal 3D
132
+ **We strongly advise** AutoGaitA Universal 3D users to carefully consider how our toolbox computes kinematics in 2D, i.e., angles along the y/z-plane and velocities along the y-dimensions. For more information, please see the corresponding **[important note on 2D kinematics in our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.xc5ome7hzfid)**.
133
+
134
+ # Analysing other behaviours - AutoCyclA 🚴
135
+ Even though AutoGaitA's main focus is to automate and standardise gait analyses, our toolbox can be used to automate the analyses of any rhythmic behaviour of interest. For a proof-of-principle demonstration and an introduction of the general workflow of such analyses, see **[AutoCyclA - Automated Cycling Analysis with AutoGaitA.](https://github.com/mahan-hosseini/AutoGaitA/tree/main/autocycla)**
136
+
137
+ # Updating AutoGaitA
138
+ It is strongly recommended that AutoGaitA is kept up to date since new features and important bugfixes are provided regularly.
139
+
140
+ AutoGaitA's cfg files and dictionaries sometimes change as a result, which means that previously generated first-level *Results* folders cannot always be analysed with AutoGaitA Group after an update. In such cases, it is recommended to re-run first-level analyses.
141
+
142
+ We document each version's cfg-changes in [AutoGaitA Releases](https://github.com/mahan-hosseini/AutoGaitA/releases), which is particularly relevant for users wrapping custom scripts around AutoGaitA's functions.
143
+
144
+ # Reference
145
+ If you use this code or data please [cite our preprint](https://doi.org/10.1101/2024.04.14.589409).
146
+
147
+ # License
148
+ AutoGaitA is licensed under [GPL v3.0](https://github.com/mahan-hosseini/AutoGaitA/blob/main/LICENSE) and Forschungszentrum Jülich GmbH holds all copyrights.
149
+
150
+ The AutoGaitA software is provided without warranty of any kind, express or implied, including, but not limited to, the implied warranty of fitness for a particular purpose.
151
+
152
+ # Authors
153
+ [Mahan Hosseini](https://github.com/mahan-hosseini)
154
+
155
+ # Contributors
156
+ [Kishan Thambu](https://github.com/thambukishan) - Undergraduate Student
157
+
158
+ [Sarah Sabbagh](https://github.com/sarahhsabbagh) - Undergraduate Student
159
+
160
+ [Luca Flemming](https://github.com/luca-flemming) - Undergraduate Student
161
+
162
+ [Nicholas del Grosso](https://github.com/nickdelgrosso) - RSE Advisor
163
+
164
+ # Contributing
165
+ If you would like to contribute to the AutoGaitA toolbox, feel free to open a pull request or contact us at autogaita@fz-juelich.de!
166
+
167
+ We are looking forward to your input and ideas 😊
168
+
169
+ # Archive
170
+ We have archived the resources of outdated AutoGaitA versions here:
171
+
172
+ - v0.4.1 - [Documentation](https://docs.google.com/document/d/1Y4wrrsjs0ybLDKPzE2LAatqPDq9jtwjIuk4M0jRZ3wE/edit?usp=sharing)
173
+ - v0.3.1 - [YouTube Tutorials](https://youtube.com/playlist?list=PLCn5T7K_H8K776DLuXKoPsUpI6Yb0NU33&si=7ZAAvcrPxR7WsB8a) & [Documentation](https://docs.google.com/document/d/11mJd7jUHk7joQ0BdZT98CJRrIANdyosMQMJGFtp6yR4/edit?usp=sharing)
@@ -17,10 +17,10 @@
17
17
  - AutoGaitA enables comparisons to be made across experimental conditions, species, disease states or genotypes.
18
18
  - Despite being developed with gait data, AutoGaitA can be utilised for the analysis of any motor behaviour.
19
19
 
20
- ## 🚀 Quick Start (Recommended - no Python needed!)
20
+ # 🚀 Quick Start (Recommended - no Python needed!)
21
21
  This approach uses [uv](https://github.com/astral-sh/uv) for installation. It is really simple to set up:
22
22
 
23
- ### 1. Install `uv`
23
+ ## 1. Install `uv`
24
24
  * **macOS / Linux - Open your terminal & enter:**
25
25
  ```bash
26
26
  curl -LsSf https://astral.sh/uv/install.sh | sh
@@ -30,8 +30,8 @@ This approach uses [uv](https://github.com/astral-sh/uv) for installation. It is
30
30
  powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
31
31
  ```
32
32
 
33
- ### 2. Install & Run AutoGaitA
34
- Open your terminal (Mac/Linux) or PowerShell/CMD (Windows) and run:
33
+ ## 2. Install & Run AutoGaitA
34
+ Open your terminal (Mac/Linux) or (restart) PowerShell/CMD (Windows) and run:
35
35
 
36
36
  ```bash
37
37
  uv tool install autogaita
@@ -43,41 +43,41 @@ You can launch it anytime by opening a terminal and entering `autogaita`.
43
43
 
44
44
  **To update** to the latest release (see the *Releases* panel on the right for the latest versions) open a terminal and enter: `uv tool upgrade autogaita`.
45
45
 
46
- ## 🐍 Legacy Installation (pip)
46
+ # 🐍 Legacy Installation (pip)
47
47
  If you prefer to manage your own Python environments, use standard `pip`, or have a version before v1.4.2, you can still install AutoGaitA the traditional way.
48
48
 
49
49
  Please refer to **[Our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing)** for step-by-step instructions on setting up a virtual environment, activating it, and installing via `pip`.
50
50
 
51
51
  For upgrading a pip-installed version activate your virtual environment and enter: `pip install autogaita -U`
52
52
 
53
- ## Demo Video
53
+ # Demo Video
54
54
  *Check out the video below for a demonstration of AutoGaitA's main workflow!*
55
55
  <p><a href="https://youtu.be/_HIZVuUzpzk?feature=shared">
56
56
  <img src="https://github.com/mahan-hosseini/AutoGaitA/blob/main/autogaita/resources/pic_to_demo_for_repo.png" width="550">
57
57
 
58
- ## Tutorials & Examples
58
+ # Tutorials & Examples
59
59
 
60
- ### Walkthrough Tutorial Videos
60
+ ## Walkthrough Tutorial Videos
61
61
 
62
62
  **[The AutoGaitA YouTube Channel](https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=mV5p2--nYvbofkPh) provides tutorials for file preparation and instructions on how to use AutoGaitA. This includes in-depth explanations of all details, (main & advanced) configurations, possibilities, and outputs.**
63
63
 
64
64
  *Please note that tutorial videos might not always reflect the most up-to-date version of our toolbox, especially in the beginning when things are regularly changing. We will make sure to record new videos whenever there are major changes though. If updates are just minor we refer to them in the notes below each video. Last tutorial-update was with v1.4.0. (September 2025).*
65
65
 
66
- ### Example Data
66
+ ## Example Data
67
67
  We provide an example dataset in the **example data** folder of this repository, with a set of mice walking over differently wide beams and both the beam as well as body coordinates being tracked with DLC. Note that this dataset was used in our tutorial videos introducing *AutoGaitA DLC*, *AutoGaitA Group* and in our video explaining file preparation for *AutoGaitA DLC*. We further provide a **group** folder there that can be used alongside the *AutoGaitA Group* tutorial to confirm that users generate the same set of results following our instructions.
68
68
 
69
- ### Annotation Table Examples and Templates
69
+ ## Annotation Table Examples and Templates
70
70
  Annotation Table example and template files for *AutoGaitA DLC* and *AutoGaitA Universal 3D* can be found in the [**annotation tables**](https://github.com/mahan-hosseini/AutoGaitA/tree/main/annotation%20tables) folder of this repository.
71
71
 
72
72
  Users are advised to read the **General Recommendations** section of that folder, use the template to enter their data's timestamp information and to then compare the resulting table with our example to check formatting. Users working with ImageJ/FIJI are encouraged to check out the [AnnotationTable-Plugin](https://github.com/luca-flemming/AnnotationTable-Plugin) developed by our contributor Luca Flemming.
73
73
 
74
- ## Documentation
74
+ # Documentation
75
75
 
76
76
  **[The AutoGaitA Documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing) provides complete guidelines on installation, file preparation, AutoGaitA GUIs, using AutoGaitA via the command line, installing FFmpeg for rotating 3D PCA videos, lists known issues and FAQ.**
77
77
 
78
- ## Two important options
78
+ # Two important options
79
79
 
80
- ### Custom joints & angles
80
+ ## Custom joints & angles
81
81
  **We strongly advise** users to pay attention to the *custom joints and angles* windows of AutoGaitA's first level toolboxes. Please see the relevant links below. These windows allow users to customise which columns of their data should be analysed and how angles should be computed.
82
82
 
83
83
  By default, *AutoGaitA DLC* and *AutoGaitA Universal 3D* implement standard values for mouse and human locomotion, respectively. If your analysis deviates from these standards (e.g. by focussing on another behaviour or a different species) **you must change these values!**
@@ -88,7 +88,7 @@ By default, *AutoGaitA DLC* and *AutoGaitA Universal 3D* implement standard valu
88
88
  - [Documentation - AutoGaitA DLC/SLEAP](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.20bg7b7ymt0b)
89
89
  - [Documentation - AutoGaitA Universal 3D](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.uz61bpmua7qz)
90
90
 
91
- ### Bin number of step cycle normalisation
91
+ ## Bin number of step cycle normalisation
92
92
  An important step in AutoGaitA is normalising step cycles (or instances of other behaviours) to a uniform length before calculating the video-level average. This uniform length is called *bin number*, must be set by users and defaults to a value of 25.
93
93
 
94
94
  Step cycles are normalised via averaging temporally adjacent data points if their original length was larger than the bin number and repeating values if they were shorter originally. Examples are provided here:
@@ -96,43 +96,45 @@ Step cycles are normalised via averaging temporally adjacent data points if thei
96
96
 
97
97
  **We strongly advise** users to think carefully about an appropriate bin number for their datasets. The correct value varies and depends strongly on the studied species, behaviour and the frame rate of cameras.
98
98
 
99
- ## 2D Kinematics in AutoGaitA Universal 3D
99
+ # 2D Kinematics in AutoGaitA Universal 3D
100
100
  **We strongly advise** AutoGaitA Universal 3D users to carefully consider how our toolbox computes kinematics in 2D, i.e., angles along the y/z-plane and velocities along the y-dimensions. For more information, please see the corresponding **[important note on 2D kinematics in our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.xc5ome7hzfid)**.
101
101
 
102
- ## Analysing other behaviours - AutoCyclA 🚴
102
+ # Analysing other behaviours - AutoCyclA 🚴
103
103
  Even though AutoGaitA's main focus is to automate and standardise gait analyses, our toolbox can be used to automate the analyses of any rhythmic behaviour of interest. For a proof-of-principle demonstration and an introduction of the general workflow of such analyses, see **[AutoCyclA - Automated Cycling Analysis with AutoGaitA.](https://github.com/mahan-hosseini/AutoGaitA/tree/main/autocycla)**
104
104
 
105
- ## Updating AutoGaitA
105
+ # Updating AutoGaitA
106
106
  It is strongly recommended that AutoGaitA is kept up to date since new features and important bugfixes are provided regularly.
107
107
 
108
108
  AutoGaitA's cfg files and dictionaries sometimes change as a result, which means that previously generated first-level *Results* folders cannot always be analysed with AutoGaitA Group after an update. In such cases, it is recommended to re-run first-level analyses.
109
109
 
110
110
  We document each version's cfg-changes in [AutoGaitA Releases](https://github.com/mahan-hosseini/AutoGaitA/releases), which is particularly relevant for users wrapping custom scripts around AutoGaitA's functions.
111
111
 
112
- ## Reference
112
+ # Reference
113
113
  If you use this code or data please [cite our preprint](https://doi.org/10.1101/2024.04.14.589409).
114
114
 
115
- ## License
115
+ # License
116
116
  AutoGaitA is licensed under [GPL v3.0](https://github.com/mahan-hosseini/AutoGaitA/blob/main/LICENSE) and Forschungszentrum Jülich GmbH holds all copyrights.
117
117
 
118
118
  The AutoGaitA software is provided without warranty of any kind, express or implied, including, but not limited to, the implied warranty of fitness for a particular purpose.
119
119
 
120
- ## Authors
120
+ # Authors
121
121
  [Mahan Hosseini](https://github.com/mahan-hosseini)
122
122
 
123
- ## Contributors
123
+ # Contributors
124
+ [Kishan Thambu](https://github.com/thambukishan) - Undergraduate Student
125
+
124
126
  [Sarah Sabbagh](https://github.com/sarahhsabbagh) - Undergraduate Student
125
127
 
126
128
  [Luca Flemming](https://github.com/luca-flemming) - Undergraduate Student
127
129
 
128
130
  [Nicholas del Grosso](https://github.com/nickdelgrosso) - RSE Advisor
129
131
 
130
- ## Contributing
132
+ # Contributing
131
133
  If you would like to contribute to the AutoGaitA toolbox, feel free to open a pull request or contact us at autogaita@fz-juelich.de!
132
134
 
133
135
  We are looking forward to your input and ideas 😊
134
136
 
135
- ## Archive
137
+ # Archive
136
138
  We have archived the resources of outdated AutoGaitA versions here:
137
139
 
138
140
  - v0.4.1 - [Documentation](https://docs.google.com/document/d/1Y4wrrsjs0ybLDKPzE2LAatqPDq9jtwjIuk4M0jRZ3wE/edit?usp=sharing)
@@ -0,0 +1,173 @@
1
+ Metadata-Version: 2.4
2
+ Name: autogaita
3
+ Version: 1.5.0
4
+ Summary: Automated Gait (and more!) Analysis in Python
5
+ Author-email: Mahan Hosseini <autogaita@fz-juelich.de>
6
+ License: GPLv3
7
+ Project-URL: Homepage, https://github.com/mahan-hosseini/AutoGaitA/
8
+ Project-URL: Documentation, https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0
9
+ Project-URL: YouTube, https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=JBEYuzDDRe7qz5Qd
10
+ Requires-Python: >=3.10
11
+ Description-Content-Type: text/markdown
12
+ License-File: LICENSE
13
+ Requires-Dist: customtkinter>=5.2
14
+ Requires-Dist: pandas<3.0,>=2.0
15
+ Requires-Dist: numpy>=1.24
16
+ Requires-Dist: seaborn>=0.13
17
+ Requires-Dist: matplotlib>=3.7
18
+ Requires-Dist: scikit-learn>=1.2
19
+ Requires-Dist: pingouin>=0.5
20
+ Requires-Dist: scipy>=1.11
21
+ Requires-Dist: scikit-bio>=0.7.1
22
+ Requires-Dist: statsmodels>=0.14
23
+ Requires-Dist: ffmpeg-python>=0.2
24
+ Requires-Dist: openpyxl>=3.1
25
+ Requires-Dist: pillow>=10.3
26
+ Requires-Dist: h5py>=3.11
27
+ Requires-Dist: pyobjc; sys_platform == "darwin"
28
+ Provides-Extra: dev
29
+ Requires-Dist: pytest; extra == "dev"
30
+ Requires-Dist: hypothesis; extra == "dev"
31
+ Dynamic: license-file
32
+
33
+ ![AutoGaitA](https://github.com/mahan-hosseini/AutoGaitA/blob/main/autogaita/resources/logo.png?raw=true)
34
+ ![Repository Active](https://www.repostatus.org/badges/latest/active.svg)
35
+ [![Test AutoGaitA](https://github.com/mahan-hosseini/AutoGaitA/actions/workflows/autogaita_test_and_black.yml/badge.svg)](https://github.com/mahan-hosseini/AutoGaitA/actions/workflows/autogaita_test_and_black.yml)
36
+ ![Python](https://img.shields.io/badge/python-v3.10+-blue.svg)
37
+ [![PyPI - Version](https://img.shields.io/pypi/v/autogaita)](https://pypi.org/project/autogaita/)
38
+ ![license: GPL v3](https://img.shields.io/badge/license-GPLv3-blue.svg)
39
+ [![paper: biorxiv](https://img.shields.io/badge/paper-biorxiv-blue)](https://doi.org/10.1101/2024.04.14.589409)
40
+
41
+ ![Black](https://img.shields.io/badge/code%20style-black-000000.svg)
42
+ [![Tutorials](https://img.shields.io/badge/YouTube-red?style=for-the-badge&logo=youtube&logoColor=white)](https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&feature=shared)
43
+ [![X URL](https://img.shields.io/twitter/url?url=https%3A%2F%2Fx.com%2Fautogaita&style=social&label=updates)](https://x.com/autogaita)
44
+
45
+ # Automated Gait Analysis in Python 🐸
46
+
47
+ - AutoGaitA simplifies, accelerates, and standardises gait analyses (as well as the analysis of other rhythmic behaviours) after body posture tracking in 2D with [DeepLabCut](https://github.com/DeepLabCut/DeepLabCut) and [SLEAP](https://github.com/talmolab/sleap) or marker-based as well as marker-less methods for obtaining 3D coordinates.
48
+ - AutoGaitA's first-level tools provide a wide range of automated kinematic analyses for each input video and AutoGaitA Group allows the comparison of up to six groups.
49
+ - AutoGaitA enables comparisons to be made across experimental conditions, species, disease states or genotypes.
50
+ - Despite being developed with gait data, AutoGaitA can be utilised for the analysis of any motor behaviour.
51
+
52
+ # 🚀 Quick Start (Recommended - no Python needed!)
53
+ This approach uses [uv](https://github.com/astral-sh/uv) for installation. It is really simple to set up:
54
+
55
+ ## 1. Install `uv`
56
+ * **macOS / Linux - Open your terminal & enter:**
57
+ ```bash
58
+ curl -LsSf https://astral.sh/uv/install.sh | sh
59
+ ```
60
+ * **Windows - Open Powershell and enter:**
61
+ ```powershell
62
+ powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
63
+ ```
64
+
65
+ ## 2. Install & Run AutoGaitA
66
+ Open your terminal (Mac/Linux) or (restart) PowerShell/CMD (Windows) and run:
67
+
68
+ ```bash
69
+ uv tool install autogaita
70
+ autogaita
71
+ ```
72
+
73
+ **🥳 That's it - AutoGaitA is now installed!**
74
+ You can launch it anytime by opening a terminal and entering `autogaita`.
75
+
76
+ **To update** to the latest release (see the *Releases* panel on the right for the latest versions) open a terminal and enter: `uv tool upgrade autogaita`.
77
+
78
+ # 🐍 Legacy Installation (pip)
79
+ If you prefer to manage your own Python environments, use standard `pip`, or have a version before v1.4.2, you can still install AutoGaitA the traditional way.
80
+
81
+ Please refer to **[Our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing)** for step-by-step instructions on setting up a virtual environment, activating it, and installing via `pip`.
82
+
83
+ For upgrading a pip-installed version activate your virtual environment and enter: `pip install autogaita -U`
84
+
85
+ # Demo Video
86
+ *Check out the video below for a demonstration of AutoGaitA's main workflow!*
87
+ <p><a href="https://youtu.be/_HIZVuUzpzk?feature=shared">
88
+ <img src="https://github.com/mahan-hosseini/AutoGaitA/blob/main/autogaita/resources/pic_to_demo_for_repo.png" width="550">
89
+
90
+ # Tutorials & Examples
91
+
92
+ ## Walkthrough Tutorial Videos
93
+
94
+ **[The AutoGaitA YouTube Channel](https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=mV5p2--nYvbofkPh) provides tutorials for file preparation and instructions on how to use AutoGaitA. This includes in-depth explanations of all details, (main & advanced) configurations, possibilities, and outputs.**
95
+
96
+ *Please note that tutorial videos might not always reflect the most up-to-date version of our toolbox, especially in the beginning when things are regularly changing. We will make sure to record new videos whenever there are major changes though. If updates are just minor we refer to them in the notes below each video. Last tutorial-update was with v1.4.0. (September 2025).*
97
+
98
+ ## Example Data
99
+ We provide an example dataset in the **example data** folder of this repository, with a set of mice walking over differently wide beams and both the beam as well as body coordinates being tracked with DLC. Note that this dataset was used in our tutorial videos introducing *AutoGaitA DLC*, *AutoGaitA Group* and in our video explaining file preparation for *AutoGaitA DLC*. We further provide a **group** folder there that can be used alongside the *AutoGaitA Group* tutorial to confirm that users generate the same set of results following our instructions.
100
+
101
+ ## Annotation Table Examples and Templates
102
+ Annotation Table example and template files for *AutoGaitA DLC* and *AutoGaitA Universal 3D* can be found in the [**annotation tables**](https://github.com/mahan-hosseini/AutoGaitA/tree/main/annotation%20tables) folder of this repository.
103
+
104
+ Users are advised to read the **General Recommendations** section of that folder, use the template to enter their data's timestamp information and to then compare the resulting table with our example to check formatting. Users working with ImageJ/FIJI are encouraged to check out the [AnnotationTable-Plugin](https://github.com/luca-flemming/AnnotationTable-Plugin) developed by our contributor Luca Flemming.
105
+
106
+ # Documentation
107
+
108
+ **[The AutoGaitA Documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?usp=sharing) provides complete guidelines on installation, file preparation, AutoGaitA GUIs, using AutoGaitA via the command line, installing FFmpeg for rotating 3D PCA videos, lists known issues and FAQ.**
109
+
110
+ # Two important options
111
+
112
+ ## Custom joints & angles
113
+ **We strongly advise** users to pay attention to the *custom joints and angles* windows of AutoGaitA's first level toolboxes. Please see the relevant links below. These windows allow users to customise which columns of their data should be analysed and how angles should be computed.
114
+
115
+ By default, *AutoGaitA DLC* and *AutoGaitA Universal 3D* implement standard values for mouse and human locomotion, respectively. If your analysis deviates from these standards (e.g. by focussing on another behaviour or a different species) **you must change these values!**
116
+
117
+ **Find out more about *AutoGaitA's custom joints and angles:***
118
+ - [YouTube - AutoGaitA DLC/SLEAP Advanced Configuration](https://youtu.be/MP9g9kXRE_Q?feature=shared)
119
+ - [YouTube - AutoGaitA Universal 3D](https://youtu.be/vZyWmPcI6ao)
120
+ - [Documentation - AutoGaitA DLC/SLEAP](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.20bg7b7ymt0b)
121
+ - [Documentation - AutoGaitA Universal 3D](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.uz61bpmua7qz)
122
+
123
+ ## Bin number of step cycle normalisation
124
+ An important step in AutoGaitA is normalising step cycles (or instances of other behaviours) to a uniform length before calculating the video-level average. This uniform length is called *bin number*, must be set by users and defaults to a value of 25.
125
+
126
+ Step cycles are normalised via averaging temporally adjacent data points if their original length was larger than the bin number and repeating values if they were shorter originally. Examples are provided here:
127
+ - [Documentation/AutoGaitA DLC/Main Configuration/Option #6](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.bboivsfqr2lz).
128
+
129
+ **We strongly advise** users to think carefully about an appropriate bin number for their datasets. The correct value varies and depends strongly on the studied species, behaviour and the frame rate of cameras.
130
+
131
+ # 2D Kinematics in AutoGaitA Universal 3D
132
+ **We strongly advise** AutoGaitA Universal 3D users to carefully consider how our toolbox computes kinematics in 2D, i.e., angles along the y/z-plane and velocities along the y-dimensions. For more information, please see the corresponding **[important note on 2D kinematics in our documentation](https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0#heading=h.xc5ome7hzfid)**.
133
+
134
+ # Analysing other behaviours - AutoCyclA 🚴
135
+ Even though AutoGaitA's main focus is to automate and standardise gait analyses, our toolbox can be used to automate the analyses of any rhythmic behaviour of interest. For a proof-of-principle demonstration and an introduction of the general workflow of such analyses, see **[AutoCyclA - Automated Cycling Analysis with AutoGaitA.](https://github.com/mahan-hosseini/AutoGaitA/tree/main/autocycla)**
136
+
137
+ # Updating AutoGaitA
138
+ It is strongly recommended that AutoGaitA is kept up to date since new features and important bugfixes are provided regularly.
139
+
140
+ AutoGaitA's cfg files and dictionaries sometimes change as a result, which means that previously generated first-level *Results* folders cannot always be analysed with AutoGaitA Group after an update. In such cases, it is recommended to re-run first-level analyses.
141
+
142
+ We document each version's cfg-changes in [AutoGaitA Releases](https://github.com/mahan-hosseini/AutoGaitA/releases), which is particularly relevant for users wrapping custom scripts around AutoGaitA's functions.
143
+
144
+ # Reference
145
+ If you use this code or data please [cite our preprint](https://doi.org/10.1101/2024.04.14.589409).
146
+
147
+ # License
148
+ AutoGaitA is licensed under [GPL v3.0](https://github.com/mahan-hosseini/AutoGaitA/blob/main/LICENSE) and Forschungszentrum Jülich GmbH holds all copyrights.
149
+
150
+ The AutoGaitA software is provided without warranty of any kind, express or implied, including, but not limited to, the implied warranty of fitness for a particular purpose.
151
+
152
+ # Authors
153
+ [Mahan Hosseini](https://github.com/mahan-hosseini)
154
+
155
+ # Contributors
156
+ [Kishan Thambu](https://github.com/thambukishan) - Undergraduate Student
157
+
158
+ [Sarah Sabbagh](https://github.com/sarahhsabbagh) - Undergraduate Student
159
+
160
+ [Luca Flemming](https://github.com/luca-flemming) - Undergraduate Student
161
+
162
+ [Nicholas del Grosso](https://github.com/nickdelgrosso) - RSE Advisor
163
+
164
+ # Contributing
165
+ If you would like to contribute to the AutoGaitA toolbox, feel free to open a pull request or contact us at autogaita@fz-juelich.de!
166
+
167
+ We are looking forward to your input and ideas 😊
168
+
169
+ # Archive
170
+ We have archived the resources of outdated AutoGaitA versions here:
171
+
172
+ - v0.4.1 - [Documentation](https://docs.google.com/document/d/1Y4wrrsjs0ybLDKPzE2LAatqPDq9jtwjIuk4M0jRZ3wE/edit?usp=sharing)
173
+ - v0.3.1 - [YouTube Tutorials](https://youtube.com/playlist?list=PLCn5T7K_H8K776DLuXKoPsUpI6Yb0NU33&si=7ZAAvcrPxR7WsB8a) & [Documentation](https://docs.google.com/document/d/11mJd7jUHk7joQ0BdZT98CJRrIANdyosMQMJGFtp6yR4/edit?usp=sharing)
@@ -0,0 +1,24 @@
1
+ LICENSE
2
+ README.md
3
+ pyproject.toml
4
+ autogaita/__init__.py
5
+ autogaita/__main__.py
6
+ autogaita.egg-info/PKG-INFO
7
+ autogaita.egg-info/SOURCES.txt
8
+ autogaita.egg-info/dependency_links.txt
9
+ autogaita.egg-info/entry_points.txt
10
+ autogaita.egg-info/requires.txt
11
+ autogaita.egg-info/top_level.txt
12
+ tests/test_common2D_unit_1_preparation.py
13
+ tests/test_common2D_unit_2_sc_extraction.py
14
+ tests/test_common2D_unit_3_analysis.py
15
+ tests/test_common2D_unit_utils.py
16
+ tests/test_dlc_approval.py
17
+ tests/test_dlc_unit_1_preparation.py
18
+ tests/test_group_approval.py
19
+ tests/test_group_unit.py
20
+ tests/test_universal3D_approval.py
21
+ tests/test_universal3D_unit_1_preparation.py
22
+ tests/test_universal3D_unit_2_sc_extraction.py
23
+ tests/test_universal3D_unit_3_analysis.py
24
+ tests/test_utils.py
@@ -1,11 +1,13 @@
1
1
  customtkinter>=5.2
2
- pandas>=2.0
2
+ pandas<3.0,>=2.0
3
3
  numpy>=1.24
4
4
  seaborn>=0.13
5
5
  matplotlib>=3.7
6
6
  scikit-learn>=1.2
7
7
  pingouin>=0.5
8
8
  scipy>=1.11
9
+ scikit-bio>=0.7.1
10
+ statsmodels>=0.14
9
11
  ffmpeg-python>=0.2
10
12
  openpyxl>=3.1
11
13
  pillow>=10.3
@@ -0,0 +1,47 @@
1
+ [build-system]
2
+ requires = ["setuptools>=61.0", "wheel"]
3
+ build-backend = "setuptools.build_meta"
4
+
5
+ [project]
6
+ name = "autogaita"
7
+ version = "1.5.0"
8
+ authors = [{name = "Mahan Hosseini", email = "autogaita@fz-juelich.de"}]
9
+ description = "Automated Gait (and more!) Analysis in Python"
10
+ readme = "README.md"
11
+ requires-python = ">=3.10"
12
+ license = {text = "GPLv3"}
13
+ dependencies = [
14
+ "customtkinter>=5.2",
15
+ "pandas>=2.0,<3.0",
16
+ "numpy>=1.24",
17
+ "seaborn>=0.13",
18
+ "matplotlib>=3.7",
19
+ "scikit-learn>=1.2",
20
+ "pingouin>=0.5",
21
+ "scipy>=1.11",
22
+ "scikit-bio>=0.7.1",
23
+ "statsmodels>=0.14",
24
+ "ffmpeg-python>=0.2",
25
+ "openpyxl>=3.1",
26
+ "pillow>=10.3",
27
+ "h5py>=3.11",
28
+ "pyobjc; sys_platform == 'darwin'",
29
+ ]
30
+
31
+ [project.optional-dependencies]
32
+ dev = ["pytest", "hypothesis"]
33
+
34
+ [project.urls]
35
+ Homepage = "https://github.com/mahan-hosseini/AutoGaitA/"
36
+ Documentation = "https://docs.google.com/document/d/1iQxSwqBW3VdIXHm-AtV4TGlgpJPDldogVx6qzscsGxA/edit?tab=t.0"
37
+ YouTube = "https://youtube.com/playlist?list=PLCn5T7K_H8K56NIcEsfDK664OP7cN_Bad&si=JBEYuzDDRe7qz5Qd"
38
+
39
+ [project.scripts]
40
+ autogaita = "autogaita.gui.main_gui:run_gui"
41
+
42
+ [tool.setuptools]
43
+ packages = ["autogaita"]
44
+ include-package-data = true
45
+
46
+ [tool.setuptools.package-data]
47
+ "*" = ["*.txt", "*.rst", "*.png", "*.icns", "*.ico", "*.json"]
@@ -306,7 +306,7 @@ def test_multcomp_df_with_scipy_example(extract_folderinfo, extract_cfg):
306
306
 
307
307
 
308
308
  # %%.................................. PCA ...........................................
309
- def test_run_PCA(extract_cfg):
309
+ def test_run_PCA(extract_folderinfo, extract_cfg):
310
310
  # Replicate the example found in https://www.kdnuggets.com/2023/05/
311
311
  # principal-component-analysis-pca-scikitlearn.html using our PCA df and PCA_info
312
312
  # structure
@@ -323,7 +323,7 @@ def test_run_PCA(extract_cfg):
323
323
  wine_data = datasets.load_wine(as_frame=True)
324
324
  wine_df = wine_data.data
325
325
  features = wine_df.columns
326
- PCA_df, PCA_info = run_PCA(wine_df, features, extract_cfg)
326
+ PCA_df, PCA_info = run_PCA(wine_df, features, extract_folderinfo, extract_cfg)
327
327
  for i in range(3):
328
328
  # absolute values are compared because the signs can be different w. eigenvecs
329
329
  assert np.allclose(