hoa-tools 1.0__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 hoa-tools might be problematic. Click here for more details.

Files changed (237) hide show
  1. hoa_tools-1.0/.github/dependabot.yml +15 -0
  2. hoa_tools-1.0/.github/workflows/tests.yml +66 -0
  3. hoa_tools-1.0/.gitignore +172 -0
  4. hoa_tools-1.0/.gitmodules +3 -0
  5. hoa_tools-1.0/.pre-commit-config.yaml +44 -0
  6. hoa_tools-1.0/.readthedocs.yml +20 -0
  7. hoa_tools-1.0/.vscode/settings.json +5 -0
  8. hoa_tools-1.0/CITATION.cff +10 -0
  9. hoa_tools-1.0/LICENSE.md +27 -0
  10. hoa_tools-1.0/MANIFEST.in +2 -0
  11. hoa_tools-1.0/PKG-INFO +106 -0
  12. hoa_tools-1.0/README.md +27 -0
  13. hoa_tools-1.0/docs/api/dataset.md +3 -0
  14. hoa_tools-1.0/docs/api/index.md +10 -0
  15. hoa_tools-1.0/docs/api/inventory.md +3 -0
  16. hoa_tools-1.0/docs/api/metadata.md +5 -0
  17. hoa_tools-1.0/docs/api/types.md +3 -0
  18. hoa_tools-1.0/docs/api/voi.md +3 -0
  19. hoa_tools-1.0/docs/development.md +14 -0
  20. hoa_tools-1.0/docs/how_to.md +6 -0
  21. hoa_tools-1.0/docs/index.md +19 -0
  22. hoa_tools-1.0/docs/release-notes.md +5 -0
  23. hoa_tools-1.0/docs/tutorial/dataset.py +37 -0
  24. hoa_tools-1.0/docs/tutorial/fetching_data.py +41 -0
  25. hoa_tools-1.0/docs/tutorial/index.md +11 -0
  26. hoa_tools-1.0/docs/tutorial/inventory.py +30 -0
  27. hoa_tools-1.0/docs/tutorial/registration.py +171 -0
  28. hoa_tools-1.0/docs/tutorial/vois.py +118 -0
  29. hoa_tools-1.0/mkdocs.yml +87 -0
  30. hoa_tools-1.0/pyproject.toml +116 -0
  31. hoa_tools-1.0/ruff.toml +56 -0
  32. hoa_tools-1.0/schemas/github-issue-forms.json +2377 -0
  33. hoa_tools-1.0/setup.cfg +4 -0
  34. hoa_tools-1.0/src/hoa_tools/__init__.py +5 -0
  35. hoa_tools-1.0/src/hoa_tools/_n5.py +10 -0
  36. hoa_tools-1.0/src/hoa_tools/_version.py +21 -0
  37. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/A186_lung_right_VOI-3_4.26um_bm18.json +275 -0
  38. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/A186_lung_right_complete-organ_24.132um_bm18.json +269 -0
  39. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-124_lung_upper_lobe_complete-organ_26.38um_bm05.json +208 -0
  40. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-01.2_2.22um_bm05.json +210 -0
  41. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-01.2b_2.22um_bm05.json +210 -0
  42. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-01_6.24um_bm05.json +214 -0
  43. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-02.2_2.22um_bm05.json +210 -0
  44. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-02_6.24um_bm05.json +214 -0
  45. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-03.2_2.22um_bm05.json +210 -0
  46. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-03_6.24um_bm05.json +214 -0
  47. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-03b-bis_2.2um_bm05.json +205 -0
  48. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-04-bis_6.5um_bm05.json +205 -0
  49. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-04.2_2.22um_bm05.json +210 -0
  50. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-04_6.24um_bm05.json +214 -0
  51. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-05.2_2.22um_bm05.json +210 -0
  52. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-05_6.24um_bm05.json +214 -0
  53. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-08.2_2.22um_bm05.json +210 -0
  54. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-09.2_2.22um_bm05.json +210 -0
  55. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-10.2_2.22um_bm05.json +210 -0
  56. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-aa-bis_2.2um_bm05.json +205 -0
  57. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-aa_0.65um_bm05.json +199 -0
  58. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_VOI-sx20_6.24um_bm05.json +214 -0
  59. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_complete-upper-lobe-bis_25.25um_bm05.json +199 -0
  60. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_left_upper_lobe_complete-upper-lobe_26.38um_bm05.json +208 -0
  61. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-129_lung_right_upper_lobe_core-biopsy_2.25um_bm05.json +204 -0
  62. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/GLR-163_lung_right_lower_lobe_core-biopsy_2.45um_bm05.json +204 -0
  63. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_L-vent-muscle_2.22um_bm05.json +210 -0
  64. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_LR-vent-muscles-ramus-interventricularis-anterior_6.05um_bm05.json +210 -0
  65. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-01_6.5um_bm18.json +272 -0
  66. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-02_6.5um_bm18.json +272 -0
  67. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-03_6.5um_bm18.json +272 -0
  68. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_complete-organ_19.89um_bm18.json +252 -0
  69. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_complete-organ_25.08um_bm05.json +204 -0
  70. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_central-column_1.29um_bm05.json +210 -0
  71. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_central-column_6.05um_bm05.json +210 -0
  72. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_complete-organ_25.08um_bm05.json +204 -0
  73. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_2.51um_bm05.json +199 -0
  74. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_25.25um_bm05.json +205 -0
  75. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_6.5um_bm05.json +199 -0
  76. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_2.51um_bm05.json +199 -0
  77. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_25.25um_bm05.json +205 -0
  78. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_6.5um_bm05.json +199 -0
  79. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-01-upper-lobe-apical_2.45um_bm05.json +210 -0
  80. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-01-upper-lobe-apical_2.5um_bm05.json +205 -0
  81. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-01-upper-lobe-apical_6.05um_bm05.json +210 -0
  82. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-01-upper-lobe-apical_6.5um_bm05.json +205 -0
  83. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-02-lower-lobe-basal_2.45um_bm05.json +210 -0
  84. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-02-lower-lobe-basal_6.05um_bm05.json +210 -0
  85. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-02b-upper-lobe-apical_2.5um_bm05.json +205 -0
  86. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-02b-upper-lobe-medial_6.5um_bm05.json +205 -0
  87. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-03-upper-lobe-apical_2.5um_bm05.json +205 -0
  88. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-03_6.5um_bm05.json +205 -0
  89. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-03b-interlobular-fissure_6.5um_bm05.json +205 -0
  90. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-04-upper-lobe-medial_2.5um_bm05.json +205 -0
  91. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-04b-lower-lobe-basal-medial_6.5um_bm05.json +205 -0
  92. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-05-lower-lobe-basal_2.5um_bm05.json +205 -0
  93. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-05-upper-lobe-apical_6.5um_bm05.json +205 -0
  94. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-06-lower-lobe-basal_2.45um_bm05.json +210 -0
  95. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-06-lower-lobe-basal_6.05um_bm05.json +210 -0
  96. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_complete-organ_25.08um_bm05.json +204 -0
  97. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_central-column_1.29um_bm05.json +210 -0
  98. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_central-column_6.05um_bm05.json +210 -0
  99. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_complete-organ_25.08um_bm05.json +204 -0
  100. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_cerebellum-occipital_6.05um_bm05.json +210 -0
  101. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_cerebellum_2.45um_bm05.json +210 -0
  102. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_complete-organ_25.08um_bm05.json +204 -0
  103. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_frontal_2.45um_bm05.json +210 -0
  104. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_hippocampus_2.45um_bm05.json +210 -0
  105. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_hippocampus_6.05um_bm05.json +210 -0
  106. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-01_6.36um_bm18.json +246 -0
  107. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-01_6.5um_bm05.json +205 -0
  108. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-02_6.36um_bm18.json +246 -0
  109. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-02_6.5um_bm05.json +205 -0
  110. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-03_6.36um_bm18.json +246 -0
  111. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-03_6.5um_bm05.json +205 -0
  112. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-04_6.5um_bm05.json +205 -0
  113. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-05_6.36um_bm18.json +246 -0
  114. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-06_6.36um_bm18.json +246 -0
  115. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-07_6.36um_bm18.json +246 -0
  116. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_complete-organ_19.89um_bm18.json +252 -0
  117. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_complete-organ_25.17um_bm05.json +199 -0
  118. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_kidney_complete-organ_25.0um_bm05.json +199 -0
  119. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_kidney_lateral-transect_2.5um_bm05.json +211 -0
  120. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-02_6.54um_bm18.json +258 -0
  121. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-03_6.54um_bm18.json +252 -0
  122. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-13_6.36um_bm18.json +246 -0
  123. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-02.1_2.256um_bm18.json +272 -0
  124. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-03.2_2.256um_bm18.json +266 -0
  125. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-13.1_2.256um_bm18.json +272 -0
  126. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_complete-organ_23.42um_bm18.json +266 -0
  127. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_complete-organ_25.25um_bm05.json +218 -0
  128. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-01_6.36um_bm18.json +246 -0
  129. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-01_6.5um_bm05.json +265 -0
  130. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-02_6.36um_bm18.json +246 -0
  131. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-02_6.5um_bm05.json +265 -0
  132. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-03_6.36um_bm18.json +246 -0
  133. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-03_6.5um_bm05.json +265 -0
  134. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-04_6.36um_bm18.json +246 -0
  135. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-05_6.36um_bm18.json +246 -0
  136. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-06_6.36um_bm18.json +246 -0
  137. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-07_6.36um_bm18.json +246 -0
  138. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-1.1_2.256um_bm18.json +272 -0
  139. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-1.2_2.256um_bm18.json +272 -0
  140. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-3.1_2.256um_bm18.json +272 -0
  141. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.1_2.256um_bm18.json +272 -0
  142. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.2_2.256um_bm18.json +272 -0
  143. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.3_2.256um_bm18.json +272 -0
  144. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-5.1_2.256um_bm18.json +272 -0
  145. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-7.1_2.256um_bm18.json +272 -0
  146. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_complete-organ_19.85um_bm18.json +240 -0
  147. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_complete-organ_25.08um_bm05.json +240 -0
  148. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-01.1_2.6um_bm05.json +258 -0
  149. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-01_6.49um_bm05.json +258 -0
  150. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-02.1_2.6um_bm05.json +258 -0
  151. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-02_6.49um_bm05.json +258 -0
  152. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_complete-organ_25.14um_bm05.json +252 -0
  153. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-01.1_2.6um_bm05.json +258 -0
  154. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-01_6.5um_bm05.json +258 -0
  155. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-02.1_2.6um_bm05.json +258 -0
  156. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-02_6.5um_bm05.json +258 -0
  157. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-03.1_2.6um_bm05.json +252 -0
  158. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-03_6.5um_bm05.json +252 -0
  159. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_complete-organ_25.0um_bm05.json +218 -0
  160. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_spleen_complete-organ_25.0um_bm05.json +199 -0
  161. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-01_6.51um_bm18.json +246 -0
  162. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-02_6.51um_bm18.json +246 -0
  163. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-04_6.51um_bm18.json +246 -0
  164. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-05_6.51um_bm18.json +246 -0
  165. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-06_6.51um_bm18.json +246 -0
  166. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-07_6.51um_bm18.json +246 -0
  167. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-1.1_2.26um_bm18.json +272 -0
  168. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-1.2_2.26um_bm18.json +272 -0
  169. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-3.1_2.26um_bm18.json +272 -0
  170. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-4.1_2.26um_bm18.json +272 -0
  171. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-4.2_2.26um_bm18.json +272 -0
  172. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-5.1_2.26um_bm18.json +272 -0
  173. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-6.1_2.26um_bm18.json +272 -0
  174. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-7.1_2.26um_bm18.json +272 -0
  175. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_complete-organ_19.89um_bm18.json +252 -0
  176. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2022-13_kidney_2_complete-organ_15.77um_bm18.json +266 -0
  177. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-01_6.51um_bm18.json +246 -0
  178. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-02_6.51um_bm18.json +246 -0
  179. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-03_6.51um_bm18.json +246 -0
  180. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-04_6.51um_bm18.json +246 -0
  181. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-05_6.51um_bm18.json +246 -0
  182. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-06_6.51um_bm18.json +246 -0
  183. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-08_6.51um_bm18.json +246 -0
  184. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_complete-organ_19.85um_bm18.json +240 -0
  185. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_complete-organ_25.27um_bm05.json +199 -0
  186. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_kidney_complete-organ_25.0um_bm05.json +199 -0
  187. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01_2.5um_bm05.json +224 -0
  188. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01_6.5um_bm05.json +218 -0
  189. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01b_6.5um_bm05.json +224 -0
  190. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-02_2.5um_bm05.json +224 -0
  191. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-02_6.5um_bm05.json +224 -0
  192. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-03_2.5um_bm05.json +224 -0
  193. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-03_6.5um_bm05.json +224 -0
  194. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-04_2.5um_bm05.json +224 -0
  195. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-04_6.5um_bm05.json +224 -0
  196. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-05_2.5um_bm05.json +224 -0
  197. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-05_6.5um_bm05.json +224 -0
  198. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_complete-organ_19.57um_bm18.json +240 -0
  199. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_complete-organ_25.33um_bm05.json +199 -0
  200. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_ROI-03_6.5um_bm05.json +205 -0
  201. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-01_2.5um_bm05.json +205 -0
  202. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-02_2.5um_bm05.json +199 -0
  203. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-04_6.5um_bm05.json +205 -0
  204. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-05b_6.5um_bm05.json +205 -0
  205. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_complete-organ_19.89um_bm18.json +252 -0
  206. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_complete-organ_25.25um_bm05.json +199 -0
  207. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-01_1.4um_bm05.json +205 -0
  208. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-01_6.5um_bm05.json +205 -0
  209. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-02_6.5um_bm05.json +205 -0
  210. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-03_6.5um_bm05.json +205 -0
  211. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_complete-organ_25.38um_bm05.json +199 -0
  212. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-2.1_2.256um_bm18.json +266 -0
  213. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-3.1_2.256um_bm18.json +272 -0
  214. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-5.3_2.256um_bm18.json +272 -0
  215. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-01_6.5um_bm05.json +205 -0
  216. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-02_6.5um_bm05.json +205 -0
  217. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-04_6.5um_bm05.json +205 -0
  218. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-05_6.5um_bm05.json +205 -0
  219. hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_complete-organ_25.31um_bm05.json +199 -0
  220. hoa_tools-1.0/src/hoa_tools/dataset.py +229 -0
  221. hoa_tools-1.0/src/hoa_tools/inventory.py +30 -0
  222. hoa_tools-1.0/src/hoa_tools/metadata.py +765 -0
  223. hoa_tools-1.0/src/hoa_tools/py.typed +0 -0
  224. hoa_tools-1.0/src/hoa_tools/registration.py +112 -0
  225. hoa_tools-1.0/src/hoa_tools/types.py +59 -0
  226. hoa_tools-1.0/src/hoa_tools/voi.py +230 -0
  227. hoa_tools-1.0/src/hoa_tools.egg-info/PKG-INFO +106 -0
  228. hoa_tools-1.0/src/hoa_tools.egg-info/SOURCES.txt +235 -0
  229. hoa_tools-1.0/src/hoa_tools.egg-info/dependency_links.txt +1 -0
  230. hoa_tools-1.0/src/hoa_tools.egg-info/requires.txt +36 -0
  231. hoa_tools-1.0/src/hoa_tools.egg-info/top_level.txt +1 -0
  232. hoa_tools-1.0/tests/cassettes/test_remote_array.yaml +352 -0
  233. hoa_tools-1.0/tests/cassettes/test_remote_array_zarr.yaml +460 -0
  234. hoa_tools-1.0/tests/test_dataset.py +69 -0
  235. hoa_tools-1.0/tests/test_inventory.py +15 -0
  236. hoa_tools-1.0/tests/test_registration.py +24 -0
  237. hoa_tools-1.0/tests/test_voi.py +14 -0
@@ -0,0 +1,15 @@
1
+ # To get started with Dependabot version updates, you'll need to specify which
2
+ # package ecosystems to update and where the package manifests are located.
3
+ # Please see the documentation for all configuration options:
4
+ # https://docs.github.com/code-security/dependabot/dependabot-version-updates/configuration-options-for-the-dependabot.yml-file
5
+
6
+ version: 2
7
+ updates:
8
+ - package-ecosystem: "github-actions" # See documentation for possible values
9
+ directory: "/" # Location of package manifests
10
+ schedule:
11
+ interval: "weekly"
12
+ groups:
13
+ github-actions:
14
+ patterns:
15
+ - "*"
@@ -0,0 +1,66 @@
1
+ name: Tests
2
+
3
+ on:
4
+ push:
5
+ branches:
6
+ - main
7
+ pull_request:
8
+ paths-ignore:
9
+ - "**.md"
10
+
11
+ jobs:
12
+ test:
13
+ runs-on: ubuntu-latest
14
+ strategy:
15
+ matrix:
16
+ python-version:
17
+ - "3.11"
18
+ - "3.12"
19
+ - "3.13"
20
+
21
+ steps:
22
+ - uses: actions/checkout@v4
23
+ with:
24
+ submodules: true
25
+
26
+ - name: Install uv
27
+ uses: astral-sh/setup-uv@v5
28
+
29
+ - name: Set up Python ${{ matrix.python-version }}
30
+ run: uv python install ${{ matrix.python-version }}
31
+
32
+ - name: Install dependencies
33
+ run: uv sync --all-extras --dev
34
+
35
+ - name: Run tests
36
+ # For example, using `pytest`
37
+ run: uv run pytest
38
+
39
+ - name: Upload coverage reports to Codecov
40
+ uses: codecov/codecov-action@v5
41
+ with:
42
+ token: ${{ secrets.CODECOV_TOKEN }}
43
+
44
+ type-check:
45
+ runs-on: ubuntu-latest
46
+ strategy:
47
+ matrix:
48
+ python-version:
49
+ - "3.12"
50
+
51
+ steps:
52
+ - uses: actions/checkout@v4
53
+ with:
54
+ submodules: true
55
+
56
+ - name: Install uv
57
+ uses: astral-sh/setup-uv@v5
58
+
59
+ - name: Set up Python ${{ matrix.python-version }}
60
+ run: uv python install ${{ matrix.python-version }}
61
+
62
+ - name: Install dependencies
63
+ run: uv sync --all-extras --dev
64
+
65
+ - name: Run type checking
66
+ run: uv run mypy src/hoa_tools
@@ -0,0 +1,172 @@
1
+ # Byte-compiled / optimized / DLL files
2
+ __pycache__/
3
+ *.py[cod]
4
+ *$py.class
5
+
6
+ # C extensions
7
+ *.so
8
+
9
+ # Distribution / packaging
10
+ .Python
11
+ build/
12
+ develop-eggs/
13
+ dist/
14
+ downloads/
15
+ eggs/
16
+ .eggs/
17
+ lib/
18
+ lib64/
19
+ parts/
20
+ sdist/
21
+ var/
22
+ wheels/
23
+ share/python-wheels/
24
+ *.egg-info/
25
+ .installed.cfg
26
+ *.egg
27
+ MANIFEST
28
+
29
+ # PyInstaller
30
+ # Usually these files are written by a python script from a template
31
+ # before PyInstaller builds the exe, so as to inject date/other infos into it.
32
+ *.manifest
33
+ *.spec
34
+
35
+ # Installer logs
36
+ pip-log.txt
37
+ pip-delete-this-directory.txt
38
+
39
+ # Unit test / coverage reports
40
+ htmlcov/
41
+ .tox/
42
+ .nox/
43
+ .coverage
44
+ .coverage.*
45
+ .cache
46
+ nosetests.xml
47
+ coverage.xml
48
+ *.cover
49
+ *.py,cover
50
+ .hypothesis/
51
+ .pytest_cache/
52
+ cover/
53
+
54
+ # Translations
55
+ *.mo
56
+ *.pot
57
+
58
+ # Django stuff:
59
+ *.log
60
+ local_settings.py
61
+ db.sqlite3
62
+ db.sqlite3-journal
63
+
64
+ # Flask stuff:
65
+ instance/
66
+ .webassets-cache
67
+
68
+ # Scrapy stuff:
69
+ .scrapy
70
+
71
+ # Sphinx documentation
72
+ docs/_build/
73
+
74
+ # PyBuilder
75
+ .pybuilder/
76
+ target/
77
+
78
+ # Jupyter Notebook
79
+ .ipynb_checkpoints
80
+
81
+ # IPython
82
+ profile_default/
83
+ ipython_config.py
84
+
85
+ # pyenv
86
+ # For a library or package, you might want to ignore these files since the code is
87
+ # intended to run in multiple environments; otherwise, check them in:
88
+ # .python-version
89
+
90
+ # pipenv
91
+ # According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control.
92
+ # However, in case of collaboration, if having platform-specific dependencies or dependencies
93
+ # having no cross-platform support, pipenv may install dependencies that don't work, or not
94
+ # install all needed dependencies.
95
+ #Pipfile.lock
96
+
97
+ # poetry
98
+ # Similar to Pipfile.lock, it is generally recommended to include poetry.lock in version control.
99
+ # This is especially recommended for binary packages to ensure reproducibility, and is more
100
+ # commonly ignored for libraries.
101
+ # https://python-poetry.org/docs/basic-usage/#commit-your-poetrylock-file-to-version-control
102
+ #poetry.lock
103
+
104
+ # pdm
105
+ # Similar to Pipfile.lock, it is generally recommended to include pdm.lock in version control.
106
+ #pdm.lock
107
+ # pdm stores project-wide configurations in .pdm.toml, but it is recommended to not include it
108
+ # in version control.
109
+ # https://pdm.fming.dev/#use-with-ide
110
+ .pdm.toml
111
+
112
+ # PEP 582; used by e.g. github.com/David-OConnor/pyflow and github.com/pdm-project/pdm
113
+ __pypackages__/
114
+
115
+ # Celery stuff
116
+ celerybeat-schedule
117
+ celerybeat.pid
118
+
119
+ # SageMath parsed files
120
+ *.sage.py
121
+
122
+ # Environments
123
+ .env
124
+ .venv
125
+ env/
126
+ venv/
127
+ ENV/
128
+ env.bak/
129
+ venv.bak/
130
+
131
+ # Spyder project settings
132
+ .spyderproject
133
+ .spyproject
134
+
135
+ # Rope project settings
136
+ .ropeproject
137
+
138
+ # mkdocs documentation
139
+ /site
140
+
141
+ # mypy
142
+ .mypy_cache/
143
+ .dmypy.json
144
+ dmypy.json
145
+
146
+ # Pyre type checker
147
+ .pyre/
148
+
149
+ # pytype static type analyzer
150
+ .pytype/
151
+
152
+ # Cython debug symbols
153
+ cython_debug/
154
+
155
+ # PyCharm
156
+ # JetBrains specific template is maintained in a separate JetBrains.gitignore that can
157
+ # be found at https://github.com/github/gitignore/blob/main/Global/JetBrains.gitignore
158
+ # and can be added to the global gitignore or merged into this file. For a more nuclear
159
+ # option (not recommended) you can uncomment the following to ignore the entire idea folder.
160
+ #.idea/
161
+
162
+ # package version
163
+ _version.py
164
+
165
+ # Docs
166
+ docs/_api_autogen
167
+
168
+ # macOS
169
+ .DS_Store
170
+
171
+ # uv
172
+ uv.lock
@@ -0,0 +1,3 @@
1
+ [submodule "src/hoa_tools/data/metadata"]
2
+ path = src/hoa_tools/data/metadata
3
+ url = https://github.com/HumanOrganAtlas/metadata-schemas
@@ -0,0 +1,44 @@
1
+ ci:
2
+ autoupdate_commit_msg: "Update pre-commit hooks"
3
+
4
+ repos:
5
+ - repo: https://github.com/astral-sh/ruff-pre-commit
6
+ rev: v0.11.4
7
+ hooks:
8
+ - id: ruff
9
+ - id: ruff-format
10
+
11
+ - repo: https://github.com/rbubley/mirrors-prettier
12
+ rev: v3.5.3
13
+ hooks:
14
+ - id: prettier
15
+
16
+ - repo: https://github.com/pre-commit/pre-commit-hooks
17
+ rev: v5.0.0
18
+ hooks:
19
+ - id: check-case-conflict
20
+ - id: check-merge-conflict
21
+ - id: check-toml
22
+ - id: end-of-file-fixer
23
+ - id: mixed-line-ending
24
+ args:
25
+ - --fix=lf
26
+ - id: trailing-whitespace
27
+
28
+ - repo: https://github.com/codespell-project/codespell
29
+ rev: v2.4.1
30
+ hooks:
31
+ - id: codespell
32
+ args: ["--write-changes"]
33
+
34
+ - repo: https://github.com/adamchainz/blacken-docs
35
+ rev: 1.19.1
36
+ hooks:
37
+ - id: blacken-docs
38
+ additional_dependencies:
39
+ - black==22.12.0
40
+
41
+ - repo: https://github.com/ComPWA/taplo-pre-commit
42
+ rev: v0.9.3
43
+ hooks:
44
+ - id: taplo-format
@@ -0,0 +1,20 @@
1
+ version: 2
2
+
3
+ submodules:
4
+ include:
5
+ - src/hoa_tools/data/metadata
6
+
7
+ build:
8
+ os: ubuntu-22.04
9
+ tools:
10
+ python: "3.12"
11
+
12
+ python:
13
+ install:
14
+ - method: pip
15
+ path: .
16
+ extra_requirements:
17
+ - docs
18
+
19
+ mkdocs:
20
+ configuration: mkdocs.yml
@@ -0,0 +1,5 @@
1
+ {
2
+ "python.testing.pytestArgs": ["tests"],
3
+ "python.testing.unittestEnabled": false,
4
+ "python.testing.pytestEnabled": true
5
+ }
@@ -0,0 +1,10 @@
1
+ cff-version: 1.2.0
2
+ message: "If you use this software, please cite it as below."
3
+ type: software
4
+ authors:
5
+ - family-names: "Stansby"
6
+ given-names: "David"
7
+ email: "d.stansby@ucl.ac.uk"
8
+ repository-code: "https://github.com/HumanOrganAtlas/hoa-tools"
9
+ title: "HOA Tools: Tools for working with the Human Organ Atlas"
10
+ license: "BSD-3"
@@ -0,0 +1,27 @@
1
+ Copyright (c) 2024, David Stansby
2
+ All rights reserved.
3
+
4
+ Redistribution and use in source and binary forms, with or without
5
+ modification, are permitted provided that the following conditions are met:
6
+
7
+ - Redistributions of source code must retain the above copyright notice, this
8
+ list of conditions and the following disclaimer.
9
+
10
+ - Redistributions in binary form must reproduce the above copyright notice,
11
+ this list of conditions and the following disclaimer in the documentation
12
+ and/or other materials provided with the distribution.
13
+
14
+ - Neither the name of HOA Tools nor the names of its
15
+ contributors may be used to endorse or promote products derived from
16
+ this software without specific prior written permission.
17
+
18
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
19
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
20
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
21
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
22
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
23
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
24
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
25
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
26
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
27
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
@@ -0,0 +1,2 @@
1
+ include src/hoa_tools/data/metadata/metadata/*.json
2
+ prune src/hoa_tools/tests
hoa_tools-1.0/PKG-INFO ADDED
@@ -0,0 +1,106 @@
1
+ Metadata-Version: 2.4
2
+ Name: hoa-tools
3
+ Version: 1.0
4
+ Summary: Tools for working with the Human Organ Atlas
5
+ Author-email: David Stansby <d.stansby@ucl.ac.uk>
6
+ License: Copyright (c) 2024, David Stansby
7
+ All rights reserved.
8
+
9
+ Redistribution and use in source and binary forms, with or without
10
+ modification, are permitted provided that the following conditions are met:
11
+
12
+ - Redistributions of source code must retain the above copyright notice, this
13
+ list of conditions and the following disclaimer.
14
+
15
+ - Redistributions in binary form must reproduce the above copyright notice,
16
+ this list of conditions and the following disclaimer in the documentation
17
+ and/or other materials provided with the distribution.
18
+
19
+ - Neither the name of HOA Tools nor the names of its
20
+ contributors may be used to endorse or promote products derived from
21
+ this software without specific prior written permission.
22
+
23
+ THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
24
+ AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
25
+ IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
26
+ DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
27
+ FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
28
+ DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
29
+ SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
30
+ CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
31
+ OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
32
+ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
33
+
34
+ Project-URL: homepage, https://github.com/HumanOrganAtlas/hoa-tools
35
+ Classifier: Operating System :: POSIX
36
+ Classifier: Programming Language :: Python :: 3
37
+ Classifier: Programming Language :: Python :: 3 :: Only
38
+ Classifier: Programming Language :: Python :: 3.11
39
+ Classifier: Programming Language :: Python :: 3.12
40
+ Classifier: Programming Language :: Python :: 3.13
41
+ Classifier: Typing :: Typed
42
+ Requires-Python: >=3.11
43
+ Description-Content-Type: text/markdown
44
+ License-File: LICENSE.md
45
+ Requires-Dist: dask[array]
46
+ Requires-Dist: gcsfs>2023
47
+ Requires-Dist: pandas>=2
48
+ Requires-Dist: pydantic>=2
49
+ Requires-Dist: simpleitk
50
+ Requires-Dist: xarray
51
+ Requires-Dist: zarr<3,>2.16
52
+ Provides-Extra: dev
53
+ Requires-Dist: build; extra == "dev"
54
+ Requires-Dist: mypy; extra == "dev"
55
+ Requires-Dist: pre-commit; extra == "dev"
56
+ Requires-Dist: ruff; extra == "dev"
57
+ Requires-Dist: jupyterlab; extra == "dev"
58
+ Requires-Dist: jupytext; extra == "dev"
59
+ Requires-Dist: pandas-stubs; extra == "dev"
60
+ Requires-Dist: datamodel-code-generator; extra == "dev"
61
+ Provides-Extra: docs
62
+ Requires-Dist: mkdocs; extra == "docs"
63
+ Requires-Dist: mkdocstrings-python; extra == "docs"
64
+ Requires-Dist: mkdocs-material; extra == "docs"
65
+ Requires-Dist: mkdocs-jupyter; extra == "docs"
66
+ Requires-Dist: griffe-pydantic; extra == "docs"
67
+ Requires-Dist: matplotlib; extra == "docs"
68
+ Requires-Dist: numpydoc; extra == "docs"
69
+ Requires-Dist: scikit-image; extra == "docs"
70
+ Provides-Extra: test
71
+ Requires-Dist: matplotlib; extra == "test"
72
+ Requires-Dist: pytest; extra == "test"
73
+ Requires-Dist: pytest-accept; extra == "test"
74
+ Requires-Dist: pytest-cov; extra == "test"
75
+ Requires-Dist: pytest-doctestplus; extra == "test"
76
+ Requires-Dist: pytest-vcr; extra == "test"
77
+ Requires-Dist: scikit-image; extra == "test"
78
+ Dynamic: license-file
79
+
80
+ # HOA Tools
81
+
82
+ [![Tests status][tests-badge]][tests-link]
83
+ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/HumanOrganAtlas/hoa-tools/main.svg)](https://results.pre-commit.ci/latest/github/HumanOrganAtlas/hoa-tools/main)
84
+ [![Documentation Status](https://readthedocs.org/projects/hoa-tools/badge/?version=latest)](https://hoa-tools.readthedocs.io/en/latest/?badge=latest)
85
+
86
+ [![License][license-badge]](./LICENSE.md)
87
+
88
+ <!--
89
+ [![PyPI version][pypi-version]][pypi-link]
90
+ [![Conda-Forge][conda-badge]][conda-link]
91
+ [![PyPI platforms][pypi-platforms]][pypi-link]
92
+ -->
93
+
94
+ <!-- prettier-ignore-start -->
95
+ [tests-badge]: https://github.com/HumanOrganAtlas/hoa-tools/actions/workflows/tests.yml/badge.svg
96
+ [tests-link]: https://github.com/HumanOrganAtlas/hoa-tools/actions/workflows/tests.yml
97
+ [conda-badge]: https://img.shields.io/conda/vn/conda-forge/hoa-tools
98
+ [conda-link]: https://github.com/conda-forge/hoa-tools-feedstock
99
+ [pypi-link]: https://pypi.org/project/hoa-tools/
100
+ [pypi-platforms]: https://img.shields.io/pypi/pyversions/hoa-tools
101
+ [pypi-version]: https://img.shields.io/pypi/v/hoa-tools
102
+ [license-badge]: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
103
+ <!-- prettier-ignore-end -->
104
+
105
+ Tools for working with data from the [Human Organ Atlas](https://human-organ-atlas.esrf.eu/).
106
+ Documentation at https://hoa-tools.readthedocs.io.
@@ -0,0 +1,27 @@
1
+ # HOA Tools
2
+
3
+ [![Tests status][tests-badge]][tests-link]
4
+ [![pre-commit.ci status](https://results.pre-commit.ci/badge/github/HumanOrganAtlas/hoa-tools/main.svg)](https://results.pre-commit.ci/latest/github/HumanOrganAtlas/hoa-tools/main)
5
+ [![Documentation Status](https://readthedocs.org/projects/hoa-tools/badge/?version=latest)](https://hoa-tools.readthedocs.io/en/latest/?badge=latest)
6
+
7
+ [![License][license-badge]](./LICENSE.md)
8
+
9
+ <!--
10
+ [![PyPI version][pypi-version]][pypi-link]
11
+ [![Conda-Forge][conda-badge]][conda-link]
12
+ [![PyPI platforms][pypi-platforms]][pypi-link]
13
+ -->
14
+
15
+ <!-- prettier-ignore-start -->
16
+ [tests-badge]: https://github.com/HumanOrganAtlas/hoa-tools/actions/workflows/tests.yml/badge.svg
17
+ [tests-link]: https://github.com/HumanOrganAtlas/hoa-tools/actions/workflows/tests.yml
18
+ [conda-badge]: https://img.shields.io/conda/vn/conda-forge/hoa-tools
19
+ [conda-link]: https://github.com/conda-forge/hoa-tools-feedstock
20
+ [pypi-link]: https://pypi.org/project/hoa-tools/
21
+ [pypi-platforms]: https://img.shields.io/pypi/pyversions/hoa-tools
22
+ [pypi-version]: https://img.shields.io/pypi/v/hoa-tools
23
+ [license-badge]: https://img.shields.io/badge/License-BSD_3--Clause-blue.svg
24
+ <!-- prettier-ignore-end -->
25
+
26
+ Tools for working with data from the [Human Organ Atlas](https://human-organ-atlas.esrf.eu/).
27
+ Documentation at https://hoa-tools.readthedocs.io.
@@ -0,0 +1,3 @@
1
+ # `hoa_tools.dataset`
2
+
3
+ ::: hoa_tools.dataset
@@ -0,0 +1,10 @@
1
+ # API reference
2
+
3
+ These pages contain reference documentation for the classes and functions
4
+ in `hoa-tools`.
5
+
6
+ - [`hoa_tools.dataset`](dataset.md)
7
+ - [`hoa_tools.inventory`](inventory.md)
8
+ - [`hoa_tools.metadata`](metadata.md)
9
+ - [`hoa_tools.types`](types.md)
10
+ - [`hoa_tools.voi`](voi.md)
@@ -0,0 +1,3 @@
1
+ # `hoa_tools.inventory`
2
+
3
+ ::: hoa_tools.inventory
@@ -0,0 +1,5 @@
1
+ # `hoa_tools.metadata`
2
+
3
+ Metadata model for dataset metadata.
4
+
5
+ ::: hoa_tools.metadata
@@ -0,0 +1,3 @@
1
+ # `hoa_tools.types`
2
+
3
+ ::: hoa_tools.types
@@ -0,0 +1,3 @@
1
+ # `hoa_tools.voi`
2
+
3
+ ::: hoa_tools.voi
@@ -0,0 +1,14 @@
1
+ # Development
2
+
3
+ ## Updating the inventory
4
+
5
+ To update the version of the inventory, update the git submodule at src/hoa_tools/data/metadata.
6
+ The inventory is stored separately at https://github.com/HumanOrganAtlas/metadata-schemas.
7
+
8
+ ## Generating the data model
9
+
10
+ Using [datamodel-code-generator](https://github.com/koxudaxi/datamodel-code-generator/):
11
+
12
+ ```
13
+ datamodel-codegen --input src/hoa_tools/data/metadata/metadata-schema.json --input-file-type jsonschema --output src/hoa_tools/metadata.py --output-model-type pydantic_v2.BaseModel --use-annotated --enum-field-as-literal all --use-union-operator --use-standard-collections
14
+ ```
@@ -0,0 +1,6 @@
1
+ # How do I...?
2
+
3
+ ## Use a private copy of the metadata database?
4
+
5
+ Download the private metadata JSON files to a directory on your computer,
6
+ then use [hoa_tools.dataset.change_metadata_directory][].
@@ -0,0 +1,19 @@
1
+ # Human Organ Atlas Python Tools
2
+
3
+ This package contains tools for working with data from the [Human Organ Atlas](https://human-organ-atlas.esrf.eu).
4
+
5
+ ## Getting started
6
+
7
+ A few useful places to start:
8
+
9
+ - The [tutorial](tutorial/index.md) contains a step by step guide to using `hoa-tools`
10
+ - [How do I...?](how_to.md) lists how to do common tasks with `hoa-tools`
11
+ - The [API reference](api/index.md) contains a listing of classes and functions in `hoa-tools`
12
+
13
+ ## Feedback
14
+
15
+ Suggestions and bug reports are very welcome, and encouraged! Please [open an issue](https://github.com/HumanOrganAtlas/hoa-tools/issues/new) on our GitHub issue tracker.
16
+
17
+ ## Contributing
18
+
19
+ Contributions are very welcome, and encouraged! Please open a pull request with your suggested change on our [GitHub repository](https://github.com/HumanOrganAtlas/hoa-tools).
@@ -0,0 +1,5 @@
1
+ # Release notes
2
+
3
+ ## 1.0
4
+
5
+ First release of the `hoa-tools` package 🚀
@@ -0,0 +1,37 @@
1
+ # # Individual datasets
2
+ #
3
+ # In this chapter we'll look at what we can do with an individual dataset.
4
+ # In ``hoa-tools`` individual datasets are represented by `Dataset` objects.
5
+
6
+ import pandas as pd
7
+
8
+ import hoa_tools.dataset
9
+ import hoa_tools.inventory
10
+
11
+ pd.options.display.width = None # type: ignore[assignment]
12
+
13
+ # First, lets print all the spleen datasets available from the inventory::
14
+
15
+ inventory = hoa_tools.inventory.load_inventory()
16
+ spleen_inventory = inventory[inventory["organ"] == "spleen"]
17
+ spleen_inventory
18
+
19
+ # We can see that three datasets are available. They are from the same organ, with one being the full
20
+ # organ dataset and two being high resolution region of interest datasets. Lets get the full organ
21
+ # dataset
22
+
23
+ whole_spleen = hoa_tools.dataset.get_dataset(
24
+ "LADAF-2020-27_spleen_complete-organ_25.08um_bm05"
25
+ )
26
+ whole_spleen
27
+
28
+ # Because this is a full-organ dataset, it will have a number of child datasets. These are scans of
29
+ # the same organ taken at a higher resolution over a subset of the full volume. For our selected
30
+ # dataset these child datasets are::
31
+
32
+ child_datasets = whole_spleen.get_children()
33
+ for dataset in child_datasets:
34
+ print(dataset)
35
+
36
+ # We can see there are two child datasets, one at a resolution of 1.29 μm and one at a
37
+ # resolution of 6.05 μm.
@@ -0,0 +1,41 @@
1
+ # # Fetching data
2
+
3
+ # In this tutorial we will fetch some of the data. All public Human Organ Atlas
4
+ # data is available through a read-only public Google Cloud Storage bucket.
5
+ # in a chunked data format, making it easy to access sub-volumes of data.
6
+
7
+ # ## Getting a remote data store
8
+
9
+ # First we'll fetch a `Dataset` object from the inventory.
10
+
11
+ import hoa_tools.dataset
12
+ import hoa_tools.inventory
13
+
14
+ inventory = hoa_tools.inventory.load_inventory()
15
+ dataset_name = inventory.index[0]
16
+ print(dataset_name)
17
+
18
+ dataset = hoa_tools.dataset.get_dataset(dataset_name)
19
+ print(dataset)
20
+
21
+ # The `Dataset.remote_array` property gives us access to a remote data array for a dataset.
22
+ # The ``level`` parameter lets us choose a downsampling level: ``level=0`` is the original
23
+ # resolution dataset, and each time the level goes up by one the dataset is downsampled
24
+ # by a factor of 2. All datasets are downsampled to ``level=4``, so lets get a remote store
25
+ # for the lowest resolution copy of the data.
26
+
27
+ data_array = dataset.data_array(downsample_level=4)
28
+ data_array
29
+
30
+ # Here we can see that the array is read-only, 16 bit, and has shape ``(477, 238, 238)``.
31
+ # At this point no data has been downloaded - to download data you need to index the remote array.
32
+ # As an example, lets fetch and show a slice in the x-y plane::
33
+
34
+
35
+ middle_slice = data_array.isel(z=437)
36
+ im = middle_slice.plot(cmap="Grays_r")
37
+ im.axes.set_aspect("equal")
38
+
39
+
40
+ # If you want to save a part of the array for later analysis, see the [xarray guide
41
+ # to reading and writing files](https://docs.xarray.dev/en/stable/user-guide/io.html).