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.
- hoa_tools-1.0/.github/dependabot.yml +15 -0
- hoa_tools-1.0/.github/workflows/tests.yml +66 -0
- hoa_tools-1.0/.gitignore +172 -0
- hoa_tools-1.0/.gitmodules +3 -0
- hoa_tools-1.0/.pre-commit-config.yaml +44 -0
- hoa_tools-1.0/.readthedocs.yml +20 -0
- hoa_tools-1.0/.vscode/settings.json +5 -0
- hoa_tools-1.0/CITATION.cff +10 -0
- hoa_tools-1.0/LICENSE.md +27 -0
- hoa_tools-1.0/MANIFEST.in +2 -0
- hoa_tools-1.0/PKG-INFO +106 -0
- hoa_tools-1.0/README.md +27 -0
- hoa_tools-1.0/docs/api/dataset.md +3 -0
- hoa_tools-1.0/docs/api/index.md +10 -0
- hoa_tools-1.0/docs/api/inventory.md +3 -0
- hoa_tools-1.0/docs/api/metadata.md +5 -0
- hoa_tools-1.0/docs/api/types.md +3 -0
- hoa_tools-1.0/docs/api/voi.md +3 -0
- hoa_tools-1.0/docs/development.md +14 -0
- hoa_tools-1.0/docs/how_to.md +6 -0
- hoa_tools-1.0/docs/index.md +19 -0
- hoa_tools-1.0/docs/release-notes.md +5 -0
- hoa_tools-1.0/docs/tutorial/dataset.py +37 -0
- hoa_tools-1.0/docs/tutorial/fetching_data.py +41 -0
- hoa_tools-1.0/docs/tutorial/index.md +11 -0
- hoa_tools-1.0/docs/tutorial/inventory.py +30 -0
- hoa_tools-1.0/docs/tutorial/registration.py +171 -0
- hoa_tools-1.0/docs/tutorial/vois.py +118 -0
- hoa_tools-1.0/mkdocs.yml +87 -0
- hoa_tools-1.0/pyproject.toml +116 -0
- hoa_tools-1.0/ruff.toml +56 -0
- hoa_tools-1.0/schemas/github-issue-forms.json +2377 -0
- hoa_tools-1.0/setup.cfg +4 -0
- hoa_tools-1.0/src/hoa_tools/__init__.py +5 -0
- hoa_tools-1.0/src/hoa_tools/_n5.py +10 -0
- hoa_tools-1.0/src/hoa_tools/_version.py +21 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/A186_lung_right_VOI-3_4.26um_bm18.json +275 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/A186_lung_right_complete-organ_24.132um_bm18.json +269 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/FO-20-124_lung_upper_lobe_complete-organ_26.38um_bm05.json +208 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/GLR-163_lung_right_lower_lobe_core-biopsy_2.45um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_L-vent-muscle_2.22um_bm05.json +210 -0
- 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
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-01_6.5um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-02_6.5um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_ROI-03_6.5um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_complete-organ_19.89um_bm18.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_heart_complete-organ_25.08um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_central-column_1.29um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_central-column_6.05um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_kidney_left_complete-organ_25.08um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_2.51um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_25.25um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-A_6.5um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_2.51um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_25.25um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_FSC-B_6.5um_bm05.json +199 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_VOI-03_6.5um_bm05.json +205 -0
- 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
- 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
- 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
- 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
- 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
- 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
- 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
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_lung_left_complete-organ_25.08um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_central-column_1.29um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_central-column_6.05um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-27_spleen_complete-organ_25.08um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_cerebellum-occipital_6.05um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_cerebellum_2.45um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_complete-organ_25.08um_bm05.json +204 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_frontal_2.45um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_hippocampus_2.45um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_brain_hippocampus_6.05um_bm05.json +210 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-01_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-01_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-02_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-02_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-03_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-03_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-04_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-05_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-06_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_ROI-07_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_complete-organ_19.89um_bm18.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_heart_complete-organ_25.17um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_kidney_complete-organ_25.0um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2020-31_kidney_lateral-transect_2.5um_bm05.json +211 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-02_6.54um_bm18.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-03_6.54um_bm18.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_ROI-13_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-02.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-03.2_2.256um_bm18.json +266 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_VOI-13.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_complete-organ_23.42um_bm18.json +266 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_brain_complete-organ_25.25um_bm05.json +218 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-01_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-01_6.5um_bm05.json +265 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-02_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-02_6.5um_bm05.json +265 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-03_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-03_6.5um_bm05.json +265 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-04_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-05_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-06_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-07_6.36um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-1.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-1.2_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-3.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.2_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-4.3_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-5.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_ROI-7.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_complete-organ_19.85um_bm18.json +240 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_heart_complete-organ_25.08um_bm05.json +240 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-01.1_2.6um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-01_6.49um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-02.1_2.6um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_VOI-02_6.49um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_left_complete-organ_25.14um_bm05.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-01.1_2.6um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-01_6.5um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-02.1_2.6um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-02_6.5um_bm05.json +258 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-03.1_2.6um_bm05.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_VOI-03_6.5um_bm05.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_kidney_right_complete-organ_25.0um_bm05.json +218 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-17_spleen_complete-organ_25.0um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-01_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-02_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-04_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-05_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-06_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-07_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-1.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-1.2_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-3.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-4.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-4.2_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-5.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-6.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_VOI-7.1_2.26um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2021-64_heart_complete-organ_19.89um_bm18.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/LADAF-2022-13_kidney_2_complete-organ_15.77um_bm18.json +266 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-01_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-02_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-03_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-04_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-05_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-06_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_VOI-08_6.51um_bm18.json +246 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_complete-organ_19.85um_bm18.json +240 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_heart_complete-organ_25.27um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-28_kidney_complete-organ_25.0um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01_2.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01_6.5um_bm05.json +218 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-01b_6.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-02_2.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-02_6.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-03_2.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-03_6.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-04_2.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-04_6.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-05_2.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_VOI-05_6.5um_bm05.json +224 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_complete-organ_19.57um_bm18.json +240 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_brain_complete-organ_25.33um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_ROI-03_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-01_2.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-02_2.5um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-04_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_VOI-05b_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_complete-organ_19.89um_bm18.json +252 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_heart_complete-organ_25.25um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-01_1.4um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-01_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-02_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_VOI-03_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_kidney_complete-organ_25.38um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-2.1_2.256um_bm18.json +266 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-3.1_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_ROI-5.3_2.256um_bm18.json +272 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-01_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-02_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-04_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_VOI-05_6.5um_bm05.json +205 -0
- hoa_tools-1.0/src/hoa_tools/data/metadata/metadata/S-20-29_lung_left_complete-organ_25.31um_bm05.json +199 -0
- hoa_tools-1.0/src/hoa_tools/dataset.py +229 -0
- hoa_tools-1.0/src/hoa_tools/inventory.py +30 -0
- hoa_tools-1.0/src/hoa_tools/metadata.py +765 -0
- hoa_tools-1.0/src/hoa_tools/py.typed +0 -0
- hoa_tools-1.0/src/hoa_tools/registration.py +112 -0
- hoa_tools-1.0/src/hoa_tools/types.py +59 -0
- hoa_tools-1.0/src/hoa_tools/voi.py +230 -0
- hoa_tools-1.0/src/hoa_tools.egg-info/PKG-INFO +106 -0
- hoa_tools-1.0/src/hoa_tools.egg-info/SOURCES.txt +235 -0
- hoa_tools-1.0/src/hoa_tools.egg-info/dependency_links.txt +1 -0
- hoa_tools-1.0/src/hoa_tools.egg-info/requires.txt +36 -0
- hoa_tools-1.0/src/hoa_tools.egg-info/top_level.txt +1 -0
- hoa_tools-1.0/tests/cassettes/test_remote_array.yaml +352 -0
- hoa_tools-1.0/tests/cassettes/test_remote_array_zarr.yaml +460 -0
- hoa_tools-1.0/tests/test_dataset.py +69 -0
- hoa_tools-1.0/tests/test_inventory.py +15 -0
- hoa_tools-1.0/tests/test_registration.py +24 -0
- 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
|
hoa_tools-1.0/.gitignore
ADDED
|
@@ -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,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,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"
|
hoa_tools-1.0/LICENSE.md
ADDED
|
@@ -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.
|
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
|
+
[](https://results.pre-commit.ci/latest/github/HumanOrganAtlas/hoa-tools/main)
|
|
84
|
+
[](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.
|
hoa_tools-1.0/README.md
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
# HOA Tools
|
|
2
|
+
|
|
3
|
+
[![Tests status][tests-badge]][tests-link]
|
|
4
|
+
[](https://results.pre-commit.ci/latest/github/HumanOrganAtlas/hoa-tools/main)
|
|
5
|
+
[](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,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,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,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,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).
|