careamics 0.1.0rc4__tar.gz → 0.1.0rc5__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.

Files changed (187) hide show
  1. careamics-0.1.0rc5/.github/pull_request_template.md +39 -0
  2. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/.pre-commit-config.yaml +7 -7
  3. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/PKG-INFO +16 -61
  4. careamics-0.1.0rc5/README.md +34 -0
  5. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/pyproject.toml +0 -1
  6. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/careamist.py +12 -11
  7. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/__init__.py +0 -1
  8. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/unet_model.py +1 -0
  9. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/callback_model.py +1 -0
  10. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/configuration_example.py +0 -2
  11. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/configuration_factory.py +112 -42
  12. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/configuration_model.py +14 -16
  13. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/data_model.py +59 -157
  14. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/inference_model.py +19 -20
  15. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/references/algorithm_descriptions.py +1 -0
  16. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/references/references.py +1 -0
  17. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_extraction_strategies.py +1 -0
  18. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/training_model.py +1 -0
  19. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/transformations/n2v_manipulate_model.py +1 -0
  20. careamics-0.1.0rc5/src/careamics/config/transformations/nd_flip_model.py +27 -0
  21. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/transformations/normalize_model.py +1 -0
  22. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/transformations/transform_model.py +1 -0
  23. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/transformations/xy_random_rotate90_model.py +6 -8
  24. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/validators/validator_utils.py +1 -0
  25. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/conftest.py +1 -0
  26. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/__init__.py +0 -1
  27. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/dataset_utils.py +1 -0
  28. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/in_memory_dataset.py +14 -45
  29. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/iterable_dataset.py +13 -68
  30. careamics-0.1.0rc5/src/careamics/dataset/patching/__init__.py +1 -0
  31. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/patching/patching.py +1 -0
  32. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/patching/sequential_patching.py +6 -6
  33. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/patching/tiled_patching.py +10 -6
  34. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/lightning_datamodule.py +20 -24
  35. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/lightning_module.py +1 -1
  36. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/lightning_prediction_datamodule.py +15 -10
  37. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/losses/__init__.py +0 -1
  38. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/losses/loss_factory.py +1 -0
  39. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/__init__.py +0 -1
  40. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/bioimage/_readme_factory.py +2 -1
  41. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/bioimage/bioimage_utils.py +1 -0
  42. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/bioimage/model_description.py +1 -0
  43. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/bmz_io.py +2 -1
  44. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/models/layers.py +1 -0
  45. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/models/model_factory.py +1 -0
  46. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/models/unet.py +91 -17
  47. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/prediction/stitch_prediction.py +1 -0
  48. careamics-0.1.0rc5/src/careamics/transforms/__init__.py +20 -0
  49. careamics-0.1.0rc5/src/careamics/transforms/compose.py +98 -0
  50. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/transforms/n2v_manipulate.py +18 -23
  51. careamics-0.1.0rc5/src/careamics/transforms/nd_flip.py +67 -0
  52. careamics-0.1.0rc5/src/careamics/transforms/normalize.py +120 -0
  53. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/transforms/pixel_manipulation.py +2 -2
  54. careamics-0.1.0rc5/src/careamics/transforms/transform.py +33 -0
  55. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/transforms/tta.py +2 -2
  56. careamics-0.1.0rc5/src/careamics/transforms/xy_random_rotate90.py +68 -0
  57. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/__init__.py +0 -1
  58. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/context.py +1 -0
  59. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/logging.py +1 -0
  60. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/metrics.py +1 -0
  61. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/torch_utils.py +1 -0
  62. careamics-0.1.0rc5/tests/config/test_configuration_factory.py +596 -0
  63. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_data_model.py +0 -47
  64. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_inference_model.py +0 -12
  65. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/patching/test_sequential_patching.py +17 -0
  66. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/models/test_unet.py +40 -0
  67. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/test_careamist.py +5 -1
  68. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/test_lightning_module.py +40 -2
  69. careamics-0.1.0rc5/tests/transforms/test_compose.py +88 -0
  70. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/transforms/test_manipulate_n2v.py +5 -9
  71. careamics-0.1.0rc5/tests/transforms/test_nd_flip.py +60 -0
  72. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/transforms/test_normalize.py +3 -3
  73. careamics-0.1.0rc5/tests/transforms/test_xy_random_rotate90.py +73 -0
  74. careamics-0.1.0rc4/.github/PR_TEMPLATE/pull_request.md +0 -22
  75. careamics-0.1.0rc4/README.md +0 -78
  76. careamics-0.1.0rc4/src/careamics/config/transformations/nd_flip_model.py +0 -32
  77. careamics-0.1.0rc4/src/careamics/dataset/patching/__init__.py +0 -8
  78. careamics-0.1.0rc4/src/careamics/dataset/patching/patch_transform.py +0 -44
  79. careamics-0.1.0rc4/src/careamics/transforms/__init__.py +0 -41
  80. careamics-0.1.0rc4/src/careamics/transforms/nd_flip.py +0 -93
  81. careamics-0.1.0rc4/src/careamics/transforms/normalize.py +0 -109
  82. careamics-0.1.0rc4/src/careamics/transforms/xy_random_rotate90.py +0 -95
  83. careamics-0.1.0rc4/tests/config/test_configuration_factory.py +0 -222
  84. careamics-0.1.0rc4/tests/transforms/test_nd_flip.py +0 -129
  85. careamics-0.1.0rc4/tests/transforms/test_xy_random_rotate90.py +0 -117
  86. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/.github/ISSUE_TEMPLATE/bug_report.md +0 -0
  87. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/.github/ISSUE_TEMPLATE/feature_request.md +0 -0
  88. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/.github/workflows/ci.yml +0 -0
  89. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/.gitignore +0 -0
  90. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/LICENSE +0 -0
  91. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2n/example_SEM_careamist.ipynb +0 -0
  92. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2n/n2n_2D_SEM.yml +0 -0
  93. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2v/example_BSD68_careamist.ipynb +0 -0
  94. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2v/example_BSD68_lightning.ipynb +0 -0
  95. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2v/example_SEM_lightning.ipynb +0 -0
  96. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/n2v/n2v_2D_BSD.yml +0 -0
  97. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/2D/pn2v/pN2V_Convallaria.yml +0 -0
  98. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/3D/example_flywing_3D.ipynb +0 -0
  99. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/examples/3D/n2v_flywing_3D.yml +0 -0
  100. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/__init__.py +0 -0
  101. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/callbacks/__init__.py +0 -0
  102. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/callbacks/hyperparameters_callback.py +0 -0
  103. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/callbacks/progress_bar_callback.py +0 -0
  104. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/algorithm_model.py +0 -0
  105. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/__init__.py +0 -0
  106. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/architecture_model.py +0 -0
  107. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/custom_model.py +0 -0
  108. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/register_model.py +0 -0
  109. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/architectures/vae_model.py +0 -0
  110. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/noise_models.py +0 -0
  111. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/optimizer_models.py +0 -0
  112. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/references/__init__.py +0 -0
  113. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/__init__.py +0 -0
  114. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_activations.py +0 -0
  115. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_algorithms.py +0 -0
  116. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_architectures.py +0 -0
  117. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_data.py +0 -0
  118. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_loggers.py +0 -0
  119. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_losses.py +0 -0
  120. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_optimizers.py +0 -0
  121. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_pixel_manipulations.py +0 -0
  122. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_struct_axis.py +0 -0
  123. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/support/supported_transforms.py +0 -0
  124. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/tile_information.py +0 -0
  125. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/transformations/__init__.py +0 -0
  126. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/config/validators/__init__.py +0 -0
  127. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/__init__.py +0 -0
  128. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/file_utils.py +0 -0
  129. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/read_tiff.py +0 -0
  130. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/read_utils.py +0 -0
  131. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/dataset_utils/read_zarr.py +0 -0
  132. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/patching/random_patching.py +0 -0
  133. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/patching/validate_patch_dimension.py +0 -0
  134. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/dataset/zarr_dataset.py +0 -0
  135. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/lightning_prediction_loop.py +0 -0
  136. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/losses/losses.py +0 -0
  137. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/losses/noise_model_factory.py +0 -0
  138. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/losses/noise_models.py +0 -0
  139. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/bioimage/__init__.py +0 -0
  140. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/model_io/model_io_utils.py +0 -0
  141. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/models/__init__.py +0 -0
  142. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/models/activation.py +0 -0
  143. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/prediction/__init__.py +0 -0
  144. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/py.typed +0 -0
  145. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/transforms/struct_mask_parameters.py +0 -0
  146. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/base_enum.py +0 -0
  147. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/path_utils.py +0 -0
  148. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/ram.py +0 -0
  149. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/receptive_field.py +0 -0
  150. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/src/careamics/utils/running_stats.py +0 -0
  151. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/architectures/test_architecture_model.py +0 -0
  152. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/architectures/test_custom_model.py +0 -0
  153. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/architectures/test_register_model.py +0 -0
  154. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/architectures/test_unet_model.py +0 -0
  155. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/support/test_supported_data.py +0 -0
  156. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/support/test_supported_optimizers.py +0 -0
  157. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_algorithm_model.py +0 -0
  158. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_configuration_model.py +0 -0
  159. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_full_config_example.py +0 -0
  160. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_optimizers_model.py +0 -0
  161. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_tile_information.py +0 -0
  162. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/test_training_model.py +0 -0
  163. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/transformations/test_n2v_manipulate_model.py +0 -0
  164. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/transformations/test_normalize_model.py +0 -0
  165. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/config/validators/test_validator_utils.py +0 -0
  166. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/conftest.py +0 -0
  167. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/dataset_utils/test_list_files.py +0 -0
  168. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/dataset_utils/test_read_tiff.py +0 -0
  169. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/patching/test_patching_utils.py +0 -0
  170. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/patching/test_random_patching.py +0 -0
  171. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/patching/test_tiled_patching.py +0 -0
  172. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/test_in_memory_dataset.py +0 -0
  173. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/dataset/test_iterable_dataset.py +0 -0
  174. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/model_io/test_bmz_io.py +0 -0
  175. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/models/test_model_factory.py +0 -0
  176. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/prediction/test_stitch_prediction.py +0 -0
  177. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/test_conftest.py +0 -0
  178. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/test_lightning_datamodule.py +0 -0
  179. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/test_lightning_prediction_datamodule.py +0 -0
  180. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/transforms/test_pixel_manipulation.py +0 -0
  181. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/transforms/test_supported_transforms.py +0 -0
  182. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_base_enum.py +0 -0
  183. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_context.py +0 -0
  184. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_logging.py +0 -0
  185. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_metrics.py +0 -0
  186. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_torch_utils.py +0 -0
  187. {careamics-0.1.0rc4 → careamics-0.1.0rc5}/tests/utils/test_wandb.py +0 -0
@@ -0,0 +1,39 @@
1
+ ### Description
2
+
3
+ Please provide a brief description of the changes in this PR. Include any relevant context or background information.
4
+
5
+ - **What**: Clearly and concisely describe what changes you have made.
6
+ - **Why**: Explain the reasoning behind these changes. What problem are you solving? Why is this change necessary?
7
+ - **How**: Describe how you implemented these changes. Provide an overview of the approach and any important implementation details.
8
+
9
+ ### Changes Made
10
+
11
+ - **Added**: List new features or files added.
12
+ - **Modified**: Describe existing features or files modified.
13
+ - **Removed**: Detail features or files that were removed.
14
+
15
+ ### Related Issues
16
+
17
+ Link to any related issues or discussions. Use keywords like "Fixes", "Resolves", or "Closes" to link to issues automatically.
18
+
19
+ - Fixes #
20
+ - Resolves #
21
+ - Closes #
22
+
23
+ ### Breaking changes
24
+
25
+ Describe any breaking change.
26
+
27
+
28
+ ### Additional Notes and Examples
29
+
30
+ Include any additional notes or context that reviewers should be aware of, including snippets of code illustrating your new feature.
31
+
32
+ ---
33
+
34
+ **Please ensure your PR meets the following requirements:**
35
+
36
+ - [ ] Code builds and passes tests locally, including doctests
37
+ - [ ] New tests have been added (for bug fixes/features)
38
+ - [ ] Pre-commit passes
39
+ - [ ] PR to the documentation exists (for bug fixes / features)
@@ -9,23 +9,23 @@ ci:
9
9
 
10
10
  repos:
11
11
  - repo: https://github.com/abravalheri/validate-pyproject
12
- rev: v0.14
12
+ rev: v0.16
13
13
  hooks:
14
14
  - id: validate-pyproject
15
15
 
16
16
  - repo: https://github.com/astral-sh/ruff-pre-commit
17
- rev: v0.0.292
17
+ rev: v0.4.3
18
18
  hooks:
19
19
  - id: ruff
20
20
  args: [--fix, --target-version, py38]
21
21
 
22
22
  - repo: https://github.com/psf/black
23
- rev: 23.9.1
23
+ rev: 24.4.2
24
24
  hooks:
25
25
  - id: black
26
26
 
27
27
  - repo: https://github.com/pre-commit/mirrors-mypy
28
- rev: v1.5.1
28
+ rev: v1.10.0
29
29
  hooks:
30
30
  - id: mypy
31
31
  files: "^src/"
@@ -36,13 +36,13 @@ repos:
36
36
 
37
37
  # check docstrings
38
38
  - repo: https://github.com/numpy/numpydoc
39
- rev: v1.6.0
39
+ rev: v1.7.0
40
40
  hooks:
41
41
  - id: numpydoc-validation
42
42
 
43
43
  # jupyter linting and formatting
44
44
  - repo: https://github.com/nbQA-dev/nbQA
45
- rev: 1.7.0
45
+ rev: 1.8.5
46
46
  hooks:
47
47
  - id: nbqa-ruff
48
48
  args: [--fix]
@@ -51,6 +51,6 @@ repos:
51
51
 
52
52
  # strip out jupyter notebooks
53
53
  - repo: https://github.com/kynan/nbstripout
54
- rev: 0.6.1
54
+ rev: 0.7.1
55
55
  hooks:
56
56
  - id: nbstripout
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.3
2
2
  Name: careamics
3
- Version: 0.1.0rc4
3
+ Version: 0.1.0rc5
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
@@ -16,7 +16,6 @@ Classifier: Programming Language :: Python :: 3.10
16
16
  Classifier: Programming Language :: Python :: 3.11
17
17
  Classifier: Typing :: Typed
18
18
  Requires-Python: >=3.8
19
- Requires-Dist: albumentations
20
19
  Requires-Dist: bioimageio-core>=0.6.0
21
20
  Requires-Dist: psutil
22
21
  Requires-Dist: pydantic>=2.5
@@ -48,7 +47,7 @@ Description-Content-Type: text/markdown
48
47
  </a>
49
48
  </p>
50
49
 
51
- # CAREamics Restoration
50
+ # CAREamics
52
51
 
53
52
  [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/blob/main/LICENSE)
54
53
  [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
@@ -56,67 +55,23 @@ Description-Content-Type: text/markdown
56
55
  [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
57
56
  [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](https://codecov.io/gh/CAREamics/careamics)
58
57
 
59
- ## Installation
60
58
 
61
- ``` bash
62
- pip install careamics
63
- ```
64
- For more details on the options please follow the installation [guide](https://careamics.github.io/careamics/).
59
+ CAREamics is a PyTorch library aimed at simplifying the use of Noise2Void and its many
60
+ variants and cousins (CARE, Noise2Noise, N2V2, P(P)N2V, HDN, muSplit etc.).
65
61
 
66
- ## Usage
62
+ ## Why CAREamics?
67
63
 
68
- CAREamics uses the Engine object to construct the pipeline for both training and prediction. First we import the Engine.
69
- ```python
70
- from careamics_restoration.engine import Engine
71
- ```
72
- The Engine could be initialized in 2 ways:
73
- 1. Using the [yaml config](examples/n2v_2D_reference.yml) file
64
+ Noise2Void is a widely used denoising algorithm, and is readily available from the `n2v`
65
+ python package. However, n2v is based on TensorFlow and Keras and we found it
66
+ increasingly hard to maintain. In addition, more recent methods (PPN2V, DivNoising,
67
+ HDN) are all implemented in PyTorch, but are lacking the extra features that would make
68
+ them usable by the community.
74
69
 
75
- Specify the mandatory parameters in the config file
76
- ```yaml
77
- experiment_name: Name of the experiment
78
- working_directory: Path to the working directory, where all the outputs will be stored
70
+ The aim of CAREamics is to provide a PyTorch library reuniting all the latest methods
71
+ in one package, while providing a simple and consistent API. The library relies on
72
+ PyTorch Lightning as a back-end. In addition, we will provide extensive documentation and
73
+ tutorials on how to best apply these methods in a scientific context.
79
74
 
80
- algorithm:
81
- loss: type of loss function, e.g. n2v for Noise2Void
82
- model: model architecture, e.g. UNet
83
- is_3D: True if 3D data, False if 2D data
84
-
85
- training:
86
- num_epochs: Number of training epochs
87
- patch_size: Size of the patches, List of 2 or 3 elements
88
- batch_size: Batch size for training
89
-
90
- extraction_strategy: Controls how the patches are extracted from the data
91
-
92
- data:
93
- data_format: File extension, e.g. tif
94
- axes: Defines the shape of the input data
95
- ```
96
- Full description of the configuration parameters is in the [documentation](https://careamics.github.io/careamics/).
97
-
98
-
99
- ```python
100
- engine = Engine(config_path="config.yml")
101
-
102
- ```
103
- 2. Using the path to the pretrained model
104
- It's also possible to initialize the Engine using the model checkpoint, saved during the training or downloaded from the [BioImage Model Zoo](https://bioimage.io/#/).
105
- Checkpoint must contain model_state_dict.
106
- Read more abount saving and loading models in the [documentation](https://careamics.github.io/careamics/).
107
-
108
- Once Engine is initialized, we can start training, providing the relative paths to train and validation data
109
-
110
- ```python
111
- engine.train(train_path=train_path, val_path=val_path)
112
- ```
113
- Training will run for the specified number of epochs and save the model checkpoint in the working directory.
114
-
115
- Prediction could be done directly after the training or by loading the pretrained model checkpoint.
116
-
117
- ```python
118
- predictions = engine.predict(pred_path=predict_path)
119
- ```
120
-
121
- For more examples please take a look at the [notebooks](examples).
75
+ ## Installation and use
122
76
 
77
+ Check out the [documentation](https://careamics.github.io/) for installation instructions and guides!
@@ -0,0 +1,34 @@
1
+ <p align="center">
2
+ <a href="https://careamics.github.io/">
3
+ <img src="https://raw.githubusercontent.com/CAREamics/.github/main/profile/images/banner_careamics.png">
4
+ </a>
5
+ </p>
6
+
7
+ # CAREamics
8
+
9
+ [![License](https://img.shields.io/pypi/l/careamics.svg?color=green)](https://github.com/CAREamics/careamics/blob/main/LICENSE)
10
+ [![PyPI](https://img.shields.io/pypi/v/careamics.svg?color=green)](https://pypi.org/project/careamics)
11
+ [![Python Version](https://img.shields.io/pypi/pyversions/careamics.svg?color=green)](https://python.org)
12
+ [![CI](https://github.com/CAREamics/careamics/actions/workflows/ci.yml/badge.svg)](https://github.com/CAREamics/careamics/actions/workflows/ci.yml)
13
+ [![codecov](https://codecov.io/gh/CAREamics/careamics/branch/main/graph/badge.svg)](https://codecov.io/gh/CAREamics/careamics)
14
+
15
+
16
+ CAREamics is a PyTorch library aimed at simplifying the use of Noise2Void and its many
17
+ variants and cousins (CARE, Noise2Noise, N2V2, P(P)N2V, HDN, muSplit etc.).
18
+
19
+ ## Why CAREamics?
20
+
21
+ Noise2Void is a widely used denoising algorithm, and is readily available from the `n2v`
22
+ python package. However, n2v is based on TensorFlow and Keras and we found it
23
+ increasingly hard to maintain. In addition, more recent methods (PPN2V, DivNoising,
24
+ HDN) are all implemented in PyTorch, but are lacking the extra features that would make
25
+ them usable by the community.
26
+
27
+ The aim of CAREamics is to provide a PyTorch library reuniting all the latest methods
28
+ in one package, while providing a simple and consistent API. The library relies on
29
+ PyTorch Lightning as a back-end. In addition, we will provide extensive documentation and
30
+ tutorials on how to best apply these methods in a scientific context.
31
+
32
+ ## Installation and use
33
+
34
+ Check out the [documentation](https://careamics.github.io/) for installation instructions and guides!
@@ -38,7 +38,6 @@ classifiers = [
38
38
  ]
39
39
  dependencies = [
40
40
  'torch>=2.0.0',
41
- 'albumentations',
42
41
  'bioimageio.core>=0.6.0',
43
42
  'tifffile',
44
43
  'psutil',
@@ -73,8 +73,7 @@ class CAREamist:
73
73
  source: Union[Path, str],
74
74
  work_dir: Optional[str] = None,
75
75
  experiment_name: str = "CAREamics",
76
- ) -> None:
77
- ...
76
+ ) -> None: ...
78
77
 
79
78
  @overload
80
79
  def __init__( # numpydoc ignore=GL08
@@ -82,8 +81,7 @@ class CAREamist:
82
81
  source: Configuration,
83
82
  work_dir: Optional[str] = None,
84
83
  experiment_name: str = "CAREamics",
85
- ) -> None:
86
- ...
84
+ ) -> None: ...
87
85
 
88
86
  def __init__(
89
87
  self,
@@ -478,8 +476,7 @@ class CAREamist:
478
476
  source: CAREamicsPredictData,
479
477
  *,
480
478
  checkpoint: Optional[Literal["best", "last"]] = None,
481
- ) -> Union[list, np.ndarray]:
482
- ...
479
+ ) -> Union[list, np.ndarray]: ...
483
480
 
484
481
  @overload
485
482
  def predict( # numpydoc ignore=GL08
@@ -497,8 +494,7 @@ class CAREamist:
497
494
  read_source_func: Optional[Callable] = None,
498
495
  extension_filter: str = "",
499
496
  checkpoint: Optional[Literal["best", "last"]] = None,
500
- ) -> Union[list, np.ndarray]:
501
- ...
497
+ ) -> Union[list, np.ndarray]: ...
502
498
 
503
499
  @overload
504
500
  def predict( # numpydoc ignore=GL08
@@ -514,8 +510,7 @@ class CAREamist:
514
510
  tta_transforms: bool = True,
515
511
  dataloader_params: Optional[Dict] = None,
516
512
  checkpoint: Optional[Literal["best", "last"]] = None,
517
- ) -> Union[list, np.ndarray]:
518
- ...
513
+ ) -> Union[list, np.ndarray]: ...
519
514
 
520
515
  def predict(
521
516
  self,
@@ -548,6 +543,12 @@ class CAREamist:
548
543
  Test-time augmentation (TTA) can be switched off using the `tta_transforms`
549
544
  parameter.
550
545
 
546
+ Note that if you are using a UNet model and tiling, the tile size must be
547
+ divisible in every dimension by 2**d, where d is the depth of the model. This
548
+ avoids artefacts arising from the broken shift invariance induced by the
549
+ pooling layers of the UNet. If your image has less dimensions, as it may
550
+ happen in the Z dimension, consider padding your image.
551
+
551
552
  Parameters
552
553
  ----------
553
554
  source : Union[CAREamicsClay, Path, str, np.ndarray]
@@ -602,7 +603,7 @@ class CAREamist:
602
603
  )
603
604
  # create predict config, reuse training config if parameters missing
604
605
  prediction_config = create_inference_configuration(
605
- training_configuration=self.cfg,
606
+ configuration=self.cfg,
606
607
  tile_size=tile_size,
607
608
  tile_overlap=tile_overlap,
608
609
  data_type=data_type,
@@ -1,6 +1,5 @@
1
1
  """Configuration module."""
2
2
 
3
-
4
3
  __all__ = [
5
4
  "AlgorithmConfig",
6
5
  "DataConfig",
@@ -39,6 +39,7 @@ class UNetModel(ArchitectureModel):
39
39
  "None", "Sigmoid", "Softmax", "Tanh", "ReLU", "LeakyReLU"
40
40
  ] = Field(default="None", validate_default=True)
41
41
  n2v2: bool = Field(default=False, validate_default=True)
42
+ independent_channels: bool = Field(default=True, validate_default=True)
42
43
 
43
44
  @field_validator("num_channels_init")
44
45
  @classmethod
@@ -1,4 +1,5 @@
1
1
  """Checkpoint saving configuration."""
2
+
2
3
  from __future__ import annotations
3
4
 
4
5
  from datetime import timedelta
@@ -57,11 +57,9 @@ def full_configuration_example() -> Configuration:
57
57
  },
58
58
  {
59
59
  "name": SupportedTransform.NDFLIP.value,
60
- "is_3D": False,
61
60
  },
62
61
  {
63
62
  "name": SupportedTransform.XY_RANDOM_ROTATE90.value,
64
- "is_3D": False,
65
63
  },
66
64
  {
67
65
  "name": SupportedTransform.N2V_MANIPULATE.value,