pycat-napari 1.0.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.
- pycat_napari-1.0.0/.gitignore +169 -0
- pycat_napari-1.0.0/.readthedocs.yaml +22 -0
- pycat_napari-1.0.0/CHANGELOG.md +45 -0
- pycat_napari-1.0.0/CONTRIBUTING.md +105 -0
- pycat_napari-1.0.0/LICENSE +33 -0
- pycat_napari-1.0.0/MANIFEST.in +45 -0
- pycat_napari-1.0.0/PKG-INFO +643 -0
- pycat_napari-1.0.0/README.md +550 -0
- pycat_napari-1.0.0/THIRD_PARTY_LICENSES.txt +72 -0
- pycat_napari-1.0.0/assets/example analysis images/Image 1 dapi.tif +0 -0
- pycat_napari-1.0.0/assets/example analysis images/Image 1.tif +0 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_cell_df.csv +14 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_cell_labeled_puncta_mask.png +0 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_labeled_cell_mask.png +0 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_overlay_image.png +0 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_puncta_df.csv +188 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_total_puncta_mask.png +0 -0
- pycat_napari-1.0.0/assets/example analysis images/example analysis outputs/Image 1 dapi_total_refined_puncta_mask.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/Viewer_and_menu_highlights.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/cell_analyzer.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/condensate_segmentation.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/measuring_lines.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/opened_image_in_viewer.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/preprocessed_images.png +0 -0
- pycat_napari-1.0.0/assets/screenshots/save_and_clear_popup.png +0 -0
- pycat_napari-1.0.0/assets/synthetic images/In-Cellulo large puncta DAPI 1.tif +0 -0
- pycat_napari-1.0.0/assets/synthetic images/In-Cellulo large puncta Syn Img 1.tif +0 -0
- pycat_napari-1.0.0/assets/synthetic images/In-Cellulo small puncta DAPI 1.tif +0 -0
- pycat_napari-1.0.0/assets/synthetic images/In-Cellulo small puncta Syn Img 1.tif +0 -0
- pycat_napari-1.0.0/assets/synthetic images/In-Vitro Syn Img 1.tif +0 -0
- pycat_napari-1.0.0/config/pycat-devbio-napari-env-arm-mac.yaml +527 -0
- pycat_napari-1.0.0/config/pycat-devbio-napari-env-x86-windows.yaml +482 -0
- pycat_napari-1.0.0/config/pycat-napari-env-arm-mac.yaml +406 -0
- pycat_napari-1.0.0/config/pycat-napari-env-x86-windows.yaml +199 -0
- pycat_napari-1.0.0/config/requirements-arm-mac.txt +2 -0
- pycat_napari-1.0.0/config/requirements-base.txt +16 -0
- pycat_napari-1.0.0/config/requirements-devbio-napari-arm-mac.txt +2 -0
- pycat_napari-1.0.0/config/requirements-devbio-napari.txt +38 -0
- pycat_napari-1.0.0/docs/Makefile +20 -0
- pycat_napari-1.0.0/docs/logos/pycat_logo-2.png +0 -0
- pycat_napari-1.0.0/docs/logos/pycat_logo.png +0 -0
- pycat_napari-1.0.0/docs/logos/pycat_logo_1024.png +0 -0
- pycat_napari-1.0.0/docs/logos/pycat_logo_256.png +0 -0
- pycat_napari-1.0.0/docs/logos/pycat_logo_512.png +0 -0
- pycat_napari-1.0.0/docs/make.bat +35 -0
- pycat_napari-1.0.0/docs/requirements.txt +5 -0
- pycat_napari-1.0.0/docs/source/_static/dark_mode.css +26 -0
- pycat_napari-1.0.0/docs/source/_static/examples/Image 1 dapi.tif +0 -0
- pycat_napari-1.0.0/docs/source/_static/examples/Image 1.tif +0 -0
- pycat_napari-1.0.0/docs/source/_static/pycat_logo_512.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/Viewer_and_menu_highlights.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/cell_analyzer.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/condensate_segmentation.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/measuring_lines.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/opened_image_in_viewer.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/preprocessed_images.png +0 -0
- pycat_napari-1.0.0/docs/source/_static/screenshots/save_and_clear_popup.png +0 -0
- pycat_napari-1.0.0/docs/source/_templates/autosummary/module.rst +53 -0
- pycat_napari-1.0.0/docs/source/api/index.rst +16 -0
- pycat_napari-1.0.0/docs/source/api/pycat.central_manager.rst +11 -0
- pycat_napari-1.0.0/docs/source/api/pycat.data.rst +14 -0
- pycat_napari-1.0.0/docs/source/api/pycat.file_io.rst +14 -0
- pycat_napari-1.0.0/docs/source/api/pycat.run_pycat.rst +11 -0
- pycat_napari-1.0.0/docs/source/api/pycat.toolbox.rst +68 -0
- pycat_napari-1.0.0/docs/source/api/pycat.ui.rst +23 -0
- pycat_napari-1.0.0/docs/source/api/pycat.utils.rst +21 -0
- pycat_napari-1.0.0/docs/source/conf.py +184 -0
- pycat_napari-1.0.0/docs/source/development/contributing.rst +175 -0
- pycat_napari-1.0.0/docs/source/development/index.rst +75 -0
- pycat_napari-1.0.0/docs/source/development/roadmap.rst +541 -0
- pycat_napari-1.0.0/docs/source/development/support.rst +207 -0
- pycat_napari-1.0.0/docs/source/features.rst +310 -0
- pycat_napari-1.0.0/docs/source/index.rst +82 -0
- pycat_napari-1.0.0/docs/source/installation.rst +332 -0
- pycat_napari-1.0.0/docs/source/usage/index.rst +42 -0
- pycat_napari-1.0.0/docs/source/usage/tutorials/nuclear_condensate_analysis_gui_tutorial.rst +285 -0
- pycat_napari-1.0.0/docs/test.txt +0 -0
- pycat_napari-1.0.0/meta.yaml +82 -0
- pycat_napari-1.0.0/notebooks/Synthtic Data Generation NB.ipynb +1008 -0
- pycat_napari-1.0.0/notebooks/int_truncated_dfs.ipynb +1140 -0
- pycat_napari-1.0.0/notebooks/pycat_plotting.ipynb +1783 -0
- pycat_napari-1.0.0/pyproject.toml +132 -0
- pycat_napari-1.0.0/src/pycat/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/central_manager.py +91 -0
- pycat_napari-1.0.0/src/pycat/data/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/data/data_modules.py +404 -0
- pycat_napari-1.0.0/src/pycat/file_io/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/file_io/file_io.py +615 -0
- pycat_napari-1.0.0/src/pycat/icons/pycat_logo-2.png +0 -0
- pycat_napari-1.0.0/src/pycat/icons/pycat_logo.png +0 -0
- pycat_napari-1.0.0/src/pycat/icons/pycat_logo_1024.png +0 -0
- pycat_napari-1.0.0/src/pycat/icons/pycat_logo_256.png +0 -0
- pycat_napari-1.0.0/src/pycat/icons/pycat_logo_512.png +0 -0
- pycat_napari-1.0.0/src/pycat/run_pycat.py +108 -0
- pycat_napari-1.0.0/src/pycat/toolbox/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/toolbox/correlation_func_analysis_tools.py +1392 -0
- pycat_napari-1.0.0/src/pycat/toolbox/data_viz_tools.py +453 -0
- pycat_napari-1.0.0/src/pycat/toolbox/feature_analysis_tools.py +721 -0
- pycat_napari-1.0.0/src/pycat/toolbox/image_processing_tools.py +1684 -0
- pycat_napari-1.0.0/src/pycat/toolbox/label_and_mask_tools.py +877 -0
- pycat_napari-1.0.0/src/pycat/toolbox/layer_tools.py +159 -0
- pycat_napari-1.0.0/src/pycat/toolbox/obj_based_coloc_analysis_tools.py +918 -0
- pycat_napari-1.0.0/src/pycat/toolbox/pixel_wise_corr_analysis_tools.py +1331 -0
- pycat_napari-1.0.0/src/pycat/toolbox/segmentation_tools.py +1322 -0
- pycat_napari-1.0.0/src/pycat/ui/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/ui/ui_modules.py +1909 -0
- pycat_napari-1.0.0/src/pycat/ui/ui_utils.py +352 -0
- pycat_napari-1.0.0/src/pycat/utils/__init__.py +0 -0
- pycat_napari-1.0.0/src/pycat/utils/general_utils.py +253 -0
- pycat_napari-1.0.0/src/pycat/utils/math_utils.py +149 -0
- pycat_napari-1.0.0/structure.txt +128 -0
- pycat_napari-1.0.0/tests/__init__.py +0 -0
- pycat_napari-1.0.0/tests/test_central_manager.py +130 -0
- pycat_napari-1.0.0/tests/test_data_management.py +148 -0
- pycat_napari-1.0.0/tests/test_feature_analysis.py +121 -0
- pycat_napari-1.0.0/tests/test_file_io.py +241 -0
- pycat_napari-1.0.0/tests/test_general_utils.py +99 -0
- pycat_napari-1.0.0/tests/test_image_processing.py +109 -0
- pycat_napari-1.0.0/tests/test_import.py +65 -0
- pycat_napari-1.0.0/tests/test_run_pycat.py +116 -0
|
@@ -0,0 +1,169 @@
|
|
|
1
|
+
# Byte-compiled / optimized / DLL files
|
|
2
|
+
__pycache__/
|
|
3
|
+
*.py[cod]
|
|
4
|
+
*$py.class
|
|
5
|
+
|
|
6
|
+
# C extensions
|
|
7
|
+
*.so
|
|
8
|
+
|
|
9
|
+
# Distribution / packaging
|
|
10
|
+
.Python
|
|
11
|
+
build/
|
|
12
|
+
develop-eggs/
|
|
13
|
+
dist/
|
|
14
|
+
downloads/
|
|
15
|
+
eggs/
|
|
16
|
+
.eggs/
|
|
17
|
+
lib/
|
|
18
|
+
lib64/
|
|
19
|
+
parts/
|
|
20
|
+
sdist/
|
|
21
|
+
var/
|
|
22
|
+
wheels/
|
|
23
|
+
share/python-wheels/
|
|
24
|
+
*.egg-info/
|
|
25
|
+
.installed.cfg
|
|
26
|
+
*.egg
|
|
27
|
+
MANIFEST
|
|
28
|
+
|
|
29
|
+
# PyInstaller
|
|
30
|
+
# Usually these files are written by a python script from a template
|
|
31
|
+
# before PyInstaller builds the exe, so as to inject date/other infos into it.
|
|
32
|
+
*.manifest
|
|
33
|
+
*.spec
|
|
34
|
+
|
|
35
|
+
# Installer logs
|
|
36
|
+
pip-log.txt
|
|
37
|
+
pip-delete-this-directory.txt
|
|
38
|
+
|
|
39
|
+
# Unit test / coverage reports
|
|
40
|
+
htmlcov/
|
|
41
|
+
.tox/
|
|
42
|
+
.nox/
|
|
43
|
+
.coverage
|
|
44
|
+
.coverage.*
|
|
45
|
+
.cache
|
|
46
|
+
nosetests.xml
|
|
47
|
+
coverage.xml
|
|
48
|
+
*.cover
|
|
49
|
+
*.py,cover
|
|
50
|
+
.hypothesis/
|
|
51
|
+
.pytest_cache/
|
|
52
|
+
cover/
|
|
53
|
+
|
|
54
|
+
# Translations
|
|
55
|
+
*.mo
|
|
56
|
+
*.pot
|
|
57
|
+
|
|
58
|
+
# Django stuff:
|
|
59
|
+
*.log
|
|
60
|
+
local_settings.py
|
|
61
|
+
db.sqlite3
|
|
62
|
+
db.sqlite3-journal
|
|
63
|
+
|
|
64
|
+
# Flask stuff:
|
|
65
|
+
instance/
|
|
66
|
+
.webassets-cache
|
|
67
|
+
|
|
68
|
+
# Scrapy stuff:
|
|
69
|
+
.scrapy
|
|
70
|
+
|
|
71
|
+
# Sphinx documentation
|
|
72
|
+
docs/_build/
|
|
73
|
+
|
|
74
|
+
# PyBuilder
|
|
75
|
+
.pybuilder/
|
|
76
|
+
target/
|
|
77
|
+
|
|
78
|
+
# Jupyter Notebook
|
|
79
|
+
.ipynb_checkpoints
|
|
80
|
+
|
|
81
|
+
# IPython
|
|
82
|
+
profile_default/
|
|
83
|
+
ipython_config.py
|
|
84
|
+
|
|
85
|
+
# pyenv
|
|
86
|
+
# For a library or package, you might want to ignore these files since the code is
|
|
87
|
+
# intended to run in multiple environments; otherwise, check them in:
|
|
88
|
+
# .python-version
|
|
89
|
+
|
|
90
|
+
# pipenv
|
|
91
|
+
# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
|
|
92
|
+
# However, in case of collaboration, if having platform-specific dependencies or dependencies
|
|
93
|
+
# having no cross-platform support, pipenv may install dependencies that don't work, or not
|
|
94
|
+
# install all needed dependencies.
|
|
95
|
+
#Pipfile.lock
|
|
96
|
+
|
|
97
|
+
# poetry
|
|
98
|
+
# Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
|
|
99
|
+
# This is especially recommended for binary packages to ensure reproducibility, and is more
|
|
100
|
+
# commonly ignored for libraries.
|
|
101
|
+
# https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
|
|
102
|
+
#poetry.lock
|
|
103
|
+
|
|
104
|
+
# pdm
|
|
105
|
+
# Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
|
|
106
|
+
#pdm.lock
|
|
107
|
+
# pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
|
|
108
|
+
# in version control.
|
|
109
|
+
# https://pdm.fming.dev/#use-with-ide
|
|
110
|
+
.pdm.toml
|
|
111
|
+
|
|
112
|
+
# PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
|
|
113
|
+
__pypackages__/
|
|
114
|
+
|
|
115
|
+
# Celery stuff
|
|
116
|
+
celerybeat-schedule
|
|
117
|
+
celerybeat.pid
|
|
118
|
+
|
|
119
|
+
# SageMath parsed files
|
|
120
|
+
*.sage.py
|
|
121
|
+
|
|
122
|
+
# Environments
|
|
123
|
+
.env
|
|
124
|
+
.venv
|
|
125
|
+
env/
|
|
126
|
+
venv/
|
|
127
|
+
ENV/
|
|
128
|
+
env.bak/
|
|
129
|
+
venv.bak/
|
|
130
|
+
|
|
131
|
+
# Spyder project settings
|
|
132
|
+
.spyderproject
|
|
133
|
+
.spyproject
|
|
134
|
+
|
|
135
|
+
# Rope project settings
|
|
136
|
+
.ropeproject
|
|
137
|
+
|
|
138
|
+
# mkdocs documentation
|
|
139
|
+
/site
|
|
140
|
+
|
|
141
|
+
# mypy
|
|
142
|
+
.mypy_cache/
|
|
143
|
+
.dmypy.json
|
|
144
|
+
dmypy.json
|
|
145
|
+
|
|
146
|
+
# Pyre type checker
|
|
147
|
+
.pyre/
|
|
148
|
+
|
|
149
|
+
# pytype static type analyzer
|
|
150
|
+
.pytype/
|
|
151
|
+
|
|
152
|
+
# Cython debug symbols
|
|
153
|
+
cython_debug/
|
|
154
|
+
|
|
155
|
+
# PyCharm
|
|
156
|
+
# JetBrains specific template is maintained in a separate JetBrains.gitignore that can
|
|
157
|
+
# be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
|
|
158
|
+
# and can be added to the global gitignore or merged into this file. For a more nuclear
|
|
159
|
+
# option (not recommended) you can uncomment the following to ignore the entire idea folder.
|
|
160
|
+
#.idea/
|
|
161
|
+
|
|
162
|
+
# macOS and Windows specific system files
|
|
163
|
+
.DS_Store
|
|
164
|
+
.DS_Store?
|
|
165
|
+
._*
|
|
166
|
+
.Spotlight-V100
|
|
167
|
+
.Trashes
|
|
168
|
+
ehthumbs.db
|
|
169
|
+
Thumbs.db
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
version: 2
|
|
2
|
+
|
|
3
|
+
build:
|
|
4
|
+
os: ubuntu-22.04
|
|
5
|
+
tools:
|
|
6
|
+
python: "3.9"
|
|
7
|
+
|
|
8
|
+
sphinx:
|
|
9
|
+
configuration: docs/source/conf.py
|
|
10
|
+
fail_on_warning: false
|
|
11
|
+
|
|
12
|
+
python:
|
|
13
|
+
install:
|
|
14
|
+
- method: pip
|
|
15
|
+
path: .
|
|
16
|
+
extra_requirements:
|
|
17
|
+
- docs
|
|
18
|
+
- requirements: docs/requirements.txt
|
|
19
|
+
|
|
20
|
+
formats:
|
|
21
|
+
- pdf
|
|
22
|
+
- epub
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Changelog
|
|
2
|
+
All notable changes to PyCAT-Napari will be documented in this file.
|
|
3
|
+
|
|
4
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
5
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
6
|
+
|
|
7
|
+
## [1.0.0] - 2024-11-22
|
|
8
|
+
### Added
|
|
9
|
+
- Initial public release of PyCAT-Napari
|
|
10
|
+
- Complete GUI interface built on Napari viewer
|
|
11
|
+
- Core functionalities for biomolecular condensate analysis:
|
|
12
|
+
* Image processing and analysis tools
|
|
13
|
+
* Fluorescence image analysis capabilities
|
|
14
|
+
* Condensate feature detection and measurement
|
|
15
|
+
* Data visualization tools
|
|
16
|
+
* Colocalization and Correlation analyses
|
|
17
|
+
- Command-line interface via `run-pycat` command
|
|
18
|
+
- Python API for programmatic access to analysis tools
|
|
19
|
+
- Support for multiple imaging file formats
|
|
20
|
+
- Integration with popular scientific Python libraries
|
|
21
|
+
- Platform support for Windows, macOS (including Apple Silicon), and Linux
|
|
22
|
+
- Comprehensive error handling and user feedback
|
|
23
|
+
- Basic documentation and usage examples
|
|
24
|
+
|
|
25
|
+
### Dependencies
|
|
26
|
+
- Compatible with Python 3.9+
|
|
27
|
+
- Core dependencies include:
|
|
28
|
+
* napari
|
|
29
|
+
* numpy
|
|
30
|
+
* opencv-python-headless
|
|
31
|
+
* scikit-image
|
|
32
|
+
* scipy
|
|
33
|
+
* torch
|
|
34
|
+
* And other scientific computing libraries
|
|
35
|
+
|
|
36
|
+
### Fixed
|
|
37
|
+
- (List any bug fixes here)
|
|
38
|
+
|
|
39
|
+
### Changed
|
|
40
|
+
- (List any changes to existing features here)
|
|
41
|
+
|
|
42
|
+
### Deprecated
|
|
43
|
+
- (List any features that are deprecated and will be removed in future releases here)
|
|
44
|
+
|
|
45
|
+
[1.0.0]: https://github.com/BanerjeeLab-repertoire/pycat-napari/releases/tag/v1.0.0
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
# Contributing to PyCAT-Napari
|
|
2
|
+
|
|
3
|
+
We appreciate your interest in contributing to PyCAT-Napari! This document provides guidelines and information about contributing to this project. The best tools are ones built by the community so it is my hope that PyCAT will be a valuable resource and that it will help to advance our understanding of the complex biological processes that underlie the formation and function of biomolecular condensates. I hope it is useful to the community and that others will contribute to its development.
|
|
4
|
+
|
|
5
|
+
## Table of Contents
|
|
6
|
+
- [Code of Conduct](#code-of-conduct)
|
|
7
|
+
- [Getting Started](#getting-started)
|
|
8
|
+
- [Development Setup](#development-setup)
|
|
9
|
+
- [Making Contributions](#making-contributions)
|
|
10
|
+
- [Branch Naming Conventions](#branch-naming-conventions)
|
|
11
|
+
- [Commit Message Guidelines](#commit-message-guidelines)
|
|
12
|
+
- [Pull Request Guidelines](#pull-request-guidelines)
|
|
13
|
+
- [Code Review Process](#code-review-process)
|
|
14
|
+
- [Style Guidelines](#style-guidelines)
|
|
15
|
+
- [Testing](#testing)
|
|
16
|
+
- [Submitting Changes](#submitting-changes)
|
|
17
|
+
|
|
18
|
+
## Code of Conduct
|
|
19
|
+
By participating in this project, you agree to maintain a respectful and constructive environment for all contributors. Please report any unacceptable behavior to the project maintainers.
|
|
20
|
+
|
|
21
|
+
## Getting Started
|
|
22
|
+
1. Fork the repository
|
|
23
|
+
2. Clone your fork locally
|
|
24
|
+
3. Create a virtual environment and install dependencies
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
git clone https://github.com/BanerjeeLab-repertoire/pycat-napari.git
|
|
28
|
+
cd pycat-napari
|
|
29
|
+
python -m venv venv
|
|
30
|
+
source venv/bin/activate # On Windows: venv\Scripts\activate
|
|
31
|
+
pip install -e ".[dev]"
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Development Setup
|
|
35
|
+
The project uses a src-layout and requires several development dependencies:
|
|
36
|
+
|
|
37
|
+
```bash
|
|
38
|
+
# Install development dependencies
|
|
39
|
+
pip install -e ".[dev]"
|
|
40
|
+
|
|
41
|
+
# Install test dependencies
|
|
42
|
+
pip install -e ".[test]"
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
## Making Contributions
|
|
46
|
+
1. Create a new branch for your feature or fix:
|
|
47
|
+
```bash
|
|
48
|
+
git checkout -b feature-name
|
|
49
|
+
```
|
|
50
|
+
2. Make your changes
|
|
51
|
+
3. Write or update tests as needed
|
|
52
|
+
4. Run the test suite
|
|
53
|
+
5. Push your changes and create a pull request
|
|
54
|
+
|
|
55
|
+
## Branch Naming Conventions
|
|
56
|
+
- `feature/your-feature-name` for new features
|
|
57
|
+
- `bugfix/your-bugfix-name` for bug fixes
|
|
58
|
+
- `hotfix/your-hotfix-name` for hotfixes
|
|
59
|
+
|
|
60
|
+
## Commit Message Guidelines
|
|
61
|
+
- Use the present tense ("Add feature" not "Added feature")
|
|
62
|
+
- Use the imperative mood ("Move cursor to..." not "Moves cursor to...")
|
|
63
|
+
- Limit the first line to 72 characters or less
|
|
64
|
+
- Reference issues and pull requests liberally
|
|
65
|
+
|
|
66
|
+
## Pull Request Guidelines
|
|
67
|
+
- Provide a clear description of what the pull request does
|
|
68
|
+
- Reference any related issues or pull requests
|
|
69
|
+
- Include screenshots or gifs if the changes affect the UI
|
|
70
|
+
- Ensure all tests pass before submitting
|
|
71
|
+
|
|
72
|
+
## Code Review Process
|
|
73
|
+
- All submissions, including submissions by project members, require review
|
|
74
|
+
- Be respectful and constructive in your feedback
|
|
75
|
+
- Provide context for suggested changes
|
|
76
|
+
|
|
77
|
+
## Style Guidelines
|
|
78
|
+
- Follow PEP 8 style guidelines
|
|
79
|
+
- Use meaningful variable and function names
|
|
80
|
+
- Document new functions and classes using docstrings
|
|
81
|
+
- Keep functions focused and concise
|
|
82
|
+
- Add comments for complex logic
|
|
83
|
+
|
|
84
|
+
## Testing
|
|
85
|
+
- Add tests for new features
|
|
86
|
+
- Ensure all tests pass before submitting:
|
|
87
|
+
```bash
|
|
88
|
+
pytest tests/
|
|
89
|
+
```
|
|
90
|
+
- Maintain or improve test coverage
|
|
91
|
+
|
|
92
|
+
## Submitting Changes
|
|
93
|
+
1. Update the CHANGELOG.md with your changes
|
|
94
|
+
2. Ensure your code is properly formatted
|
|
95
|
+
3. Push your changes to your fork
|
|
96
|
+
4. Create a Pull Request with a clear description:
|
|
97
|
+
- What changes were made
|
|
98
|
+
- Why the changes were made
|
|
99
|
+
- Any special notes for reviewers
|
|
100
|
+
|
|
101
|
+
## Questions or Problems?
|
|
102
|
+
- Open an issue for bugs or feature requests at: https://github.com/BanerjeeLab-repertoire/pycat-napari/issues
|
|
103
|
+
- Contact the maintainers for other questions
|
|
104
|
+
|
|
105
|
+
Thank you for contributing to PyCAT-Napari!
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
License
|
|
2
|
+
-------
|
|
3
|
+
|
|
4
|
+
BSD 3-Clause License
|
|
5
|
+
|
|
6
|
+
Copyright (c) 2024, Christian Neureuter, Banerjee Lab, State University of New York at Buffalo
|
|
7
|
+
All rights reserved.
|
|
8
|
+
|
|
9
|
+
Redistribution and use in source and binary forms, with or without modification, are permitted provided that the
|
|
10
|
+
following conditions are met:
|
|
11
|
+
|
|
12
|
+
1. Redistributions of source code must retain the above copyright notice, this list of conditions and the following
|
|
13
|
+
disclaimer.
|
|
14
|
+
|
|
15
|
+
2. Redistributions in binary form must reproduce the above copyright notice, this list of conditions and the following
|
|
16
|
+
disclaimer in the documentation and/or other materials provided with the distribution.
|
|
17
|
+
|
|
18
|
+
3. Neither the name of the University at Buffalo, the author, nor the names of its contributors may be used to endorse
|
|
19
|
+
or promote products derived from this software without specific prior written permission.
|
|
20
|
+
|
|
21
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES,
|
|
22
|
+
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
|
|
23
|
+
DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
|
24
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
|
|
25
|
+
SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
|
|
26
|
+
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE
|
|
27
|
+
USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
|
28
|
+
|
|
29
|
+
|
|
30
|
+
Third-Party Software Notice
|
|
31
|
+
---------------------------
|
|
32
|
+
This project includes third-party software components licensed under various open-source licenses. For more information
|
|
33
|
+
regarding these licenses, please refer to the THIRD_PARTY_LICENSES.txt file located in the root directory of this project.
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
# Inlcude the PyCAT logo for app icon
|
|
2
|
+
include src/pycat/icons/*.png
|
|
3
|
+
|
|
4
|
+
# Include license and project info
|
|
5
|
+
include LICENSE
|
|
6
|
+
include README.md
|
|
7
|
+
include CHANGELOG.md
|
|
8
|
+
include CONTRIBUTING.md
|
|
9
|
+
include THIRD_PARTY_LICENSES.txt
|
|
10
|
+
include pyproject.toml
|
|
11
|
+
|
|
12
|
+
# Include package data
|
|
13
|
+
recursive-include src/pycat/icons/*.png
|
|
14
|
+
|
|
15
|
+
# Include test files
|
|
16
|
+
recursive-include tests *.py
|
|
17
|
+
|
|
18
|
+
# Include configuration files
|
|
19
|
+
recursive-include config *.txt
|
|
20
|
+
recursive-include config *.yml
|
|
21
|
+
recursive-include config *.yaml
|
|
22
|
+
|
|
23
|
+
# Include Jupyter Notebooks
|
|
24
|
+
recursive-include notebooks *.ipynb
|
|
25
|
+
|
|
26
|
+
# Include YAML files in the root directory
|
|
27
|
+
include *.yaml
|
|
28
|
+
|
|
29
|
+
# Documentation
|
|
30
|
+
recursive-include docs *.md
|
|
31
|
+
recursive-include docs *.rst
|
|
32
|
+
recursive-include docs *.txt
|
|
33
|
+
|
|
34
|
+
# Exclude development files
|
|
35
|
+
global-exclude *.py[cod] __pycache__
|
|
36
|
+
global-exclude *.so *.dylib *.dll
|
|
37
|
+
global-exclude .git*
|
|
38
|
+
global-exclude .DS_Store
|
|
39
|
+
global-exclude *.swp *.swo
|
|
40
|
+
global-exclude .vscode/
|
|
41
|
+
global-exclude venv/
|
|
42
|
+
global-exclude .env
|
|
43
|
+
global-exclude .mypy_cache/
|
|
44
|
+
global-exclude .pytest_cache/
|
|
45
|
+
global-exclude .ipynb_checkpoints/
|