cellfinder 1.2.0__tar.gz → 1.3.0rc0__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.
Potentially problematic release.
This version of cellfinder might be problematic. Click here for more details.
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/.github/workflows/test_and_deploy.yml +26 -15
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/.github/workflows/test_include_guard.yaml +9 -12
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/PKG-INFO +3 -3
- cellfinder-1.3.0rc0/cellfinder/__init__.py +33 -0
- cellfinder-1.3.0rc0/cellfinder/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/main.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/main.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/main.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/types.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/types.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/__pycache__/types.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/augment.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/augment.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/augment.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/classify.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/classify.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/classify.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/cube_generator.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/cube_generator.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/cube_generator.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/resnet.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/resnet.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/resnet.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/tools.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/tools.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/classify/__pycache__/tools.cpython-312.pyc +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/classify.py +5 -6
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/cube_generator.py +25 -9
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/resnet.py +9 -6
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/tools.py +13 -11
- cellfinder-1.3.0rc0/cellfinder/core/config/cellfinder.conf.custom +3 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/detect.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/detect.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/__pycache__/detect.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/setup_filters.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/setup_filters.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/__pycache__/setup_filters.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/classical_filter.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/classical_filter.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/classical_filter.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-199.py310.1.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-199.py310.nbi +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py310.1.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py310.2.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py310.nbi +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py311.1.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py311.2.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py311.nbi +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py312.1.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py312.2.nbc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter._cube_overlaps-263.py312.nbi +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_detection.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_detection.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_detection.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_splitting.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_splitting.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/structure_splitting.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/volume_filter.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/volume_filter.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/volume_filter.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/cli.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/cli.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/download.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/download.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/download/__pycache__/download.cpython-312.pyc +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/main.py +2 -27
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/IO.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/array_operations.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/array_operations.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/array_operations.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/geometry.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/geometry.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/geometry.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/image_processing.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/image_processing.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/prep.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/prep.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/prep.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/source_files.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/source_files.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/source_files.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/system.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/system.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tf.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tiff.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tiff.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tools.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tools.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/tools/__pycache__/tools.cpython-312.pyc +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/prep.py +1 -10
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/train_yml.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/train_yml.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/core/train/__pycache__/train_yml.cpython-312.pyc +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/train/train_yml.py +25 -21
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/curation.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/curation.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/input_container.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/input_container.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/input_container.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/sample_data.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/sample_data.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/utils.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/utils.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/__pycache__/utils.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/__init__.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect_containers.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect_containers.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/detect_containers.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/thread_worker.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/thread_worker.cpython-311.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/detect/__pycache__/thread_worker.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/__init__.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/__init__.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/train.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/train.cpython-312.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/train_containers.cpython-310.pyc +0 -0
- cellfinder-1.3.0rc0/cellfinder/napari/train/__pycache__/train_containers.cpython-312.pyc +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder.egg-info/PKG-INFO +3 -3
- cellfinder-1.3.0rc0/cellfinder.egg-info/SOURCES.txt +220 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder.egg-info/requires.txt +2 -6
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/pyproject.toml +7 -5
- cellfinder-1.2.0/cellfinder/__init__.py +0 -27
- cellfinder-1.2.0/cellfinder/core/tools/tf.py +0 -46
- cellfinder-1.2.0/cellfinder.egg-info/SOURCES.txt +0 -69
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/.gitignore +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/.napari/config.yml +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/CITATION.cff +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/LICENSE +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/MANIFEST.in +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/README.md +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/cli_migration_warning.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/classify/augment.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/config/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/config/cellfinder.conf +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/detect.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/plane/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/plane/classical_filter.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/plane/plane_filter.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/plane/tile_walker.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/setup_filters.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/volume/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/volume/ball_filter.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/volume/structure_detection.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/volume/structure_splitting.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/detect/filters/volume/volume_filter.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/download/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/download/cli.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/download/download.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/array_operations.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/geometry.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/image_processing.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/source_files.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/system.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/tiff.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/tools/tools.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/train/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/core/types.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/curation.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/detect/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/detect/detect.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/detect/detect_containers.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/detect/thread_worker.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/input_container.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/napari.yaml +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/sample_data.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/train/__init__.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/train/train.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/train/train_containers.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder/napari/utils.py +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder.egg-info/dependency_links.txt +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder.egg-info/entry_points.txt +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/cellfinder.egg-info/top_level.txt +0 -0
- {cellfinder-1.2.0 → cellfinder-1.3.0rc0}/setup.cfg +0 -0
|
@@ -37,12 +37,15 @@ jobs:
|
|
|
37
37
|
name: Run package tests
|
|
38
38
|
timeout-minutes: 60
|
|
39
39
|
runs-on: ${{ matrix.os }}
|
|
40
|
+
env:
|
|
41
|
+
KERAS_BACKEND: torch
|
|
42
|
+
CELLFINDER_TEST_DEVICE: cpu
|
|
40
43
|
strategy:
|
|
41
44
|
matrix:
|
|
42
45
|
# Run all supported Python versions on linux
|
|
43
46
|
os: [ubuntu-latest]
|
|
44
|
-
python-version: ["3.9", "3.10"]
|
|
45
|
-
# Include one windows
|
|
47
|
+
python-version: ["3.9", "3.10", "3.11"]
|
|
48
|
+
# Include one windows and two macOS (intel based and arm based) runs
|
|
46
49
|
include:
|
|
47
50
|
- os: macos-13
|
|
48
51
|
python-version: "3.10"
|
|
@@ -52,12 +55,13 @@ jobs:
|
|
|
52
55
|
python-version: "3.10"
|
|
53
56
|
|
|
54
57
|
steps:
|
|
55
|
-
|
|
56
|
-
- name: Cache tensorflow model
|
|
58
|
+
- name: Cache brainglobe directory
|
|
57
59
|
uses: actions/cache@v3
|
|
58
60
|
with:
|
|
59
|
-
path:
|
|
60
|
-
|
|
61
|
+
path: | # ensure we don't cache any interrupted atlas download and extraction, if e.g. we cancel the workflow manually
|
|
62
|
+
~/.brainglobe
|
|
63
|
+
!~/.brainglobe/atlas.tar.gz
|
|
64
|
+
key: brainglobe
|
|
61
65
|
# Setup pyqt libraries
|
|
62
66
|
- name: Setup qtpy libraries
|
|
63
67
|
uses: tlambert03/setup-qt-libs@v1
|
|
@@ -79,11 +83,13 @@ jobs:
|
|
|
79
83
|
NUMBA_DISABLE_JIT: "1"
|
|
80
84
|
|
|
81
85
|
steps:
|
|
82
|
-
- name: Cache
|
|
86
|
+
- name: Cache brainglobe directory
|
|
83
87
|
uses: actions/cache@v3
|
|
84
88
|
with:
|
|
85
|
-
path:
|
|
86
|
-
|
|
89
|
+
path: | # ensure we don't cache any interrupted atlas download and extraction, if e.g. we cancel the workflow manually
|
|
90
|
+
~/.brainglobe
|
|
91
|
+
!~/.brainglobe/atlas.tar.gz
|
|
92
|
+
key: brainglobe
|
|
87
93
|
# Setup pyqt libraries
|
|
88
94
|
- name: Setup qtpy libraries
|
|
89
95
|
uses: tlambert03/setup-qt-libs@v1
|
|
@@ -103,13 +109,17 @@ jobs:
|
|
|
103
109
|
name: Run brainmapper tests to check for breakages
|
|
104
110
|
timeout-minutes: 60
|
|
105
111
|
runs-on: ubuntu-latest
|
|
112
|
+
env:
|
|
113
|
+
KERAS_BACKEND: torch
|
|
114
|
+
CELLFINDER_TEST_DEVICE: cpu
|
|
106
115
|
steps:
|
|
107
|
-
- name: Cache
|
|
116
|
+
- name: Cache brainglobe directory
|
|
108
117
|
uses: actions/cache@v3
|
|
109
118
|
with:
|
|
110
|
-
path:
|
|
111
|
-
|
|
112
|
-
|
|
119
|
+
path: | # ensure we don't cache any interrupted atlas download and extraction, if e.g. we cancel the workflow manually
|
|
120
|
+
~/.brainglobe
|
|
121
|
+
!~/.brainglobe/atlas.tar.gz
|
|
122
|
+
key: brainglobe
|
|
113
123
|
- name: Checkout brainglobe-workflows
|
|
114
124
|
uses: actions/checkout@v3
|
|
115
125
|
with:
|
|
@@ -123,8 +133,9 @@ jobs:
|
|
|
123
133
|
- name: Install test dependencies
|
|
124
134
|
run: |
|
|
125
135
|
python -m pip install --upgrade pip wheel
|
|
126
|
-
# Install latest SHA on this
|
|
127
|
-
python -m pip install git+$GITHUB_SERVER_URL/$GITHUB_REPOSITORY@$GITHUB_SHA
|
|
136
|
+
# Install cellfinder from the latest SHA on this branch
|
|
137
|
+
python -m pip install "cellfinder @ git+$GITHUB_SERVER_URL/$GITHUB_REPOSITORY@$GITHUB_SHA"
|
|
138
|
+
|
|
128
139
|
# Install checked out copy of brainglobe-workflows
|
|
129
140
|
python -m pip install .[dev]
|
|
130
141
|
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
name: Test
|
|
2
|
-
# These tests check that the include guards checking for
|
|
1
|
+
name: Test Keras include guards
|
|
2
|
+
# These tests check that the include guards checking for Keras availability
|
|
3
3
|
# behave as expected on ubuntu and macOS.
|
|
4
4
|
|
|
5
5
|
on:
|
|
@@ -9,7 +9,7 @@ on:
|
|
|
9
9
|
- main
|
|
10
10
|
|
|
11
11
|
jobs:
|
|
12
|
-
|
|
12
|
+
keras_guards:
|
|
13
13
|
name: Test include guards
|
|
14
14
|
strategy:
|
|
15
15
|
matrix:
|
|
@@ -24,24 +24,21 @@ jobs:
|
|
|
24
24
|
with:
|
|
25
25
|
python-version: '3.10'
|
|
26
26
|
|
|
27
|
-
- name: Install via pip
|
|
28
|
-
run: python -m pip install -e .
|
|
27
|
+
- name: Install cellfinder via pip
|
|
28
|
+
run: python -m pip install -e "."
|
|
29
29
|
|
|
30
30
|
- name: Test (working) import
|
|
31
31
|
uses: jannekem/run-python-script-action@v1
|
|
32
|
+
env:
|
|
33
|
+
KERAS_BACKEND: torch
|
|
32
34
|
with:
|
|
33
35
|
fail-on-error: true
|
|
34
36
|
script: |
|
|
35
37
|
import cellfinder.core
|
|
36
38
|
import cellfinder.napari
|
|
37
39
|
|
|
38
|
-
- name: Uninstall
|
|
39
|
-
|
|
40
|
-
run: python -m pip uninstall -y tensorflow-macos
|
|
41
|
-
|
|
42
|
-
- name: Uninstall tensorflow on Ubuntu
|
|
43
|
-
if: matrix.os == 'ubuntu-latest'
|
|
44
|
-
run: python -m pip uninstall -y tensorflow
|
|
40
|
+
- name: Uninstall keras
|
|
41
|
+
run: python -m pip uninstall -y keras
|
|
45
42
|
|
|
46
43
|
- name: Test (broken) import
|
|
47
44
|
id: broken_import
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.1
|
|
2
2
|
Name: cellfinder
|
|
3
|
-
Version: 1.
|
|
3
|
+
Version: 1.3.0rc0
|
|
4
4
|
Summary: Automated 3D cell detection in large microscopy images
|
|
5
5
|
Author-email: "Adam Tyson, Christian Niedworok, Charly Rousseau" <code@adamltyson.com>
|
|
6
6
|
License: BSD-3-Clause
|
|
@@ -31,8 +31,8 @@ Requires-Dist: numba
|
|
|
31
31
|
Requires-Dist: numpy
|
|
32
32
|
Requires-Dist: scikit-image
|
|
33
33
|
Requires-Dist: scikit-learn
|
|
34
|
-
Requires-Dist:
|
|
35
|
-
Requires-Dist:
|
|
34
|
+
Requires-Dist: keras>=3.0.0
|
|
35
|
+
Requires-Dist: torch>=2.1.0
|
|
36
36
|
Requires-Dist: tifffile
|
|
37
37
|
Requires-Dist: tqdm
|
|
38
38
|
Provides-Extra: dev
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import os
|
|
2
|
+
from importlib.metadata import PackageNotFoundError, version
|
|
3
|
+
from pathlib import Path
|
|
4
|
+
|
|
5
|
+
# Check cellfinder is installed
|
|
6
|
+
try:
|
|
7
|
+
__version__ = version("cellfinder")
|
|
8
|
+
except PackageNotFoundError as e:
|
|
9
|
+
raise PackageNotFoundError("cellfinder package not installed") from e
|
|
10
|
+
|
|
11
|
+
# If Keras is not present, tools cannot be used.
|
|
12
|
+
# Throw an error in this case to prevent invocation of functions.
|
|
13
|
+
try:
|
|
14
|
+
KERAS_VERSION = version("keras")
|
|
15
|
+
except PackageNotFoundError as e:
|
|
16
|
+
raise PackageNotFoundError(
|
|
17
|
+
f"cellfinder tools cannot be invoked without Keras. "
|
|
18
|
+
f"Please install Keras with a backend into your environment "
|
|
19
|
+
f"to use cellfinder tools. "
|
|
20
|
+
f"For more information on Keras backends, please see "
|
|
21
|
+
f"https://keras.io/getting_started/#installing-keras-3."
|
|
22
|
+
f"For more information on brainglobe, please see "
|
|
23
|
+
f"https://github.com/brainglobe/brainglobe-meta#readme."
|
|
24
|
+
) from e
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
# Set the Keras backend to torch
|
|
28
|
+
os.environ["KERAS_BACKEND"] = "torch"
|
|
29
|
+
|
|
30
|
+
__author__ = "Adam Tyson, Christian Niedworok, Charly Rousseau"
|
|
31
|
+
__license__ = "BSD-3-Clause"
|
|
32
|
+
|
|
33
|
+
DEFAULT_CELLFINDER_DIRECTORY = Path.home() / ".brainglobe" / "cellfinder"
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import os
|
|
2
2
|
from typing import Any, Callable, Dict, List, Optional, Tuple
|
|
3
3
|
|
|
4
|
+
import keras
|
|
4
5
|
import numpy as np
|
|
5
6
|
from brainglobe_utils.cells.cells import Cell
|
|
6
7
|
from brainglobe_utils.general.system import get_num_processes
|
|
7
|
-
from tensorflow import keras
|
|
8
8
|
|
|
9
9
|
from cellfinder.core import logger, types
|
|
10
10
|
from cellfinder.core.classify.cube_generator import CubeGeneratorFromFile
|
|
@@ -48,9 +48,7 @@ def main(
|
|
|
48
48
|
callbacks = None
|
|
49
49
|
|
|
50
50
|
# Too many workers doesn't increase speed, and uses huge amounts of RAM
|
|
51
|
-
workers = get_num_processes(
|
|
52
|
-
min_free_cpu_cores=n_free_cpus, n_max_processes=max_workers
|
|
53
|
-
)
|
|
51
|
+
workers = get_num_processes(min_free_cpu_cores=n_free_cpus)
|
|
54
52
|
|
|
55
53
|
logger.debug("Initialising cube generator")
|
|
56
54
|
inference_generator = CubeGeneratorFromFile(
|
|
@@ -63,6 +61,8 @@ def main(
|
|
|
63
61
|
cube_width=cube_width,
|
|
64
62
|
cube_height=cube_height,
|
|
65
63
|
cube_depth=cube_depth,
|
|
64
|
+
use_multiprocessing=False,
|
|
65
|
+
workers=workers,
|
|
66
66
|
)
|
|
67
67
|
|
|
68
68
|
model = get_model(
|
|
@@ -73,10 +73,9 @@ def main(
|
|
|
73
73
|
)
|
|
74
74
|
|
|
75
75
|
logger.info("Running inference")
|
|
76
|
+
# in Keras 3.0 multiprocessing params are specified in the generator
|
|
76
77
|
predictions = model.predict(
|
|
77
78
|
inference_generator,
|
|
78
|
-
use_multiprocessing=True,
|
|
79
|
-
workers=workers,
|
|
80
79
|
verbose=True,
|
|
81
80
|
callbacks=callbacks,
|
|
82
81
|
)
|
|
@@ -2,13 +2,13 @@ from pathlib import Path
|
|
|
2
2
|
from random import shuffle
|
|
3
3
|
from typing import Dict, List, Optional, Tuple, Union
|
|
4
4
|
|
|
5
|
+
import keras
|
|
5
6
|
import numpy as np
|
|
6
|
-
import tensorflow as tf
|
|
7
7
|
from brainglobe_utils.cells.cells import Cell, group_cells_by_z
|
|
8
8
|
from brainglobe_utils.general.numerical import is_even
|
|
9
|
+
from keras.utils import Sequence
|
|
9
10
|
from scipy.ndimage import zoom
|
|
10
11
|
from skimage.io import imread
|
|
11
|
-
from tensorflow.keras.utils import Sequence
|
|
12
12
|
|
|
13
13
|
from cellfinder.core import types
|
|
14
14
|
from cellfinder.core.classify.augment import AugmentationParameters, augment
|
|
@@ -56,7 +56,14 @@ class CubeGeneratorFromFile(Sequence):
|
|
|
56
56
|
translate: Tuple[float, float, float] = (0.05, 0.05, 0.05),
|
|
57
57
|
shuffle: bool = False,
|
|
58
58
|
interpolation_order: int = 2,
|
|
59
|
+
*args,
|
|
60
|
+
**kwargs,
|
|
59
61
|
):
|
|
62
|
+
# pass any additional arguments not specified in signature to the
|
|
63
|
+
# constructor of the superclass (e.g.: `use_multiprocessing` or
|
|
64
|
+
# `workers`)
|
|
65
|
+
super().__init__(*args, **kwargs)
|
|
66
|
+
|
|
60
67
|
self.points = points
|
|
61
68
|
self.signal_array = signal_array
|
|
62
69
|
self.background_array = background_array
|
|
@@ -218,10 +225,10 @@ class CubeGeneratorFromFile(Sequence):
|
|
|
218
225
|
|
|
219
226
|
if self.train:
|
|
220
227
|
batch_labels = [cell.type - 1 for cell in cell_batch]
|
|
221
|
-
batch_labels =
|
|
228
|
+
batch_labels = keras.utils.to_categorical(
|
|
222
229
|
batch_labels, num_classes=self.classes
|
|
223
230
|
)
|
|
224
|
-
return images, batch_labels
|
|
231
|
+
return images, batch_labels.astype(np.float32)
|
|
225
232
|
elif self.extract:
|
|
226
233
|
batch_info = self.__get_batch_dict(cell_batch)
|
|
227
234
|
return images, batch_info
|
|
@@ -252,7 +259,8 @@ class CubeGeneratorFromFile(Sequence):
|
|
|
252
259
|
(number_images,)
|
|
253
260
|
+ (self.cube_height, self.cube_width, self.cube_depth)
|
|
254
261
|
+ (self.channels,)
|
|
255
|
-
)
|
|
262
|
+
),
|
|
263
|
+
dtype=np.float32,
|
|
256
264
|
)
|
|
257
265
|
|
|
258
266
|
for idx, cell in enumerate(cell_batch):
|
|
@@ -350,7 +358,14 @@ class CubeGeneratorFromDisk(Sequence):
|
|
|
350
358
|
translate: Tuple[float, float, float] = (0.2, 0.2, 0.2),
|
|
351
359
|
train: bool = False, # also return labels
|
|
352
360
|
interpolation_order: int = 2,
|
|
361
|
+
*args,
|
|
362
|
+
**kwargs,
|
|
353
363
|
):
|
|
364
|
+
# pass any additional arguments not specified in signature to the
|
|
365
|
+
# constructor of the superclass (e.g.: `use_multiprocessing` or
|
|
366
|
+
# `workers`)
|
|
367
|
+
super().__init__(*args, **kwargs)
|
|
368
|
+
|
|
354
369
|
self.im_shape = shape
|
|
355
370
|
self.batch_size = batch_size
|
|
356
371
|
self.labels = labels
|
|
@@ -410,10 +425,10 @@ class CubeGeneratorFromDisk(Sequence):
|
|
|
410
425
|
|
|
411
426
|
if self.train and self.labels is not None:
|
|
412
427
|
batch_labels = [self.labels[k] for k in indexes]
|
|
413
|
-
batch_labels =
|
|
428
|
+
batch_labels = keras.utils.to_categorical(
|
|
414
429
|
batch_labels, num_classes=self.classes
|
|
415
430
|
)
|
|
416
|
-
return images, batch_labels
|
|
431
|
+
return images, batch_labels.astype(np.float32)
|
|
417
432
|
else:
|
|
418
433
|
return images
|
|
419
434
|
|
|
@@ -424,7 +439,8 @@ class CubeGeneratorFromDisk(Sequence):
|
|
|
424
439
|
) -> np.ndarray:
|
|
425
440
|
number_images = len(list_signal_tmp)
|
|
426
441
|
images = np.empty(
|
|
427
|
-
((number_images,) + self.im_shape + (self.channels,))
|
|
442
|
+
((number_images,) + self.im_shape + (self.channels,)),
|
|
443
|
+
dtype=np.float32,
|
|
428
444
|
)
|
|
429
445
|
|
|
430
446
|
for idx, signal_im in enumerate(list_signal_tmp):
|
|
@@ -433,7 +449,7 @@ class CubeGeneratorFromDisk(Sequence):
|
|
|
433
449
|
images, idx, signal_im, background_im
|
|
434
450
|
)
|
|
435
451
|
|
|
436
|
-
return images
|
|
452
|
+
return images
|
|
437
453
|
|
|
438
454
|
def __populate_array_with_cubes(
|
|
439
455
|
self,
|
|
@@ -1,9 +1,11 @@
|
|
|
1
1
|
from typing import Callable, Dict, List, Literal, Optional, Tuple, Union
|
|
2
2
|
|
|
3
|
-
from
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
from
|
|
3
|
+
from keras import (
|
|
4
|
+
KerasTensor as Tensor,
|
|
5
|
+
)
|
|
6
|
+
from keras import Model
|
|
7
|
+
from keras.initializers import Initializer
|
|
8
|
+
from keras.layers import (
|
|
7
9
|
Activation,
|
|
8
10
|
Add,
|
|
9
11
|
BatchNormalization,
|
|
@@ -14,7 +16,7 @@ from tensorflow.keras.layers import (
|
|
|
14
16
|
MaxPooling3D,
|
|
15
17
|
ZeroPadding3D,
|
|
16
18
|
)
|
|
17
|
-
from
|
|
19
|
+
from keras.optimizers import Adam, Optimizer
|
|
18
20
|
|
|
19
21
|
#####################################################################
|
|
20
22
|
# Define the types of ResNet
|
|
@@ -113,7 +115,7 @@ def non_residual_block(
|
|
|
113
115
|
activation: str = "relu",
|
|
114
116
|
use_bias: bool = False,
|
|
115
117
|
bn_epsilon: float = 1e-5,
|
|
116
|
-
pooling_padding: str = "
|
|
118
|
+
pooling_padding: str = "valid",
|
|
117
119
|
axis: int = 3,
|
|
118
120
|
) -> Tensor:
|
|
119
121
|
"""
|
|
@@ -131,6 +133,7 @@ def non_residual_block(
|
|
|
131
133
|
)(x)
|
|
132
134
|
x = BatchNormalization(axis=axis, epsilon=bn_epsilon, name="conv1_bn")(x)
|
|
133
135
|
x = Activation(activation, name="conv1_activation")(x)
|
|
136
|
+
|
|
134
137
|
x = MaxPooling3D(
|
|
135
138
|
max_pool_size,
|
|
136
139
|
strides=strides,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
import os
|
|
2
|
-
from
|
|
2
|
+
from collections.abc import Sequence
|
|
3
|
+
from typing import List, Optional, Tuple, Union
|
|
3
4
|
|
|
5
|
+
import keras
|
|
4
6
|
import numpy as np
|
|
5
|
-
|
|
6
|
-
from tensorflow.keras import Model
|
|
7
|
+
from keras import Model
|
|
7
8
|
|
|
8
9
|
from cellfinder.core import logger
|
|
9
10
|
from cellfinder.core.classify.resnet import build_model, layer_type
|
|
@@ -17,8 +18,7 @@ def get_model(
|
|
|
17
18
|
inference: bool = False,
|
|
18
19
|
continue_training: bool = False,
|
|
19
20
|
) -> Model:
|
|
20
|
-
"""
|
|
21
|
-
Returns the correct model based on the arguments passed
|
|
21
|
+
"""Returns the correct model based on the arguments passed
|
|
22
22
|
:param existing_model: An existing, trained model. This is returned if it
|
|
23
23
|
exists
|
|
24
24
|
:param model_weights: This file is used to set the model weights if it
|
|
@@ -30,29 +30,31 @@ def get_model(
|
|
|
30
30
|
by using the default one
|
|
31
31
|
:param continue_training: If True, will ensure that a trained model
|
|
32
32
|
exists. E.g. by using the default one
|
|
33
|
-
:return: A
|
|
33
|
+
:return: A keras model
|
|
34
34
|
|
|
35
35
|
"""
|
|
36
36
|
if existing_model is not None or network_depth is None:
|
|
37
37
|
logger.debug(f"Loading model: {existing_model}")
|
|
38
|
-
return
|
|
38
|
+
return keras.models.load_model(existing_model)
|
|
39
39
|
else:
|
|
40
40
|
logger.debug(f"Creating a new instance of model: {network_depth}")
|
|
41
41
|
model = build_model(
|
|
42
|
-
network_depth=network_depth,
|
|
42
|
+
network_depth=network_depth,
|
|
43
|
+
learning_rate=learning_rate,
|
|
43
44
|
)
|
|
44
45
|
if inference or continue_training:
|
|
45
46
|
logger.debug(
|
|
46
|
-
f"Setting model weights according to: {model_weights}"
|
|
47
|
+
f"Setting model weights according to: {model_weights}",
|
|
47
48
|
)
|
|
48
49
|
if model_weights is None:
|
|
49
|
-
raise
|
|
50
|
+
raise OSError("`model_weights` must be provided")
|
|
50
51
|
model.load_weights(model_weights)
|
|
51
52
|
return model
|
|
52
53
|
|
|
53
54
|
|
|
54
55
|
def make_lists(
|
|
55
|
-
tiff_files: Sequence,
|
|
56
|
+
tiff_files: Sequence,
|
|
57
|
+
train: bool = True,
|
|
56
58
|
) -> Union[Tuple[List, List], Tuple[List, List, np.ndarray]]:
|
|
57
59
|
signal_list = []
|
|
58
60
|
background_list = []
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-310.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-311.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/plane_filter.cpython-312.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-310.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-311.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/plane/__pycache__/tile_walker.cpython-312.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-310.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-311.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/__init__.cpython-312.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-310.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-311.pyc
ADDED
|
Binary file
|
cellfinder-1.3.0rc0/cellfinder/core/detect/filters/volume/__pycache__/ball_filter.cpython-312.pyc
ADDED
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|