careamics 0.0.19__py3-none-any.whl
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.
- careamics/__init__.py +24 -0
- careamics/careamist.py +961 -0
- careamics/cli/__init__.py +5 -0
- careamics/cli/conf.py +394 -0
- careamics/cli/main.py +234 -0
- careamics/cli/utils.py +27 -0
- careamics/config/__init__.py +66 -0
- careamics/config/algorithms/__init__.py +21 -0
- careamics/config/algorithms/care_algorithm_config.py +122 -0
- careamics/config/algorithms/hdn_algorithm_config.py +103 -0
- careamics/config/algorithms/microsplit_algorithm_config.py +103 -0
- careamics/config/algorithms/n2n_algorithm_config.py +115 -0
- careamics/config/algorithms/n2v_algorithm_config.py +296 -0
- careamics/config/algorithms/pn2v_algorithm_config.py +301 -0
- careamics/config/algorithms/unet_algorithm_config.py +91 -0
- careamics/config/algorithms/vae_algorithm_config.py +178 -0
- careamics/config/architectures/__init__.py +7 -0
- careamics/config/architectures/architecture_config.py +37 -0
- careamics/config/architectures/lvae_config.py +262 -0
- careamics/config/architectures/unet_config.py +125 -0
- careamics/config/configuration.py +367 -0
- careamics/config/configuration_factories.py +2400 -0
- careamics/config/data/__init__.py +27 -0
- careamics/config/data/data_config.py +472 -0
- careamics/config/data/inference_config.py +237 -0
- careamics/config/data/ng_data_config.py +1038 -0
- careamics/config/data/patch_filter/__init__.py +15 -0
- careamics/config/data/patch_filter/filter_config.py +16 -0
- careamics/config/data/patch_filter/mask_filter_config.py +17 -0
- careamics/config/data/patch_filter/max_filter_config.py +15 -0
- careamics/config/data/patch_filter/meanstd_filter_config.py +18 -0
- careamics/config/data/patch_filter/shannon_filter_config.py +15 -0
- careamics/config/data/patching_strategies/__init__.py +15 -0
- careamics/config/data/patching_strategies/_overlapping_patched_config.py +102 -0
- careamics/config/data/patching_strategies/_patched_config.py +56 -0
- careamics/config/data/patching_strategies/random_patching_config.py +45 -0
- careamics/config/data/patching_strategies/sequential_patching_config.py +25 -0
- careamics/config/data/patching_strategies/tiled_patching_config.py +40 -0
- careamics/config/data/patching_strategies/whole_patching_config.py +12 -0
- careamics/config/data/tile_information.py +65 -0
- careamics/config/lightning/__init__.py +15 -0
- careamics/config/lightning/callbacks/__init__.py +8 -0
- careamics/config/lightning/callbacks/callback_config.py +116 -0
- careamics/config/lightning/optimizer_configs.py +186 -0
- careamics/config/lightning/training_config.py +70 -0
- careamics/config/losses/__init__.py +8 -0
- careamics/config/losses/loss_config.py +60 -0
- careamics/config/ng_configs/__init__.py +5 -0
- careamics/config/ng_configs/n2v_configuration.py +64 -0
- careamics/config/ng_configs/ng_configuration.py +256 -0
- careamics/config/ng_factories/__init__.py +9 -0
- careamics/config/ng_factories/algorithm_factory.py +120 -0
- careamics/config/ng_factories/data_factory.py +154 -0
- careamics/config/ng_factories/n2v_factory.py +256 -0
- careamics/config/ng_factories/training_factory.py +69 -0
- careamics/config/noise_model/__init__.py +12 -0
- careamics/config/noise_model/likelihood_config.py +60 -0
- careamics/config/noise_model/noise_model_config.py +149 -0
- careamics/config/support/__init__.py +31 -0
- careamics/config/support/supported_activations.py +27 -0
- careamics/config/support/supported_algorithms.py +40 -0
- careamics/config/support/supported_architectures.py +13 -0
- careamics/config/support/supported_data.py +122 -0
- careamics/config/support/supported_filters.py +17 -0
- careamics/config/support/supported_loggers.py +10 -0
- careamics/config/support/supported_losses.py +32 -0
- careamics/config/support/supported_optimizers.py +57 -0
- careamics/config/support/supported_patching_strategies.py +22 -0
- careamics/config/support/supported_pixel_manipulations.py +15 -0
- careamics/config/support/supported_struct_axis.py +21 -0
- careamics/config/support/supported_transforms.py +12 -0
- careamics/config/transformations/__init__.py +22 -0
- careamics/config/transformations/n2v_manipulate_config.py +79 -0
- careamics/config/transformations/normalize_config.py +59 -0
- careamics/config/transformations/transform_config.py +45 -0
- careamics/config/transformations/transform_unions.py +29 -0
- careamics/config/transformations/xy_flip_config.py +43 -0
- careamics/config/transformations/xy_random_rotate90_config.py +35 -0
- careamics/config/utils/__init__.py +8 -0
- careamics/config/utils/configuration_io.py +85 -0
- careamics/config/validators/__init__.py +18 -0
- careamics/config/validators/axes_validators.py +90 -0
- careamics/config/validators/model_validators.py +84 -0
- careamics/config/validators/patch_validators.py +55 -0
- careamics/conftest.py +39 -0
- careamics/dataset/__init__.py +17 -0
- careamics/dataset/dataset_utils/__init__.py +19 -0
- careamics/dataset/dataset_utils/dataset_utils.py +118 -0
- careamics/dataset/dataset_utils/file_utils.py +141 -0
- careamics/dataset/dataset_utils/iterate_over_files.py +84 -0
- careamics/dataset/dataset_utils/running_stats.py +189 -0
- careamics/dataset/in_memory_dataset.py +303 -0
- careamics/dataset/in_memory_pred_dataset.py +88 -0
- careamics/dataset/in_memory_tiled_pred_dataset.py +131 -0
- careamics/dataset/iterable_dataset.py +294 -0
- careamics/dataset/iterable_pred_dataset.py +121 -0
- careamics/dataset/iterable_tiled_pred_dataset.py +141 -0
- careamics/dataset/patching/__init__.py +1 -0
- careamics/dataset/patching/patching.py +300 -0
- careamics/dataset/patching/random_patching.py +110 -0
- careamics/dataset/patching/sequential_patching.py +212 -0
- careamics/dataset/patching/validate_patch_dimension.py +64 -0
- careamics/dataset/tiling/__init__.py +10 -0
- careamics/dataset/tiling/collate_tiles.py +33 -0
- careamics/dataset/tiling/lvae_tiled_patching.py +375 -0
- careamics/dataset/tiling/tiled_patching.py +166 -0
- careamics/dataset_ng/README.md +212 -0
- careamics/dataset_ng/__init__.py +0 -0
- careamics/dataset_ng/dataset.py +365 -0
- careamics/dataset_ng/demos/bsd68_demo.ipynb +361 -0
- careamics/dataset_ng/demos/bsd68_zarr_demo.ipynb +453 -0
- careamics/dataset_ng/demos/care_U2OS_demo.ipynb +330 -0
- careamics/dataset_ng/demos/demo_custom_image_stack.ipynb +736 -0
- careamics/dataset_ng/demos/demo_datamodule.ipynb +447 -0
- careamics/dataset_ng/demos/demo_dataset.ipynb +278 -0
- careamics/dataset_ng/demos/demo_patch_extractor.py +51 -0
- careamics/dataset_ng/demos/mouse_nuclei_demo.ipynb +293 -0
- careamics/dataset_ng/factory.py +180 -0
- careamics/dataset_ng/grouped_index_sampler.py +73 -0
- careamics/dataset_ng/image_stack/__init__.py +14 -0
- careamics/dataset_ng/image_stack/czi_image_stack.py +396 -0
- careamics/dataset_ng/image_stack/file_image_stack.py +140 -0
- careamics/dataset_ng/image_stack/image_stack_protocol.py +93 -0
- careamics/dataset_ng/image_stack/image_utils/__init__.py +6 -0
- careamics/dataset_ng/image_stack/image_utils/image_stack_utils.py +125 -0
- careamics/dataset_ng/image_stack/in_memory_image_stack.py +93 -0
- careamics/dataset_ng/image_stack/zarr_image_stack.py +170 -0
- careamics/dataset_ng/image_stack_loader/__init__.py +19 -0
- careamics/dataset_ng/image_stack_loader/image_stack_loader_protocol.py +70 -0
- careamics/dataset_ng/image_stack_loader/image_stack_loaders.py +273 -0
- careamics/dataset_ng/image_stack_loader/zarr_utils.py +130 -0
- careamics/dataset_ng/legacy_interoperability.py +175 -0
- careamics/dataset_ng/microsplit_input_synth.py +377 -0
- careamics/dataset_ng/patch_extractor/__init__.py +7 -0
- careamics/dataset_ng/patch_extractor/limit_file_extractor.py +50 -0
- careamics/dataset_ng/patch_extractor/patch_construction.py +151 -0
- careamics/dataset_ng/patch_extractor/patch_extractor.py +117 -0
- careamics/dataset_ng/patch_filter/__init__.py +20 -0
- careamics/dataset_ng/patch_filter/coordinate_filter_protocol.py +27 -0
- careamics/dataset_ng/patch_filter/filter_factory.py +95 -0
- careamics/dataset_ng/patch_filter/mask_filter.py +96 -0
- careamics/dataset_ng/patch_filter/max_filter.py +188 -0
- careamics/dataset_ng/patch_filter/mean_std_filter.py +218 -0
- careamics/dataset_ng/patch_filter/patch_filter_protocol.py +50 -0
- careamics/dataset_ng/patch_filter/shannon_filter.py +188 -0
- careamics/dataset_ng/patching_strategies/__init__.py +26 -0
- careamics/dataset_ng/patching_strategies/patching_strategy_factory.py +50 -0
- careamics/dataset_ng/patching_strategies/patching_strategy_protocol.py +161 -0
- careamics/dataset_ng/patching_strategies/random_patching.py +393 -0
- careamics/dataset_ng/patching_strategies/sequential_patching.py +99 -0
- careamics/dataset_ng/patching_strategies/tiling_strategy.py +207 -0
- careamics/dataset_ng/patching_strategies/whole_sample.py +61 -0
- careamics/file_io/__init__.py +15 -0
- careamics/file_io/read/__init__.py +11 -0
- careamics/file_io/read/get_func.py +57 -0
- careamics/file_io/read/tiff.py +58 -0
- careamics/file_io/write/__init__.py +15 -0
- careamics/file_io/write/get_func.py +63 -0
- careamics/file_io/write/tiff.py +40 -0
- careamics/lightning/__init__.py +32 -0
- careamics/lightning/callbacks/__init__.py +13 -0
- careamics/lightning/callbacks/data_stats_callback.py +33 -0
- careamics/lightning/callbacks/hyperparameters_callback.py +49 -0
- careamics/lightning/callbacks/prediction_writer_callback/__init__.py +20 -0
- careamics/lightning/callbacks/prediction_writer_callback/file_path_utils.py +56 -0
- careamics/lightning/callbacks/prediction_writer_callback/prediction_writer_callback.py +234 -0
- careamics/lightning/callbacks/prediction_writer_callback/write_strategy.py +399 -0
- careamics/lightning/callbacks/prediction_writer_callback/write_strategy_factory.py +215 -0
- careamics/lightning/callbacks/progress_bar_callback.py +90 -0
- careamics/lightning/dataset_ng/__init__.py +1 -0
- careamics/lightning/dataset_ng/callbacks/__init__.py +1 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/__init__.py +29 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/cached_tiles_strategy.py +164 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/file_path_utils.py +33 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/prediction_writer_callback.py +219 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/write_image_strategy.py +91 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/write_strategy.py +27 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/write_strategy_factory.py +214 -0
- careamics/lightning/dataset_ng/callbacks/prediction_writer/write_tiles_zarr_strategy.py +375 -0
- careamics/lightning/dataset_ng/data_module.py +529 -0
- careamics/lightning/dataset_ng/data_module_utils.py +395 -0
- careamics/lightning/dataset_ng/lightning_modules/__init__.py +9 -0
- careamics/lightning/dataset_ng/lightning_modules/care_module.py +97 -0
- careamics/lightning/dataset_ng/lightning_modules/n2v_module.py +106 -0
- careamics/lightning/dataset_ng/lightning_modules/unet_module.py +221 -0
- careamics/lightning/dataset_ng/prediction/__init__.py +16 -0
- careamics/lightning/dataset_ng/prediction/convert_prediction.py +198 -0
- careamics/lightning/dataset_ng/prediction/stitch_prediction.py +171 -0
- careamics/lightning/lightning_module.py +914 -0
- careamics/lightning/microsplit_data_module.py +632 -0
- careamics/lightning/predict_data_module.py +341 -0
- careamics/lightning/train_data_module.py +666 -0
- careamics/losses/__init__.py +21 -0
- careamics/losses/fcn/__init__.py +1 -0
- careamics/losses/fcn/losses.py +125 -0
- careamics/losses/loss_factory.py +80 -0
- careamics/losses/lvae/__init__.py +1 -0
- careamics/losses/lvae/loss_utils.py +83 -0
- careamics/losses/lvae/losses.py +589 -0
- careamics/lvae_training/__init__.py +0 -0
- careamics/lvae_training/calibration.py +191 -0
- careamics/lvae_training/dataset/__init__.py +20 -0
- careamics/lvae_training/dataset/config.py +135 -0
- careamics/lvae_training/dataset/lc_dataset.py +274 -0
- careamics/lvae_training/dataset/ms_dataset_ref.py +1067 -0
- careamics/lvae_training/dataset/multich_dataset.py +1121 -0
- careamics/lvae_training/dataset/multicrop_dset.py +196 -0
- careamics/lvae_training/dataset/multifile_dataset.py +335 -0
- careamics/lvae_training/dataset/types.py +32 -0
- careamics/lvae_training/dataset/utils/__init__.py +0 -0
- careamics/lvae_training/dataset/utils/data_utils.py +114 -0
- careamics/lvae_training/dataset/utils/empty_patch_fetcher.py +65 -0
- careamics/lvae_training/dataset/utils/index_manager.py +491 -0
- careamics/lvae_training/dataset/utils/index_switcher.py +165 -0
- careamics/lvae_training/eval_utils.py +987 -0
- careamics/lvae_training/get_config.py +84 -0
- careamics/lvae_training/lightning_module.py +701 -0
- careamics/lvae_training/metrics.py +214 -0
- careamics/lvae_training/train_lvae.py +342 -0
- careamics/lvae_training/train_utils.py +121 -0
- careamics/model_io/__init__.py +7 -0
- careamics/model_io/bioimage/__init__.py +11 -0
- careamics/model_io/bioimage/_readme_factory.py +113 -0
- careamics/model_io/bioimage/bioimage_utils.py +56 -0
- careamics/model_io/bioimage/cover_factory.py +171 -0
- careamics/model_io/bioimage/model_description.py +341 -0
- careamics/model_io/bmz_io.py +251 -0
- careamics/model_io/model_io_utils.py +95 -0
- careamics/models/__init__.py +5 -0
- careamics/models/activation.py +40 -0
- careamics/models/layers.py +495 -0
- careamics/models/lvae/__init__.py +3 -0
- careamics/models/lvae/layers.py +1371 -0
- careamics/models/lvae/likelihoods.py +394 -0
- careamics/models/lvae/lvae.py +848 -0
- careamics/models/lvae/noise_models.py +738 -0
- careamics/models/lvae/stochastic.py +394 -0
- careamics/models/lvae/utils.py +404 -0
- careamics/models/model_factory.py +54 -0
- careamics/models/unet.py +449 -0
- careamics/nm_training_placeholder.py +203 -0
- careamics/prediction_utils/__init__.py +21 -0
- careamics/prediction_utils/lvae_prediction.py +158 -0
- careamics/prediction_utils/lvae_tiling_manager.py +362 -0
- careamics/prediction_utils/prediction_outputs.py +238 -0
- careamics/prediction_utils/stitch_prediction.py +193 -0
- careamics/py.typed +5 -0
- careamics/transforms/__init__.py +22 -0
- careamics/transforms/compose.py +173 -0
- careamics/transforms/n2v_manipulate.py +150 -0
- careamics/transforms/n2v_manipulate_torch.py +149 -0
- careamics/transforms/normalize.py +374 -0
- careamics/transforms/pixel_manipulation.py +406 -0
- careamics/transforms/pixel_manipulation_torch.py +388 -0
- careamics/transforms/struct_mask_parameters.py +20 -0
- careamics/transforms/transform.py +24 -0
- careamics/transforms/tta.py +88 -0
- careamics/transforms/xy_flip.py +131 -0
- careamics/transforms/xy_random_rotate90.py +108 -0
- careamics/utils/__init__.py +19 -0
- careamics/utils/autocorrelation.py +40 -0
- careamics/utils/base_enum.py +60 -0
- careamics/utils/context.py +67 -0
- careamics/utils/deprecation.py +63 -0
- careamics/utils/lightning_utils.py +71 -0
- careamics/utils/logging.py +323 -0
- careamics/utils/metrics.py +394 -0
- careamics/utils/path_utils.py +26 -0
- careamics/utils/plotting.py +76 -0
- careamics/utils/ram.py +15 -0
- careamics/utils/receptive_field.py +108 -0
- careamics/utils/serializers.py +62 -0
- careamics/utils/torch_utils.py +150 -0
- careamics/utils/version.py +38 -0
- careamics-0.0.19.dist-info/METADATA +80 -0
- careamics-0.0.19.dist-info/RECORD +279 -0
- careamics-0.0.19.dist-info/WHEEL +4 -0
- careamics-0.0.19.dist-info/entry_points.txt +2 -0
- careamics-0.0.19.dist-info/licenses/LICENSE +28 -0
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
"""CAREamics Pydantic configurations."""
|
|
2
|
+
|
|
3
|
+
__all__ = [
|
|
4
|
+
"CAREAlgorithm",
|
|
5
|
+
"CheckpointConfig",
|
|
6
|
+
"Configuration",
|
|
7
|
+
"DataConfig",
|
|
8
|
+
"GaussianMixtureNMConfig",
|
|
9
|
+
"HDNAlgorithm",
|
|
10
|
+
"InferenceConfig",
|
|
11
|
+
"LVAEConfig",
|
|
12
|
+
"LVAELossConfig",
|
|
13
|
+
"MicroSplitAlgorithm",
|
|
14
|
+
"MultiChannelNMConfig",
|
|
15
|
+
"N2NAlgorithm",
|
|
16
|
+
"N2VAlgorithm",
|
|
17
|
+
"NGDataConfig",
|
|
18
|
+
"PN2VAlgorithm",
|
|
19
|
+
"TrainingConfig",
|
|
20
|
+
"UNetBasedAlgorithm",
|
|
21
|
+
"UNetConfig",
|
|
22
|
+
"VAEBasedAlgorithm",
|
|
23
|
+
"algorithm_factory",
|
|
24
|
+
"create_care_configuration",
|
|
25
|
+
"create_hdn_configuration",
|
|
26
|
+
"create_microsplit_configuration",
|
|
27
|
+
"create_n2n_configuration",
|
|
28
|
+
"create_n2v_configuration",
|
|
29
|
+
"create_ng_data_configuration",
|
|
30
|
+
"create_pn2v_configuration",
|
|
31
|
+
"load_configuration",
|
|
32
|
+
"save_configuration",
|
|
33
|
+
]
|
|
34
|
+
|
|
35
|
+
from .algorithms import (
|
|
36
|
+
CAREAlgorithm,
|
|
37
|
+
HDNAlgorithm,
|
|
38
|
+
MicroSplitAlgorithm,
|
|
39
|
+
N2NAlgorithm,
|
|
40
|
+
N2VAlgorithm,
|
|
41
|
+
PN2VAlgorithm,
|
|
42
|
+
UNetBasedAlgorithm,
|
|
43
|
+
VAEBasedAlgorithm,
|
|
44
|
+
)
|
|
45
|
+
from .architectures import LVAEConfig, UNetConfig
|
|
46
|
+
from .configuration import Configuration
|
|
47
|
+
from .configuration_factories import (
|
|
48
|
+
algorithm_factory,
|
|
49
|
+
create_care_configuration,
|
|
50
|
+
create_hdn_configuration,
|
|
51
|
+
create_microsplit_configuration,
|
|
52
|
+
create_n2n_configuration,
|
|
53
|
+
create_n2v_configuration,
|
|
54
|
+
create_pn2v_configuration,
|
|
55
|
+
)
|
|
56
|
+
from .data import DataConfig, NGDataConfig
|
|
57
|
+
from .data.inference_config import InferenceConfig
|
|
58
|
+
from .lightning.callbacks import CheckpointConfig
|
|
59
|
+
from .lightning.training_config import TrainingConfig
|
|
60
|
+
from .losses.loss_config import LVAELossConfig
|
|
61
|
+
from .ng_factories.data_factory import create_ng_data_configuration
|
|
62
|
+
from .noise_model import (
|
|
63
|
+
GaussianMixtureNMConfig,
|
|
64
|
+
MultiChannelNMConfig,
|
|
65
|
+
)
|
|
66
|
+
from .utils.configuration_io import load_configuration, save_configuration
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"""Algorithm configurations."""
|
|
2
|
+
|
|
3
|
+
__all__ = [
|
|
4
|
+
"CAREAlgorithm",
|
|
5
|
+
"HDNAlgorithm",
|
|
6
|
+
"MicroSplitAlgorithm",
|
|
7
|
+
"N2NAlgorithm",
|
|
8
|
+
"N2VAlgorithm",
|
|
9
|
+
"PN2VAlgorithm",
|
|
10
|
+
"UNetBasedAlgorithm",
|
|
11
|
+
"VAEBasedAlgorithm",
|
|
12
|
+
]
|
|
13
|
+
|
|
14
|
+
from .care_algorithm_config import CAREAlgorithm
|
|
15
|
+
from .hdn_algorithm_config import HDNAlgorithm
|
|
16
|
+
from .microsplit_algorithm_config import MicroSplitAlgorithm
|
|
17
|
+
from .n2n_algorithm_config import N2NAlgorithm
|
|
18
|
+
from .n2v_algorithm_config import N2VAlgorithm
|
|
19
|
+
from .pn2v_algorithm_config import PN2VAlgorithm
|
|
20
|
+
from .unet_algorithm_config import UNetBasedAlgorithm
|
|
21
|
+
from .vae_algorithm_config import VAEBasedAlgorithm
|
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
"""CARE algorithm configuration."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated, Literal
|
|
4
|
+
|
|
5
|
+
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
6
|
+
from pydantic import AfterValidator
|
|
7
|
+
|
|
8
|
+
from careamics.config.architectures import UNetConfig
|
|
9
|
+
from careamics.config.validators import (
|
|
10
|
+
model_without_final_activation,
|
|
11
|
+
model_without_n2v2,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from .unet_algorithm_config import UNetBasedAlgorithm
|
|
15
|
+
|
|
16
|
+
CARE = "CARE"
|
|
17
|
+
|
|
18
|
+
CARE_DESCRIPTION = (
|
|
19
|
+
"Content-aware image restoration (CARE) is a deep-learning-based "
|
|
20
|
+
"algorithm that uses a U-Net architecture to restore images. CARE "
|
|
21
|
+
"is a supervised algorithm that requires pairs of noisy and "
|
|
22
|
+
"clean images to train the network. The algorithm learns to "
|
|
23
|
+
"predict the clean image from the noisy image. CARE is "
|
|
24
|
+
"particularly useful for denoising images acquired in low-light "
|
|
25
|
+
"conditions, such as fluorescence microscopy images."
|
|
26
|
+
)
|
|
27
|
+
CARE_REF = CiteEntry(
|
|
28
|
+
text='Weigert, Martin, et al. "Content-aware image restoration: pushing the '
|
|
29
|
+
'limits of fluorescence microscopy." Nature methods 15.12 (2018): 1090-1097.',
|
|
30
|
+
doi="10.1038/s41592-018-0216-7",
|
|
31
|
+
)
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
class CAREAlgorithm(UNetBasedAlgorithm):
|
|
35
|
+
"""CARE algorithm configuration.
|
|
36
|
+
|
|
37
|
+
Attributes
|
|
38
|
+
----------
|
|
39
|
+
algorithm : "care"
|
|
40
|
+
CARE Algorithm name.
|
|
41
|
+
loss : {"mae", "mse"}
|
|
42
|
+
CARE-compatible loss function.
|
|
43
|
+
"""
|
|
44
|
+
|
|
45
|
+
algorithm: Literal["care"] = "care"
|
|
46
|
+
"""CARE Algorithm name."""
|
|
47
|
+
|
|
48
|
+
loss: Literal["mae", "mse"] = "mae"
|
|
49
|
+
"""CARE-compatible loss function."""
|
|
50
|
+
|
|
51
|
+
model: Annotated[
|
|
52
|
+
UNetConfig,
|
|
53
|
+
AfterValidator(model_without_n2v2),
|
|
54
|
+
AfterValidator(model_without_final_activation),
|
|
55
|
+
]
|
|
56
|
+
"""UNet without a final activation function and without the `n2v2` modifications."""
|
|
57
|
+
|
|
58
|
+
def get_algorithm_friendly_name(self) -> str:
|
|
59
|
+
"""
|
|
60
|
+
Get the algorithm friendly name.
|
|
61
|
+
|
|
62
|
+
Returns
|
|
63
|
+
-------
|
|
64
|
+
str
|
|
65
|
+
Friendly name of the algorithm.
|
|
66
|
+
"""
|
|
67
|
+
return CARE
|
|
68
|
+
|
|
69
|
+
def get_algorithm_keywords(self) -> list[str]:
|
|
70
|
+
"""
|
|
71
|
+
Get algorithm keywords.
|
|
72
|
+
|
|
73
|
+
Returns
|
|
74
|
+
-------
|
|
75
|
+
list[str]
|
|
76
|
+
List of keywords.
|
|
77
|
+
"""
|
|
78
|
+
return [
|
|
79
|
+
"restoration",
|
|
80
|
+
"UNet",
|
|
81
|
+
"3D" if self.model.is_3D() else "2D",
|
|
82
|
+
"CAREamics",
|
|
83
|
+
"pytorch",
|
|
84
|
+
CARE,
|
|
85
|
+
]
|
|
86
|
+
|
|
87
|
+
def get_algorithm_references(self) -> str:
|
|
88
|
+
"""
|
|
89
|
+
Get the algorithm references.
|
|
90
|
+
|
|
91
|
+
This is used to generate the README of the BioImage Model Zoo export.
|
|
92
|
+
|
|
93
|
+
Returns
|
|
94
|
+
-------
|
|
95
|
+
str
|
|
96
|
+
Algorithm references.
|
|
97
|
+
"""
|
|
98
|
+
return CARE_REF.text + " doi: " + CARE_REF.doi
|
|
99
|
+
|
|
100
|
+
def get_algorithm_citations(self) -> list[CiteEntry]:
|
|
101
|
+
"""
|
|
102
|
+
Return a list of citation entries of the current algorithm.
|
|
103
|
+
|
|
104
|
+
This is used to generate the model description for the BioImage Model Zoo.
|
|
105
|
+
|
|
106
|
+
Returns
|
|
107
|
+
-------
|
|
108
|
+
List[CiteEntry]
|
|
109
|
+
List of citation entries.
|
|
110
|
+
"""
|
|
111
|
+
return [CARE_REF]
|
|
112
|
+
|
|
113
|
+
def get_algorithm_description(self) -> str:
|
|
114
|
+
"""
|
|
115
|
+
Get the algorithm description.
|
|
116
|
+
|
|
117
|
+
Returns
|
|
118
|
+
-------
|
|
119
|
+
str
|
|
120
|
+
Algorithm description.
|
|
121
|
+
"""
|
|
122
|
+
return CARE_DESCRIPTION
|
|
@@ -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_config import VAEBasedAlgorithm
|
|
9
|
+
from careamics.config.architectures import LVAEConfig
|
|
10
|
+
from careamics.config.losses.loss_config 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: LVAEConfig # 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_config import VAEBasedAlgorithm
|
|
9
|
+
from careamics.config.architectures import LVAEConfig
|
|
10
|
+
from careamics.config.losses.loss_config 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: LVAEConfig # 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
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"""N2N Algorithm configuration."""
|
|
2
|
+
|
|
3
|
+
from typing import Annotated, Literal
|
|
4
|
+
|
|
5
|
+
from bioimageio.spec.generic.v0_3 import CiteEntry
|
|
6
|
+
from pydantic import AfterValidator
|
|
7
|
+
|
|
8
|
+
from careamics.config.architectures import UNetConfig
|
|
9
|
+
from careamics.config.validators import (
|
|
10
|
+
model_without_final_activation,
|
|
11
|
+
model_without_n2v2,
|
|
12
|
+
)
|
|
13
|
+
|
|
14
|
+
from .unet_algorithm_config import UNetBasedAlgorithm
|
|
15
|
+
|
|
16
|
+
N2N = "Noise2Noise"
|
|
17
|
+
|
|
18
|
+
N2N_DESCRIPTION = (
|
|
19
|
+
"Noise2Noise is a deep-learning-based algorithm that uses a U-Net "
|
|
20
|
+
"architecture to restore images. Noise2Noise is a self-supervised "
|
|
21
|
+
"algorithm that requires only noisy images to train the network. "
|
|
22
|
+
"The algorithm learns to predict the clean image from the noisy "
|
|
23
|
+
"image. Noise2Noise is particularly useful when clean images are "
|
|
24
|
+
"not available for training."
|
|
25
|
+
)
|
|
26
|
+
|
|
27
|
+
N2N_REF = CiteEntry(
|
|
28
|
+
text="Lehtinen, J., Munkberg, J., Hasselgren, J., Laine, S., Karras, T., "
|
|
29
|
+
'Aittala, M. and Aila, T., 2018. "Noise2Noise: Learning image restoration '
|
|
30
|
+
'without clean data". arXiv preprint arXiv:1803.04189.',
|
|
31
|
+
doi="10.48550/arXiv.1803.04189",
|
|
32
|
+
)
|
|
33
|
+
|
|
34
|
+
|
|
35
|
+
class N2NAlgorithm(UNetBasedAlgorithm):
|
|
36
|
+
"""Noise2Noise Algorithm configuration."""
|
|
37
|
+
|
|
38
|
+
algorithm: Literal["n2n"] = "n2n"
|
|
39
|
+
"""N2N Algorithm name."""
|
|
40
|
+
|
|
41
|
+
loss: Literal["mae", "mse"] = "mae"
|
|
42
|
+
"""N2N-compatible loss function."""
|
|
43
|
+
|
|
44
|
+
model: Annotated[
|
|
45
|
+
UNetConfig,
|
|
46
|
+
AfterValidator(model_without_n2v2),
|
|
47
|
+
AfterValidator(model_without_final_activation),
|
|
48
|
+
]
|
|
49
|
+
"""UNet without a final activation function and without the `n2v2` modifications."""
|
|
50
|
+
|
|
51
|
+
def get_algorithm_friendly_name(self) -> str:
|
|
52
|
+
"""
|
|
53
|
+
Get the algorithm friendly name.
|
|
54
|
+
|
|
55
|
+
Returns
|
|
56
|
+
-------
|
|
57
|
+
str
|
|
58
|
+
Friendly name of the algorithm.
|
|
59
|
+
"""
|
|
60
|
+
return N2N
|
|
61
|
+
|
|
62
|
+
def get_algorithm_keywords(self) -> list[str]:
|
|
63
|
+
"""
|
|
64
|
+
Get algorithm keywords.
|
|
65
|
+
|
|
66
|
+
Returns
|
|
67
|
+
-------
|
|
68
|
+
list[str]
|
|
69
|
+
List of keywords.
|
|
70
|
+
"""
|
|
71
|
+
return [
|
|
72
|
+
"restoration",
|
|
73
|
+
"UNet",
|
|
74
|
+
"3D" if self.model.is_3D() else "2D",
|
|
75
|
+
"CAREamics",
|
|
76
|
+
"pytorch",
|
|
77
|
+
N2N,
|
|
78
|
+
]
|
|
79
|
+
|
|
80
|
+
def get_algorithm_references(self) -> str:
|
|
81
|
+
"""
|
|
82
|
+
Get the algorithm references.
|
|
83
|
+
|
|
84
|
+
This is used to generate the README of the BioImage Model Zoo export.
|
|
85
|
+
|
|
86
|
+
Returns
|
|
87
|
+
-------
|
|
88
|
+
str
|
|
89
|
+
Algorithm references.
|
|
90
|
+
"""
|
|
91
|
+
return N2N_REF.text + " doi: " + N2N_REF.doi
|
|
92
|
+
|
|
93
|
+
def get_algorithm_citations(self) -> list[CiteEntry]:
|
|
94
|
+
"""
|
|
95
|
+
Return a list of citation entries of the current algorithm.
|
|
96
|
+
|
|
97
|
+
This is used to generate the model description for the BioImage Model Zoo.
|
|
98
|
+
|
|
99
|
+
Returns
|
|
100
|
+
-------
|
|
101
|
+
List[CiteEntry]
|
|
102
|
+
List of citation entries.
|
|
103
|
+
"""
|
|
104
|
+
return [N2N_REF]
|
|
105
|
+
|
|
106
|
+
def get_algorithm_description(self) -> str:
|
|
107
|
+
"""
|
|
108
|
+
Get the algorithm description.
|
|
109
|
+
|
|
110
|
+
Returns
|
|
111
|
+
-------
|
|
112
|
+
str
|
|
113
|
+
Algorithm description.
|
|
114
|
+
"""
|
|
115
|
+
return N2N_DESCRIPTION
|