motile-tracker 0.0.1.dev0__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 (122) hide show
  1. motile_tracker-0.0.1.dev0/.github/dependabot.yml +10 -0
  2. motile_tracker-0.0.1.dev0/.github/workflows/deploy.yml +29 -0
  3. motile_tracker-0.0.1.dev0/.github/workflows/docs.yml +54 -0
  4. motile_tracker-0.0.1.dev0/.github/workflows/publish.yml +137 -0
  5. motile_tracker-0.0.1.dev0/.github/workflows/test.yml +54 -0
  6. motile_tracker-0.0.1.dev0/.gitignore +89 -0
  7. motile_tracker-0.0.1.dev0/.pre-commit-config.yaml +23 -0
  8. motile_tracker-0.0.1.dev0/LICENSE +28 -0
  9. motile_tracker-0.0.1.dev0/PKG-INFO +128 -0
  10. motile_tracker-0.0.1.dev0/README.md +71 -0
  11. motile_tracker-0.0.1.dev0/conda_config.yml +12 -0
  12. motile_tracker-0.0.1.dev0/construct.yaml +12 -0
  13. motile_tracker-0.0.1.dev0/docs/Makefile +20 -0
  14. motile_tracker-0.0.1.dev0/docs/source/conf.py +21 -0
  15. motile_tracker-0.0.1.dev0/docs/source/editing.rst +73 -0
  16. motile_tracker-0.0.1.dev0/docs/source/getting_started.rst +96 -0
  17. motile_tracker-0.0.1.dev0/docs/source/images/add_edge.png +0 -0
  18. motile_tracker-0.0.1.dev0/docs/source/images/add_node.png +0 -0
  19. motile_tracker-0.0.1.dev0/docs/source/images/break_edge.png +0 -0
  20. motile_tracker-0.0.1.dev0/docs/source/images/delete_node.png +0 -0
  21. motile_tracker-0.0.1.dev0/docs/source/images/results_demo_720p.mp4 +0 -0
  22. motile_tracker-0.0.1.dev0/docs/source/index.rst +31 -0
  23. motile_tracker-0.0.1.dev0/docs/source/key_bindings.rst +95 -0
  24. motile_tracker-0.0.1.dev0/docs/source/motile.rst +54 -0
  25. motile_tracker-0.0.1.dev0/docs/source/tree_view.rst +63 -0
  26. motile_tracker-0.0.1.dev0/install-scripts/README.md +8 -0
  27. motile_tracker-0.0.1.dev0/install-scripts/create-dmg.sh +7 -0
  28. motile_tracker-0.0.1.dev0/install-scripts/finalize-install.sh +8 -0
  29. motile_tracker-0.0.1.dev0/install-scripts/wininstaller.iss +26 -0
  30. motile_tracker-0.0.1.dev0/logo.icns +0 -0
  31. motile_tracker-0.0.1.dev0/logo.ico +0 -0
  32. motile_tracker-0.0.1.dev0/motile-tracker.spec +123 -0
  33. motile_tracker-0.0.1.dev0/pixi.lock +8173 -0
  34. motile_tracker-0.0.1.dev0/pixi.toml +72 -0
  35. motile_tracker-0.0.1.dev0/pyproject.toml +105 -0
  36. motile_tracker-0.0.1.dev0/scripts/hela_example_tracks.csv +8602 -0
  37. motile_tracker-0.0.1.dev0/scripts/load_external_points.py +39 -0
  38. motile_tracker-0.0.1.dev0/scripts/run_hela.py +41 -0
  39. motile_tracker-0.0.1.dev0/scripts/set-vs-buildTools-env.ps1 +19 -0
  40. motile_tracker-0.0.1.dev0/scripts/test_edge_selection.py +160 -0
  41. motile_tracker-0.0.1.dev0/scripts/view_external_tracks.py +47 -0
  42. motile_tracker-0.0.1.dev0/setup.cfg +4 -0
  43. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-OpenGL.py +73 -0
  44. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-fonticon_fa6.py +8 -0
  45. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-freetype.py +4 -0
  46. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-ilpy.py +5 -0
  47. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-ipykernel.py +1 -0
  48. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-motile_tracker.py +5 -0
  49. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-napari.py +19 -0
  50. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-parso.py +5 -0
  51. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-superqt.py +7 -0
  52. motile_tracker-0.0.1.dev0/src/installer_hooks/hook-vispy.py +11 -0
  53. motile_tracker-0.0.1.dev0/src/motile_tracker/__init__.py +5 -0
  54. motile_tracker-0.0.1.dev0/src/motile_tracker/_version.py +21 -0
  55. motile_tracker-0.0.1.dev0/src/motile_tracker/application_menus/__init__.py +3 -0
  56. motile_tracker-0.0.1.dev0/src/motile_tracker/application_menus/editing_menu.py +100 -0
  57. motile_tracker-0.0.1.dev0/src/motile_tracker/application_menus/main_app.py +26 -0
  58. motile_tracker-0.0.1.dev0/src/motile_tracker/application_menus/menu_widget.py +32 -0
  59. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/__init__.py +4 -0
  60. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/action_history.py +66 -0
  61. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/actions.py +327 -0
  62. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/node_type.py +11 -0
  63. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/solution_tracks.py +186 -0
  64. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/tracks.py +706 -0
  65. motile_tracker-0.0.1.dev0/src/motile_tracker/data_model/tracks_controller.py +602 -0
  66. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/__init__.py +7 -0
  67. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/__init__.py +0 -0
  68. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/layers/__init__.py +0 -0
  69. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/layers/track_graph.py +133 -0
  70. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/layers/track_labels.py +460 -0
  71. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/layers/track_points.py +237 -0
  72. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/layers/tracks_layer_group.py +168 -0
  73. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/__init__.py +0 -0
  74. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/flip_axes_widget.py +29 -0
  75. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/navigation_widget.py +186 -0
  76. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/tree_view_feature_widget.py +60 -0
  77. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/tree_view_mode_widget.py +57 -0
  78. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/tree_widget.py +749 -0
  79. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views/tree_view/tree_widget_utils.py +247 -0
  80. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views_coordinator/__init__.py +0 -0
  81. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views_coordinator/node_selection_list.py +65 -0
  82. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views_coordinator/tracks_list.py +239 -0
  83. motile_tracker-0.0.1.dev0/src/motile_tracker/data_views/views_coordinator/tracks_viewer.py +246 -0
  84. motile_tracker-0.0.1.dev0/src/motile_tracker/example_data.py +284 -0
  85. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/__init__.py +2 -0
  86. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/load_tracks.py +271 -0
  87. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/__init__.py +0 -0
  88. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/csv_widget.py +213 -0
  89. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/import_external_tracks_dialog.py +216 -0
  90. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/measurement_widget.py +100 -0
  91. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/metadata_menu.py +58 -0
  92. motile_tracker-0.0.1.dev0/src/motile_tracker/import_export/menus/segmentation_widget.py +193 -0
  93. motile_tracker-0.0.1.dev0/src/motile_tracker/launcher.py +91 -0
  94. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/backend/__init__.py +3 -0
  95. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/backend/motile_run.py +281 -0
  96. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/backend/solve.py +127 -0
  97. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/backend/solver_params.py +50 -0
  98. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/__init__.py +1 -0
  99. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/motile_widget.py +185 -0
  100. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/param_values.py +76 -0
  101. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/params_editor.py +183 -0
  102. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/params_viewer.py +124 -0
  103. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/run_editor.py +255 -0
  104. motile_tracker-0.0.1.dev0/src/motile_tracker/motile/menus/run_viewer.py +152 -0
  105. motile_tracker-0.0.1.dev0/src/motile_tracker/napari.yaml +46 -0
  106. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/PKG-INFO +128 -0
  107. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/SOURCES.txt +120 -0
  108. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/dependency_links.txt +1 -0
  109. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/entry_points.txt +5 -0
  110. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/requires.txt +35 -0
  111. motile_tracker-0.0.1.dev0/src/motile_tracker.egg-info/top_level.txt +2 -0
  112. motile_tracker-0.0.1.dev0/tests/conftest.py +174 -0
  113. motile_tracker-0.0.1.dev0/tests/data_model/test_action_history.py +60 -0
  114. motile_tracker-0.0.1.dev0/tests/data_model/test_actions.py +129 -0
  115. motile_tracker-0.0.1.dev0/tests/data_model/test_tracks.py +192 -0
  116. motile_tracker-0.0.1.dev0/tests/data_model/test_tracks_controller.py +306 -0
  117. motile_tracker-0.0.1.dev0/tests/import_export/test_export_solution_to_csv.py +27 -0
  118. motile_tracker-0.0.1.dev0/tests/import_export/test_import_external_tracks.py +270 -0
  119. motile_tracker-0.0.1.dev0/tests/motile/backend/test_motile_run.py +29 -0
  120. motile_tracker-0.0.1.dev0/tests/motile/backend/test_solver.py +17 -0
  121. motile_tracker-0.0.1.dev0/tests/motile/menus/test_run_editor.py +9 -0
  122. motile_tracker-0.0.1.dev0/tests/motile_plugin/utils/test_tree_widget_utils.py +29 -0
@@ -0,0 +1,10 @@
1
+ version: 2
2
+ updates:
3
+ - package-ecosystem: github-actions
4
+ directory: /
5
+ schedule:
6
+ interval: monthly
7
+ groups:
8
+ dependencies:
9
+ patterns:
10
+ - "*"
@@ -0,0 +1,29 @@
1
+ name: Deploy
2
+
3
+ on:
4
+ push:
5
+ tags: ["*"]
6
+ workflow_dispatch:
7
+
8
+ jobs:
9
+ build-n-publish:
10
+ name: Build and publish Python 🐍 distributions 📦 to PyPI
11
+ runs-on: ubuntu-latest
12
+ if: contains(github.ref, 'tags')
13
+ steps:
14
+ - uses: actions/checkout@v4
15
+ - uses: actions/setup-python@v5
16
+ with:
17
+ python-version: "3.x"
18
+ - name: Build a binary wheel and a source tarball
19
+ run: |
20
+ python -m pip install -U pip
21
+ python -m pip install -U setuptools setuptools_scm build
22
+ python -m build --sdist --wheel --outdir dist/
23
+ - name: Publish to PyPI
24
+ uses: pypa/gh-action-pypi-publish@release/v1
25
+ with:
26
+ password: ${{ secrets.PYPI_API_TOKEN }}
27
+ - uses: softprops/action-gh-release@v2
28
+ with:
29
+ generate_release_notes: true
@@ -0,0 +1,54 @@
1
+ name: Docs build
2
+
3
+ # build the documentation whenever there are new commits on main
4
+ on:
5
+ push:
6
+ branches:
7
+ - main
8
+ workflow_dispatch:
9
+
10
+ # security: restrict permissions for CI jobs.
11
+ permissions:
12
+ contents: read
13
+
14
+ jobs:
15
+ # Build the documentation and upload the static HTML files as an artifact.
16
+ build:
17
+ runs-on: ubuntu-latest
18
+ steps:
19
+ - uses: actions/checkout@v4
20
+ - uses: actions/setup-python@v5
21
+ with:
22
+ python-version: '3.10'
23
+ - name: Install conda dependencies
24
+ uses: conda-incubator/setup-miniconda@v3
25
+ with:
26
+ python-version: '3.10'
27
+ environment-file: conda_config.yml
28
+ channel-priority: true
29
+ - name: Install pip dependencies
30
+ shell: bash -el {0} # this is necessary to activate the conda env
31
+ run: |
32
+ pip install ".[docs]"
33
+ - name: Build docs
34
+ shell: bash -el {0}
35
+ run: |
36
+ cd docs/
37
+ make html
38
+ - uses: actions/upload-pages-artifact@v3
39
+ with:
40
+ path: docs/build/html
41
+
42
+ # Deploy the artifact to GitHub pages.
43
+ deploy:
44
+ needs: build
45
+ runs-on: ubuntu-latest
46
+ permissions:
47
+ pages: write
48
+ id-token: write
49
+ environment:
50
+ name: github-pages
51
+ url: ${{ steps.deployment.outputs.page_url }}
52
+ steps:
53
+ - id: deployment
54
+ uses: actions/deploy-pages@v4
@@ -0,0 +1,137 @@
1
+ name: publish
2
+
3
+ on:
4
+ push:
5
+ branches: [deploy]
6
+ tags: ["v*"] # Push events to matching v*, i.e. v1.0, v20.15.10
7
+ paths:
8
+ - '.github/workflows/publish.yml' # this file
9
+ pull_request: {}
10
+ workflow_dispatch:
11
+
12
+ concurrency:
13
+ group: ${{ github.workflow }}-${{ github.ref }}
14
+ cancel-in-progress: true
15
+
16
+ jobs:
17
+ prepare-matrix:
18
+ # See this SO answer for details on conditional matrices
19
+ # https://stackoverflow.com/a/65434401/3407590
20
+ name: Prepare matrix
21
+ runs-on: ubuntu-latest
22
+ outputs:
23
+ matrix: ${{ steps.set-matrix.outputs.matrix }}
24
+ steps:
25
+ - uses: actions/setup-python@v5
26
+ with:
27
+ python-version: "3.11"
28
+ - name: Prepare matrix
29
+ id: set-matrix
30
+ shell: python
31
+ # The Python versions chosen below will determine which
32
+ # Python versions the installers will bundle. The general
33
+ # principle is to follow the SPEC-0 recommendation:
34
+ # https://scientific-python.org/specs/spec-0000/
35
+ run: |
36
+ import os
37
+ import json
38
+ elements = [
39
+ {
40
+ "os": "ubuntu-latest",
41
+ "target-platform": "linux-64",
42
+ },
43
+ {
44
+ "os": "macos-14",
45
+ "target-platform": "osx-arm64",
46
+ },
47
+ {
48
+ "os": "windows-latest",
49
+ "target-platform": "win-64",
50
+ },
51
+ ]
52
+ platforms_str = "${{ inputs.installer_platforms || 'linux-64,win-64,osx-arm64' }}"
53
+ platforms = {p.strip() for p in platforms_str.split(",")}
54
+ matrix = {"include": []}
55
+ for element in elements:
56
+ if element["target-platform"] in platforms:
57
+ matrix["include"].append(element)
58
+ with open(os.environ["GITHUB_OUTPUT"], "a") as f:
59
+ f.write(f"matrix={json.dumps(matrix)}\n")
60
+
61
+ create-app-bundle:
62
+ name: Create ${{ matrix.target-platform }} app bundle
63
+ runs-on: ${{ matrix.os }}
64
+ needs: prepare-matrix
65
+ if: startsWith(github.ref, 'refs/tags/')
66
+ strategy:
67
+ fail-fast: false
68
+ matrix: ${{ fromJSON(needs.prepare-matrix.outputs.matrix) }}
69
+ env:
70
+ GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
71
+ steps:
72
+ - name: Checkout code
73
+ uses: actions/checkout@v4
74
+ with:
75
+ fetch-depth: 0
76
+ path: motile-tracker
77
+
78
+ - name: Install pixi
79
+ uses: prefix-dev/setup-pixi@v0.8.3
80
+ with:
81
+ pixi-version: v0.43.2
82
+ cache: false
83
+ run-install: false
84
+ manifest-path: motile-tracker/pixi.toml
85
+
86
+ - name: Install build tools (Windows only)
87
+ if: runner.os == 'Windows'
88
+ run: |
89
+ $installer = "vs_BuildTools.exe"
90
+
91
+ Invoke-WebRequest -Uri "https://aka.ms/vs/17/release/vs_BuildTools.exe" -OutFile $installer
92
+
93
+ Start-Process -Wait -FilePath .\$installer -ArgumentList `
94
+ "--quiet", `
95
+ "--wait", `
96
+ "--norestart", `
97
+ "--nocache", `
98
+ "--add Microsoft.VisualStudio.Workload.VCTools", `
99
+ "--add Microsoft.VisualStudio.Component.VC.Tools.x86.x64", `
100
+ "--add Microsoft.VisualStudio.Component.Windows10SDK.19041", `
101
+ "--includeRecommended"
102
+ shell: pwsh
103
+
104
+ - name: Install app dependencies
105
+ working-directory: motile-tracker
106
+ run: pixi run setup
107
+
108
+ - name: Download installer app (Linux only)
109
+ if: runner.os == 'Linux'
110
+ run: |
111
+ sudo apt-get update
112
+ sudo apt-get install -y makeself
113
+
114
+ - name: Download installer app (macOS only)
115
+ if: runner.os == 'macOS'
116
+ run: |
117
+ brew install create-dmg
118
+
119
+ - name: Download installer app (Windows only)
120
+ if: runner.os == 'Windows'
121
+ run: |
122
+ choco install -y innosetup
123
+
124
+ - name: Package native app
125
+ working-directory: motile-tracker
126
+ run: pixi run create-installer
127
+
128
+ - name: Upload app
129
+ uses: softprops/action-gh-release@v2
130
+ if: startsWith(github.ref, 'refs/tags/')
131
+ with:
132
+ files: |
133
+ motile-tracker/dist/MotileTrackerInstaller.{dmg|exe|run}
134
+ token: ${{ secrets.GITHUB_TOKEN }}
135
+ draft: false
136
+ prerelease: false
137
+
@@ -0,0 +1,54 @@
1
+ name: tests
2
+
3
+ on:
4
+ push:
5
+ branches: [main]
6
+ tags: ["v*"] # Push events to matching v*, i.e. v1.0, v20.15.10
7
+ pull_request: {}
8
+ workflow_dispatch:
9
+
10
+ concurrency:
11
+ group: ${{ github.workflow }}-${{ github.ref }}
12
+ cancel-in-progress: true
13
+
14
+ jobs:
15
+ test:
16
+ name: ${{ matrix.platform }} py${{ matrix.python-version }}
17
+ runs-on: ${{ matrix.platform }}
18
+ strategy:
19
+ matrix:
20
+ platform: [ubuntu-latest, macos-latest] # windows-latest, temporarily disabled until ilpy is fixed
21
+ python-version: ["3.10", "3.11"]
22
+
23
+ steps:
24
+ - uses: actions/checkout@v3
25
+
26
+ - name: Set up Python ${{ matrix.python-version }}
27
+ uses: actions/setup-python@v4
28
+ with:
29
+ python-version: ${{ matrix.python-version }}
30
+
31
+ # note: if you need dependencies from conda, considering using
32
+ # setup-miniconda: https://github.com/conda-incubator/setup-miniconda
33
+ - name: Install conda dependencies
34
+ uses: conda-incubator/setup-miniconda@v3
35
+ with:
36
+ python-version: ${{ matrix.python-version }}
37
+ environment-file: conda_config.yml
38
+ channel-priority: true
39
+
40
+ - name: Install pip dependencies
41
+ shell: bash -el {0} # this is necessary to activate the conda env
42
+ run: |
43
+ pip install ".[testing]"
44
+
45
+ - name: Test with pytest
46
+ shell: bash -el {0}
47
+ run: |
48
+ pytest --color=yes --cov=motile-tracker --cov-report=xml --cov-report=term-missing tests
49
+
50
+ - name: Coverage
51
+ uses: codecov/codecov-action@v4
52
+ with:
53
+ token: ${{ secrets.CODECOV_TOKEN }}
54
+ slug: funkelab/motile-tracker
@@ -0,0 +1,89 @@
1
+ scripts/
2
+
3
+ # Byte-compiled / optimized / DLL files
4
+ __pycache__/
5
+ *.py[cod]
6
+ *$py.class
7
+
8
+ # C extensions
9
+ *.so
10
+
11
+ # Backup files
12
+ *~
13
+
14
+ # Distribution / packaging
15
+ .Python
16
+ env/
17
+ build/
18
+ develop-eggs/
19
+ dist/
20
+ downloads/
21
+ eggs/
22
+ .eggs/
23
+ lib/
24
+ lib64/
25
+ parts/
26
+ sdist/
27
+ var/
28
+ *.egg-info/
29
+ .installed.cfg
30
+ *.egg
31
+
32
+ # PyInstaller
33
+ # Usually these files are written by a python script from a template
34
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
35
+ *.manifest
36
+ *.spec
37
+
38
+ # Installer logs
39
+ pip-log.txt
40
+ pip-delete-this-directory.txt
41
+
42
+ # Unit test / coverage reports
43
+ htmlcov/
44
+ .tox/
45
+ .coverage
46
+ .coverage.*
47
+ .cache
48
+ nosetests.xml
49
+ coverage.xml
50
+ *,cover
51
+ .hypothesis/
52
+ .napari_cache
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+
62
+ # Flask instance folder
63
+ instance/
64
+
65
+ # Sphinx documentation
66
+ docs/_build/
67
+
68
+ # MkDocs documentation
69
+ /site/
70
+
71
+ # PyBuilder
72
+ target/
73
+
74
+ # Pycharm and VSCode
75
+ .idea/
76
+ venv/
77
+ .vscode/
78
+
79
+ # IPython Notebook
80
+ .ipynb_checkpoints
81
+
82
+ # pyenv
83
+ .python-version
84
+
85
+ # OS
86
+ .DS_Store
87
+
88
+ # written by setuptools_scm
89
+ **/_version.py
@@ -0,0 +1,23 @@
1
+ ci:
2
+ autofix_prs: false
3
+ repos:
4
+ - repo: https://github.com/pre-commit/pre-commit-hooks
5
+ rev: v5.0.0
6
+ hooks:
7
+ - id: check-docstring-first
8
+ - id: end-of-file-fixer
9
+ - id: trailing-whitespace
10
+ exclude: ^\.napari-hub/.*
11
+ - id: check-yaml # checks for correct yaml syntax for github actions ex.
12
+ - repo: https://github.com/astral-sh/ruff-pre-commit
13
+ rev: v0.11.0
14
+ hooks:
15
+ - id: ruff
16
+ args: [--fix]
17
+ - id: ruff-format
18
+ # https://mypy.readthedocs.io/en/stable/introduction.html
19
+ # you may wish to add this as well!
20
+ # - repo: https://github.com/pre-commit/mirrors-mypy
21
+ # rev: v0.910-1
22
+ # hooks:
23
+ # - id: mypy
@@ -0,0 +1,28 @@
1
+
2
+ Copyright (c) 2023, Howard Hughes Medical Institute
3
+ All rights reserved.
4
+
5
+ Redistribution and use in source and binary forms, with or without
6
+ modification, are permitted provided that the following conditions are met:
7
+
8
+ * Redistributions of source code must retain the above copyright notice, this
9
+ list of conditions and the following disclaimer.
10
+
11
+ * Redistributions in binary form must reproduce the above copyright notice,
12
+ this list of conditions and the following disclaimer in the documentation
13
+ and/or other materials provided with the distribution.
14
+
15
+ * Neither the name of copyright holder nor the names of its
16
+ contributors may be used to endorse or promote products derived from
17
+ this software without specific prior written permission.
18
+
19
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
20
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
21
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
22
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
23
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
24
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
25
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
26
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
27
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
28
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,128 @@
1
+ Metadata-Version: 2.4
2
+ Name: motile-tracker
3
+ Version: 0.0.1.dev0
4
+ Summary: Application for interactive tracking with global optimization
5
+ Author-email: Caroline Malin-Mayor <malinmayorc@janelia.hhmi.org>
6
+ License: BSD 3-Clause License
7
+ Project-URL: Bug Tracker, https://github.com/funkelab/motile_tracker/issues
8
+ Project-URL: Documentation, https://funkelab.github.io/motile_tracker/
9
+ Classifier: Development Status :: 5 - Production/Stable
10
+ Classifier: Framework :: napari
11
+ Classifier: Intended Audience :: Developers
12
+ Classifier: Intended Audience :: End Users/Desktop
13
+ Classifier: Intended Audience :: Science/Research
14
+ Classifier: License :: OSI Approved :: BSD License
15
+ Classifier: Operating System :: OS Independent
16
+ Classifier: Programming Language :: Python
17
+ Classifier: Programming Language :: Python :: 3
18
+ Classifier: Programming Language :: Python :: 3 :: Only
19
+ Classifier: Programming Language :: Python :: 3.10
20
+ Classifier: Programming Language :: Python :: 3.11
21
+ Classifier: Topic :: Scientific/Engineering :: Image Processing
22
+ Requires-Python: >=3.10
23
+ Description-Content-Type: text/markdown
24
+ License-File: LICENSE
25
+ Requires-Dist: napari[all]
26
+ Requires-Dist: numpy<2.1,>=1.26
27
+ Requires-Dist: magicgui
28
+ Requires-Dist: qtpy
29
+ Requires-Dist: scikit-image
30
+ Requires-Dist: motile>=0.3
31
+ Requires-Dist: motile_toolbox==0.4.0
32
+ Requires-Dist: pydantic
33
+ Requires-Dist: tifffile[all]
34
+ Requires-Dist: tqdm
35
+ Requires-Dist: dask[array]>=2021.10.0
36
+ Requires-Dist: fonticon-fontawesome6
37
+ Requires-Dist: pyqtgraph
38
+ Requires-Dist: lxml_html_clean
39
+ Provides-Extra: testing
40
+ Requires-Dist: napari; extra == "testing"
41
+ Requires-Dist: pyqt5; extra == "testing"
42
+ Requires-Dist: pytest; extra == "testing"
43
+ Requires-Dist: pytest-cov; extra == "testing"
44
+ Requires-Dist: pytest-qt; extra == "testing"
45
+ Provides-Extra: docs
46
+ Requires-Dist: myst-parser; extra == "docs"
47
+ Requires-Dist: sphinx; extra == "docs"
48
+ Requires-Dist: sphinx-autoapi; extra == "docs"
49
+ Requires-Dist: sphinx_rtd_theme; extra == "docs"
50
+ Requires-Dist: sphinxcontrib-video; extra == "docs"
51
+ Provides-Extra: dev
52
+ Requires-Dist: ruff; extra == "dev"
53
+ Requires-Dist: pre-commit; extra == "dev"
54
+ Provides-Extra: all
55
+ Requires-Dist: motile-tracker[dev,docs,testing]; extra == "all"
56
+ Dynamic: license-file
57
+
58
+ # Motile Tracker
59
+
60
+ [![tests](https://github.com/funkelab/motile_tracker/workflows/tests/badge.svg)](https://github.com/funkelab/motile_tracker/actions)
61
+ [![codecov](https://codecov.io/gh/funkelab/motile_tracker/branch/main/graph/badge.svg)](https://codecov.io/gh/funkelab/motile_tracker)
62
+ [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/motile_tracker)](https://napari-hub.org/plugins/motile_tracker)
63
+
64
+ The full documentation of the plugin can be found [here](https://funkelab.github.io/motile_tracker/).
65
+
66
+ A plugin for tracking with [motile](https://github.com/funkelab/motile) in napari.
67
+ Motile is a library that makes it easy to solve tracking problems using optimization
68
+ by framing the task as an Integer Linear Program (ILP).
69
+ See the motile [documentation](https://funkelab.github.io/motile)
70
+ for more details on the concepts and method.
71
+
72
+ ----------------------------------
73
+
74
+ ## Installation
75
+
76
+ This plugin depends on [motile](https://github.com/funkelab/motile), which in
77
+ turn depends on gurobi and ilpy. These dependencies must be installed with
78
+ conda before installing the plugin with pip.
79
+
80
+ conda create -n motile-tracker python=3.10
81
+ conda activate motile-tracker
82
+ conda install -c conda-forge -c funkelab -c gurobi ilpy
83
+ pip install motile-tracker
84
+
85
+ The conda environment can also be created from the provided conda_config.yml:
86
+
87
+ conda env create -f conda_config.yml
88
+ conda activate motile-tracker
89
+
90
+ Alternatively one can use [pixi](https://pixi.sh/).
91
+
92
+ ## Running Motile Tracker
93
+
94
+ To run the application:
95
+ * activate the conda environment created in the [Installation Step](#installation)
96
+
97
+ conda activate motile-tracker
98
+
99
+ * Run:
100
+
101
+ python -m motile_tracker.launcher
102
+
103
+ If [pixi](https://pixi.sh/) is available, you can run motile-tracker using:
104
+
105
+ pixi run start
106
+
107
+ ## Package the application into an executable and create the installer
108
+
109
+ To create the executab run
110
+
111
+ pixi run create-app
112
+
113
+ This command will create an application (.app) on OSX, an EXE on Windows and an
114
+ ELF executable on Linux.
115
+
116
+ On Windows in order to be able to package the application the ilpy library must be
117
+ properly installed and compiled. This will require [download](https://aka.ms/vs/17/release/vs_BuildTools.exe) and install [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/). This comes with a script to set all required environment variables located typically at `"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"` so before you setup the app you need to run this bat file. For powershell run `scripts\scripts/set-vs-buildTools-env.ps1 <fullpathto vcvars64>`.
118
+
119
+ Further to create an installer for the app you will need:
120
+ * InnoSetup on Windows (`scoop install inno-setup` or `winget install "Inno Setup"`)
121
+ * create-dmg on OSX (`brew install create-dmg`)
122
+ * makeself on Linux (`apt install makeself`)
123
+
124
+ ## Issues
125
+
126
+ If you encounter any problems, please
127
+ [file an issue](https://github.com/funkelab/motile_tracker/issues)
128
+ along with a detailed description.
@@ -0,0 +1,71 @@
1
+ # Motile Tracker
2
+
3
+ [![tests](https://github.com/funkelab/motile_tracker/workflows/tests/badge.svg)](https://github.com/funkelab/motile_tracker/actions)
4
+ [![codecov](https://codecov.io/gh/funkelab/motile_tracker/branch/main/graph/badge.svg)](https://codecov.io/gh/funkelab/motile_tracker)
5
+ [![napari hub](https://img.shields.io/endpoint?url=https://api.napari-hub.org/shields/motile_tracker)](https://napari-hub.org/plugins/motile_tracker)
6
+
7
+ The full documentation of the plugin can be found [here](https://funkelab.github.io/motile_tracker/).
8
+
9
+ A plugin for tracking with [motile](https://github.com/funkelab/motile) in napari.
10
+ Motile is a library that makes it easy to solve tracking problems using optimization
11
+ by framing the task as an Integer Linear Program (ILP).
12
+ See the motile [documentation](https://funkelab.github.io/motile)
13
+ for more details on the concepts and method.
14
+
15
+ ----------------------------------
16
+
17
+ ## Installation
18
+
19
+ This plugin depends on [motile](https://github.com/funkelab/motile), which in
20
+ turn depends on gurobi and ilpy. These dependencies must be installed with
21
+ conda before installing the plugin with pip.
22
+
23
+ conda create -n motile-tracker python=3.10
24
+ conda activate motile-tracker
25
+ conda install -c conda-forge -c funkelab -c gurobi ilpy
26
+ pip install motile-tracker
27
+
28
+ The conda environment can also be created from the provided conda_config.yml:
29
+
30
+ conda env create -f conda_config.yml
31
+ conda activate motile-tracker
32
+
33
+ Alternatively one can use [pixi](https://pixi.sh/).
34
+
35
+ ## Running Motile Tracker
36
+
37
+ To run the application:
38
+ * activate the conda environment created in the [Installation Step](#installation)
39
+
40
+ conda activate motile-tracker
41
+
42
+ * Run:
43
+
44
+ python -m motile_tracker.launcher
45
+
46
+ If [pixi](https://pixi.sh/) is available, you can run motile-tracker using:
47
+
48
+ pixi run start
49
+
50
+ ## Package the application into an executable and create the installer
51
+
52
+ To create the executab run
53
+
54
+ pixi run create-app
55
+
56
+ This command will create an application (.app) on OSX, an EXE on Windows and an
57
+ ELF executable on Linux.
58
+
59
+ On Windows in order to be able to package the application the ilpy library must be
60
+ properly installed and compiled. This will require [download](https://aka.ms/vs/17/release/vs_BuildTools.exe) and install [Visual Studio Build Tools](https://visualstudio.microsoft.com/downloads/). This comes with a script to set all required environment variables located typically at `"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"` so before you setup the app you need to run this bat file. For powershell run `scripts\scripts/set-vs-buildTools-env.ps1 <fullpathto vcvars64>`.
61
+
62
+ Further to create an installer for the app you will need:
63
+ * InnoSetup on Windows (`scoop install inno-setup` or `winget install "Inno Setup"`)
64
+ * create-dmg on OSX (`brew install create-dmg`)
65
+ * makeself on Linux (`apt install makeself`)
66
+
67
+ ## Issues
68
+
69
+ If you encounter any problems, please
70
+ [file an issue](https://github.com/funkelab/motile_tracker/issues)
71
+ along with a detailed description.
@@ -0,0 +1,12 @@
1
+ name: motile-tracker
2
+ channels:
3
+ - conda-forge
4
+ - funkelab
5
+ - gurobi
6
+ dependencies:
7
+ - python=3.11.*
8
+ - ilpy=0.4.1
9
+ - scip=9.1.*
10
+ - pip
11
+ - pip:
12
+ - motile-tracker
@@ -0,0 +1,12 @@
1
+ name: motile-tracker
2
+ version: 3.1.3
3
+ extra_files:
4
+ - install-scripts/README.md: README.md
5
+ environment_file: conda_config.yml
6
+ keep_pkgs: false
7
+ installer_type: all
8
+ check_path_spaces: false
9
+ register_envs: false
10
+ post_install: ./install-scripts/postinstall.sh # [unix]
11
+ post_install: ./install-scripts/postinstall.bat # [win]
12
+ license_file: LICENSE
@@ -0,0 +1,20 @@
1
+ # Minimal makefile for Sphinx documentation
2
+ #
3
+
4
+ # You can set these variables from the command line, and also
5
+ # from the environment for the first two.
6
+ SPHINXOPTS ?=
7
+ SPHINXBUILD ?= sphinx-build
8
+ SOURCEDIR = source
9
+ BUILDDIR = build
10
+
11
+ # Put it first so that "make" without argument is like "make help".
12
+ help:
13
+ @$(SPHINXBUILD) -M help "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)
14
+
15
+ .PHONY: help Makefile
16
+
17
+ # Catch-all target: route all unknown targets to Sphinx using the new
18
+ # "make mode" option. $(O) is meant as a shortcut for $(SPHINXOPTS).
19
+ %: Makefile
20
+ @$(SPHINXBUILD) -M $@ "$(SOURCEDIR)" "$(BUILDDIR)" $(SPHINXOPTS) $(O)