careamics 0.0.15__tar.gz → 0.0.16__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 careamics might be problematic. Click here for more details.
- {careamics-0.0.15 → careamics-0.0.16}/.github/workflows/ci.yml +2 -2
- {careamics-0.0.15 → careamics-0.0.16}/.github/workflows/ci_macos.yml +1 -1
- {careamics-0.0.15 → careamics-0.0.16}/.pre-commit-config.yaml +4 -4
- {careamics-0.0.15 → careamics-0.0.16}/PKG-INFO +18 -15
- {careamics-0.0.15 → careamics-0.0.16}/pyproject.toml +20 -15
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/careamist.py +6 -12
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/cli/conf.py +18 -3
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/__init__.py +8 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/__init__.py +4 -0
- careamics-0.0.16/src/careamics/config/algorithms/hdn_algorithm_model.py +103 -0
- careamics-0.0.16/src/careamics/config/algorithms/microsplit_algorithm_model.py +103 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/n2v_algorithm_model.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/vae_algorithm_model.py +51 -16
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/architectures/lvae_model.py +12 -8
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/callback_model.py +7 -3
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/configuration.py +9 -8
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/configuration_factories.py +843 -29
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/data_model.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/ng_data_model.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/inference_model.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/likelihood_model.py +2 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/loss_model.py +6 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/nm_model.py +26 -1
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/optimizer_models.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_algorithms.py +5 -3
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_losses.py +5 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/training_model.py +6 -36
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/normalize_model.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/demo_custom_image_stack_loader.py +4 -4
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/in_memory_image_stack.py +1 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/zarr_image_stack.py +33 -7
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack_loader.py +2 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/read/__init__.py +0 -1
- careamics-0.0.16/src/careamics/lightning/__init__.py +32 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/__init__.py +2 -0
- careamics-0.0.16/src/careamics/lightning/callbacks/data_stats_callback.py +23 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/lightning_module.py +161 -61
- careamics-0.0.16/src/careamics/lightning/microsplit_data_module.py +631 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/predict_data_module.py +8 -1
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/train_data_module.py +19 -8
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/__init__.py +7 -1
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/loss_factory.py +9 -1
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/lvae/losses.py +85 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/__init__.py +8 -8
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/config.py +56 -44
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/lc_dataset.py +18 -12
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/ms_dataset_ref.py +5 -5
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multich_dataset.py +24 -18
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multifile_dataset.py +6 -6
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bmz_io.py +9 -5
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/likelihoods.py +30 -14
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/lvae.py +2 -2
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/noise_models.py +20 -14
- careamics-0.0.16/src/careamics/prediction_utils/__init__.py +16 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/prediction_utils/prediction_outputs.py +48 -3
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/prediction_utils/stitch_prediction.py +71 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/xy_random_rotate90.py +1 -1
- careamics-0.0.16/tests/config/test_configuration_factories.py +1150 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_vae_algorithm_model.py +13 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/conftest.py +28 -2
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_zarr_image_stack.py +4 -4
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_LVAE_lightning_module.py +276 -148
- careamics-0.0.16/tests/lightning/test_microsplit_train_datamodule.py +61 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/likelihood_modules/test_likelihoods.py +2 -1
- {careamics-0.0.15 → careamics-0.0.16}/tests/losses/test_lvae_losses.py +10 -5
- {careamics-0.0.15 → careamics-0.0.16}/tests/models/lvae/test_lvae_architecture.py +1 -9
- {careamics-0.0.15 → careamics-0.0.16}/tests/models/lvae/test_noise_model.py +3 -3
- {careamics-0.0.15 → careamics-0.0.16}/tests/test_careamist.py +78 -27
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_lightning_utils.py +5 -2
- careamics-0.0.15/src/careamics/dataset/zarr_dataset.py +0 -151
- careamics-0.0.15/src/careamics/file_io/read/zarr.py +0 -60
- careamics-0.0.15/src/careamics/lightning/__init__.py +0 -18
- careamics-0.0.15/src/careamics/prediction_utils/__init__.py +0 -10
- careamics-0.0.15/tests/config/test_configuration_factories.py +0 -481
- careamics-0.0.15/tests/config/test_training_model.py +0 -21
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/example_report.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/interoperability_request.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/question.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/ISSUE_TEMPLATE/refactoring_suggestion.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/TEST_FAIL_TEMPLATE.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/dependabot.yml +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/pull_request_template.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/workflows/codecov.yml +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.github/workflows/lvae.yml +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/.gitignore +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/CODE_OF_CONDUCT.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/LICENSE +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/README.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/codecov.yml +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/mypy.ini +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/cli/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/cli/main.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/cli/utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/care_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/n2n_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/unet_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/architectures/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/architectures/architecture_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/architectures/unet_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/configuration_io.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_overlapping_patched_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/_patched_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/random_patching_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/sequential_patching_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/tiled_patching_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/data/patching_strategies/whole_patching_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_activations.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_architectures.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_data.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_loggers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_optimizers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_patching_strategies.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_struct_axis.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/support/supported_transforms.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/tile_information.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/n2v_manipulate_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/transform_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/transform_unions.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/xy_flip_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/transformations/xy_random_rotate90_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/validators/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/validators/model_validators.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/validators/validator_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/conftest.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/dataset_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/iterate_over_files.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/dataset_utils/running_stats.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/in_memory_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/in_memory_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/iterable_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/iterable_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/patching/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/patching/patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/patching/random_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/patching/sequential_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/tiling/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/tiling/collate_tiles.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/tiling/lvae_tiled_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset/tiling/tiled_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/README.md +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/bsd68_demo.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/care_U2OS_demo.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_datamodule.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_dataset.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/demo_patch_extractor.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/legacy_interoperability.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/czi_image_stack.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/image_stack/image_stack_protocol.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patch_extractor/patch_extractor_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/random_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/sequential_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/tiling_strategy.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/dataset_ng/patching_strategies/whole_sample.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/read/get_func.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/read/tiff.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/write/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/write/get_func.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/file_io/write/tiff.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/hyperparameters_callback.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/callbacks/progress_bar_callback.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/data_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/care_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lightning/dataset_ng/lightning_modules/unet_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/fcn/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/fcn/losses.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/lvae/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/losses/lvae/loss_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/calibration.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/multicrop_dset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/types.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/data_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_manager.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/dataset/utils/index_switcher.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/eval_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/get_config.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/lightning_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/metrics.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/train_lvae.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/lvae_training/train_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bioimage/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bioimage/_readme_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bioimage/bioimage_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bioimage/cover_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/bioimage/model_description.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/model_io/model_io_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/activation.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/layers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/layers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/stochastic.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/lvae/utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/model_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/models/unet.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_prediction.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/prediction_utils/lvae_tiling_manager.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/py.typed +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/compose.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/n2v_manipulate_torch.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/normalize.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/pixel_manipulation_torch.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/struct_mask_parameters.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/transform.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/tta.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/transforms/xy_flip.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/autocorrelation.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/base_enum.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/context.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/lightning_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/logging.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/metrics.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/path_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/plotting.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/ram.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/receptive_field.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/serializers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/torch_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/src/careamics/utils/version.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/cli/__init__.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/cli/test_conf.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/cli/test_main.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/algorithms/test_care_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/algorithms/test_n2n_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/algorithms/test_n2v_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/architectures/test_architecture_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/architectures/test_lvae_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/architectures/test_unet_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/data/patching_strategies/test_strategies.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/data/test_data_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/data/test_ng_data_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/support/test_supported_data.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/support/test_supported_optimizers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_callback_models.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_configuration.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_configuration_io.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_inference_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_n2v_preprocessing.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_optimizers_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_tile_information.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/test_unet_algorithm_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/transformations/test_normalize_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/transformations/test_xy_flip_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/transformations/test_xy_random_rotate90_model.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/validators/test_model_validators.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/config/validators/test_validator_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/dataset_utils/test_compute_normalization_stats.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/dataset_utils/test_list_files.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/patching/test_patching_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/patching/test_random_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/patching/test_sequential_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_in_memory_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_in_memory_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_in_memory_tiled_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_iterable_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_iterable_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/test_iterable_tiled_pred_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/tiling/test_collate_tiles.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/tiling/test_lvae_tiled_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset/tiling/test_tiled_patching.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/dataset/test_dataset.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_czi_image_stack.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patch_extractor/image_stack/test_import_czi_image_stack.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_all_strategies.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_random_patching_ng.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_sequential_patching_ng.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/dataset_ng/patching_strategies/test_tiling_strategy.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/file_io/read/test_get_read_func.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/file_io/read/test_read_tiff.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/file_io/write/test_get_write_func.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/file_io/write/test_write_tiff.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_cache_tiles_write_strategy.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_file_path_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_prediction_writer_callback.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_image_write_strategy.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/callbacks/prediction_writer_callback/test_write_strategy_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_lightning_api.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_lightning_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_lightning_module_onnx_exportability.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_predict_data_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/lightning/test_train_data_module.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/model_io/test_bmz_io.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/models/lvae/test_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/models/test_model_factory.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/models/test_unet.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/prediction_utils/test_lvae_prediction.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/prediction_utils/test_prediction_outputs.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/prediction_utils/test_stitch_prediction.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/test_conftest.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_compose.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_manipulate_n2v.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_normalize.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_pixel_manipulation.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_tta.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_xy_flip.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/transforms/test_xy_random_rotate90.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_autocorrelation.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_base_enum.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_context.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_logging.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_metrics.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_serializers.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_torch_utils.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_version.py +0 -0
- {careamics-0.0.15 → careamics-0.0.16}/tests/utils/test_wandb.py +0 -0
|
@@ -27,9 +27,9 @@ jobs:
|
|
|
27
27
|
strategy:
|
|
28
28
|
fail-fast: false
|
|
29
29
|
matrix:
|
|
30
|
-
python-version: ["3.
|
|
30
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
31
31
|
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
|
|
32
|
-
platform: [ubuntu-latest, windows-latest] # macos-latest
|
|
32
|
+
platform: [ubuntu-latest, windows-latest] # macos-latest
|
|
33
33
|
|
|
34
34
|
steps:
|
|
35
35
|
- name: 🛑 Cancel Previous Runs
|
|
@@ -22,7 +22,7 @@ jobs:
|
|
|
22
22
|
strategy:
|
|
23
23
|
fail-fast: false
|
|
24
24
|
matrix:
|
|
25
|
-
python-version: ["3.
|
|
25
|
+
python-version: ["3.11", "3.12", "3.13"]
|
|
26
26
|
# https://docs.github.com/en/actions/using-github-hosted-runners/about-github-hosted-runners/about-github-hosted-runners#standard-github-hosted-runners-for-public-repositories
|
|
27
27
|
platform: [macos-latest]
|
|
28
28
|
|
|
@@ -14,11 +14,11 @@ repos:
|
|
|
14
14
|
- id: validate-pyproject
|
|
15
15
|
|
|
16
16
|
- repo: https://github.com/astral-sh/ruff-pre-commit
|
|
17
|
-
rev: v0.12.
|
|
17
|
+
rev: v0.12.11
|
|
18
18
|
hooks:
|
|
19
19
|
- id: ruff
|
|
20
20
|
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^scripts/.*"
|
|
21
|
-
args: [--fix, --target-version,
|
|
21
|
+
args: [--fix, --target-version, py311]
|
|
22
22
|
|
|
23
23
|
- repo: https://github.com/psf/black
|
|
24
24
|
rev: 25.1.0
|
|
@@ -26,14 +26,14 @@ repos:
|
|
|
26
26
|
- id: black
|
|
27
27
|
|
|
28
28
|
- repo: https://github.com/pre-commit/mirrors-mypy
|
|
29
|
-
rev: v1.
|
|
29
|
+
rev: v1.17.1
|
|
30
30
|
hooks:
|
|
31
31
|
- id: mypy
|
|
32
32
|
files: "^src/"
|
|
33
33
|
exclude: "^src/careamics/lvae_training/.*|^src/careamics/models/lvae/.*|^src/careamics/config/likelihood_model.py|^src/careamics/losses/loss_factory.py|^src/careamics/losses/lvae/losses.py"
|
|
34
34
|
args: ["--config-file", "mypy.ini"]
|
|
35
35
|
additional_dependencies:
|
|
36
|
-
- numpy
|
|
36
|
+
- numpy
|
|
37
37
|
- pydantic
|
|
38
38
|
- types-PyYAML
|
|
39
39
|
- types-setuptools
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: careamics
|
|
3
|
-
Version: 0.0.
|
|
3
|
+
Version: 0.0.16
|
|
4
4
|
Summary: Toolbox for running N2V and friends.
|
|
5
5
|
Project-URL: homepage, https://careamics.github.io/
|
|
6
6
|
Project-URL: repository, https://github.com/CAREamics/careamics
|
|
@@ -10,28 +10,31 @@ License-File: LICENSE
|
|
|
10
10
|
Classifier: Development Status :: 3 - Alpha
|
|
11
11
|
Classifier: License :: OSI Approved :: BSD License
|
|
12
12
|
Classifier: Programming Language :: Python :: 3
|
|
13
|
-
Classifier: Programming Language :: Python :: 3.10
|
|
14
13
|
Classifier: Programming Language :: Python :: 3.11
|
|
15
14
|
Classifier: Programming Language :: Python :: 3.12
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
16
16
|
Classifier: Typing :: Typed
|
|
17
|
-
Requires-Python: >=3.
|
|
18
|
-
Requires-Dist: bioimageio-core
|
|
19
|
-
Requires-Dist: matplotlib<=3.10.
|
|
20
|
-
Requires-Dist: numpy
|
|
21
|
-
Requires-Dist:
|
|
22
|
-
Requires-Dist:
|
|
17
|
+
Requires-Python: >=3.11
|
|
18
|
+
Requires-Dist: bioimageio-core>=0.9.0
|
|
19
|
+
Requires-Dist: matplotlib<=3.10.6
|
|
20
|
+
Requires-Dist: numpy>=1.21
|
|
21
|
+
Requires-Dist: numpy>=2.1.0; python_version >= '3.13'
|
|
22
|
+
Requires-Dist: pillow<=11.3.0
|
|
23
|
+
Requires-Dist: psutil<=7.1.0
|
|
23
24
|
Requires-Dist: pydantic<=2.12,>=2.11
|
|
24
|
-
Requires-Dist: pytorch-lightning<=2.5.
|
|
25
|
-
Requires-Dist: pyyaml!=6.0.0,<=6.0.
|
|
25
|
+
Requires-Dist: pytorch-lightning<=2.5.5,>=2.2
|
|
26
|
+
Requires-Dist: pyyaml!=6.0.0,<=6.0.3
|
|
26
27
|
Requires-Dist: scikit-image<=0.25.2
|
|
27
|
-
Requires-Dist: tifffile<=2025.
|
|
28
|
-
Requires-Dist: torch<=2.
|
|
29
|
-
Requires-Dist: torchvision<=0.
|
|
30
|
-
Requires-Dist: typer<=0.
|
|
31
|
-
Requires-Dist:
|
|
28
|
+
Requires-Dist: tifffile<=2025.9.30
|
|
29
|
+
Requires-Dist: torch<=2.8.0,>=2.0
|
|
30
|
+
Requires-Dist: torchvision<=0.23.0
|
|
31
|
+
Requires-Dist: typer<=0.19.2,>=0.12.3
|
|
32
|
+
Requires-Dist: validators<=0.35.0
|
|
33
|
+
Requires-Dist: zarr<4.0.0,>=3.0.0
|
|
32
34
|
Provides-Extra: czi
|
|
33
35
|
Requires-Dist: pylibczirw<6.0.0,>=4.1.2; extra == 'czi'
|
|
34
36
|
Provides-Extra: dev
|
|
37
|
+
Requires-Dist: ml-dtypes>=0.5.0; extra == 'dev'
|
|
35
38
|
Requires-Dist: onnx; extra == 'dev'
|
|
36
39
|
Requires-Dist: pre-commit; extra == 'dev'
|
|
37
40
|
Requires-Dist: pytest; extra == 'dev'
|
|
@@ -20,7 +20,7 @@ name = "careamics"
|
|
|
20
20
|
dynamic = ["version"]
|
|
21
21
|
description = "Toolbox for running N2V and friends."
|
|
22
22
|
readme = "README.md"
|
|
23
|
-
requires-python = ">=3.
|
|
23
|
+
requires-python = ">=3.11"
|
|
24
24
|
license = { text = "BSD-3-Clause" }
|
|
25
25
|
authors = [
|
|
26
26
|
{ name = 'CAREamics team', email = 'rse@fht.org' },
|
|
@@ -34,27 +34,29 @@ authors = [
|
|
|
34
34
|
classifiers = [
|
|
35
35
|
"Development Status :: 3 - Alpha",
|
|
36
36
|
"Programming Language :: Python :: 3",
|
|
37
|
-
"Programming Language :: Python :: 3.10",
|
|
38
37
|
"Programming Language :: Python :: 3.11",
|
|
39
38
|
"Programming Language :: Python :: 3.12",
|
|
39
|
+
"Programming Language :: Python :: 3.13",
|
|
40
40
|
"License :: OSI Approved :: BSD License",
|
|
41
41
|
"Typing :: Typed",
|
|
42
42
|
]
|
|
43
43
|
dependencies = [
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
'
|
|
47
|
-
'
|
|
48
|
-
'
|
|
49
|
-
'
|
|
44
|
+
"numpy>=1.21",
|
|
45
|
+
"numpy>=2.1.0; python_version>='3.13'", # prevents ml_dtypes conflict in py313
|
|
46
|
+
'torch>=2.0,<=2.8.0',
|
|
47
|
+
'torchvision<=0.23.0',
|
|
48
|
+
'bioimageio.core>=0.9.0',
|
|
49
|
+
'tifffile<=2025.9.30',
|
|
50
|
+
'psutil<=7.1.0',
|
|
50
51
|
'pydantic>=2.11,<=2.12',
|
|
51
|
-
'pytorch_lightning>=2.2,<=2.5.
|
|
52
|
-
'pyyaml
|
|
53
|
-
'typer>=0.12.3,<=0.
|
|
52
|
+
'pytorch_lightning>=2.2,<=2.5.5',
|
|
53
|
+
'pyyaml!=6.0.0,<=6.0.3',
|
|
54
|
+
'typer>=0.12.3,<=0.19.2',
|
|
54
55
|
'scikit-image<=0.25.2',
|
|
55
|
-
'zarr
|
|
56
|
-
'pillow<=11.
|
|
57
|
-
'matplotlib<=3.10.
|
|
56
|
+
'zarr>=3.0.0,<4.0.0',
|
|
57
|
+
'pillow<=11.3.0',
|
|
58
|
+
'matplotlib<=3.10.6',
|
|
59
|
+
'validators<=0.35.0'
|
|
58
60
|
]
|
|
59
61
|
|
|
60
62
|
[project.optional-dependencies]
|
|
@@ -67,8 +69,11 @@ dev = [
|
|
|
67
69
|
"pre-commit",
|
|
68
70
|
"pytest",
|
|
69
71
|
"pytest-cov",
|
|
70
|
-
"onnx",
|
|
71
72
|
"sybil", # doctesting
|
|
73
|
+
|
|
74
|
+
# libraries used in some tests
|
|
75
|
+
"onnx",
|
|
76
|
+
"ml_dtypes>=0.5.0" # required by onnx, causes issues in gh runners with py313
|
|
72
77
|
]
|
|
73
78
|
|
|
74
79
|
# notebooks
|
|
@@ -208,17 +208,11 @@ class CAREamist:
|
|
|
208
208
|
|
|
209
209
|
# instantiate trainer
|
|
210
210
|
self.trainer = Trainer(
|
|
211
|
-
max_epochs=self.cfg.training_config.num_epochs,
|
|
212
|
-
precision=self.cfg.training_config.precision,
|
|
213
|
-
max_steps=self.cfg.training_config.max_steps,
|
|
214
|
-
check_val_every_n_epoch=self.cfg.training_config.check_val_every_n_epoch,
|
|
215
211
|
enable_progress_bar=enable_progress_bar,
|
|
216
|
-
accumulate_grad_batches=self.cfg.training_config.accumulate_grad_batches,
|
|
217
|
-
gradient_clip_val=self.cfg.training_config.gradient_clip_val,
|
|
218
|
-
gradient_clip_algorithm=self.cfg.training_config.gradient_clip_algorithm,
|
|
219
212
|
callbacks=self.callbacks,
|
|
220
213
|
default_root_dir=self.work_dir,
|
|
221
214
|
logger=experiment_logger,
|
|
215
|
+
**self.cfg.training_config.lightning_trainer_config or {},
|
|
222
216
|
)
|
|
223
217
|
|
|
224
218
|
# place holder for the datamodules
|
|
@@ -264,7 +258,7 @@ class CAREamist:
|
|
|
264
258
|
HyperParametersCallback(self.cfg),
|
|
265
259
|
ModelCheckpoint(
|
|
266
260
|
dirpath=self.work_dir / Path("checkpoints"),
|
|
267
|
-
filename=self.cfg.experiment_name,
|
|
261
|
+
filename=f"{self.cfg.experiment_name}_{{epoch:02d}}_step_{{step}}",
|
|
268
262
|
**self.cfg.training_config.checkpoint_callback.model_dump(),
|
|
269
263
|
),
|
|
270
264
|
]
|
|
@@ -823,12 +817,12 @@ class CAREamist:
|
|
|
823
817
|
|
|
824
818
|
# extract file names
|
|
825
819
|
source_path: Union[Path, str, NDArray]
|
|
826
|
-
source_data_type: Literal["array", "tiff", "custom"]
|
|
820
|
+
source_data_type: Literal["array", "tiff", "czi", "custom"]
|
|
827
821
|
if isinstance(source, PredictDataModule):
|
|
828
822
|
source_path = source.pred_data
|
|
829
823
|
source_data_type = source.data_type
|
|
830
824
|
extension_filter = source.extension_filter
|
|
831
|
-
elif isinstance(source, str | Path):
|
|
825
|
+
elif isinstance(source, (str | Path)):
|
|
832
826
|
source_path = source
|
|
833
827
|
source_data_type = data_type or self.cfg.data_config.data_type
|
|
834
828
|
extension_filter = SupportedData.get_extension_pattern(
|
|
@@ -841,7 +835,7 @@ class CAREamist:
|
|
|
841
835
|
raise ValueError(
|
|
842
836
|
"Predicting to disk is not supported for input type 'array'."
|
|
843
837
|
)
|
|
844
|
-
assert isinstance(source_path,
|
|
838
|
+
assert isinstance(source_path, (Path | str)) # because data_type != "array"
|
|
845
839
|
source_path = Path(source_path)
|
|
846
840
|
|
|
847
841
|
file_paths = list_files(source_path, source_data_type, extension_filter)
|
|
@@ -879,7 +873,7 @@ class CAREamist:
|
|
|
879
873
|
|
|
880
874
|
def export_to_bmz(
|
|
881
875
|
self,
|
|
882
|
-
path_to_archive: Union[Path
|
|
876
|
+
path_to_archive: Union[Path | str],
|
|
883
877
|
friendly_model_name: str,
|
|
884
878
|
input_array: NDArray,
|
|
885
879
|
authors: list[dict],
|
|
@@ -116,7 +116,11 @@ def care( # numpydoc ignore=PR01
|
|
|
116
116
|
),
|
|
117
117
|
],
|
|
118
118
|
batch_size: Annotated[int, typer.Option(help="Batch size.")],
|
|
119
|
-
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
|
|
119
|
+
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
|
|
120
|
+
num_steps: Annotated[
|
|
121
|
+
int | None,
|
|
122
|
+
typer.Option(help="Number of batches per epoch (limit_train_batches)."),
|
|
123
|
+
] = None,
|
|
120
124
|
data_type: Annotated[
|
|
121
125
|
click.Choice,
|
|
122
126
|
typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
|
|
@@ -175,6 +179,7 @@ def care( # numpydoc ignore=PR01
|
|
|
175
179
|
patch_size=patch_size,
|
|
176
180
|
batch_size=batch_size,
|
|
177
181
|
num_epochs=num_epochs,
|
|
182
|
+
num_steps=num_steps,
|
|
178
183
|
# TODO: fix choosing augmentations
|
|
179
184
|
augmentations=None if use_augmentations else [],
|
|
180
185
|
independent_channels=independent_channels,
|
|
@@ -203,7 +208,11 @@ def n2n( # numpydoc ignore=PR01
|
|
|
203
208
|
),
|
|
204
209
|
],
|
|
205
210
|
batch_size: Annotated[int, typer.Option(help="Batch size.")],
|
|
206
|
-
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
|
|
211
|
+
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
|
|
212
|
+
num_steps: Annotated[
|
|
213
|
+
int | None,
|
|
214
|
+
typer.Option(help="Number of batches per epoch (limit_train_batches)."),
|
|
215
|
+
] = None,
|
|
207
216
|
data_type: Annotated[
|
|
208
217
|
click.Choice,
|
|
209
218
|
typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
|
|
@@ -259,6 +268,7 @@ def n2n( # numpydoc ignore=PR01
|
|
|
259
268
|
patch_size=patch_size,
|
|
260
269
|
batch_size=batch_size,
|
|
261
270
|
num_epochs=num_epochs,
|
|
271
|
+
num_steps=num_steps,
|
|
262
272
|
# TODO: fix choosing augmentations
|
|
263
273
|
augmentations=None if use_augmentations else [],
|
|
264
274
|
independent_channels=independent_channels,
|
|
@@ -287,7 +297,11 @@ def n2v( # numpydoc ignore=PR01
|
|
|
287
297
|
),
|
|
288
298
|
],
|
|
289
299
|
batch_size: Annotated[int, typer.Option(help="Batch size.")],
|
|
290
|
-
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")],
|
|
300
|
+
num_epochs: Annotated[int, typer.Option(help="Number of epochs.")] = 100,
|
|
301
|
+
num_steps: Annotated[
|
|
302
|
+
int | None,
|
|
303
|
+
typer.Option(help="Number of batches per epoch (limit_train_batches)."),
|
|
304
|
+
] = None,
|
|
291
305
|
data_type: Annotated[
|
|
292
306
|
click.Choice,
|
|
293
307
|
typer.Option(click_type=click.Choice(["tiff"]), help="Type of the data."),
|
|
@@ -364,6 +378,7 @@ def n2v( # numpydoc ignore=PR01
|
|
|
364
378
|
patch_size=patch_size,
|
|
365
379
|
batch_size=batch_size,
|
|
366
380
|
num_epochs=num_epochs,
|
|
381
|
+
num_steps=num_steps,
|
|
367
382
|
# TODO: fix choosing augmentations
|
|
368
383
|
augmentations=None if use_augmentations else [],
|
|
369
384
|
independent_channels=independent_channels,
|
|
@@ -12,8 +12,10 @@ __all__ = [
|
|
|
12
12
|
"Configuration",
|
|
13
13
|
"DataConfig",
|
|
14
14
|
"GaussianMixtureNMConfig",
|
|
15
|
+
"HDNAlgorithm",
|
|
15
16
|
"InferenceConfig",
|
|
16
17
|
"LVAELossConfig",
|
|
18
|
+
"MicroSplitAlgorithm",
|
|
17
19
|
"MultiChannelNMConfig",
|
|
18
20
|
"N2NAlgorithm",
|
|
19
21
|
"N2VAlgorithm",
|
|
@@ -22,6 +24,8 @@ __all__ = [
|
|
|
22
24
|
"VAEBasedAlgorithm",
|
|
23
25
|
"algorithm_factory",
|
|
24
26
|
"create_care_configuration",
|
|
27
|
+
"create_hdn_configuration",
|
|
28
|
+
"create_microsplit_configuration",
|
|
25
29
|
"create_n2n_configuration",
|
|
26
30
|
"create_n2v_configuration",
|
|
27
31
|
"load_configuration",
|
|
@@ -30,6 +34,8 @@ __all__ = [
|
|
|
30
34
|
|
|
31
35
|
from .algorithms import (
|
|
32
36
|
CAREAlgorithm,
|
|
37
|
+
HDNAlgorithm,
|
|
38
|
+
MicroSplitAlgorithm,
|
|
33
39
|
N2NAlgorithm,
|
|
34
40
|
N2VAlgorithm,
|
|
35
41
|
UNetBasedAlgorithm,
|
|
@@ -40,6 +46,8 @@ from .configuration import Configuration
|
|
|
40
46
|
from .configuration_factories import (
|
|
41
47
|
algorithm_factory,
|
|
42
48
|
create_care_configuration,
|
|
49
|
+
create_hdn_configuration,
|
|
50
|
+
create_microsplit_configuration,
|
|
43
51
|
create_n2n_configuration,
|
|
44
52
|
create_n2v_configuration,
|
|
45
53
|
)
|
|
@@ -2,6 +2,8 @@
|
|
|
2
2
|
|
|
3
3
|
__all__ = [
|
|
4
4
|
"CAREAlgorithm",
|
|
5
|
+
"HDNAlgorithm",
|
|
6
|
+
"MicroSplitAlgorithm",
|
|
5
7
|
"N2NAlgorithm",
|
|
6
8
|
"N2VAlgorithm",
|
|
7
9
|
"UNetBasedAlgorithm",
|
|
@@ -9,6 +11,8 @@ __all__ = [
|
|
|
9
11
|
]
|
|
10
12
|
|
|
11
13
|
from .care_algorithm_model import CAREAlgorithm
|
|
14
|
+
from .hdn_algorithm_model import HDNAlgorithm
|
|
15
|
+
from .microsplit_algorithm_model import MicroSplitAlgorithm
|
|
12
16
|
from .n2n_algorithm_model import N2NAlgorithm
|
|
13
17
|
from .n2v_algorithm_model import N2VAlgorithm
|
|
14
18
|
from .unet_algorithm_model import UNetBasedAlgorithm
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"""HDN algorithm configuration."""
|
|
2
|
+
|
|
3
|
+
from typing import Literal
|
|
4
|
+
|
|
5
|
+
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
6
|
+
from pydantic import ConfigDict
|
|
7
|
+
|
|
8
|
+
from careamics.config.algorithms.vae_algorithm_model import VAEBasedAlgorithm
|
|
9
|
+
from careamics.config.architectures import LVAEModel
|
|
10
|
+
from careamics.config.loss_model import LVAELossConfig
|
|
11
|
+
|
|
12
|
+
HDN = "Hierarchical DivNoising"
|
|
13
|
+
|
|
14
|
+
HDN_DESCRIPTION = (
|
|
15
|
+
"HDN leverages a hierarchical VAE to perform image "
|
|
16
|
+
"restoration. It is designed to be interpretable and unsupervised, "
|
|
17
|
+
"making it suitable for a wide range of microscopy images."
|
|
18
|
+
)
|
|
19
|
+
HDN_REF = CiteEntry(
|
|
20
|
+
text='Prakash, M., Delbracio, M., Milanfar, P., Jug, F. 2022. "Interpretable '
|
|
21
|
+
'Unsupervised Diversity Denoising and Artefact Removal." The International '
|
|
22
|
+
"Conference on Learning Representations (ICLR).",
|
|
23
|
+
doi="10.1561/2200000056",
|
|
24
|
+
)
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
class HDNAlgorithm(VAEBasedAlgorithm):
|
|
28
|
+
"""HDN algorithm configuration."""
|
|
29
|
+
|
|
30
|
+
model_config = ConfigDict(validate_assignment=True)
|
|
31
|
+
|
|
32
|
+
algorithm: Literal["hdn"] = "hdn"
|
|
33
|
+
|
|
34
|
+
loss: LVAELossConfig
|
|
35
|
+
|
|
36
|
+
model: LVAEModel # TODO add validators
|
|
37
|
+
|
|
38
|
+
is_supervised: bool = False
|
|
39
|
+
|
|
40
|
+
def get_algorithm_friendly_name(self) -> str:
|
|
41
|
+
"""
|
|
42
|
+
Get the algorithm friendly name.
|
|
43
|
+
|
|
44
|
+
Returns
|
|
45
|
+
-------
|
|
46
|
+
str
|
|
47
|
+
Friendly name of the algorithm.
|
|
48
|
+
"""
|
|
49
|
+
return HDN
|
|
50
|
+
|
|
51
|
+
def get_algorithm_keywords(self) -> list[str]:
|
|
52
|
+
"""
|
|
53
|
+
Get algorithm keywords.
|
|
54
|
+
|
|
55
|
+
Returns
|
|
56
|
+
-------
|
|
57
|
+
list[str]
|
|
58
|
+
List of keywords.
|
|
59
|
+
"""
|
|
60
|
+
return [
|
|
61
|
+
"restoration",
|
|
62
|
+
"VAE",
|
|
63
|
+
"3D" if self.model.is_3D() else "2D",
|
|
64
|
+
"CAREamics",
|
|
65
|
+
"pytorch",
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
def get_algorithm_references(self) -> str:
|
|
69
|
+
"""
|
|
70
|
+
Get the algorithm references.
|
|
71
|
+
|
|
72
|
+
This is used to generate the README of the BioImage Model Zoo export.
|
|
73
|
+
|
|
74
|
+
Returns
|
|
75
|
+
-------
|
|
76
|
+
str
|
|
77
|
+
Algorithm references.
|
|
78
|
+
"""
|
|
79
|
+
return HDN_REF.text + " doi: " + HDN_REF.doi
|
|
80
|
+
|
|
81
|
+
def get_algorithm_citations(self) -> list[CiteEntry]:
|
|
82
|
+
"""
|
|
83
|
+
Return a list of citation entries of the current algorithm.
|
|
84
|
+
|
|
85
|
+
This is used to generate the model description for the BioImage Model Zoo.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
List[CiteEntry]
|
|
90
|
+
List of citation entries.
|
|
91
|
+
"""
|
|
92
|
+
return [HDN_REF]
|
|
93
|
+
|
|
94
|
+
def get_algorithm_description(self) -> str:
|
|
95
|
+
"""
|
|
96
|
+
Get the algorithm description.
|
|
97
|
+
|
|
98
|
+
Returns
|
|
99
|
+
-------
|
|
100
|
+
str
|
|
101
|
+
Algorithm description.
|
|
102
|
+
"""
|
|
103
|
+
return HDN_DESCRIPTION
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
"""MicroSplit algorithm configuration."""
|
|
2
|
+
|
|
3
|
+
from typing import Literal
|
|
4
|
+
|
|
5
|
+
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
6
|
+
from pydantic import ConfigDict
|
|
7
|
+
|
|
8
|
+
from careamics.config.algorithms.vae_algorithm_model import VAEBasedAlgorithm
|
|
9
|
+
from careamics.config.architectures import LVAEModel
|
|
10
|
+
from careamics.config.loss_model import LVAELossConfig
|
|
11
|
+
|
|
12
|
+
MICROSPLIT = "MicroSplit"
|
|
13
|
+
|
|
14
|
+
MICROSPLIT_DESCRIPTION = """MicroSplit is a self-supervised deep learning method for
|
|
15
|
+
microscopy image splitting that combines the strengths of both denoising and
|
|
16
|
+
representation learning approaches."""
|
|
17
|
+
|
|
18
|
+
MICROSPLIT_REF = CiteEntry(
|
|
19
|
+
text='Prakash, M., Delbracio, M., Milanfar, P., Jug, F. 2022. "Interpretable '
|
|
20
|
+
'Unsupervised Diversity Denoising and Artefact Removal." The International '
|
|
21
|
+
"Conference on Learning Representations (ICLR).",
|
|
22
|
+
doi="10.1561/2200000056",
|
|
23
|
+
)
|
|
24
|
+
|
|
25
|
+
|
|
26
|
+
class MicroSplitAlgorithm(VAEBasedAlgorithm):
|
|
27
|
+
"""MicroSplit algorithm configuration."""
|
|
28
|
+
|
|
29
|
+
model_config = ConfigDict(validate_assignment=True)
|
|
30
|
+
|
|
31
|
+
algorithm: Literal["microsplit"] = "microsplit"
|
|
32
|
+
|
|
33
|
+
loss: LVAELossConfig
|
|
34
|
+
|
|
35
|
+
model: LVAEModel # TODO add validators
|
|
36
|
+
|
|
37
|
+
is_supervised: bool = True
|
|
38
|
+
|
|
39
|
+
def get_algorithm_friendly_name(self) -> str:
|
|
40
|
+
"""
|
|
41
|
+
Get the algorithm friendly name.
|
|
42
|
+
|
|
43
|
+
Returns
|
|
44
|
+
-------
|
|
45
|
+
str
|
|
46
|
+
Friendly name of the algorithm.
|
|
47
|
+
"""
|
|
48
|
+
return MICROSPLIT
|
|
49
|
+
|
|
50
|
+
def get_algorithm_keywords(self) -> list[str]:
|
|
51
|
+
"""
|
|
52
|
+
Get algorithm keywords.
|
|
53
|
+
|
|
54
|
+
Returns
|
|
55
|
+
-------
|
|
56
|
+
list[str]
|
|
57
|
+
List of keywords.
|
|
58
|
+
"""
|
|
59
|
+
return [
|
|
60
|
+
"restoration",
|
|
61
|
+
"VAE",
|
|
62
|
+
"self-supervised",
|
|
63
|
+
"3D" if self.model.is_3D() else "2D",
|
|
64
|
+
"CAREamics",
|
|
65
|
+
"pytorch",
|
|
66
|
+
]
|
|
67
|
+
|
|
68
|
+
def get_algorithm_references(self) -> str:
|
|
69
|
+
"""
|
|
70
|
+
Get the algorithm references.
|
|
71
|
+
|
|
72
|
+
This is used to generate the README of the BioImage Model Zoo export.
|
|
73
|
+
|
|
74
|
+
Returns
|
|
75
|
+
-------
|
|
76
|
+
str
|
|
77
|
+
Algorithm references.
|
|
78
|
+
"""
|
|
79
|
+
return MICROSPLIT_REF.text + " doi: " + MICROSPLIT_REF.doi
|
|
80
|
+
|
|
81
|
+
def get_algorithm_citations(self) -> list[CiteEntry]:
|
|
82
|
+
"""
|
|
83
|
+
Return a list of citation entries of the current algorithm.
|
|
84
|
+
|
|
85
|
+
This is used to generate the model description for the BioImage Model Zoo.
|
|
86
|
+
|
|
87
|
+
Returns
|
|
88
|
+
-------
|
|
89
|
+
List[CiteEntry]
|
|
90
|
+
List of citation entries.
|
|
91
|
+
"""
|
|
92
|
+
return [MICROSPLIT_REF]
|
|
93
|
+
|
|
94
|
+
def get_algorithm_description(self) -> str:
|
|
95
|
+
"""
|
|
96
|
+
Get the algorithm description.
|
|
97
|
+
|
|
98
|
+
Returns
|
|
99
|
+
-------
|
|
100
|
+
str
|
|
101
|
+
Algorithm description.
|
|
102
|
+
"""
|
|
103
|
+
return MICROSPLIT_DESCRIPTION
|
{careamics-0.0.15 → careamics-0.0.16}/src/careamics/config/algorithms/n2v_algorithm_model.py
RENAMED
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
"""N2V Algorithm configuration."""
|
|
2
2
|
|
|
3
|
-
from typing import Annotated, Literal
|
|
3
|
+
from typing import Annotated, Literal, Self
|
|
4
4
|
|
|
5
5
|
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
6
6
|
from pydantic import AfterValidator, ConfigDict, model_validator
|
|
7
|
-
from typing_extensions import Self
|
|
8
7
|
|
|
9
8
|
from careamics.config.architectures import UNetModel
|
|
10
9
|
from careamics.config.support import SupportedPixelManipulation, SupportedStructAxis
|