ngio 0.1.0b3__tar.gz → 0.4.6__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.
Files changed (315) hide show
  1. ngio-0.4.6/.github/pull_request_template.md +3 -0
  2. ngio-0.4.6/.github/workflows/build_docs.yml +66 -0
  3. {ngio-0.1.0b3 → ngio-0.4.6}/.github/workflows/ci.yml +17 -35
  4. {ngio-0.1.0b3 → ngio-0.4.6}/.gitignore +13 -2
  5. {ngio-0.1.0b3 → ngio-0.4.6}/.pre-commit-config.yaml +4 -4
  6. ngio-0.4.6/CHANGELOG.md +98 -0
  7. ngio-0.4.6/PKG-INFO +142 -0
  8. ngio-0.4.6/README.md +75 -0
  9. {ngio-0.1.0b3 → ngio-0.4.6}/_typos.toml +2 -1
  10. ngio-0.4.6/docs/api/hcs.md +17 -0
  11. ngio-0.4.6/docs/api/images.md +17 -0
  12. ngio-0.4.6/docs/api/iterators.md +17 -0
  13. ngio-0.4.6/docs/api/ngio/common.md +3 -0
  14. ngio-0.4.6/docs/api/ngio/hcs.md +3 -0
  15. ngio-0.4.6/docs/api/ngio/images.md +3 -0
  16. ngio-0.4.6/docs/api/ngio/io_pipes.md +3 -0
  17. ngio-0.4.6/docs/api/ngio/iterators.md +3 -0
  18. ngio-0.4.6/docs/api/ngio/ngio.md +3 -0
  19. ngio-0.4.6/docs/api/ngio/tables.md +3 -0
  20. ngio-0.4.6/docs/api/ngio/transforms.md +3 -0
  21. ngio-0.4.6/docs/api/ngio/utils.md +3 -0
  22. ngio-0.4.6/docs/api/ome_zarr_container.md +14 -0
  23. ngio-0.4.6/docs/api/tables.md +1 -0
  24. ngio-0.4.6/docs/changelog.md +5 -0
  25. ngio-0.4.6/docs/code_of_conduct.md +4 -0
  26. ngio-0.4.6/docs/contributing.md +4 -0
  27. ngio-0.4.6/docs/getting_started/0_quickstart.md +99 -0
  28. ngio-0.4.6/docs/getting_started/1_ome_zarr_containers.md +181 -0
  29. ngio-0.4.6/docs/getting_started/2_images.md +213 -0
  30. ngio-0.4.6/docs/getting_started/3_tables.md +219 -0
  31. ngio-0.4.6/docs/getting_started/4_masked_images.md +148 -0
  32. ngio-0.4.6/docs/getting_started/5_hcs.md +166 -0
  33. ngio-0.4.6/docs/getting_started/6_iterators.md +14 -0
  34. ngio-0.4.6/docs/index.md +67 -0
  35. ngio-0.4.6/docs/table_specs/backend.md +113 -0
  36. ngio-0.4.6/docs/table_specs/overview.md +92 -0
  37. ngio-0.4.6/docs/table_specs/table_types/condition_table.md +28 -0
  38. ngio-0.4.6/docs/table_specs/table_types/custom_table.md +6 -0
  39. ngio-0.4.6/docs/table_specs/table_types/feature_table.md +54 -0
  40. ngio-0.4.6/docs/table_specs/table_types/generic_table.md +23 -0
  41. ngio-0.4.6/docs/table_specs/table_types/masking_roi_table.md +37 -0
  42. ngio-0.4.6/docs/table_specs/table_types/roi_table.md +40 -0
  43. ngio-0.4.6/docs/tutorials/create_ome_zarr.ipynb +101 -0
  44. ngio-0.4.6/docs/tutorials/feature_extraction.ipynb +168 -0
  45. ngio-0.4.6/docs/tutorials/hcs_exploration.ipynb +128 -0
  46. ngio-0.4.6/docs/tutorials/image_processing.ipynb +267 -0
  47. ngio-0.4.6/docs/tutorials/image_segmentation.ipynb +273 -0
  48. ngio-0.4.6/mkdocs.yml +155 -0
  49. {ngio-0.1.0b3 → ngio-0.4.6}/pyproject.toml +90 -58
  50. ngio-0.4.6/src/ngio/__init__.py +66 -0
  51. ngio-0.4.6/src/ngio/common/__init__.py +23 -0
  52. ngio-0.4.6/src/ngio/common/_dimensions.py +335 -0
  53. ngio-0.4.6/src/ngio/common/_masking_roi.py +186 -0
  54. ngio-0.4.6/src/ngio/common/_pyramid.py +260 -0
  55. ngio-0.4.6/src/ngio/common/_roi.py +387 -0
  56. ngio-0.4.6/src/ngio/common/_synt_images_utils.py +101 -0
  57. ngio-0.4.6/src/ngio/common/_zoom.py +188 -0
  58. ngio-0.4.6/src/ngio/experimental/__init__.py +5 -0
  59. ngio-0.4.6/src/ngio/experimental/iterators/__init__.py +15 -0
  60. ngio-0.4.6/src/ngio/experimental/iterators/_abstract_iterator.py +390 -0
  61. ngio-0.4.6/src/ngio/experimental/iterators/_feature.py +189 -0
  62. ngio-0.4.6/src/ngio/experimental/iterators/_image_processing.py +130 -0
  63. ngio-0.4.6/src/ngio/experimental/iterators/_mappers.py +48 -0
  64. ngio-0.4.6/src/ngio/experimental/iterators/_rois_utils.py +127 -0
  65. ngio-0.4.6/src/ngio/experimental/iterators/_segmentation.py +235 -0
  66. ngio-0.4.6/src/ngio/hcs/__init__.py +19 -0
  67. ngio-0.4.6/src/ngio/hcs/_plate.py +1310 -0
  68. ngio-0.4.6/src/ngio/images/__init__.py +44 -0
  69. ngio-0.4.6/src/ngio/images/_abstract_image.py +587 -0
  70. ngio-0.4.6/src/ngio/images/_create.py +276 -0
  71. ngio-0.4.6/src/ngio/images/_create_synt_container.py +138 -0
  72. ngio-0.4.6/src/ngio/images/_image.py +921 -0
  73. ngio-0.4.6/src/ngio/images/_label.py +342 -0
  74. ngio-0.4.6/src/ngio/images/_masked_image.py +531 -0
  75. ngio-0.4.6/src/ngio/images/_ome_zarr_container.py +1021 -0
  76. ngio-0.4.6/src/ngio/images/_table_ops.py +471 -0
  77. ngio-0.4.6/src/ngio/io_pipes/__init__.py +75 -0
  78. ngio-0.4.6/src/ngio/io_pipes/_io_pipes.py +361 -0
  79. ngio-0.4.6/src/ngio/io_pipes/_io_pipes_masked.py +488 -0
  80. ngio-0.4.6/src/ngio/io_pipes/_io_pipes_roi.py +146 -0
  81. ngio-0.4.6/src/ngio/io_pipes/_io_pipes_types.py +56 -0
  82. ngio-0.4.6/src/ngio/io_pipes/_match_shape.py +376 -0
  83. ngio-0.4.6/src/ngio/io_pipes/_ops_axes.py +344 -0
  84. ngio-0.4.6/src/ngio/io_pipes/_ops_slices.py +411 -0
  85. ngio-0.4.6/src/ngio/io_pipes/_ops_slices_utils.py +196 -0
  86. ngio-0.4.6/src/ngio/io_pipes/_ops_transforms.py +104 -0
  87. ngio-0.4.6/src/ngio/io_pipes/_zoom_transform.py +180 -0
  88. ngio-0.4.6/src/ngio/ome_zarr_meta/__init__.py +54 -0
  89. ngio-0.4.6/src/ngio/ome_zarr_meta/_meta_handlers.py +799 -0
  90. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/__init__.py +75 -0
  91. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_axes.py +514 -0
  92. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_channels.py +462 -0
  93. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_dataset.py +98 -0
  94. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_ngio_hcs.py +546 -0
  95. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_ngio_image.py +474 -0
  96. ngio-0.4.6/src/ngio/ome_zarr_meta/ngio_specs/_pixel_size.py +122 -0
  97. ngio-0.4.6/src/ngio/ome_zarr_meta/v04/__init__.py +23 -0
  98. ngio-0.4.6/src/ngio/ome_zarr_meta/v04/_custom_models.py +18 -0
  99. ngio-0.4.6/src/ngio/ome_zarr_meta/v04/_v04_spec_utils.py +487 -0
  100. ngio-0.4.6/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/mask.png +0 -0
  101. ngio-0.4.6/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/nuclei.png +0 -0
  102. ngio-0.4.6/src/ngio/resources/20200812-CardiomyocyteDifferentiation14-Cycle1_B03/raw.jpg +0 -0
  103. ngio-0.4.6/src/ngio/resources/__init__.py +55 -0
  104. ngio-0.4.6/src/ngio/resources/resource_model.py +36 -0
  105. ngio-0.4.6/src/ngio/tables/__init__.py +43 -0
  106. ngio-0.4.6/src/ngio/tables/_abstract_table.py +270 -0
  107. ngio-0.4.6/src/ngio/tables/_tables_container.py +423 -0
  108. ngio-0.4.6/src/ngio/tables/backends/__init__.py +57 -0
  109. ngio-0.4.6/src/ngio/tables/backends/_abstract_backend.py +233 -0
  110. ngio-0.4.6/src/ngio/tables/backends/_anndata.py +86 -0
  111. ngio-0.4.6/src/ngio/tables/backends/_anndata_utils.py +92 -0
  112. ngio-0.4.6/src/ngio/tables/backends/_csv.py +35 -0
  113. ngio-0.4.6/src/ngio/tables/backends/_json.py +95 -0
  114. ngio-0.4.6/src/ngio/tables/backends/_non_zarr_backends.py +196 -0
  115. ngio-0.4.6/src/ngio/tables/backends/_parquet.py +47 -0
  116. ngio-0.4.6/src/ngio/tables/backends/_table_backends.py +226 -0
  117. ngio-0.4.6/src/ngio/tables/backends/_utils.py +608 -0
  118. ngio-0.4.6/src/ngio/tables/v1/__init__.py +23 -0
  119. ngio-0.4.6/src/ngio/tables/v1/_condition_table.py +71 -0
  120. ngio-0.4.6/src/ngio/tables/v1/_feature_table.py +125 -0
  121. ngio-0.4.6/src/ngio/tables/v1/_generic_table.py +49 -0
  122. ngio-0.4.6/src/ngio/tables/v1/_roi_table.py +558 -0
  123. ngio-0.4.6/src/ngio/transforms/__init__.py +5 -0
  124. ngio-0.4.6/src/ngio/transforms/_zoom.py +19 -0
  125. ngio-0.4.6/src/ngio/utils/__init__.py +49 -0
  126. ngio-0.4.6/src/ngio/utils/_datasets.py +159 -0
  127. ngio-0.4.6/src/ngio/utils/_errors.py +37 -0
  128. ngio-0.4.6/src/ngio/utils/_fractal_fsspec_store.py +42 -0
  129. ngio-0.4.6/src/ngio/utils/_logger.py +50 -0
  130. ngio-0.4.6/src/ngio/utils/_zarr_utils.py +415 -0
  131. ngio-0.4.6/tests/conftest.py +40 -0
  132. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/.zattrs +86 -0
  133. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/.zgroup +3 -0
  134. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/0/.zarray +27 -0
  135. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/1/.zarray +27 -0
  136. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/.zattrs +5 -0
  137. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/.zgroup +3 -0
  138. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zattrs +59 -0
  139. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/label/.zgroup +3 -0
  140. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/label/0/.zarray +25 -0
  141. ngio-0.4.6/tests/data/v04/images/test_image_c1yx.zarr/labels/label/1/.zarray +25 -0
  142. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/.zattrs +79 -0
  143. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/.zgroup +3 -0
  144. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/0/.zarray +25 -0
  145. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/1/.zarray +25 -0
  146. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/.zattrs +5 -0
  147. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/.zgroup +3 -0
  148. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zattrs +52 -0
  149. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/label/.zgroup +3 -0
  150. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/label/0/.zarray +23 -0
  151. ngio-0.4.6/tests/data/v04/images/test_image_cyx.zarr/labels/label/1/.zarray +23 -0
  152. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/.zattrs +86 -0
  153. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/.zgroup +3 -0
  154. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/0/.zarray +27 -0
  155. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/1/.zarray +27 -0
  156. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/.zattrs +5 -0
  157. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/.zgroup +3 -0
  158. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zattrs +59 -0
  159. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/label/.zgroup +3 -0
  160. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/label/0/.zarray +25 -0
  161. ngio-0.4.6/tests/data/v04/images/test_image_czyx.zarr/labels/label/1/.zarray +25 -0
  162. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/.zattrs +86 -0
  163. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/.zgroup +3 -0
  164. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/0/.zarray +27 -0
  165. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/1/.zarray +27 -0
  166. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/.zattrs +5 -0
  167. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/.zgroup +3 -0
  168. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zattrs +59 -0
  169. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/label/.zgroup +3 -0
  170. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/label/0/.zarray +25 -0
  171. ngio-0.4.6/tests/data/v04/images/test_image_tcyx.zarr/labels/label/1/.zarray +25 -0
  172. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/.zattrs +93 -0
  173. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/.zgroup +3 -0
  174. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/0/.zarray +29 -0
  175. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/1/.zarray +29 -0
  176. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/.zattrs +5 -0
  177. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/.zgroup +3 -0
  178. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zattrs +66 -0
  179. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/label/.zgroup +3 -0
  180. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/label/0/.zarray +27 -0
  181. ngio-0.4.6/tests/data/v04/images/test_image_tczyx.zarr/labels/label/1/.zarray +27 -0
  182. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/.zattrs +68 -0
  183. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/.zgroup +3 -0
  184. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/0/.zarray +25 -0
  185. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/1/.zarray +25 -0
  186. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/.zattrs +5 -0
  187. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/.zgroup +3 -0
  188. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zattrs +59 -0
  189. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/label/.zgroup +3 -0
  190. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/label/0/.zarray +25 -0
  191. ngio-0.4.6/tests/data/v04/images/test_image_tyx.zarr/labels/label/1/.zarray +25 -0
  192. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/.zattrs +75 -0
  193. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/.zgroup +3 -0
  194. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/0/.zarray +27 -0
  195. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/1/.zarray +27 -0
  196. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/.zattrs +5 -0
  197. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/.zgroup +3 -0
  198. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zattrs +66 -0
  199. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/label/.zgroup +3 -0
  200. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/label/0/.zarray +27 -0
  201. ngio-0.4.6/tests/data/v04/images/test_image_tzyx.zarr/labels/label/1/.zarray +27 -0
  202. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/.zattrs +61 -0
  203. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/.zgroup +3 -0
  204. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/0/.zarray +23 -0
  205. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/1/.zarray +23 -0
  206. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/.zattrs +5 -0
  207. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/.zgroup +3 -0
  208. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/label/.zattrs +52 -0
  209. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/label/.zgroup +3 -0
  210. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/label/0/.zarray +23 -0
  211. ngio-0.4.6/tests/data/v04/images/test_image_yx.zarr/labels/label/1/.zarray +23 -0
  212. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/.zattrs +68 -0
  213. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/.zgroup +3 -0
  214. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/0/.zarray +25 -0
  215. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/1/.zarray +25 -0
  216. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/.zattrs +5 -0
  217. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/.zgroup +3 -0
  218. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zattrs +59 -0
  219. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/label/.zgroup +3 -0
  220. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/label/0/.zarray +25 -0
  221. ngio-0.4.6/tests/data/v04/images/test_image_zyx.zarr/labels/label/1/.zarray +25 -0
  222. ngio-0.4.6/tests/data/v04/meta/base_ome_zarr_image_meta.json +73 -0
  223. ngio-0.4.6/tests/data/v04/meta/base_ome_zarr_image_meta_wrong_axis_order.json +73 -0
  224. ngio-0.4.6/tests/data/v04/meta/base_ome_zarr_label_meta.json +50 -0
  225. ngio-0.4.6/tests/data/v04/meta/base_ome_zarr_well_meta.json +10 -0
  226. ngio-0.4.6/tests/data/v04/meta/ome_zarr_well_path_normalization_meta.json +13 -0
  227. ngio-0.4.6/tests/unit/common/test_dimensions.py +161 -0
  228. ngio-0.4.6/tests/unit/common/test_pyramid.py +30 -0
  229. ngio-0.4.6/tests/unit/common/test_roi.py +201 -0
  230. ngio-0.4.6/tests/unit/common/test_transforms.py +45 -0
  231. ngio-0.4.6/tests/unit/hcs/test_plate.py +207 -0
  232. ngio-0.4.6/tests/unit/hcs/test_well.py +35 -0
  233. ngio-0.4.6/tests/unit/images/test_create.py +140 -0
  234. ngio-0.4.6/tests/unit/images/test_images.py +243 -0
  235. ngio-0.4.6/tests/unit/images/test_masked_images.py +157 -0
  236. ngio-0.4.6/tests/unit/images/test_omezarr_container.py +313 -0
  237. ngio-0.4.6/tests/unit/images/test_table_ops.py +173 -0
  238. ngio-0.4.6/tests/unit/io_pipes/test_axes_ops.py +48 -0
  239. ngio-0.4.6/tests/unit/io_pipes/test_slicing_ops.py +112 -0
  240. ngio-0.4.6/tests/unit/iterators/test_iterators.py +193 -0
  241. ngio-0.4.6/tests/unit/ome_zarr_meta/test_image_handler.py +15 -0
  242. ngio-0.4.6/tests/unit/ome_zarr_meta/test_unit_ngio_specs.py +425 -0
  243. ngio-0.4.6/tests/unit/ome_zarr_meta/test_unit_v04_utils.py +72 -0
  244. ngio-0.4.6/tests/unit/tables/test_backends.py +296 -0
  245. ngio-0.4.6/tests/unit/tables/test_backends_utils.py +205 -0
  246. ngio-0.4.6/tests/unit/tables/test_feature_table.py +36 -0
  247. ngio-0.4.6/tests/unit/tables/test_generic_table.py +60 -0
  248. ngio-0.4.6/tests/unit/tables/test_masking_roi_table_v1.py +65 -0
  249. ngio-0.4.6/tests/unit/tables/test_roi_table_v1.py +116 -0
  250. ngio-0.4.6/tests/unit/tables/test_table_group.py +34 -0
  251. ngio-0.4.6/tests/unit/utils/test_download_datasets.py +22 -0
  252. ngio-0.4.6/tests/unit/utils/test_zarr_utils.py +188 -0
  253. ngio-0.1.0b3/.github/workflows/build_docs.yml +0 -50
  254. ngio-0.1.0b3/PKG-INFO +0 -104
  255. ngio-0.1.0b3/README.md +0 -40
  256. ngio-0.1.0b3/docs/api/core.md +0 -8
  257. ngio-0.1.0b3/docs/getting-started.md +0 -35
  258. ngio-0.1.0b3/docs/index.md +0 -42
  259. ngio-0.1.0b3/docs/notebooks/basic_usage.ipynb +0 -207
  260. ngio-0.1.0b3/docs/notebooks/image.ipynb +0 -341
  261. ngio-0.1.0b3/docs/notebooks/processing.ipynb +0 -304
  262. ngio-0.1.0b3/mkdocs.yml +0 -87
  263. ngio-0.1.0b3/src/ngio/__init__.py +0 -14
  264. ngio-0.1.0b3/src/ngio/_common_types.py +0 -5
  265. ngio-0.1.0b3/src/ngio/core/__init__.py +0 -7
  266. ngio-0.1.0b3/src/ngio/core/dimensions.py +0 -102
  267. ngio-0.1.0b3/src/ngio/core/image_handler.py +0 -67
  268. ngio-0.1.0b3/src/ngio/core/image_like_handler.py +0 -431
  269. ngio-0.1.0b3/src/ngio/core/label_handler.py +0 -300
  270. ngio-0.1.0b3/src/ngio/core/ngff_image.py +0 -195
  271. ngio-0.1.0b3/src/ngio/core/roi.py +0 -92
  272. ngio-0.1.0b3/src/ngio/core/utils.py +0 -202
  273. ngio-0.1.0b3/src/ngio/io/__init__.py +0 -19
  274. ngio-0.1.0b3/src/ngio/io/_zarr.py +0 -71
  275. ngio-0.1.0b3/src/ngio/io/_zarr_array_utils.py +0 -0
  276. ngio-0.1.0b3/src/ngio/io/_zarr_group_utils.py +0 -47
  277. ngio-0.1.0b3/src/ngio/ngff_meta/__init__.py +0 -35
  278. ngio-0.1.0b3/src/ngio/ngff_meta/fractal_image_meta.py +0 -944
  279. ngio-0.1.0b3/src/ngio/ngff_meta/meta_handler.py +0 -92
  280. ngio-0.1.0b3/src/ngio/ngff_meta/utils.py +0 -258
  281. ngio-0.1.0b3/src/ngio/ngff_meta/v04/__init__.py +0 -6
  282. ngio-0.1.0b3/src/ngio/ngff_meta/v04/specs.py +0 -161
  283. ngio-0.1.0b3/src/ngio/ngff_meta/v04/zarr_utils.py +0 -292
  284. ngio-0.1.0b3/src/ngio/pipes/__init__.py +0 -6
  285. ngio-0.1.0b3/src/ngio/pipes/_slicer_transforms.py +0 -176
  286. ngio-0.1.0b3/src/ngio/pipes/_transforms.py +0 -15
  287. ngio-0.1.0b3/src/ngio/pipes/data_pipe.py +0 -52
  288. ngio-0.1.0b3/src/ngio/pydantic_utils.py +0 -46
  289. ngio-0.1.0b3/src/ngio/tables/__init__.py +0 -11
  290. ngio-0.1.0b3/src/ngio/tables/_utils.py +0 -261
  291. ngio-0.1.0b3/src/ngio/tables/tables_group.py +0 -155
  292. ngio-0.1.0b3/src/ngio/tables/v1/__init__.py +0 -7
  293. ngio-0.1.0b3/src/ngio/tables/v1/feature_tables.py +0 -124
  294. ngio-0.1.0b3/src/ngio/tables/v1/generic_table.py +0 -179
  295. ngio-0.1.0b3/src/ngio/tables/v1/masking_roi_tables.py +0 -160
  296. ngio-0.1.0b3/src/ngio/tables/v1/roi_tables.py +0 -197
  297. ngio-0.1.0b3/tests/core/conftest.py +0 -39
  298. ngio-0.1.0b3/tests/core/test_image_handler.py +0 -26
  299. ngio-0.1.0b3/tests/core/test_image_like_handler.py +0 -52
  300. ngio-0.1.0b3/tests/core/test_label_handler.py +0 -25
  301. ngio-0.1.0b3/tests/core/test_ngff_image.py +0 -25
  302. ngio-0.1.0b3/tests/io/conftest.py +0 -66
  303. ngio-0.1.0b3/tests/io/test_zarr_group_utils.py +0 -28
  304. ngio-0.1.0b3/tests/ngff_meta/conftest.py +0 -44
  305. ngio-0.1.0b3/tests/ngff_meta/test_fractal_image_meta.py +0 -71
  306. ngio-0.1.0b3/tests/ngff_meta/test_utils.py +0 -120
  307. ngio-0.1.0b3/tests/ngff_meta/test_v04.py +0 -56
  308. ngio-0.1.0b3/tests/tables/conftest.py +0 -39
  309. ngio-0.1.0b3/tests/tables/test_table_group.py +0 -34
  310. {ngio-0.1.0b3 → ngio-0.4.6}/.copier-answers.yml +0 -0
  311. {ngio-0.1.0b3 → ngio-0.4.6}/.gitattributes +0 -0
  312. {ngio-0.1.0b3 → ngio-0.4.6}/.github/ISSUE_TEMPLATE.md +0 -0
  313. {ngio-0.1.0b3 → ngio-0.4.6}/.github/TEST_FAIL_TEMPLATE.md +0 -0
  314. {ngio-0.1.0b3 → ngio-0.4.6}/.github/dependabot.yml +0 -0
  315. {ngio-0.1.0b3 → ngio-0.4.6}/LICENSE +0 -0
@@ -0,0 +1,3 @@
1
+
2
+ ## Checklist before merging
3
+ - [ ] I added an appropriate entry to `CHANGELOG.md`
@@ -0,0 +1,66 @@
1
+ name: Build Docs
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - dev
7
+ - main
8
+ tags:
9
+ - "v*"
10
+
11
+ concurrency:
12
+ group: ${{ github.workflow }}-${{ github.ref }}
13
+ cancel-in-progress: true
14
+
15
+ jobs:
16
+ deploy:
17
+ name: Deploy Docs
18
+ runs-on: ubuntu-latest
19
+
20
+ steps:
21
+ - uses: actions/checkout@v6
22
+ with:
23
+ fetch-depth: 0
24
+ - name: 🐍 Set up Python
25
+ uses: actions/setup-python@v6
26
+ with:
27
+ python-version: "3.13"
28
+ cache-dependency-path: "pyproject.toml"
29
+ cache: "pip"
30
+
31
+ - name: Install Dependencies
32
+ run: |
33
+ python -m pip install -U pip
34
+ python -m pip install .[dev]
35
+ python -m pip install .[docs]
36
+
37
+ - name: Configure Git user
38
+ run: |
39
+ git config --local user.email "github-actions[bot]@users.noreply.github.com"
40
+ git config --local user.name "github-actions[bot]"
41
+
42
+ - name: Restore shared data cache
43
+ id: cache-data
44
+ uses: actions/cache@v4
45
+ with:
46
+ path: data/
47
+ key: "${{ runner.os }}-data-${{ hashFiles('tests/conftest.py') }}"
48
+ restore-keys: |
49
+ "${{ runner.os }}-data-"
50
+
51
+ - name: Deploy docs
52
+ run: |
53
+ VERSION=$(echo $GITHUB_REF | sed 's/refs\/tags\///' | sed 's/refs\/heads\///')
54
+ echo "Deploying version $VERSION"
55
+ # Check if the version is a stable release
56
+ # Meaning that starts with "v" and contains only numbers and dots
57
+ if [[ $GITHUB_REF == refs/tags/* ]] && [[ $VERSION =~ ^v[0-9.]+$ ]]; then
58
+ mike deploy --push --update-aliases $VERSION stable
59
+ mike set-default --push stable
60
+ echo "Deployed stable version $VERSION (stable)"
61
+
62
+ elif [[ $GITHUB_REF == refs/heads/dev ]]; then
63
+ mike deploy --push dev
64
+ mike set-default --push dev
65
+ echo "Deployed development version (dev)"
66
+ fi
@@ -4,6 +4,7 @@ on:
4
4
  push:
5
5
  branches:
6
6
  - main
7
+ - dev
7
8
  tags:
8
9
  - "v*"
9
10
  pull_request:
@@ -23,7 +24,7 @@ jobs:
23
24
  # included in the sdist (unless explicitly excluded)
24
25
  runs-on: ubuntu-latest
25
26
  steps:
26
- - uses: actions/checkout@v4
27
+ - uses: actions/checkout@v6
27
28
  - run: pipx run check-manifest
28
29
 
29
30
  test:
@@ -32,17 +33,14 @@ jobs:
32
33
  strategy:
33
34
  fail-fast: false
34
35
  matrix:
35
- python-version: ["3.10", "3.11", "3.12"]
36
- # Skip Windows for now It's seems there are some issues with the
37
- # ZarrV3 on Windows
36
+ python-version: ["3.11", "3.12", "3.13"]
38
37
  platform: [ubuntu-latest, macos-latest, windows-latest]
39
- # platform: [ubuntu-latest, macos-latest]
40
38
 
41
39
  steps:
42
- - uses: actions/checkout@v4
40
+ - uses: actions/checkout@v6
43
41
 
44
42
  - name: 🐍 Set up Python ${{ matrix.python-version }}
45
- uses: actions/setup-python@v5
43
+ uses: actions/setup-python@v6
46
44
  with:
47
45
  python-version: ${{ matrix.python-version }}
48
46
  cache-dependency-path: "pyproject.toml"
@@ -53,6 +51,15 @@ jobs:
53
51
  python -m pip install -U pip
54
52
  # if running a cron job, we add the --pre flag to test against pre-releases
55
53
  python -m pip install .[test] ${{ github.event_name == 'schedule' && '--pre' || '' }}
54
+
55
+ - name: Restore shared data cache
56
+ id: cache-data
57
+ uses: actions/cache@v4
58
+ with:
59
+ path: data/
60
+ key: "${{ runner.os }}-data-${{ hashFiles('tests/conftest.py') }}"
61
+ restore-keys: |
62
+ "${{ runner.os }}-data-"
56
63
 
57
64
  - name: 🧪 Run Tests
58
65
  run: pytest
@@ -72,36 +79,11 @@ jobs:
72
79
  update_existing: true
73
80
 
74
81
  - name: Coverage
75
- if: ${{ matrix.python-version == '3.10' }} && ${{ matrix.platform == 'ubuntu-latest' }}
76
- uses: codecov/codecov-action@v4
82
+ uses: codecov/codecov-action@v5
77
83
  with:
78
84
  token: ${{ secrets.CODECOV_TOKEN }}
79
85
  files: /home/runner/work/ngio/ngio/coverage.xml
80
86
 
81
- zarrv3:
82
- name: Test zarr-python v3 compatibility
83
- runs-on: ubuntu-latest
84
-
85
- steps:
86
- - uses: actions/checkout@v4
87
-
88
- - name: 🐍 Set up Python
89
- uses: actions/setup-python@v5
90
- with:
91
- python-version: "3.11"
92
- cache-dependency-path: "pyproject.toml"
93
- cache: "pip"
94
-
95
- - name: Install Dependencies
96
- run: |
97
- python -m pip install -U pip
98
- # if running a cron job, we add the --pre flag to test against pre-releases
99
- python -m pip install .[dev3] ${{ github.event_name == 'schedule' && '--pre' || '' }}
100
-
101
- - name: 🧪 Run Tests
102
- run: pytest
103
- continue-on-error: true
104
-
105
87
  deploy:
106
88
  name: Deploy
107
89
  needs: test
@@ -116,12 +98,12 @@ jobs:
116
98
  contents: write
117
99
 
118
100
  steps:
119
- - uses: actions/checkout@v4
101
+ - uses: actions/checkout@v6
120
102
  with:
121
103
  fetch-depth: 0
122
104
 
123
105
  - name: 🐍 Set up Python
124
- uses: actions/setup-python@v5
106
+ uses: actions/setup-python@v6
125
107
  with:
126
108
  python-version: "3.x"
127
109
 
@@ -116,8 +116,19 @@ ENV/
116
116
  pixi.lock
117
117
  *.egg-info
118
118
 
119
+ # Ignore all .zarr directories
119
120
  *.zarr
121
+ # but allow .zarr in tests/data
122
+ !tests/data/**/**/test_*.zarr
120
123
 
121
124
  # ignore data directory
122
- data/
123
- *.zip
125
+ ./data/
126
+ *.zip
127
+
128
+ src/ngio/_v01
129
+ tests/_v01
130
+
131
+ # Ignore locks
132
+ *.lock
133
+
134
+ benchmark/*
@@ -9,19 +9,19 @@ ci:
9
9
 
10
10
  repos:
11
11
  - repo: https://github.com/abravalheri/validate-pyproject
12
- rev: v0.18
12
+ rev: v0.24.1
13
13
  hooks:
14
14
  - id: validate-pyproject
15
15
 
16
16
  - repo: https://github.com/crate-ci/typos
17
- rev: typos-dict-v0.11.20
17
+ rev: v1.36.2
18
18
  hooks:
19
19
  - id: typos
20
20
  #args: [--force-exclude] # omitting --write-changes
21
21
  args: [--force-exclude, --write-changes]
22
22
 
23
23
  - repo: https://github.com/charliermarsh/ruff-pre-commit
24
- rev: v0.4.8
24
+ rev: v0.12.12
25
25
  hooks:
26
26
  - id: ruff
27
27
  args: [--fix] # may also add '--unsafe-fixes'
@@ -37,7 +37,7 @@ repos:
37
37
  # # - numpy
38
38
 
39
39
  - repo: https://github.com/kynan/nbstripout
40
- rev: 0.7.1
40
+ rev: 0.8.1
41
41
  hooks:
42
42
  - id: nbstripout
43
43
 
@@ -0,0 +1,98 @@
1
+ # Changelog
2
+
3
+ ## [v0.4.6]
4
+
5
+ ### Bug Fixes
6
+ - Fix channel selection from `wavelenght_id`
7
+ - Fix table opening mode to stop wrtiting groups when opening in append mode.
8
+
9
+ ## [v0.4.5]
10
+
11
+ ### Bug Fixes
12
+ - Pin Dask to version <2025.11 to avoid errors when writing zarr pyramids with dask (see https://github.com/dask/dask/issues/12159#issuecomment-3548421833)
13
+
14
+ ## [v0.4.4]
15
+
16
+ ### Bug Fixes
17
+
18
+ - Fix bug in channel visualization when using hex colors with leading '#'.
19
+ - Remove strict range check in channel window.
20
+
21
+ ## [v0.4.3]
22
+
23
+ ### Bug Fixes
24
+
25
+ - Fix bug in deriving labels and image from OME-Zarr with non standard path names.
26
+ - Add missing pillow dependency.
27
+ - Update pixi workspace config.
28
+
29
+ ## [v0.4.2]
30
+
31
+ ### API Changes
32
+
33
+ - Make roi.to_slicing_dict(pixel_size) always require pixel_size argument for consistency with other roi methods.
34
+ - Make PixelSize object a Pydantic model to allow for serialization.
35
+
36
+ ### Bug Fixes
37
+
38
+ - Improve robustness when rounding Rois to pixel coordinates.
39
+
40
+ ## [v0.4.1]
41
+
42
+ ### Bug Fixes
43
+ - Fix bug in zoom transform when input axes contain unknown axes (e.g. virtual axes). Now unknown axes are treated as virtual axes and set to 1 in the target shape.
44
+
45
+ ## [v0.4.0]
46
+
47
+ ### Features
48
+
49
+ - Add Iterators for image processing pipelines
50
+ - Add support for time in rois and roi-tables
51
+ - Building masking roi tables expanded to time series data
52
+ - Add zoom transformation
53
+ - Add support for rescaling on-the-fly masks for masked images
54
+ - Big refactor of the io pipeline to support iterators and lazy loading
55
+ - Add support for customize dimension separators and compression codecs
56
+ - Simplify AxesHandler and Dataset Classes
57
+
58
+ ### API Changes
59
+
60
+ - The image-like `get_*` api have been slightly changed. Now if a single int is passed as slice_kwargs, it is interpreted as a single index. So the dimension is automatically squeezed.
61
+ - Remove the `get_*_delayed` methods, now data cam only be loaded as numpy or dask array.Use the `get_as_dask` method instead, which returns a dask array that can be used with dask delayed.
62
+ - A new model for channel selection is available. Now channels can be selected by name, index or with `ChannelSelectionModel` object.
63
+ - Change `table_name` keyword argument to `name` for consistency in all table concatenation functions, e.g. `concatenate_image_tables`, `concatenate_image_tables_as`, etc.
64
+ - Change to `Dimension` class. `get_shape` and `get_canonical_shape` have been removed, `get` uses new keyword arguments `default` instead of `strict`.
65
+ - Image like objects now have a more clean API to load data. Instead of `get_array` and `set_array`, they now use `get_as_numpy`, and `get_as_dask` for delayed arrays.
66
+ - Also for `get_roi` now specific methods are available. For ROI objects, the `get_roi_as_numpy`, and `get_roi_as_dask` methods.
67
+ - Table ops moved to `ngio.images`
68
+ - int `label` as an explicit attribute in `Roi` objects (previously only in stored in name and relying on convention)
69
+ - Slight changes to `Image` and `Label` objects. Some minor attributes have been renamed for consistency.
70
+
71
+ ### Table specs
72
+
73
+ - Add `t_second` and `len_t_second` to ROI tables and masking ROI tables
74
+
75
+ ## [v0.3.5]
76
+
77
+ - Remove path normalization for images in wells. While the spec requires paths to be alphanumeric, this patch removes the normalization to allow for arbitrary image paths.
78
+
79
+ ## [v0.3.4]
80
+
81
+ - allow to write as `anndata_v1` for backward compatibility with older ngio versions.
82
+
83
+ ## [v0.3.3]
84
+
85
+ ### Chores
86
+
87
+ - improve dataset download process and streamline the CI workflows
88
+
89
+ ## [v0.3.2]
90
+
91
+ ### API Changes
92
+
93
+ - change table backend default to `anndata_v1` for backward compatibility. This will be chaanged again when ngio `v0.2.x` is no longer supported.
94
+
95
+ ### Bug Fixes
96
+
97
+ - fix [#13](https://github.com/BioVisionCenter/fractal-converters-tools/issues/13) (converters tools)
98
+ - fix [#88](https://github.com/BioVisionCenter/ngio/issues/88)
ngio-0.4.6/PKG-INFO ADDED
@@ -0,0 +1,142 @@
1
+ Metadata-Version: 2.4
2
+ Name: ngio
3
+ Version: 0.4.6
4
+ Summary: Next Generation file format IO
5
+ Project-URL: homepage, https://github.com/BioVisionCenter/ngio
6
+ Project-URL: repository, https://github.com/BioVisionCenter/ngio
7
+ Author-email: Lorenzo Cerrone <lorenzo.cerrone@uzh.ch>
8
+ License: BSD-3-Clause
9
+ License-File: LICENSE
10
+ Classifier: Development Status :: 3 - Alpha
11
+ Classifier: License :: OSI Approved :: BSD License
12
+ Classifier: Programming Language :: Python :: 3
13
+ Classifier: Programming Language :: Python :: 3.11
14
+ Classifier: Programming Language :: Python :: 3.12
15
+ Classifier: Programming Language :: Python :: 3.13
16
+ Classifier: Typing :: Typed
17
+ Requires-Python: <3.14,>=3.11
18
+ Requires-Dist: aiohttp
19
+ Requires-Dist: anndata<0.11.4,>=0.8.0
20
+ Requires-Dist: dask[array]<2025.11.0
21
+ Requires-Dist: dask[distributed]<2025.11.0
22
+ Requires-Dist: filelock
23
+ Requires-Dist: numpy
24
+ Requires-Dist: ome-zarr-models
25
+ Requires-Dist: pandas>=1.2.0
26
+ Requires-Dist: pillow
27
+ Requires-Dist: polars
28
+ Requires-Dist: pooch
29
+ Requires-Dist: pyarrow
30
+ Requires-Dist: pydantic
31
+ Requires-Dist: requests
32
+ Requires-Dist: zarr<3
33
+ Provides-Extra: dev
34
+ Requires-Dist: devtools; extra == 'dev'
35
+ Requires-Dist: matplotlib; extra == 'dev'
36
+ Requires-Dist: mypy; extra == 'dev'
37
+ Requires-Dist: napari; extra == 'dev'
38
+ Requires-Dist: notebook; extra == 'dev'
39
+ Requires-Dist: pdbpp; extra == 'dev'
40
+ Requires-Dist: pre-commit; extra == 'dev'
41
+ Requires-Dist: pympler; extra == 'dev'
42
+ Requires-Dist: pyqt5; extra == 'dev'
43
+ Requires-Dist: rich; extra == 'dev'
44
+ Requires-Dist: ruff; extra == 'dev'
45
+ Requires-Dist: scikit-image; extra == 'dev'
46
+ Provides-Extra: docs
47
+ Requires-Dist: griffe-typingdoc; extra == 'docs'
48
+ Requires-Dist: markdown-exec[ansi]; extra == 'docs'
49
+ Requires-Dist: matplotlib; extra == 'docs'
50
+ Requires-Dist: mike; extra == 'docs'
51
+ Requires-Dist: mkdocs; extra == 'docs'
52
+ Requires-Dist: mkdocs-autorefs; extra == 'docs'
53
+ Requires-Dist: mkdocs-git-committers-plugin-2; extra == 'docs'
54
+ Requires-Dist: mkdocs-git-revision-date-localized-plugin; extra == 'docs'
55
+ Requires-Dist: mkdocs-include-markdown-plugin; extra == 'docs'
56
+ Requires-Dist: mkdocs-jupyter; extra == 'docs'
57
+ Requires-Dist: mkdocs-material; extra == 'docs'
58
+ Requires-Dist: mkdocstrings[python]; extra == 'docs'
59
+ Requires-Dist: rich; extra == 'docs'
60
+ Requires-Dist: scikit-image; extra == 'docs'
61
+ Requires-Dist: tabulate; extra == 'docs'
62
+ Provides-Extra: test
63
+ Requires-Dist: pytest; extra == 'test'
64
+ Requires-Dist: pytest-cov; extra == 'test'
65
+ Requires-Dist: scikit-image; extra == 'test'
66
+ Description-Content-Type: text/markdown
67
+
68
+ # Ngio - Next Generation file format IO
69
+
70
+ [![License](https://img.shields.io/pypi/l/ngio.svg?color=green)](https://github.com/BioVisionCenter/ngio/raw/main/LICENSE)
71
+ [![PyPI](https://img.shields.io/pypi/v/ngio.svg?color=green)](https://pypi.org/project/ngio)
72
+ [![Python Version](https://img.shields.io/pypi/pyversions/ngio.svg?color=green)](https://python.org)
73
+ [![CI](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml/badge.svg)](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml)
74
+ [![codecov](https://codecov.io/gh/BioVisionCenter/ngio/graph/badge.svg?token=FkmF26FZki)](https://codecov.io/gh/BioVisionCenter/ngio)
75
+
76
+ ngio is a Python library designed to simplify bioimage analysis workflows, offering an intuitive interface for working with OME-Zarr files.
77
+
78
+ ## What is Ngio?
79
+
80
+ Ngio is built for the [OME-Zarr](https://ngff.openmicroscopy.org/) file format, a modern, cloud-optimized format for biological imaging data. OME-Zarr stores large, multi-dimensional microscopy images and metadata in an efficient and scalable way.
81
+
82
+ Ngio's mission is to streamline working with OME-Zarr files by providing a simple, object-based API for opening, exploring, and manipulating OME-Zarr images and high-content screening (HCS) plates. It also offers comprehensive support for labels, tables and regions of interest (ROIs), making it easy to extract and analyze specific regions in your data.
83
+
84
+ ## Key Features
85
+
86
+ ### 🔍 Simple Object-Based API
87
+
88
+ - Easily open, explore, and manipulate OME-Zarr images and HCS plates
89
+ - Create and derive new images and labels with minimal boilerplate code
90
+
91
+ ### 📊 Rich Tables and Regions of Interest (ROI) Support
92
+
93
+ - Tight integration with [tabular data](https://biovisioncenter.github.io/ngio/stable/table_specs/overview/)
94
+ - Extract and analyze specific regions of interest
95
+ - Store measurements and other metadata in the OME-Zarr container
96
+ - Extensible & modular allowing users to define custom table schemas and on disk serialization
97
+
98
+ ### 🔄 Scalable Data Processing
99
+
100
+ - Powerful iterators for building scalable and generalizable image processing pipelines
101
+ - Extensible mapping mechanism for custom parallelization strategies
102
+
103
+ ## Installation
104
+
105
+ You can install ngio via pip:
106
+
107
+ ```bash
108
+ pip install ngio
109
+ ```
110
+
111
+ To get started check out the [Quickstart Guide](https://BioVisionCenter.github.io/ngio/stable/getting_started/0_quickstart/).
112
+
113
+ ## Supported OME-Zarr versions
114
+
115
+ Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher is planned for future releases.
116
+
117
+ ## Development Status
118
+
119
+ Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
120
+ We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
121
+
122
+ ### Available Features
123
+
124
+ - ✅ OME-Zarr metadata handling and validation
125
+ - ✅ Image and label access across pyramid levels
126
+ - ✅ ROI and table support
127
+ - ✅ Image processing iterators
128
+ - ✅ Streaming from remote sources
129
+ - ✅ Documentation and examples
130
+
131
+ ### Upcoming Features
132
+
133
+ - Support for OME-Zarr v0.5 and Zarr v3 (via `zarr-python` v3)
134
+ - Enhanced performance optimizations (parallel iterators, optimized io strategies)
135
+
136
+ ## Contributors
137
+
138
+ Ngio is developed at the [BioVisionCenter](https://www.biovisioncenter.uzh.ch/en.html), University of Zurich, by [@lorenzocerrone](https://github.com/lorenzocerrone) and [@jluethi](https://github.com/jluethi).
139
+
140
+ ## License
141
+
142
+ Ngio is released under the BSD-3-Clause License. See [LICENSE](https://github.com/BioVisionCenter/ngio/blob/main/LICENSE) for details.
ngio-0.4.6/README.md ADDED
@@ -0,0 +1,75 @@
1
+ # Ngio - Next Generation file format IO
2
+
3
+ [![License](https://img.shields.io/pypi/l/ngio.svg?color=green)](https://github.com/BioVisionCenter/ngio/raw/main/LICENSE)
4
+ [![PyPI](https://img.shields.io/pypi/v/ngio.svg?color=green)](https://pypi.org/project/ngio)
5
+ [![Python Version](https://img.shields.io/pypi/pyversions/ngio.svg?color=green)](https://python.org)
6
+ [![CI](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml/badge.svg)](https://github.com/BioVisionCenter/ngio/actions/workflows/ci.yml)
7
+ [![codecov](https://codecov.io/gh/BioVisionCenter/ngio/graph/badge.svg?token=FkmF26FZki)](https://codecov.io/gh/BioVisionCenter/ngio)
8
+
9
+ ngio is a Python library designed to simplify bioimage analysis workflows, offering an intuitive interface for working with OME-Zarr files.
10
+
11
+ ## What is Ngio?
12
+
13
+ Ngio is built for the [OME-Zarr](https://ngff.openmicroscopy.org/) file format, a modern, cloud-optimized format for biological imaging data. OME-Zarr stores large, multi-dimensional microscopy images and metadata in an efficient and scalable way.
14
+
15
+ Ngio's mission is to streamline working with OME-Zarr files by providing a simple, object-based API for opening, exploring, and manipulating OME-Zarr images and high-content screening (HCS) plates. It also offers comprehensive support for labels, tables and regions of interest (ROIs), making it easy to extract and analyze specific regions in your data.
16
+
17
+ ## Key Features
18
+
19
+ ### 🔍 Simple Object-Based API
20
+
21
+ - Easily open, explore, and manipulate OME-Zarr images and HCS plates
22
+ - Create and derive new images and labels with minimal boilerplate code
23
+
24
+ ### 📊 Rich Tables and Regions of Interest (ROI) Support
25
+
26
+ - Tight integration with [tabular data](https://biovisioncenter.github.io/ngio/stable/table_specs/overview/)
27
+ - Extract and analyze specific regions of interest
28
+ - Store measurements and other metadata in the OME-Zarr container
29
+ - Extensible & modular allowing users to define custom table schemas and on disk serialization
30
+
31
+ ### 🔄 Scalable Data Processing
32
+
33
+ - Powerful iterators for building scalable and generalizable image processing pipelines
34
+ - Extensible mapping mechanism for custom parallelization strategies
35
+
36
+ ## Installation
37
+
38
+ You can install ngio via pip:
39
+
40
+ ```bash
41
+ pip install ngio
42
+ ```
43
+
44
+ To get started check out the [Quickstart Guide](https://BioVisionCenter.github.io/ngio/stable/getting_started/0_quickstart/).
45
+
46
+ ## Supported OME-Zarr versions
47
+
48
+ Currently, ngio only supports OME-Zarr v0.4. Support for version 0.5 and higher is planned for future releases.
49
+
50
+ ## Development Status
51
+
52
+ Ngio is under active development and is not yet stable. The API is subject to change, and bugs and breaking changes are expected.
53
+ We follow [Semantic Versioning](https://semver.org/). Which means for 0.x releases potentially breaking changes can be introduced in minor releases.
54
+
55
+ ### Available Features
56
+
57
+ - ✅ OME-Zarr metadata handling and validation
58
+ - ✅ Image and label access across pyramid levels
59
+ - ✅ ROI and table support
60
+ - ✅ Image processing iterators
61
+ - ✅ Streaming from remote sources
62
+ - ✅ Documentation and examples
63
+
64
+ ### Upcoming Features
65
+
66
+ - Support for OME-Zarr v0.5 and Zarr v3 (via `zarr-python` v3)
67
+ - Enhanced performance optimizations (parallel iterators, optimized io strategies)
68
+
69
+ ## Contributors
70
+
71
+ Ngio is developed at the [BioVisionCenter](https://www.biovisioncenter.uzh.ch/en.html), University of Zurich, by [@lorenzocerrone](https://github.com/lorenzocerrone) and [@jluethi](https://github.com/jluethi).
72
+
73
+ ## License
74
+
75
+ Ngio is released under the BSD-3-Clause License. See [LICENSE](https://github.com/BioVisionCenter/ngio/blob/main/LICENSE) for details.
@@ -1,3 +1,4 @@
1
1
  [default.extend-words]
2
2
  # Don't correct the surname "Teh"
3
- OME = "OME"
3
+ OME = "OME"
4
+ FO = "FO"
@@ -0,0 +1,17 @@
1
+ # HCS API Documentation
2
+
3
+ ## Open a Plate
4
+
5
+ ::: ngio.open_ome_zarr_plate
6
+
7
+ ## ngio.OmeZarrPlate Class Reference
8
+
9
+ ::: ngio.OmeZarrPlate
10
+
11
+ ## Open a Well
12
+
13
+ ::: ngio.open_ome_zarr_well
14
+
15
+ ## ngio.OmeZarrWell Class Reference
16
+
17
+ ::: ngio.OmeZarrWell
@@ -0,0 +1,17 @@
1
+ # Images Like: API Documentation
2
+
3
+ ## Open an Image
4
+
5
+ ::: ngio.open_image
6
+
7
+ ## ngio.Image Class Reference
8
+
9
+ ::: ngio.Image
10
+
11
+ ## Open a Label
12
+
13
+ ::: ngio.open_label
14
+
15
+ ## ngio.Label Class Reference
16
+
17
+ ::: ngio.Label
@@ -0,0 +1,17 @@
1
+ # Iterators API Reference
2
+
3
+ ## ImageProcessingIterator
4
+
5
+ ::: ngio.experimental.iterators.ImageProcessingIterator
6
+
7
+ ## SegmentationIterator
8
+
9
+ ::: ngio.experimental.iterators.SegmentationIterator
10
+
11
+ ## MaskedSegmentationIterator
12
+
13
+ ::: ngio.experimental.iterators.MaskedSegmentationIterator
14
+
15
+ ## FeatureExtractorIterator
16
+
17
+ ::: ngio.experimental.iterators.FeatureExtractorIterator
@@ -0,0 +1,3 @@
1
+ # ngio.common API documentation
2
+
3
+ ::: ngio.common
@@ -0,0 +1,3 @@
1
+ # ngio.hcs API documentation
2
+
3
+ ::: ngio.hcs
@@ -0,0 +1,3 @@
1
+ # ngio.images API documentation
2
+
3
+ ::: ngio.images
@@ -0,0 +1,3 @@
1
+ # ngio.io_pipes API documentation
2
+
3
+ ::: ngio.io_pipes
@@ -0,0 +1,3 @@
1
+ # ngio.iterators API documentation
2
+
3
+ ::: ngio.experimental.iterators
@@ -0,0 +1,3 @@
1
+ # ngio API documentation
2
+
3
+ ::: ngio
@@ -0,0 +1,3 @@
1
+ # ngio.tables API documentation
2
+
3
+ ::: ngio.tables
@@ -0,0 +1,3 @@
1
+ # ngio.transforms API documentation
2
+
3
+ ::: ngio.transforms
@@ -0,0 +1,3 @@
1
+ # ngio.utils
2
+
3
+ ::: ngio.utils
@@ -0,0 +1,14 @@
1
+ # OmeZarrContainer: API Documentation
2
+
3
+ ## Open an OME-Zarr Container
4
+
5
+ ::: ngio.open_ome_zarr_container
6
+
7
+ ## Create an OME-Zarr Container
8
+
9
+ ::: ngio.create_empty_ome_zarr
10
+ ::: ngio.create_ome_zarr_from_array
11
+
12
+ ## OmeZarrContainer Class
13
+
14
+ ::: ngio.OmeZarrContainer
@@ -0,0 +1 @@
1
+ # Ngio Tables API Documentation