From 5f6dd4d5f6bcbd25811368498810d9f2cd3a9dc0 Mon Sep 17 00:00:00 2001 From: ArneD Date: Mon, 9 Dec 2024 12:05:22 +0100 Subject: [PATCH] Sc 38 release (#75) * SC_38 rename * SC_38 rename * update notebooks * SC_38 release * SC_38 release * SC_38 release * SC_38 prepare release * SC_38 prepare release --- .github/workflows/build.yaml | 42 + .github/workflows/release.yaml | 31 + .github/workflows/run_tests.yml | 29 +- README.md | 11 +- docs/api.md | 44 +- docs/conf.py | 2 +- docs/index.md | 2 +- docs/installation.md | 8 +- ...o_start.ipynb => Harpy_how_to_start.ipynb} | 220 ++-- .../advanced/Harpy_QC_in_silico.ipynb | 74 +- .../advanced/Harpy_distance_calc.ipynb | 141 ++- docs/tutorials/advanced/Harpy_instanseg.ipynb | 26 +- .../advanced/Harpy_transcriptomics.ipynb | 42 +- .../Interactive_napari_cell_annotation.ipynb | 2 +- .../Interactive_napari_pixel_annotation.ipynb | 2 +- .../advanced/Rasterize_and_vectorize.ipynb | 38 +- .../advanced/coordinate_systems.ipynb | 158 +-- ...lowSOM_for_pixel_and_cell_clustering.ipynb | 100 +- docs/tutorials/general/Harpy_QC_IMC.ipynb | 94 +- .../general/Harpy_feature_calculation.ipynb | 958 +++++++++--------- .../general/Visualizing_napari.ipynb | 4 +- docs/tutorials/hpc/intro.md | 16 +- docs/usage.md | 16 +- experiments/example_of_cluster_plotter.ipynb | 4 +- .../example_pixel_cell_clustering_ark.ipynb | 100 +- .../example_pixel_cell_clustering_blobs.ipynb | 20 +- experiments/example_spatial_vib_compute.ipynb | 248 ++--- experiments/load_spatialdata.ipynb | 4 +- pyproject.toml | 4 +- scripts/create_dataset.py | 2 +- setup.cfg | 20 +- src/{sparrow => harpy}/__init__.py | 0 src/{sparrow => harpy}/_tests/__init__.py | 0 src/{sparrow => harpy}/_tests/conftest.py | 10 +- .../test_datasets/test_pixie_example.py | 0 .../test_datasets/test_transcriptomics.py | 8 +- .../_tests/test_image/test_combine.py | 2 +- .../_tests/test_image/test_contrast.py | 2 +- .../_tests/test_image/test_filters.py | 2 +- .../_tests/test_image/test_manager.py | 2 +- .../_tests/test_image/test_map.py | 2 +- .../_tests/test_image/test_normalize.py | 2 +- .../test_pixel_clustering.py | 6 +- .../test_pixel_clustering_preprocess.py | 2 +- .../_tests/test_image/test_rasterize.py | 4 +- .../test_segmentation/test_align_masks.py | 2 +- .../test_segmentation/test_expand_labels.py | 2 +- .../test_segmentation/test_filter_masks.py | 2 +- .../test_image/test_segmentation/test_grid.py | 2 +- .../test_segmentation/test_map_labels.py | 2 +- .../test_segmentation/test_merge_masks.py | 2 +- .../test_segmentation/test_segmentation.py | 8 +- .../_tests/test_image/test_transcripts.py | 2 +- .../_tests/test_notebooks.py | 4 +- .../_tests/test_pipeline.py | 2 +- .../_tests/test_plot/test_plot.py | 8 +- .../_tests/test_plot/test_plot_annotation.py | 4 +- .../_tests/test_plot/test_plot_cluster.py | 4 +- .../_tests/test_plot/test_plot_transcripts.py | 2 +- .../_tests/test_shapes/test_cell_expansion.py | 2 +- .../_tests/test_shapes/test_shape.py | 4 +- .../_tests/test_table/test_allocation.py | 4 +- .../test_table/test_allocation_intensity.py | 6 +- .../_tests/test_table/test_annotation.py | 4 +- .../test_cell_clustering.py | 10 +- .../_tests/test_table/test_clustering.py | 4 +- .../_tests/test_table/test_filter_on_size.py | 4 +- .../test_cluster_intensity.py | 6 +- .../_tests/test_table/test_preprocess.py | 4 +- .../_tests/test_table/test_regionprops.py | 4 +- .../_tests/test_utils/test_aggregate.py | 4 +- .../_tests/test_utils/test_query.py | 4 +- src/{sparrow => harpy}/_tests/test_widget.py | 20 +- src/{sparrow => harpy}/configs/__init__.py | 0 .../configs/allocate/default.yaml | 0 .../configs/annotate/default.yaml | 0 .../configs/clean/default.yaml | 0 .../configs/dataset/default.yaml | 0 .../configs/extras/default.yaml | 0 .../configs/hydra/default.yaml | 0 .../configs/paths/default.yaml | 0 .../configs/paths/output.yaml | 0 src/{sparrow => harpy}/configs/pipeline.yaml | 0 .../configs/segmentation/cellpose.yaml | 0 .../configs/segmentation/default.yaml | 2 +- .../configs/segmentation/watershed.yaml | 0 .../configs/visualize/default.yaml | 0 .../configs/viz/default.yaml | 0 .../configs/viz/napari.yaml | 0 src/{sparrow => harpy}/datasets/__init__.py | 0 .../datasets/cluster_blobs.py | 6 +- .../datasets/pixie_example.py | 8 +- src/{sparrow => harpy}/datasets/proteomics.py | 2 +- src/{sparrow => harpy}/datasets/registry.py | 3 +- .../datasets/transcriptomics.py | 10 +- src/{sparrow => harpy}/image/__init__.py | 2 +- src/{sparrow => harpy}/image/_combine.py | 4 +- src/{sparrow => harpy}/image/_contrast.py | 8 +- src/{sparrow => harpy}/image/_filters.py | 4 +- src/{sparrow => harpy}/image/_image.py | 6 +- src/{sparrow => harpy}/image/_manager.py | 4 +- src/{sparrow => harpy}/image/_map.py | 4 +- src/{sparrow => harpy}/image/_normalize.py | 4 +- src/{sparrow => harpy}/image/_rasterize.py | 6 +- src/{sparrow => harpy}/image/_tiling.py | 10 +- src/{sparrow => harpy}/image/_transcripts.py | 6 +- .../image/pixel_clustering/__init__.py | 0 .../image/pixel_clustering/_clustering.py | 16 +- .../image/pixel_clustering/_preprocess.py | 8 +- .../image/segmentation/__init__.py | 0 .../image/segmentation/_align_masks.py | 6 +- .../image/segmentation/_expand_masks.py | 4 +- .../image/segmentation/_filter_masks.py | 4 +- .../image/segmentation/_grid.py | 8 +- .../image/segmentation/_map.py | 8 +- .../image/segmentation/_merge_masks.py | 10 +- .../image/segmentation/_segmentation.py | 28 +- .../image/segmentation/_utils.py | 2 +- .../segmentation_models/__init__.py | 0 .../segmentation_models/_baysor.py | 2 +- .../segmentation_models/_cellpose.py | 10 +- .../segmentation_models/_instanseg.py | 2 +- .../segmentation_models/_mesmer.py | 0 .../segmentation_models/_watershed.py | 0 src/{sparrow => harpy}/io/__init__.py | 0 src/{sparrow => harpy}/io/_merscope.py | 8 +- src/{sparrow => harpy}/io/_spatial_data.py | 4 +- src/{sparrow => harpy}/io/_transcripts.py | 6 +- src/{sparrow => harpy}/io/_visium_hd.py | 2 +- src/{sparrow => harpy}/io/_xenium.py | 8 +- src/harpy/napari.yaml | 33 + src/{sparrow => harpy}/pipeline.py | 84 +- src/{sparrow => harpy}/plot/__init__.py | 2 +- src/{sparrow => harpy}/plot/_annotation.py | 4 +- .../plot/_cluster_cleanliness.py | 4 +- src/{sparrow => harpy}/plot/_clustering.py | 4 +- src/{sparrow => harpy}/plot/_enrichment.py | 4 +- src/{sparrow => harpy}/plot/_plot.py | 18 +- src/{sparrow => harpy}/plot/_preprocess.py | 4 +- src/{sparrow => harpy}/plot/_qc_cells.py | 4 +- src/{sparrow => harpy}/plot/_qc_image.py | 6 +- .../plot/_qc_segmentation.py | 2 +- src/{sparrow => harpy}/plot/_sanity.py | 14 +- src/{sparrow => harpy}/plot/_segmentation.py | 4 +- .../plot/_tiling_correction.py | 6 +- src/{sparrow => harpy}/plot/_transcripts.py | 16 +- src/{sparrow => harpy}/points/__init__.py | 0 src/{sparrow => harpy}/points/_points.py | 4 +- src/{sparrow => harpy}/shape/__init__.py | 0 .../shape/_cell_expansion.py | 4 +- src/{sparrow => harpy}/shape/_manager.py | 8 +- src/{sparrow => harpy}/shape/_shape.py | 4 +- src/{sparrow => harpy}/single.py | 6 +- src/{sparrow => harpy}/table/__init__.py | 2 +- src/{sparrow => harpy}/table/_allocation.py | 18 +- .../table/_allocation_intensity.py | 20 +- src/{sparrow => harpy}/table/_annotation.py | 8 +- src/{sparrow => harpy}/table/_clustering.py | 18 +- src/{sparrow => harpy}/table/_enrichment.py | 4 +- src/{sparrow => harpy}/table/_manager.py | 6 +- src/{sparrow => harpy}/table/_preprocess.py | 18 +- src/{sparrow => harpy}/table/_regionprops.py | 20 +- src/{sparrow => harpy}/table/_table.py | 14 +- .../table/cell_clustering/__init__.py | 0 .../table/cell_clustering/_clustering.py | 26 +- .../table/cell_clustering/_preprocess.py | 18 +- .../table/cell_clustering/_utils.py | 4 +- .../_weighted_channel_expression.py | 26 +- .../table/pixel_clustering/__init__.py | 0 .../pixel_clustering/_cluster_intensity.py | 20 +- src/harpy/utils/__init__.py | 9 + src/{sparrow => harpy}/utils/_aggregate.py | 2 +- src/{sparrow => harpy}/utils/_flowsom.py | 6 +- src/{sparrow => harpy}/utils/_io.py | 2 +- src/{sparrow => harpy}/utils/_keys.py | 0 src/{sparrow => harpy}/utils/_query.py | 8 +- .../utils/_transformations.py | 0 src/{sparrow => harpy}/utils/pylogger.py | 0 src/{sparrow => harpy}/utils/utils.py | 2 +- src/harpy/widgets/__init__.py | 19 + .../widgets/_allocate_widget.py | 12 +- .../widgets/_annotate_widget.py | 8 +- .../widgets/_clean_widget.py | 10 +- .../widgets/_load_widget.py | 14 +- .../widgets/_segment_widget.py | 10 +- .../widgets/_wizard_widget.py | 11 +- .../widgets/dambi-white.png | Bin src/{sparrow => harpy}/widgets/dambi.png | Bin src/sparrow/napari.yaml | 33 - src/sparrow/utils/__init__.py | 9 - src/sparrow/widgets/__init__.py | 18 - tox.ini | 36 - 192 files changed, 1800 insertions(+), 1721 deletions(-) create mode 100644 .github/workflows/build.yaml create mode 100644 .github/workflows/release.yaml rename docs/tutorials/{SPArrOW_how_to_start.ipynb => Harpy_how_to_start.ipynb} (99%) rename src/{sparrow => harpy}/__init__.py (100%) rename src/{sparrow => harpy}/_tests/__init__.py (100%) rename src/{sparrow => harpy}/_tests/conftest.py (93%) rename src/{sparrow => harpy}/_tests/test_datasets/test_pixie_example.py (100%) rename src/{sparrow => harpy}/_tests/test_datasets/test_transcriptomics.py (85%) rename src/{sparrow => harpy}/_tests/test_image/test_combine.py (91%) rename src/{sparrow => harpy}/_tests/test_image/test_contrast.py (90%) rename src/{sparrow => harpy}/_tests/test_image/test_filters.py (92%) rename src/{sparrow => harpy}/_tests/test_image/test_manager.py (97%) rename src/{sparrow => harpy}/_tests/test_image/test_map.py (99%) rename src/{sparrow => harpy}/_tests/test_image/test_normalize.py (97%) rename src/{sparrow => harpy}/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py (94%) rename src/{sparrow => harpy}/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py (88%) rename src/{sparrow => harpy}/_tests/test_image/test_rasterize.py (96%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_align_masks.py (88%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_expand_labels.py (94%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_filter_masks.py (93%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_grid.py (97%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_map_labels.py (92%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_merge_masks.py (96%) rename src/{sparrow => harpy}/_tests/test_image/test_segmentation/test_segmentation.py (93%) rename src/{sparrow => harpy}/_tests/test_image/test_transcripts.py (83%) rename src/{sparrow => harpy}/_tests/test_notebooks.py (98%) rename src/{sparrow => harpy}/_tests/test_pipeline.py (93%) rename src/{sparrow => harpy}/_tests/test_plot/test_plot.py (96%) rename src/{sparrow => harpy}/_tests/test_plot/test_plot_annotation.py (90%) rename src/{sparrow => harpy}/_tests/test_plot/test_plot_cluster.py (87%) rename src/{sparrow => harpy}/_tests/test_plot/test_plot_transcripts.py (85%) rename src/{sparrow => harpy}/_tests/test_shapes/test_cell_expansion.py (90%) rename src/{sparrow => harpy}/_tests/test_shapes/test_shape.py (94%) rename src/{sparrow => harpy}/_tests/test_table/test_allocation.py (96%) rename src/{sparrow => harpy}/_tests/test_table/test_allocation_intensity.py (95%) rename src/{sparrow => harpy}/_tests/test_table/test_annotation.py (95%) rename src/{sparrow => harpy}/_tests/test_table/test_cell_clustering/test_cell_clustering.py (90%) rename src/{sparrow => harpy}/_tests/test_table/test_clustering.py (96%) rename src/{sparrow => harpy}/_tests/test_table/test_filter_on_size.py (91%) rename src/{sparrow => harpy}/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py (85%) rename src/{sparrow => harpy}/_tests/test_table/test_preprocess.py (96%) rename src/{sparrow => harpy}/_tests/test_table/test_regionprops.py (84%) rename src/{sparrow => harpy}/_tests/test_utils/test_aggregate.py (99%) rename src/{sparrow => harpy}/_tests/test_utils/test_query.py (97%) rename src/{sparrow => harpy}/_tests/test_widget.py (90%) rename src/{sparrow => harpy}/configs/__init__.py (100%) rename src/{sparrow => harpy}/configs/allocate/default.yaml (100%) rename src/{sparrow => harpy}/configs/annotate/default.yaml (100%) rename src/{sparrow => harpy}/configs/clean/default.yaml (100%) rename src/{sparrow => harpy}/configs/dataset/default.yaml (100%) rename src/{sparrow => harpy}/configs/extras/default.yaml (100%) rename src/{sparrow => harpy}/configs/hydra/default.yaml (100%) rename src/{sparrow => harpy}/configs/paths/default.yaml (100%) rename src/{sparrow => harpy}/configs/paths/output.yaml (100%) rename src/{sparrow => harpy}/configs/pipeline.yaml (100%) rename src/{sparrow => harpy}/configs/segmentation/cellpose.yaml (100%) rename src/{sparrow => harpy}/configs/segmentation/default.yaml (74%) rename src/{sparrow => harpy}/configs/segmentation/watershed.yaml (100%) rename src/{sparrow => harpy}/configs/visualize/default.yaml (100%) rename src/{sparrow => harpy}/configs/viz/default.yaml (100%) rename src/{sparrow => harpy}/configs/viz/napari.yaml (100%) rename src/{sparrow => harpy}/datasets/__init__.py (100%) rename src/{sparrow => harpy}/datasets/cluster_blobs.py (97%) rename src/{sparrow => harpy}/datasets/pixie_example.py (96%) rename src/{sparrow => harpy}/datasets/proteomics.py (98%) rename src/{sparrow => harpy}/datasets/registry.py (97%) rename src/{sparrow => harpy}/datasets/transcriptomics.py (95%) rename src/{sparrow => harpy}/image/__init__.py (95%) rename src/{sparrow => harpy}/image/_combine.py (98%) rename src/{sparrow => harpy}/image/_contrast.py (95%) rename src/{sparrow => harpy}/image/_filters.py (98%) rename src/{sparrow => harpy}/image/_image.py (98%) rename src/{sparrow => harpy}/image/_manager.py (98%) rename src/{sparrow => harpy}/image/_map.py (99%) rename src/{sparrow => harpy}/image/_normalize.py (97%) rename src/{sparrow => harpy}/image/_rasterize.py (98%) rename src/{sparrow => harpy}/image/_tiling.py (95%) rename src/{sparrow => harpy}/image/_transcripts.py (97%) rename src/{sparrow => harpy}/image/pixel_clustering/__init__.py (100%) rename src/{sparrow => harpy}/image/pixel_clustering/_clustering.py (94%) rename src/{sparrow => harpy}/image/pixel_clustering/_preprocess.py (97%) rename src/{sparrow => harpy}/image/segmentation/__init__.py (100%) rename src/{sparrow => harpy}/image/segmentation/_align_masks.py (98%) rename src/{sparrow => harpy}/image/segmentation/_expand_masks.py (97%) rename src/{sparrow => harpy}/image/segmentation/_filter_masks.py (97%) rename src/{sparrow => harpy}/image/segmentation/_grid.py (96%) rename src/{sparrow => harpy}/image/segmentation/_map.py (98%) rename src/{sparrow => harpy}/image/segmentation/_merge_masks.py (98%) rename src/{sparrow => harpy}/image/segmentation/_segmentation.py (97%) rename src/{sparrow => harpy}/image/segmentation/_utils.py (99%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/__init__.py (100%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/_baysor.py (99%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/_cellpose.py (91%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/_instanseg.py (98%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/_mesmer.py (100%) rename src/{sparrow => harpy}/image/segmentation/segmentation_models/_watershed.py (100%) rename src/{sparrow => harpy}/io/__init__.py (100%) rename src/{sparrow => harpy}/io/_merscope.py (97%) rename src/{sparrow => harpy}/io/_spatial_data.py (98%) rename src/{sparrow => harpy}/io/_transcripts.py (98%) rename src/{sparrow => harpy}/io/_visium_hd.py (97%) rename src/{sparrow => harpy}/io/_xenium.py (97%) create mode 100644 src/harpy/napari.yaml rename src/{sparrow => harpy}/pipeline.py (92%) rename src/{sparrow => harpy}/plot/__init__.py (95%) rename src/{sparrow => harpy}/plot/_annotation.py (96%) rename src/{sparrow => harpy}/plot/_cluster_cleanliness.py (97%) rename src/{sparrow => harpy}/plot/_clustering.py (97%) rename src/{sparrow => harpy}/plot/_enrichment.py (94%) rename src/{sparrow => harpy}/plot/_plot.py (98%) rename src/{sparrow => harpy}/plot/_preprocess.py (95%) rename src/{sparrow => harpy}/plot/_qc_cells.py (94%) rename src/{sparrow => harpy}/plot/_qc_image.py (97%) rename src/{sparrow => harpy}/plot/_qc_segmentation.py (97%) rename src/{sparrow => harpy}/plot/_sanity.py (96%) rename src/{sparrow => harpy}/plot/_segmentation.py (97%) rename src/{sparrow => harpy}/plot/_tiling_correction.py (97%) rename src/{sparrow => harpy}/plot/_transcripts.py (94%) rename src/{sparrow => harpy}/points/__init__.py (100%) rename src/{sparrow => harpy}/points/_points.py (94%) rename src/{sparrow => harpy}/shape/__init__.py (100%) rename src/{sparrow => harpy}/shape/_cell_expansion.py (97%) rename src/{sparrow => harpy}/shape/_manager.py (98%) rename src/{sparrow => harpy}/shape/_shape.py (98%) rename src/{sparrow => harpy}/single.py (65%) rename src/{sparrow => harpy}/table/__init__.py (93%) rename src/{sparrow => harpy}/table/_allocation.py (96%) rename src/{sparrow => harpy}/table/_allocation_intensity.py (95%) rename src/{sparrow => harpy}/table/_annotation.py (99%) rename src/{sparrow => harpy}/table/_clustering.py (94%) rename src/{sparrow => harpy}/table/_enrichment.py (94%) rename src/{sparrow => harpy}/table/_manager.py (93%) rename src/{sparrow => harpy}/table/_preprocess.py (95%) rename src/{sparrow => harpy}/table/_regionprops.py (94%) rename src/{sparrow => harpy}/table/_table.py (95%) rename src/{sparrow => harpy}/table/cell_clustering/__init__.py (100%) rename src/{sparrow => harpy}/table/cell_clustering/_clustering.py (83%) rename src/{sparrow => harpy}/table/cell_clustering/_preprocess.py (93%) rename src/{sparrow => harpy}/table/cell_clustering/_utils.py (97%) rename src/{sparrow => harpy}/table/cell_clustering/_weighted_channel_expression.py (87%) rename src/{sparrow => harpy}/table/pixel_clustering/__init__.py (100%) rename src/{sparrow => harpy}/table/pixel_clustering/_cluster_intensity.py (92%) create mode 100644 src/harpy/utils/__init__.py rename src/{sparrow => harpy}/utils/_aggregate.py (99%) rename src/{sparrow => harpy}/utils/_flowsom.py (80%) rename src/{sparrow => harpy}/utils/_io.py (97%) rename src/{sparrow => harpy}/utils/_keys.py (100%) rename src/{sparrow => harpy}/utils/_query.py (97%) rename src/{sparrow => harpy}/utils/_transformations.py (100%) rename src/{sparrow => harpy}/utils/pylogger.py (100%) rename src/{sparrow => harpy}/utils/utils.py (98%) create mode 100644 src/harpy/widgets/__init__.py rename src/{sparrow => harpy}/widgets/_allocate_widget.py (95%) rename src/{sparrow => harpy}/widgets/_annotate_widget.py (96%) rename src/{sparrow => harpy}/widgets/_clean_widget.py (95%) rename src/{sparrow => harpy}/widgets/_load_widget.py (91%) rename src/{sparrow => harpy}/widgets/_segment_widget.py (96%) rename src/{sparrow => harpy}/widgets/_wizard_widget.py (96%) rename src/{sparrow => harpy}/widgets/dambi-white.png (100%) rename src/{sparrow => harpy}/widgets/dambi.png (100%) delete mode 100644 src/sparrow/napari.yaml delete mode 100644 src/sparrow/utils/__init__.py delete mode 100644 src/sparrow/widgets/__init__.py delete mode 100644 tox.ini diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml new file mode 100644 index 00000000..12b7bbd9 --- /dev/null +++ b/.github/workflows/build.yaml @@ -0,0 +1,42 @@ +name: build + +on: + push: + branches: + - main + pull_request: + branches: [main] + +jobs: + build: + runs-on: ubuntu-latest + + steps: + - name: Checkout Code + uses: actions/checkout@v3 + + - name: Set up Python + uses: actions/setup-python@v4 + with: + python-version: '3.12' + cache: "pip" + cache-dependency-path: "**/setup.cfg" + + - name: Install Build Dependencies + run: | + python -m pip install --upgrade pip setuptools wheel build twine + + - name: Build Package + run: | + python -m build + + #- name: Upload Build Artifacts + # uses: actions/upload-artifact@v3 + # with: + # name: dist-artifacts + # path: dist/ + + + - name: Check Package + run: | + twine check --strict dist/* diff --git a/.github/workflows/release.yaml b/.github/workflows/release.yaml new file mode 100644 index 00000000..80bf710e --- /dev/null +++ b/.github/workflows/release.yaml @@ -0,0 +1,31 @@ +name: Release + +on: + release: + types: [published] + +jobs: + release: + # requires that you have put your twine API key in your + # github secrets + runs-on: ubuntu-latest + if: contains(github.ref, 'tags') + steps: + - name: Checkout code + uses: actions/checkout@v3 + + - name: Set up Python 3.12 + uses: actions/setup-python@v4 + with: + python-version: "3.12" + + - name: Install hatch + run: pip install hatch + + - name: Build project for distribution + run: hatch build + + - name: Publish a Python distribution to PyPI + uses: pypa/gh-action-pypi-publish@release/v1 + with: + password: ${{ secrets.PYPI_API_TOKEN }} \ No newline at end of file diff --git a/.github/workflows/run_tests.yml b/.github/workflows/run_tests.yml index ff38aad9..d473881a 100644 --- a/.github/workflows/run_tests.yml +++ b/.github/workflows/run_tests.yml @@ -3,17 +3,18 @@ name: Run tests on: workflow_dispatch: - push: - branches: - - main +# skip automatic testing + #push: + # branches: + # - main - #pull_request: - # branches: - # - main + #pull_request: + # branches: + # - main - paths: - - "src/sparrow/**" - - ".github/workflows/run_tests.yml" + # paths: + # - "src/harpy/**" + # - ".github/workflows/run_tests.yml" env: CACHE_NUMBER: 1 # increase to reset cache manually @@ -37,7 +38,7 @@ jobs: with: miniforge-variant: Mambaforge miniforge-version: latest - activate-environment: napari-sparrow + activate-environment: harpy use-mamba: true python-version: ${{ matrix.python-version }} @@ -58,17 +59,17 @@ jobs: id: cache - name: Update environment - run: mamba env update -n napari-sparrow -f environment.yml + run: mamba env update -n harpy -f environment.yml if: steps.cache.outputs.cache-hit != 'true' # this runs the platform-specific tests declared in tox.ini - name: Test with tox shell: bash -l {0} run: | - conda activate napari-sparrow + conda activate harpy pip install -e '.[testing]' - pip install tox tox-gh-actions - tox + pytest --ignore=src/harpy/_tests/test_widget.py --color=yes --cov=dummy --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing + env: PLATFORM: ${{ matrix.os }} diff --git a/README.md b/README.md index 2fdc62a6..465d1b0a 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ # **Harpy: single-cell spatial proteomics analysis that makes you happy** +![Build Status](https://github.com//saeyslab/harpy/actions/workflows/build.yaml/badge.svg) [![documentation badge](https://readthedocs.org/projects/harpy/badge/?version=latest)](https://harpy.readthedocs.io/en/latest/) Note: This package is still under very active development. @@ -46,7 +47,7 @@ If you encounter any problems, please [file an issue] along with a detailed desc [Cookiecutter]: https://github.com/audreyr/cookiecutter [BSD-3]: http://opensource.org/licenses/BSD-3-Clause [cookiecutter-napari-plugin]: https://github.com/napari/cookiecutter-napari-plugin -[file an issue]: https://github.com/saeyslab/napari-sparrow/issues +[file an issue]: https://github.com/saeyslab/harpy/issues [napari]: https://github.com/napari/napari [tox]: https://tox.readthedocs.io/en/latest/ [pip]: https://pypi.org/project/pip/ diff --git a/docs/api.md b/docs/api.md index 92d0e401..74f6bf84 100644 --- a/docs/api.md +++ b/docs/api.md @@ -4,9 +4,9 @@ Import Harpy as:: - import sparrow as sp + import harpy as hp -.. module:: sparrow +.. module:: harpy ``` ## IO @@ -15,8 +15,8 @@ I/O. ```{eval-rst} -.. module:: sparrow.io -.. currentmodule:: sparrow +.. module:: harpy.io +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -38,8 +38,8 @@ Operations on image and labels layers. ```{eval-rst} -.. module:: sparrow.im -.. currentmodule:: sparrow +.. module:: harpy.im +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -76,8 +76,8 @@ Operations on shapes (polygons) layers. ```{eval-rst} -.. module:: sparrow.sh -.. currentmodule:: sparrow +.. module:: harpy.sh +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -94,8 +94,8 @@ Operations on table (`AnnData` object) layers. ```{eval-rst} -.. module:: sparrow.tb -.. currentmodule:: sparrow +.. module:: harpy.tb +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -126,8 +126,8 @@ Operations on points (`Dask` `DataFrame` object) layers. ```{eval-rst} -.. module:: sparrow.pt -.. currentmodule:: sparrow +.. module:: harpy.pt +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -143,8 +143,8 @@ Plotting functions. ```{eval-rst} -.. module:: sparrow.pl -.. currentmodule:: sparrow +.. module:: harpy.pl +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -161,8 +161,8 @@ Plotting functions. ```{eval-rst} -.. module:: sparrow.pl -.. currentmodule:: sparrow +.. module:: harpy.pl +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -182,8 +182,8 @@ Plotting functions. ```{eval-rst} -.. module:: sparrow.pl -.. currentmodule:: sparrow +.. module:: harpy.pl +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -204,8 +204,8 @@ Utility functions. ```{eval-rst} -.. module:: sparrow.utils -.. currentmodule:: sparrow +.. module:: harpy.utils +.. currentmodule:: harpy .. autosummary:: :toctree: generated @@ -219,8 +219,8 @@ Dataset loaders. ```{eval-rst} -.. module:: sparrow.datasets -.. currentmodule:: sparrow +.. module:: harpy.datasets +.. currentmodule:: harpy .. autosummary:: :toctree: generated diff --git a/docs/conf.py b/docs/conf.py index 0b0020ba..33e08f9d 100644 --- a/docs/conf.py +++ b/docs/conf.py @@ -16,7 +16,7 @@ # -- Project information ----------------------------------------------------- -info = metadata("sparrow") +info = metadata("harpy-analysis") project_name = info["Name"] author = "SaeysLab" copyright = f"{datetime.now():%Y}, {author}" diff --git a/docs/index.md b/docs/index.md index ed8a3408..3d23c51b 100644 --- a/docs/index.md +++ b/docs/index.md @@ -50,7 +50,7 @@ Please read our documentation to learn more. ``` -The Harpy Python package described here builds on the spatial transcriptomics analysis tool [SPArrOW](https://github.com/saeyslab/napari-sparrow) and keeps the package name for compatibility. +The Harpy Python package described here builds on the spatial transcriptomics analysis tool [SPArrOW](https://github.com/saeyslab/napari-sparrow). For spatial proteomics analysis, cite [the Harpy GitHub repository](https://github.com/saeyslab/harpy). diff --git a/docs/installation.md b/docs/installation.md index a048678c..13a9a6d3 100644 --- a/docs/installation.md +++ b/docs/installation.md @@ -13,7 +13,7 @@ mamba env update -f environment.yml --prune conda activate harpy ``` -If you plan to use the `Harpy` function `sp.im.tiling_correction`, please install `jax` and `basicpy`. On Mac and Linux, this can be done via `pip install ...`, on Windows you will have to run the following commands: +If you plan to use the `Harpy` function `harpy.im.tiling_correction`, please install `jax` and `basicpy`. On Mac and Linux, this can be done via `pip install ...`, on Windows you will have to run the following commands: ```bash pip install "jax[cpu]" -f https://whls.blob.core.windows.net/unstable/index.html --use-deprecated legacy-resolver @@ -35,19 +35,19 @@ pip install git+https://github.com/saeyslab/harpy.git To use the plugin, run ```bash -pip install "git+https://github.com/saeyslab/harpy.git#egg=sparrow[plugin]" +pip install "git+https://github.com/saeyslab/harpy.git#egg=harpy[plugin]" ``` To run `Harpy` from the `cli`: ```bash -pip install "git+https://github.com/saeyslab/harpy.git#egg=sparrow[cli]" +pip install "git+https://github.com/saeyslab/harpy.git#egg=harpy[cli]" ``` To be able to run the unit tests: ```bash -pip install "git+https://github.com/saeyslab/harpy.git#egg=sparrow[testing]" +pip install "git+https://github.com/saeyslab/harpy.git#egg=harpy[testing]" ``` diff --git a/docs/tutorials/SPArrOW_how_to_start.ipynb b/docs/tutorials/Harpy_how_to_start.ipynb similarity index 99% rename from docs/tutorials/SPArrOW_how_to_start.ipynb rename to docs/tutorials/Harpy_how_to_start.ipynb index 06fa767e..26706dc6 100644 --- a/docs/tutorials/SPArrOW_how_to_start.ipynb +++ b/docs/tutorials/Harpy_how_to_start.ipynb @@ -4,7 +4,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "# SPArrOW, how to start" + "# Harpy, how to start" ] }, { @@ -36,7 +36,7 @@ } ], "source": [ - "import sparrow as sp" + "import harpy as hp" ] }, { @@ -46,9 +46,9 @@ "source": [ "## 1. Read in the data\n", "\n", - "The first step of the SPArrOW pipeline includes reading in the raw data. This, minimally, includes the stained image(s) and the transcript locations.\n", + "The first step of the Harpy pipeline includes reading in the raw data. This, minimally, includes the stained image(s) and the transcript locations.\n", "\n", - "The example dataset for this notebook will be downloaded and cached using `pooch` via `sparrow.dataset.registry`.\n", + "The example dataset for this notebook will be downloaded and cached using `pooch` via `harpy.dataset.registry`.\n", "\n", "For the input images, there are different options (see API documentation for more details)\n", "\n", @@ -57,7 +57,7 @@ "- define a list of paths for different stainings (stored in different channels)\n", "- define a pattern representing a collection of z-stacks. (these are currently by default max-projcted to form one image). \n", "\n", - "The transcript location file is expected to be a txt or csv file. For RESOLVE, StereoSeq and Vizgen, specific dataloaders are created (still in progress for xenium and CosMx). For a new datatype, you can read the API on the function sp.io.read_transcripts.\n", + "The transcript location file is expected to be a txt or csv file. For RESOLVE, StereoSeq and Vizgen, specific dataloaders are created (still in progress for xenium and CosMx). For a new datatype, you can read the API on the function harpy.io.read_transcripts.\n", "\n", "The image is then read in to a SpatialData object (see https://spatialdata.scverse.org/en/latest/ for more information). As the Spatial datasets are often larger-than memory, a path to where all data will be stored is asked. \n", "\n", @@ -76,7 +76,7 @@ }, "outputs": [], "source": [ - "from sparrow.datasets.registry import get_registry\n", + "from harpy.datasets.registry import get_registry\n", "import tempfile\n", "\n", "# change this path. It is the directory where the spatialdata .zarr will be saved.\n", @@ -130,8 +130,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:38:52,488 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:38:52,493 - sparrow.image._manager - INFO - Writing results to layer 'raw_image'\n" + "2024-07-19 11:38:52,488 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:38:52,493 - harpy.image._manager - INFO - Writing results to layer 'raw_image'\n" ] } ], @@ -144,7 +144,7 @@ "# you can choose any name for your zarr file\n", "zarr_path = os.path.join( OUTPUT_DIR, f\"sdata_{uuid.uuid4()}.zarr\")\n", "\n", - "sdata = sp.io.create_sdata(\n", + "sdata = hp.io.create_sdata(\n", " input=path_image,\n", " output_path=zarr_path,\n", " img_layer=img_layer,\n", @@ -203,7 +203,7 @@ "source": [ "crd = [2000, 6000, 3000, 6000] # crd used for visualization purposes\n", "\n", - "sp.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))" + "hp.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))" ] }, { @@ -246,8 +246,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:39:07,548 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:39:07,552 - sparrow.image._manager - INFO - Writing results to layer 'tiling_correction'\n" + "2024-07-19 11:39:07,548 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:39:07,552 - harpy.image._manager - INFO - Writing results to layer 'tiling_correction'\n" ] }, { @@ -262,12 +262,12 @@ } ], "source": [ - "sdata, flatfields = sp.im.tiling_correction(\n", + "sdata, flatfields = hp.im.tiling_correction(\n", " sdata=sdata, img_layer=\"raw_image\", crd=crop_param, output_layer=\"tiling_correction\", overwrite=True\n", ")\n", "\n", - "#sp.pl.flatfield(flatfields[0])\n", - "sp.pl.tiling_correction(\n", + "#hp.pl.flatfield(flatfields[0])\n", + "hp.pl.tiling_correction(\n", " sdata, crd=crd, img_layer=[\"raw_image\", \"tiling_correction\"], figsize=(10, 10)\n", ")" ] @@ -283,7 +283,7 @@ "\n", "- A min max filter can be added. The goal of this function is to substract background noise, and make the borders of the nuclei/cells cleaner, plus it will delete the occasional debris. If you take the size too small, smaller then the size of your nuclei, the function will create donuts, with black spots in the center of your cells. If the size of the min max filter is chosen too big, not enough background is substracted, so a tradeoff should be made. This might need some finetuning. For nuclei in RESOLVE data, 45-55 is a great starting point. Bigger for whole cells. Adapt this parameter to make sure you delete debris and HALO's. \n", "\n", - "- We recommend to perform contrast enhancing on your image. SPArrOW does this by using histogram equalization (CLAHE function). The amount of correction needed can be decided by adapting the contrast_clip value. If the image is already quite bright, 3.5 might be a good starting value. For dark images, you can go up to 10 or even more. Make sure at the end the whole image is evenly illuminated and no cells are dark in the background.\n", + "- We recommend to perform contrast enhancing on your image. Harpy does this by using histogram equalization (CLAHE function). The amount of correction needed can be decided by adapting the contrast_clip value. If the image is already quite bright, 3.5 might be a good starting value. For dark images, you can go up to 10 or even more. Make sure at the end the whole image is evenly illuminated and no cells are dark in the background.\n", "\n", "In every cleaning step, a new image is created and save to memory, hat is then used as an input for the next step. Note that it is currently not possible to overwrite these objects. You will have to define a new name every time you run the function, and thne in the end delete the images you don't need on disk. \n", " \n", @@ -299,10 +299,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:39:08,172 - sparrow.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filter at 0x10564b130>). Specifying z-slices ([0]).\n", - "2024-07-19 11:39:08,172 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 45}}/{0: ._apply_min_max_filter at 0x10564b130>}). Specifying channels ([0]).\n", - "2024-07-19 11:39:08,183 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:39:08,187 - sparrow.image._manager - INFO - Writing results to layer 'min_max_filtered'\n" + "2024-07-19 11:39:08,172 - harpy.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filter at 0x10564b130>). Specifying z-slices ([0]).\n", + "2024-07-19 11:39:08,172 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 45}}/{0: ._apply_min_max_filter at 0x10564b130>}). Specifying channels ([0]).\n", + "2024-07-19 11:39:08,183 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:39:08,187 - harpy.image._manager - INFO - Writing results to layer 'min_max_filtered'\n" ] }, { @@ -319,10 +319,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:39:09,991 - sparrow.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x3d87f8940>). Specifying z-slices ([0]).\n", - "2024-07-19 11:39:09,992 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'contrast_clip': 3.5}}/{0: ._apply_clahe at 0x3d87f8940>}). Specifying channels ([0]).\n", - "2024-07-19 11:39:10,026 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:39:10,030 - sparrow.image._manager - INFO - Writing results to layer 'clahe'\n" + "2024-07-19 11:39:09,991 - harpy.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x3d87f8940>). Specifying z-slices ([0]).\n", + "2024-07-19 11:39:09,992 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'contrast_clip': 3.5}}/{0: ._apply_clahe at 0x3d87f8940>}). Specifying channels ([0]).\n", + "2024-07-19 11:39:10,026 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:39:10,030 - harpy.image._manager - INFO - Writing results to layer 'clahe'\n" ] }, { @@ -337,14 +337,14 @@ } ], "source": [ - "sdata = sp.im.min_max_filtering(\n", + "sdata = hp.im.min_max_filtering(\n", " sdata=sdata, img_layer=\"tiling_correction\", output_layer=\"min_max_filtered\", size_min_max_filter=45, overwrite=True\n", ")\n", - "sp.pl.plot_image(sdata, img_layer=\"min_max_filtered\", crd=crd, figsize=(5, 5))\n", - "sdata = sp.im.enhance_contrast(\n", + "hp.pl.plot_image(sdata, img_layer=\"min_max_filtered\", crd=crd, figsize=(5, 5))\n", + "sdata = hp.im.enhance_contrast(\n", " sdata=sdata, img_layer=\"min_max_filtered\", output_layer=\"clahe\", contrast_clip=3.5, chunks=20000, overwrite=True\n", ")\n", - "sp.pl.plot_image(sdata, img_layer=\"clahe\", crd=crd, figsize=(5, 5))" + "hp.pl.plot_image(sdata, img_layer=\"clahe\", crd=crd, figsize=(5, 5))" ] }, { @@ -376,8 +376,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:37,520 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:40:37,525 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n" + "2024-07-19 11:40:37,520 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:40:37,525 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n" ] }, { @@ -386,10 +386,10 @@ "text": [ "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/rasterio/features.py:126: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", " for s, v in _shapes(source, mask, connectivity, transform):\n", - "2024-07-19 11:40:42,225 - sparrow.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", - "2024-07-19 11:40:42,580 - sparrow.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", - "2024-07-19 11:40:42,618 - sparrow.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", - "2024-07-19 11:40:43,199 - sparrow.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n" + "2024-07-19 11:40:42,225 - harpy.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", + "2024-07-19 11:40:42,580 - harpy.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", + "2024-07-19 11:40:42,618 - harpy.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n", + "2024-07-19 11:40:43,199 - harpy.image.segmentation._apply - WARNING - Chunks are not relabeled. Please make sure that provided Callable returns unique labels across chunks, otherwise collisions can be expected.\n" ] }, { @@ -404,7 +404,7 @@ } ], "source": [ - "sdata = sp.im.segment(\n", + "sdata = hp.im.segment(\n", " sdata=sdata,\n", " img_layer=\"clahe\",\n", " output_labels_layer=\"segmentation_mask\",\n", @@ -421,7 +421,7 @@ " overwrite=True,\n", ")\n", "\n", - "sp.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "hp.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -440,8 +440,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:41,638 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:40:41,641 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask_expanded'\n" + "2024-07-19 11:40:41,638 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:40:41,641 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask_expanded'\n" ] }, { @@ -458,7 +458,7 @@ "source": [ "expand_masks = True\n", "if expand_masks:\n", - " sdata = sp.im.expand_labels_layer(\n", + " sdata = hp.im.expand_labels_layer(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " distance=10,\n", @@ -466,7 +466,7 @@ " output_shapes_layer=\"segmentation_mask_expanded_boundaries\",\n", " overwrite=True,\n", " )\n", - " sp.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_expanded_boundaries\")" + " hp.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_expanded_boundaries\")" ] }, { @@ -483,7 +483,7 @@ "source": [ "### 4.1 Creating the count matrix\n", "In this step we\n", - "- load in the transcipts: in the case of RESOLVE this is done with a specific loader. If no specific loader exist for your datatype, you can use the general `sp.io.read_transcripts` function.\n", + "- load in the transcipts: in the case of RESOLVE this is done with a specific loader. If no specific loader exist for your datatype, you can use the general `harpy.io.read_transcripts` function.\n", "- allocate the transcripts to the correct cell. This allocation step creates the count matrix, saved in an anndata object that is reachable by typing sdata.table\n", "- Visual checks" ] @@ -497,23 +497,23 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:46,722 - sparrow.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", - "2024-07-19 11:40:46,722 - sparrow.io._transcripts - INFO - Transform matrix used:\n", + "2024-07-19 11:40:46,722 - harpy.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", + "2024-07-19 11:40:46,722 - harpy.io._transcripts - INFO - Transform matrix used:\n", " [[1. 0. 0.]\n", " [0. 1. 0.]\n", " [0. 0. 1.]]\n", - "2024-07-19 11:40:48,001 - sparrow.table._allocation - INFO - Calculating cell counts.\n", - "2024-07-19 11:40:48,774 - sparrow.shape._manager - INFO - Filtering 14 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:40:49,155 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", - "2024-07-19 11:40:49,559 - sparrow.shape._manager - INFO - Filtering 14 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:40:49,932 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n" + "2024-07-19 11:40:48,001 - harpy.table._allocation - INFO - Calculating cell counts.\n", + "2024-07-19 11:40:48,774 - harpy.shape._manager - INFO - Filtering 14 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:40:49,155 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", + "2024-07-19 11:40:49,559 - harpy.shape._manager - INFO - Filtering 14 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:40:49,932 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n" ] } ], "source": [ - "sdata = sp.io.read_resolve_transcripts(sdata, output_layer=\"transcripts\", path_count_matrix=path_coordinates, overwrite=True)\n", + "sdata = hp.io.read_resolve_transcripts(sdata, output_layer=\"transcripts\", path_count_matrix=path_coordinates, overwrite=True)\n", "\n", - "sdata = sp.tb.allocate(\n", + "sdata = hp.tb.allocate(\n", " sdata=sdata,\n", " labels_layer=\"segmentation_mask\",\n", " points_layer=\"transcripts\",\n", @@ -610,10 +610,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:50,518 - sparrow.plot._sanity - INFO - Plotting 35 transcripts.\n", - "2024-07-19 11:40:50,520 - sparrow.plot._sanity - INFO - Selecting boundaries\n", - "2024-07-19 11:40:50,581 - sparrow.plot._sanity - INFO - Plotting boundaries\n", - "2024-07-19 11:40:50,608 - sparrow.plot._sanity - INFO - End plotting boundaries\n" + "2024-07-19 11:40:50,518 - harpy.plot._sanity - INFO - Plotting 35 transcripts.\n", + "2024-07-19 11:40:50,520 - harpy.plot._sanity - INFO - Selecting boundaries\n", + "2024-07-19 11:40:50,581 - harpy.plot._sanity - INFO - Plotting boundaries\n", + "2024-07-19 11:40:50,608 - harpy.plot._sanity - INFO - End plotting boundaries\n" ] }, { @@ -643,7 +643,7 @@ "\n", " print(f\"plot transcripts matrix for cell {random_cell} and gene {random_gene}\")\n", "\n", - " sp.pl.sanity_plot_transcripts_matrix(\n", + " hp.pl.sanity_plot_transcripts_matrix(\n", " sdata=sdata,\n", " img_layer=\"clahe\",\n", " points_layer=\"transcripts\",\n", @@ -663,7 +663,7 @@ "\n", "It is possible to visualize these entities on the image with red borders, by making use of the shapes_layer_filtered parameter. As you can see, in this case, only 17 entities were filtered. This will be very dataset dependent. When there are regions with necrosis for example, this number will be way higher. \n", "\n", - "Visualizing these cells shows clearly on plots that those cells weren't missed with segmentation, but were missed becasue of no transcripts measured, an issue? SPArrOW cannot solve." + "Visualizing these cells shows clearly on plots that those cells weren't missed with segmentation, but were missed becasue of no transcripts measured, an issue?" ] }, { @@ -731,7 +731,7 @@ } ], "source": [ - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"clahe\",\n", " shapes_layer=\"segmentation_mask_boundaries\",\n", @@ -760,8 +760,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:52,553 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-19 11:40:52,558 - sparrow.image._manager - INFO - Writing results to layer 'transcript_density'\n" + "2024-07-19 11:40:52,553 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-19 11:40:52,558 - harpy.image._manager - INFO - Writing results to layer 'transcript_density'\n" ] }, { @@ -776,14 +776,14 @@ } ], "source": [ - "sdata = sp.im.transcript_density(\n", + "sdata = hp.im.transcript_density(\n", " sdata,\n", " img_layer=\"clahe\",\n", " points_layer=\"transcripts\",\n", " output_layer=\"transcript_density\",\n", " overwrite=True,\n", ")\n", - "sp.pl.transcript_density(sdata, img_layer=[\"clahe\", \"transcript_density\"])" + "hp.pl.transcript_density(sdata, img_layer=[\"clahe\", \"transcript_density\"])" ] }, { @@ -827,7 +827,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:40:55,605 - sparrow.plot._transcripts - INFO - The ten genes with the highest proportion of transcripts filtered out in the region of interest ([x_min,x_max,y_min,y_max]=(0, 6432, 0, 6432)):\n", + "2024-07-19 11:40:55,605 - harpy.plot._transcripts - INFO - The ten genes with the highest proportion of transcripts filtered out in the region of interest ([x_min,x_max,y_min,y_max]=(0, 6432, 0, 6432)):\n", " proportion_kept raw_counts\n", "Ms4a7 0.000000 1\n", "Gls2 0.162150 21992\n", @@ -843,7 +843,7 @@ } ], "source": [ - "filtered = sp.pl.analyse_genes_left_out(\n", + "filtered = hp.pl.analyse_genes_left_out(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics\",\n", @@ -926,17 +926,17 @@ "output_type": "stream", "text": [ "OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.\n", - "2024-07-19 11:40:55,763 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'segmentation_mask'\n", - "2024-07-19 11:40:56,469 - sparrow.shape._manager - INFO - Filtering 99 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:40:57,184 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", - "2024-07-19 11:40:57,560 - sparrow.shape._manager - INFO - Filtering 99 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:40:58,105 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n" + "2024-07-19 11:40:55,763 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'segmentation_mask'\n", + "2024-07-19 11:40:56,469 - harpy.shape._manager - INFO - Filtering 99 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:40:57,184 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", + "2024-07-19 11:40:57,560 - harpy.shape._manager - INFO - Filtering 99 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:40:58,105 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n" ] } ], "source": [ "# Perform preprocessing.\n", - "sdata = sp.tb.preprocess_transcriptomics(\n", + "sdata = hp.tb.preprocess_transcriptomics(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics\",\n", @@ -1436,7 +1436,7 @@ } ], "source": [ - "sp.pl.preprocess_transcriptomics(\n", + "hp.pl.preprocess_transcriptomics(\n", " sdata,\n", " table_layer=\"table_transcriptomics_preprocessed\",\n", ")" @@ -1463,7 +1463,7 @@ } ], "source": [ - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"clahe\",\n", " table_layer=\"table_transcriptomics_preprocessed\",\n", @@ -1495,11 +1495,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:00,965 - sparrow.shape._manager - INFO - Filtering 74 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:41:01,670 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", - "2024-07-19 11:41:02,182 - sparrow.shape._manager - INFO - Filtering 74 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", - "2024-07-19 11:41:02,890 - sparrow.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n", - "2024-07-19 11:41:03,339 - sparrow.table._table - INFO - 74 cells were filtered out based on size.\n" + "2024-07-19 11:41:00,965 - harpy.shape._manager - INFO - Filtering 74 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:41:01,670 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_boundaries' already exists. Overwriting...\n", + "2024-07-19 11:41:02,182 - harpy.shape._manager - INFO - Filtering 74 cells from shapes layer 'segmentation_mask_expanded_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_expanded_boundaries' containing these filtered out polygons.\n", + "2024-07-19 11:41:02,890 - harpy.utils._io - WARNING - layer with name 'segmentation_mask_expanded_boundaries' already exists. Overwriting...\n", + "2024-07-19 11:41:03,339 - harpy.table._table - INFO - 74 cells were filtered out based on size.\n" ] }, { @@ -1514,7 +1514,7 @@ } ], "source": [ - "sdata = sp.tb.filter_on_size(\n", + "sdata = hp.tb.filter_on_size(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics_preprocessed\",\n", @@ -1524,7 +1524,7 @@ " overwrite=True,\n", ")\n", "\n", - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"clahe\",\n", " table_layer=\"table_transcriptomics_filter\",\n", @@ -1644,7 +1644,7 @@ } ], "source": [ - "sdata = sp.tb.leiden(\n", + "sdata = hp.tb.leiden(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics_filter\",\n", @@ -1659,13 +1659,13 @@ " overwrite=True,\n", ")\n", "\n", - "sp.pl.cluster(\n", + "hp.pl.cluster(\n", " sdata,\n", " table_layer=\"table_transcriptomics_clustered\",\n", " key_added=\"leiden\",\n", ")\n", "\n", - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"clahe\",\n", " table_layer=\"table_transcriptomics_clustered\",\n", @@ -1689,7 +1689,7 @@ "source": [ "## 6. Annotating the cells \n", "\n", - "Afte we created the count matrix, we are going to annotate the cells. SPArrOW has its own annotation algorithm, that starts fro m a marker gene list. \n", + "Afte we created the count matrix, we are going to annotate the cells. Harpy has its own annotation algorithm, that starts fro m a marker gene list. \n", "It is an enrichment score algorithm, that compares the expression of marker genes in cells with a celltype weighted average. For this reason, the annotation happens iteratively. \n", "\n", "The input marker gene list should be a csv file, with the marker genes in the rows and the celltypes in the columns. The weight given to a celltype/ marker gene combination should reflect the marker gene specifity of the gene to the celltype.\n", @@ -1711,8 +1711,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:19,933 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:20,019 - sparrow.table._annotation - INFO - annotation\n", + "2024-07-19 11:41:19,933 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:20,019 - harpy.table._annotation - INFO - annotation\n", "HepatocytesPortal 30.523347\n", "HepatocytesCentral 12.629270\n", "LECs 10.937010\n", @@ -1763,9 +1763,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:20,236 - sparrow.table._annotation - INFO - Iteration 0.\n", - "2024-07-19 11:41:20,321 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:20,408 - sparrow.table._annotation - INFO - Percentage of cells with changed annotation: 14.73\n" + "2024-07-19 11:41:20,236 - harpy.table._annotation - INFO - Iteration 0.\n", + "2024-07-19 11:41:20,321 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:20,408 - harpy.table._annotation - INFO - Percentage of cells with changed annotation: 14.73\n" ] }, { @@ -1792,7 +1792,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:20,679 - sparrow.table._annotation - INFO - annotation\n", + "2024-07-19 11:41:20,679 - harpy.table._annotation - INFO - annotation\n", "HepatocytesPortal 39.486055\n", "HepatocytesCentral 15.230335\n", "LSEC Central 10.247571\n", @@ -1826,9 +1826,9 @@ "stellateAll 0.062676\n", "NK cells 0.062676\n", "Name: count, dtype: float64\n", - "2024-07-19 11:41:20,680 - sparrow.table._annotation - INFO - Iteration 1.\n", - "2024-07-19 11:41:20,774 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:20,862 - sparrow.table._annotation - INFO - Percentage of cells with changed annotation: 4.26\n" + "2024-07-19 11:41:20,680 - harpy.table._annotation - INFO - Iteration 1.\n", + "2024-07-19 11:41:20,774 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:20,862 - harpy.table._annotation - INFO - Percentage of cells with changed annotation: 4.26\n" ] }, { @@ -1855,7 +1855,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:21,305 - sparrow.table._annotation - INFO - annotation\n", + "2024-07-19 11:41:21,305 - harpy.table._annotation - INFO - annotation\n", "HepatocytesPortal 41.805077\n", "HepatocytesCentral 15.731746\n", "LSEC Central 9.714823\n", @@ -1889,9 +1889,9 @@ "NK cells 0.062676\n", "Basophils 0.031338\n", "Name: count, dtype: float64\n", - "2024-07-19 11:41:21,306 - sparrow.table._annotation - INFO - Iteration 2.\n", - "2024-07-19 11:41:21,394 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:21,480 - sparrow.table._annotation - INFO - Percentage of cells with changed annotation: 0.66\n" + "2024-07-19 11:41:21,306 - harpy.table._annotation - INFO - Iteration 2.\n", + "2024-07-19 11:41:21,394 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:21,480 - harpy.table._annotation - INFO - Percentage of cells with changed annotation: 0.66\n" ] }, { @@ -1918,7 +1918,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:21,751 - sparrow.table._annotation - INFO - annotation\n", + "2024-07-19 11:41:21,751 - harpy.table._annotation - INFO - annotation\n", "HepatocytesPortal 42.212473\n", "HepatocytesCentral 15.919774\n", "LSEC Central 9.652147\n", @@ -1952,9 +1952,9 @@ "NK cells 0.062676\n", "Basophils 0.031338\n", "Name: count, dtype: float64\n", - "2024-07-19 11:41:21,752 - sparrow.table._annotation - INFO - Iteration 3.\n", - "2024-07-19 11:41:21,846 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:21,933 - sparrow.table._annotation - INFO - Percentage of cells with changed annotation: 0.13\n" + "2024-07-19 11:41:21,752 - harpy.table._annotation - INFO - Iteration 3.\n", + "2024-07-19 11:41:21,846 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:21,933 - harpy.table._annotation - INFO - Percentage of cells with changed annotation: 0.13\n" ] }, { @@ -1981,7 +1981,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-19 11:41:22,201 - sparrow.table._annotation - INFO - annotation\n", + "2024-07-19 11:41:22,201 - harpy.table._annotation - INFO - annotation\n", "HepatocytesPortal 42.275149\n", "HepatocytesCentral 15.825760\n", "LSEC Central 9.652147\n", @@ -2015,17 +2015,17 @@ "NK cells 0.062676\n", "Basophils 0.031338\n", "Name: count, dtype: float64\n", - "2024-07-19 11:41:22,202 - sparrow.table._annotation - INFO - Iteration 4.\n", - "2024-07-19 11:41:22,304 - sparrow.table._annotation - INFO - Scaling based on number of markers per celltype.\n", - "2024-07-19 11:41:22,392 - sparrow.table._annotation - INFO - Percentage of cells with changed annotation: 0.0\n", - "2024-07-19 11:41:22,393 - sparrow.table._annotation - INFO - converged\n" + "2024-07-19 11:41:22,202 - harpy.table._annotation - INFO - Iteration 4.\n", + "2024-07-19 11:41:22,304 - harpy.table._annotation - INFO - Scaling based on number of markers per celltype.\n", + "2024-07-19 11:41:22,392 - harpy.table._annotation - INFO - Percentage of cells with changed annotation: 0.0\n", + "2024-07-19 11:41:22,393 - harpy.table._annotation - INFO - converged\n" ] } ], "source": [ "path_mg = registry.fetch( \"transcriptomics/resolve/mouse/markerGeneListMartinNoLow.csv\" )\n", "\n", - "sdata, celltypes_scored, celltypes_all = sp.tb.score_genes_iter(\n", + "sdata, celltypes_scored, celltypes_all = hp.tb.score_genes_iter(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics_clustered\",\n", @@ -2079,7 +2079,7 @@ } ], "source": [ - "from sparrow.utils._keys import _ANNOTATION_KEY\n", + "from harpy.utils._keys import _ANNOTATION_KEY\n", "\n", "import scanpy as sc\n", "\n", @@ -2109,7 +2109,7 @@ " \"filtered_size_segmentation_mask_boundaries\",\n", "]\n", "\n", - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " column=_ANNOTATION_KEY,\n", " img_layer=\"clahe\",\n", @@ -2125,7 +2125,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "Funcitonality from squidpy can be easily used from within SPArrOW, just run it on sdata.table.\n", + "Funcitonality from squidpy can be easily used from within Harpy, just run it on sdata.table.\n", "We impemented the neighborhood enrichment from scratch." ] }, @@ -2143,7 +2143,7 @@ } ], "source": [ - "sdata = sp.tb.nhood_enrichment(\n", + "sdata = hp.tb.nhood_enrichment(\n", " sdata,\n", " labels_layer=\"segmentation_mask\",\n", " table_layer=\"table_transcriptomics_score_genes_iter\",\n", @@ -2169,7 +2169,7 @@ } ], "source": [ - "sp.pl.nhood_enrichment(sdata, table_layer=\"table_transcriptomics_score_genes_enrichemnt\", celltype_column=_ANNOTATION_KEY)" + "hp.pl.nhood_enrichment(sdata, table_layer=\"table_transcriptomics_score_genes_enrichemnt\", celltype_column=_ANNOTATION_KEY)" ] }, { diff --git a/docs/tutorials/advanced/Harpy_QC_in_silico.ipynb b/docs/tutorials/advanced/Harpy_QC_in_silico.ipynb index 8c066c35..f4c5e960 100644 --- a/docs/tutorials/advanced/Harpy_QC_in_silico.ipynb +++ b/docs/tutorials/advanced/Harpy_QC_in_silico.ipynb @@ -162,11 +162,11 @@ "%load_ext autoreload\n", "%autoreload 2\n", "\n", - "import sparrow as sp\n", + "import harpy\n", "import matplotlib.pyplot as plt\n", "import spatialdata_plot # noqa\n", "import scanpy as sc\n", - "from sparrow.datasets import multisample_blobs\n", + "from harpy.datasets import multisample_blobs\n", "\n", "plt.viridis()\n", "\n", @@ -1096,7 +1096,7 @@ "output_type": "stream", "text": [ "\u001b[32m2024-09-27 15:30:05.353\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n" @@ -1541,7 +1541,7 @@ } ], "source": [ - "df = sp.pl.calculate_snr_ratio(sdata, cycles=\"cycle\")\n", + "df = harpy.pl.calculate_snr_ratio(sdata, cycles=\"cycle\")\n", "df" ] }, @@ -1565,7 +1565,7 @@ "text": [ "\u001b[32m2024-09-27 15:30:07.347\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36msnr_ratio\u001b[0m:\u001b[36m64\u001b[0m - \u001b[34m\u001b[1mPlotting SNR ratio\u001b[0m\n", "\u001b[32m2024-09-27 15:30:07.358\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n", @@ -1578,7 +1578,7 @@ "lineage_4 #277f8e 3.343991 65.138913\u001b[0m\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/textalloc/__init__.py:502: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " p = ax.transData.transform((x[i], y[i]))\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " ax.legend()\n" ] }, @@ -1604,7 +1604,7 @@ } ], "source": [ - "sp.pl.snr_ratio(sdata, color=\"cycle\")" + "harpy.pl.snr_ratio(sdata, color=\"cycle\")" ] }, { @@ -1618,7 +1618,7 @@ "text": [ "\u001b[32m2024-09-27 15:30:09.764\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mgroup_snr_ratio\u001b[0m:\u001b[36m124\u001b[0m - \u001b[34m\u001b[1mPlotting SNR ratio\u001b[0m\n", "\u001b[32m2024-09-27 15:30:09.766\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n", @@ -1631,9 +1631,9 @@ "posx and posy should be finite values\n", "\u001b[32m2024-09-27 15:30:12.253\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mgroup_snr_ratio\u001b[0m:\u001b[36m147\u001b[0m - \u001b[34m\u001b[1msample_3_image\u001b[0m\n", "posx and posy should be finite values\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:192: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:192: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " ax.legend()\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:193: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:193: UserWarning: This figure includes Axes that are not compatible with tight_layout, so results might be incorrect.\n", " plt.tight_layout()\n" ] }, @@ -1675,7 +1675,7 @@ } ], "source": [ - "sp.pl.group_snr_ratio(sdata, groupby=[\"image\", \"channel\"], color=\"cycle\")" + "harpy.pl.group_snr_ratio(sdata, groupby=[\"image\", \"channel\"], color=\"cycle\")" ] }, { @@ -1689,7 +1689,7 @@ "text": [ "\u001b[32m2024-09-27 15:30:12.883\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36msnr_ratio\u001b[0m:\u001b[36m64\u001b[0m - \u001b[34m\u001b[1mPlotting SNR ratio\u001b[0m\n", "\u001b[32m2024-09-27 15:30:12.892\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n", @@ -1702,7 +1702,7 @@ "lineage_4 3.343991 65.138913\u001b[0m\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/textalloc/__init__.py:502: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " p = ax.transData.transform((x[i], y[i]))\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " ax.legend()\n" ] }, @@ -1728,7 +1728,7 @@ } ], "source": [ - "sp.pl.snr_ratio(sdata, signal_threshold=2)" + "harpy.pl.snr_ratio(sdata, signal_threshold=2)" ] }, { @@ -1750,7 +1750,7 @@ "output_type": "stream", "text": [ "\u001b[32m2024-09-27 15:30:14.663\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n" @@ -1778,7 +1778,7 @@ } ], "source": [ - "sp.pl.signal_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" + "harpy.pl.signal_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" ] }, { @@ -1791,7 +1791,7 @@ "output_type": "stream", "text": [ "\u001b[32m2024-09-27 15:30:16.560\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_image\u001b[0m:\u001b[36mcalculate_snr_ratio\u001b[0m:\u001b[36m37\u001b[0m - \u001b[34m\u001b[1mCalculating SNR ratio\u001b[0m\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:22: RuntimeWarning: Mean of empty slice.\n", " signal = img[mask].mean()\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/numpy/core/_methods.py:129: RuntimeWarning: invalid value encountered in scalar divide\n", " ret = ret.dtype.type(ret / rcount)\n" @@ -1819,7 +1819,7 @@ } ], "source": [ - "sp.pl.snr_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" + "harpy.pl.snr_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" ] }, { @@ -1838,14 +1838,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-27 15:30:18,508 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:19,154 - sparrow.image._manager - INFO - Writing results to layer 'normalized_sample_0_image'\n", - "2024-09-27 15:30:19,202 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:19,472 - sparrow.image._manager - INFO - Writing results to layer 'normalized_sample_1_image'\n", - "2024-09-27 15:30:19,494 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:19,720 - sparrow.image._manager - INFO - Writing results to layer 'normalized_sample_2_image'\n", - "2024-09-27 15:30:19,741 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:19,935 - sparrow.image._manager - INFO - Writing results to layer 'normalized_sample_3_image'\n" + "2024-09-27 15:30:18,508 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:19,154 - harpy.image._manager - INFO - Writing results to layer 'normalized_sample_0_image'\n", + "2024-09-27 15:30:19,202 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:19,472 - harpy.image._manager - INFO - Writing results to layer 'normalized_sample_1_image'\n", + "2024-09-27 15:30:19,494 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:19,720 - harpy.image._manager - INFO - Writing results to layer 'normalized_sample_2_image'\n", + "2024-09-27 15:30:19,741 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:19,935 - harpy.image._manager - INFO - Writing results to layer 'normalized_sample_3_image'\n" ] }, { @@ -1973,7 +1973,7 @@ } ], "source": [ - "df_norm = sp.pl.calculate_mean_norm(sdata, overwrite=True, q_min=5, q_max=95, c_mask=selected_markers[0])\n", + "df_norm = harpy.pl.calculate_mean_norm(sdata, overwrite=True, q_min=5, q_max=95, c_mask=selected_markers[0])\n", "df_norm" ] }, @@ -2004,8 +2004,8 @@ } ], "source": [ - "# sp.pl.clustermap(df_norm, row_colors=sp.pl.make_cols_colors(df_metadata), figsize=(12, 10))\n", - "sp.pl.clustermap(df_norm, col_colors=sp.pl.make_cols_colors(table.var), figsize=(12, 10))" + "# harpy.pl.clustermap(df_norm, row_colors=harpy.pl.make_cols_colors(df_metadata), figsize=(12, 10))\n", + "harpy.pl.clustermap(df_norm, col_colors=harpy.pl.make_cols_colors(table.var), figsize=(12, 10))" ] }, { @@ -2042,7 +2042,7 @@ } ], "source": [ - "sp.pl.segmentation_coverage(sdata)" + "harpy.pl.segmentation_coverage(sdata)" ] }, { @@ -2116,7 +2116,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:44: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:44: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " sdata.table.obs[[area_key, sample_key]].plot.box(by=sample_key, rot=45, ax=ax)\n" ] }, @@ -2142,7 +2142,7 @@ } ], "source": [ - "sp.pl.segmentation_size_boxplot(sdata, sample_key=\"fov_labels\")" + "harpy.pl.segmentation_size_boxplot(sdata, sample_key=\"fov_labels\")" ] }, { @@ -2182,7 +2182,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:24: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:24: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df = table.groupby(sample_key).agg({sample_key: \"count\"})\n", "\u001b[32m2024-09-27 15:35:29.916\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_segmentation\u001b[0m:\u001b[36mcalculate_segments_per_area\u001b[0m:\u001b[36m26\u001b[0m - \u001b[34m\u001b[1m{'sample_0_labels': 1000, 'sample_1_labels': 1000, 'sample_2_labels': 1000, 'sample_3_labels': 1000}\u001b[0m\n" ] @@ -2257,7 +2257,7 @@ } ], "source": [ - "sp.pl.calculate_segments_per_area(sdata, sample_key=\"fov_labels\")" + "harpy.pl.calculate_segments_per_area(sdata, sample_key=\"fov_labels\")" ] }, { @@ -2269,7 +2269,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:24: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:24: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df = table.groupby(sample_key).agg({sample_key: \"count\"})\n", "\u001b[32m2024-09-27 15:35:17.389\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36msparrow.plot._qc_segmentation\u001b[0m:\u001b[36mcalculate_segments_per_area\u001b[0m:\u001b[36m26\u001b[0m - \u001b[34m\u001b[1m{'sample_0_labels': 1000, 'sample_1_labels': 1000, 'sample_2_labels': 1000, 'sample_3_labels': 1000}\u001b[0m\n" ] @@ -2296,7 +2296,7 @@ } ], "source": [ - "sp.pl.segments_per_area(sdata, sample_key=\"fov_labels\")" + "harpy.pl.segments_per_area(sdata, sample_key=\"fov_labels\")" ] }, { @@ -2686,7 +2686,7 @@ } ], "source": [ - "sp.pl.ridgeplot_channel_sample(table, y=\"fov_labels\", value_vars=selected_markers)" + "harpy.pl.ridgeplot_channel_sample(table, y=\"fov_labels\", value_vars=selected_markers)" ] }, { diff --git a/docs/tutorials/advanced/Harpy_distance_calc.ipynb b/docs/tutorials/advanced/Harpy_distance_calc.ipynb index c219df5d..10261a5b 100644 --- a/docs/tutorials/advanced/Harpy_distance_calc.ipynb +++ b/docs/tutorials/advanced/Harpy_distance_calc.ipynb @@ -11,29 +11,38 @@ }, { "cell_type": "code", - "execution_count": 174, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/dask/dataframe/__init__.py:31: FutureWarning: The legacy Dask DataFrame implementation is deprecated and will be removed in a future version. Set the configuration option `dataframe.query-planning` to `True` or None to enable the new Dask Dataframe implementation and silence this warning.\n", + " warnings.warn(\n" + ] + } + ], "source": [ - "import sparrow as sp\n", + "import harpy as hp\n", "import spatialdata as sd\n", "import spatialdata_plot # noqa" ] }, { "cell_type": "code", - "execution_count": 175, + "execution_count": 2, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:402: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:430: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", " warnings.warn(\n", - "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/models/models.py:1018: UserWarning: Converting `region_key: region` to categorical dtype.\n", + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/spatialdata/models/models.py:1048: UserWarning: Converting `region_key: region` to categorical dtype.\n", " return convert_region_column_to_categorical(adata)\n", - "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:116: UserWarning: Key `table` already exists. Overwriting it in-memory.\n", + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:116: UserWarning: Key `table` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n" ] }, @@ -54,19 +63,19 @@ " blobs_image (Images), blobs_labels (Labels), blobs_points (Points)" ] }, - "execution_count": 175, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sdata = sp.datasets.cluster_blobs()\n", + "sdata = hp.datasets.cluster_blobs()\n", "sdata" ] }, { "cell_type": "code", - "execution_count": 176, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -86,7 +95,7 @@ }, { "cell_type": "code", - "execution_count": 177, + "execution_count": 4, "metadata": {}, "outputs": [], "source": [ @@ -102,7 +111,7 @@ }, { "cell_type": "code", - "execution_count": 178, + "execution_count": 5, "metadata": {}, "outputs": [ { @@ -114,7 +123,7 @@ "" ] }, - "execution_count": 178, + "execution_count": 5, "metadata": {}, "output_type": "execute_result" } @@ -125,7 +134,7 @@ }, { "cell_type": "code", - "execution_count": 179, + "execution_count": 6, "metadata": {}, "outputs": [ { @@ -171,7 +180,7 @@ "1 POLYGON ((300 400, 300 500, 400 500, 400 400, ..." ] }, - "execution_count": 179, + "execution_count": 6, "metadata": {}, "output_type": "execute_result" } @@ -184,7 +193,7 @@ }, { "cell_type": "code", - "execution_count": 180, + "execution_count": 7, "metadata": {}, "outputs": [ { @@ -196,7 +205,7 @@ "" ] }, - "execution_count": 180, + "execution_count": 7, "metadata": {}, "output_type": "execute_result" } @@ -207,7 +216,7 @@ }, { "cell_type": "code", - "execution_count": 181, + "execution_count": 8, "metadata": {}, "outputs": [], "source": [ @@ -216,7 +225,7 @@ }, { "cell_type": "code", - "execution_count": 182, + "execution_count": 9, "metadata": {}, "outputs": [ { @@ -225,7 +234,7 @@ "" ] }, - "execution_count": 182, + "execution_count": 9, "metadata": {}, "output_type": "execute_result" }, @@ -267,18 +276,50 @@ }, { "cell_type": "code", - "execution_count": 183, + "execution_count": 10, "metadata": {}, - "outputs": [], + "outputs": [ + { + "data": { + "text/plain": [ + "SpatialData object\n", + "├── Images\n", + "│ └── 'blobs_image': DataArray[cyx] (11, 512, 512)\n", + "├── Labels\n", + "│ └── 'blobs_labels': DataArray[yx] (512, 512)\n", + "├── Points\n", + "│ └── 'blobs_points': DataFrame with shape: (, 2) (2D points)\n", + "├── Shapes\n", + "│ └── 'roi': GeoDataFrame shape: (2, 1) (2D shapes)\n", + "└── Tables\n", + " └── 'table': AnnData (20, 11)\n", + "with coordinate systems:\n", + " ▸ 'global', with elements:\n", + " blobs_image (Images), blobs_labels (Labels), blobs_points (Points), roi (Shapes)" + ] + }, + "execution_count": 10, + "metadata": {}, + "output_type": "execute_result" + } + ], "source": [ - "from sparrow.shape._manager import _mask_image_to_polygons" + "sdata" ] }, { "cell_type": "code", - "execution_count": 184, + "execution_count": 11, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "2024-12-09 09:07:25,351 - harpy.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", + "2024-12-09 09:07:25,355 - harpy.shape._manager - INFO - Dissolve is done.\n" + ] + }, { "data": { "text/html": [ @@ -417,19 +458,19 @@ "20 POLYGON ((263 233, 263 234, 260 234, 260 235, ..." ] }, - "execution_count": 184, + "execution_count": 11, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "cell_polygons = _mask_image_to_polygons(sdata[\"blobs_labels\"].data)\n", - "cell_polygons" + "cell_polygons = hp.sh.vectorize( sdata, labels_layer=\"blobs_labels\", output_layer=\"blobs_shapes\", overwrite=True ) #(sdata[\"blobs_labels\"].data)\n", + "cell_polygons[ \"blobs_shapes\" ]" ] }, { "cell_type": "code", - "execution_count": 185, + "execution_count": 12, "metadata": {}, "outputs": [ { @@ -459,60 +500,50 @@ "dtype: float64" ] }, - "execution_count": 185, + "execution_count": 12, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "distances_to_roi = cell_polygons.geometry.distance(roi_df.union_all())\n", + "distances_to_roi = sdata[ \"blobs_shapes\" ].geometry.distance(roi_df.union_all())\n", "distances_to_roi" ] }, { "cell_type": "code", - "execution_count": 186, + "execution_count": 13, "metadata": {}, "outputs": [], "source": [ - "sdata[\"table\"].obs[\"distance_to_roi\"] = distances_to_roi" + "from harpy.utils._keys import _INSTANCE_KEY\n", + "import numpy as np\n", + "\n", + "# sanity check (check that table matches the created shapes layer, so that we are sure that distances are added to correct location)\n", + "assert np.array_equal( sdata[\"table\"].obs[ _INSTANCE_KEY ].values, sdata[ \"blobs_shapes\" ].index )" ] }, { "cell_type": "code", - "execution_count": 187, + "execution_count": 14, "metadata": {}, "outputs": [], "source": [ - "sdata[\"table\"].obs[\"distance_to_line\"] = cell_polygons.geometry.distance(line)" + "sdata[\"table\"].obs[\"distance_to_roi\"] = distances_to_roi.values" ] }, { "cell_type": "code", - "execution_count": 188, + "execution_count": 15, "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "AnnData object with n_obs × n_vars = 20 × 11\n", - " obs: 'instance_id', 'region', 'fov_labels', 'cell_ID', 'phenotype', 'area', 'eccentricity', 'major_axis_length', 'minor_axis_length', 'perimeter', 'centroid-0', 'centroid-1', 'convex_area', 'equivalent_diameter', '_major_minor_axis_ratio', '_perim_square_over_area', '_major_axis_equiv_diam_ratio', '_convex_hull_resid', '_centroid_dif', 'distance_to_roi', 'distance_to_line'\n", - " var: 'cycle'\n", - " uns: 'spatialdata_attrs'" - ] - }, - "execution_count": 188, - "metadata": {}, - "output_type": "execute_result" - } - ], + "outputs": [], "source": [ - "sdata[\"table\"]" + "sdata[\"table\"].obs[\"distance_to_line\"] = sdata[ \"blobs_shapes\" ].geometry.distance(line).values" ] }, { "cell_type": "code", - "execution_count": 191, + "execution_count": 16, "metadata": {}, "outputs": [ { @@ -521,7 +552,7 @@ "" ] }, - "execution_count": 191, + "execution_count": 16, "metadata": {}, "output_type": "execute_result" }, @@ -546,7 +577,7 @@ }, { "cell_type": "code", - "execution_count": 190, + "execution_count": 17, "metadata": {}, "outputs": [ { @@ -555,7 +586,7 @@ "" ] }, - "execution_count": 190, + "execution_count": 17, "metadata": {}, "output_type": "execute_result" }, diff --git a/docs/tutorials/advanced/Harpy_instanseg.ipynb b/docs/tutorials/advanced/Harpy_instanseg.ipynb index 319ccf43..2fa9891c 100644 --- a/docs/tutorials/advanced/Harpy_instanseg.ipynb +++ b/docs/tutorials/advanced/Harpy_instanseg.ipynb @@ -47,8 +47,8 @@ } ], "source": [ - "from sparrow.datasets.proteomics import read_tifffile\n", - "from sparrow.datasets.registry import get_ome_registry\n", + "from harpy.datasets.proteomics import read_tifffile\n", + "from harpy.datasets.registry import get_ome_registry\n", "\n", "registry=get_ome_registry( path = None ) # if path is None, example .tif will be downloaded in the default cache folder of your os.\n", "path = registry.fetch(\"Vectra-QPTIFF/perkinelmer/PKI_fields/LuCa-7color_%5b13860,52919%5d_1x1component_data.tif\")\n", @@ -266,7 +266,7 @@ "metadata": {}, "outputs": [], "source": [ - "import sparrow as sp\n", + "import harpy\n", "import spatialdata_plot" ] }, @@ -292,7 +292,7 @@ } ], "source": [ - "from sparrow.datasets import vectra_example\n", + "from harpy.datasets import vectra_example\n", "\n", "sdata = vectra_example()\n", "sdata" @@ -342,7 +342,7 @@ "metadata": {}, "outputs": [], "source": [ - "from sparrow.image.segmentation.segmentation_models._instanseg import _instanseg" + "from harpy.image.segmentation.segmentation_models._instanseg import _instanseg" ] }, { @@ -983,21 +983,21 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-10-14 13:50:31,962 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 13:50:32,009 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask_nuclei'\n", - "2024-10-14 13:50:32,010 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 13:50:32,052 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask_whole_cell'\n", - "2024-10-14 13:50:32,065 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 13:50:34,091 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask_nuclei'\n", + "2024-10-14 13:50:31,962 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 13:50:32,009 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask_nuclei'\n", + "2024-10-14 13:50:32,010 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 13:50:32,052 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask_whole_cell'\n", + "2024-10-14 13:50:32,065 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 13:50:34,091 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask_nuclei'\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:79: UserWarning: Key `segmentation_mask_nuclei` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n" ] } ], "source": [ - "from sparrow.image.segmentation.segmentation_models._instanseg import _instanseg\n", + "from harpy.image.segmentation.segmentation_models._instanseg import _instanseg\n", "\n", - "sdata=sp.im.segment(\n", + "sdata=harpy.im.segment(\n", " sdata=sdata,\n", " img_layer=\"image\",\n", " # Only specify one labels layer if output parameter is set to \"whole_cell\" or \"nuclei\".\n", diff --git a/docs/tutorials/advanced/Harpy_transcriptomics.ipynb b/docs/tutorials/advanced/Harpy_transcriptomics.ipynb index 69142d3e..0c7cf971 100644 --- a/docs/tutorials/advanced/Harpy_transcriptomics.ipynb +++ b/docs/tutorials/advanced/Harpy_transcriptomics.ipynb @@ -33,7 +33,7 @@ } ], "source": [ - "import sparrow as sp" + "import harpy" ] }, { @@ -44,7 +44,7 @@ "\n", "The first step includes reading in the raw data.\n", "\n", - "The example dataset for this notebook will be downloaded and cached using `pooch` via `sparrow.dataset.registry`.\n" + "The example dataset for this notebook will be downloaded and cached using `pooch` via `harpy.dataset.registry`.\n" ] }, { @@ -73,8 +73,8 @@ "text": [ "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n", - "2024-10-14 11:27:59,510 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 11:27:59,515 - sparrow.image._manager - INFO - Writing results to layer 'raw_image'\n" + "2024-10-14 11:27:59,510 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 11:27:59,515 - harpy.image._manager - INFO - Writing results to layer 'raw_image'\n" ] } ], @@ -83,7 +83,7 @@ "import tempfile\n", "import uuid\n", "\n", - "from sparrow.datasets.registry import get_registry\n", + "from harpy.datasets.registry import get_registry\n", "\n", "# change this path. It is the directory where the spatialdata .zarr will be saved.\n", "OUTPUT_DIR = tempfile.gettempdir()\n", @@ -97,7 +97,7 @@ "# you can choose any name for your zarr file\n", "zarr_path = os.path.join(OUTPUT_DIR, f\"sdata_{uuid.uuid4()}.zarr\")\n", "\n", - "sdata = sp.io.create_sdata(\n", + "sdata = harpy.io.create_sdata(\n", " input=path_image,\n", " output_path=zarr_path,\n", " img_layer=img_layer,\n", @@ -129,7 +129,7 @@ } ], "source": [ - "sp.pl.plot_image(\n", + "harpy.pl.plot_image(\n", " sdata,\n", " img_layer=\"raw_image\",\n", " crd=[3000, 4000, 3000, 4000], # region to plot [x_min, xmax, y_min, y_max]\n", @@ -163,8 +163,8 @@ "text": [ "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n", - "2024-10-14 11:01:57,175 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 11:01:57,178 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", + "2024-10-14 11:01:57,175 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 11:01:57,178 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", @@ -173,15 +173,15 @@ } ], "source": [ - "from sparrow.image.segmentation.segmentation_models._cellpose import _cellpose\n", + "from harpy.image import cellpose_callable\n", "\n", - "sdata = sp.im.segment(\n", + "sdata = harpy.im.segment(\n", " sdata,\n", " img_layer=\"raw_image\",\n", " chunks=2048,\n", " depth=200,\n", - " model=_cellpose, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", - " # parameters that will be passed to the callable _cellpose\n", + " model=cellpose_callable, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", + " # parameters that will be passed to cellpose_callable\n", " diameter=50,\n", " flow_threshold=0.9,\n", " cellprob_threshold=-4,\n", @@ -216,7 +216,7 @@ } ], "source": [ - "sp.pl.plot_shapes(\n", + "harpy.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"raw_image\",\n", " shapes_layer=\"segmentation_mask_boundaries\",\n", @@ -273,8 +273,8 @@ "the value of the environment variable BASIC_DCT_BACKEND is not in [\"JAX\",\"SCIPY\"]\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n", - "2024-10-14 11:28:25,227 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-10-14 11:28:25,230 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", + "2024-10-14 11:28:25,227 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-10-14 11:28:25,230 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", @@ -283,7 +283,7 @@ } ], "source": [ - "from sparrow.image.segmentation.segmentation_models._cellpose import _cellpose\n", + "from harpy.image import cellpose_callable\n", "\n", "import torch\n", "from cellpose import models\n", @@ -292,15 +292,15 @@ "device = \"cpu\"\n", "model=models.CellposeModel( gpu=gpu, pretrained_model='nuclei', device = torch.device(device ) )\n", "\n", - "model = client.scatter(model) # pass a loaded model to _cellpose, but we scatter the model to avoid large task graph\n", + "model = client.scatter(model) # pass a loaded model, but we scatter the model to avoid large task graph\n", "\n", - "sdata = sp.im.segment(\n", + "sdata = harpy.im.segment(\n", " sdata,\n", " img_layer=\"raw_image\",\n", " chunks=2048,\n", " depth=200,\n", - " model=_cellpose, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", - " # parameters that will be passed to the callable _cellpose\n", + " model=cellpose_callable, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", + " # parameters that will be passed to the callable cellpose_callable\n", " pretrained_model = model,\n", " diameter=50,\n", " flow_threshold=0.9,\n", diff --git a/docs/tutorials/advanced/Interactive_napari_cell_annotation.ipynb b/docs/tutorials/advanced/Interactive_napari_cell_annotation.ipynb index c79ac128..e8010ff0 100644 --- a/docs/tutorials/advanced/Interactive_napari_cell_annotation.ipynb +++ b/docs/tutorials/advanced/Interactive_napari_cell_annotation.ipynb @@ -73,7 +73,7 @@ ], "source": [ "# load some example SpatialData\n", - "from sparrow.datasets import multisample_blobs\n", + "from harpy.datasets import multisample_blobs\n", "\n", "sdata = multisample_blobs(n_samples=1)\n", "sdata" diff --git a/docs/tutorials/advanced/Interactive_napari_pixel_annotation.ipynb b/docs/tutorials/advanced/Interactive_napari_pixel_annotation.ipynb index 68cf5113..d0a122d5 100644 --- a/docs/tutorials/advanced/Interactive_napari_pixel_annotation.ipynb +++ b/docs/tutorials/advanced/Interactive_napari_pixel_annotation.ipynb @@ -88,7 +88,7 @@ ], "source": [ "# load some example SpatialData\n", - "from sparrow.datasets import multisample_blobs\n", + "from harpy.datasets import multisample_blobs\n", "\n", "sdata = multisample_blobs(n_samples=1)\n", "sdata" diff --git a/docs/tutorials/advanced/Rasterize_and_vectorize.ipynb b/docs/tutorials/advanced/Rasterize_and_vectorize.ipynb index 94eb309d..3a4b5034 100644 --- a/docs/tutorials/advanced/Rasterize_and_vectorize.ipynb +++ b/docs/tutorials/advanced/Rasterize_and_vectorize.ipynb @@ -45,26 +45,26 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-11-05 13:38:31,166 - sparrow.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", - "2024-11-05 13:38:31,175 - sparrow.shape._manager - INFO - Dissolve is done.\n", - "2024-11-05 13:38:31,178 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-11-05 13:38:32,577 - sparrow.image._manager - INFO - Writing results to layer 'blobs_labels_redo'\n", - "2024-11-05 13:38:32,599 - sparrow.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", - "2024-11-05 13:38:32,606 - sparrow.shape._manager - INFO - Dissolve is done.\n" + "2024-11-05 13:38:31,166 - harpy.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", + "2024-11-05 13:38:31,175 - harpy.shape._manager - INFO - Dissolve is done.\n", + "2024-11-05 13:38:31,178 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-11-05 13:38:32,577 - harpy.image._manager - INFO - Writing results to layer 'blobs_labels_redo'\n", + "2024-11-05 13:38:32,599 - harpy.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", + "2024-11-05 13:38:32,606 - harpy.shape._manager - INFO - Dissolve is done.\n" ] } ], "source": [ - "import sparrow as sp\n", + "import harpy as hp\n", "\n", - "sdata = sp.sh.vectorize(\n", + "sdata = hp.sh.vectorize(\n", " sdata,\n", " labels_layer=\"blobs_labels\",\n", " output_layer=\"blobs_labels_boundaries\",\n", " overwrite=True,\n", ")\n", "\n", - "sdata = sp.im.rasterize(\n", + "sdata = hp.im.rasterize(\n", " sdata,\n", " shapes_layer=\"blobs_labels_boundaries\",\n", " output_layer=\"blobs_labels_redo\",\n", @@ -72,7 +72,7 @@ " overwrite=True,\n", ")\n", "\n", - "sdata = sp.sh.vectorize(\n", + "sdata = hp.sh.vectorize(\n", " sdata,\n", " labels_layer=\"blobs_labels_redo\",\n", " output_layer=\"blobs_labels_boundaries_redo\",\n", @@ -109,7 +109,7 @@ } ], "source": [ - "sp.pl.plot_shapes( sdata, labels_layer=[\"blobs_labels\", \"blobs_labels_redo\"], shapes_layer=[\"blobs_labels_boundaries\", \"blobs_labels_boundaries_redo\"], figsize=( 10,10 ) )" + "hp.pl.plot_shapes( sdata, labels_layer=[\"blobs_labels\", \"blobs_labels_redo\"], shapes_layer=[\"blobs_labels_boundaries\", \"blobs_labels_boundaries_redo\"], figsize=( 10,10 ) )" ] }, { @@ -134,7 +134,7 @@ } ], "source": [ - "sdata=sp.datasets.merscope_segmentation_masks_example()" + "sdata=hp.datasets.merscope_segmentation_masks_example()" ] }, { @@ -146,8 +146,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-11-05 13:39:28,949 - sparrow.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", - "2024-11-05 13:40:29,705 - sparrow.shape._manager - INFO - Dissolve is done.\n" + "2024-11-05 13:39:28,949 - harpy.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", + "2024-11-05 13:40:29,705 - harpy.shape._manager - INFO - Dissolve is done.\n" ] }, { @@ -164,8 +164,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-11-05 13:40:36,762 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-11-05 13:42:35,826 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask_full_redo'\n" + "2024-11-05 13:40:36,762 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-11-05 13:42:35,826 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask_full_redo'\n" ] } ], @@ -178,14 +178,14 @@ "dask.config.set(scheduler='processes')\n", "\n", "# takes 1m40 on mac m2\n", - "sdata=sp.sh.vectorize(\n", + "sdata=hp.sh.vectorize(\n", " sdata,\n", " labels_layer=labels_layer,\n", " output_layer=shapes_layer,\n", " overwrite=True,\n", " )\n", "\n", - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"clahe\",\n", " shapes_layer=shapes_layer,\n", @@ -200,7 +200,7 @@ "#dask.config.set(scheduler='threads')\n", "\n", "# takes around 1m30 on mac m2\n", - "#sdata = sp.im.rasterize(\n", + "#sdata = harpy.im.rasterize(\n", "# sdata,\n", "# shapes_layer=shapes_layer,\n", "# output_layer=labels_layer + \"_redo\",\n", diff --git a/docs/tutorials/advanced/coordinate_systems.ipynb b/docs/tutorials/advanced/coordinate_systems.ipynb index cfd4eadc..2b97145c 100644 --- a/docs/tutorials/advanced/coordinate_systems.ipynb +++ b/docs/tutorials/advanced/coordinate_systems.ipynb @@ -53,7 +53,7 @@ "\n", "from spatialdata import SpatialData\n", "\n", - "import sparrow as sp\n", + "import harpy as hp\n", "\n", "sdata = SpatialData()\n", "\n", @@ -80,10 +80,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:08,511 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:08,517 - sparrow.image._manager - INFO - Writing results to layer 'image_a1_1'\n", - "2024-07-17 10:40:09,176 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:09,180 - sparrow.image._manager - INFO - Writing results to layer 'image_a1_2'\n" + "2024-07-17 10:40:08,511 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:08,517 - harpy.image._manager - INFO - Writing results to layer 'image_a1_1'\n", + "2024-07-17 10:40:09,176 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:09,180 - harpy.image._manager - INFO - Writing results to layer 'image_a1_2'\n" ] } ], @@ -91,13 +91,13 @@ "from dask_image import imread\n", "from spatialdata.transformations import Identity\n", "\n", - "from sparrow.datasets.registry import get_registry\n", + "from harpy.datasets.registry import get_registry\n", "\n", "registry = get_registry()\n", "arr_a1_1 = imread.imread(registry.fetch(\"transcriptomics/resolve/mouse/20272_slide1_A1-1_DAPI.tiff\"))\n", "arr_a1_2 = imread.imread(registry.fetch(\"transcriptomics/resolve/mouse/20272_slide1_A1-2_DAPI.tiff\"))\n", "\n", - "sdata = sp.im.add_image_layer(\n", + "sdata = hp.im.add_image_layer(\n", " sdata,\n", " arr=arr_a1_1,\n", " output_layer=\"image_a1_1\",\n", @@ -105,7 +105,7 @@ " overwrite=True,\n", ")\n", "\n", - "sdata = sp.im.add_image_layer(\n", + "sdata = hp.im.add_image_layer(\n", " sdata,\n", " arr=arr_a1_2,\n", " output_layer=\"image_a1_2\",\n", @@ -148,10 +148,10 @@ } ], "source": [ - "sp.pl.plot_image(\n", + "hp.pl.plot_image(\n", " sdata, img_layer=\"image_a1_1\", to_coordinate_system=\"a1_1\", crd=[500, 2000, 2200, 3700], figsize=(3, 3)\n", ")\n", - "sp.pl.plot_image(\n", + "hp.pl.plot_image(\n", " sdata, img_layer=\"image_a1_2\", to_coordinate_system=\"a1_2\", crd=[500, 2000, 2200, 3700], figsize=(3, 3)\n", ")" ] @@ -172,16 +172,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:10,282 - sparrow.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x1069232e0>). Specifying z-slices ([0]).\n", - "2024-07-17 10:40:10,282 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x1069232e0>}). Specifying channels ([0]).\n", - "2024-07-17 10:40:10,284 - sparrow.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", - "2024-07-17 10:40:10,294 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:10,298 - sparrow.image._manager - INFO - Writing results to layer 'image_a1_1_min_max'\n" + "2024-07-17 10:40:10,282 - harpy.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x1069232e0>). Specifying z-slices ([0]).\n", + "2024-07-17 10:40:10,282 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x1069232e0>}). Specifying channels ([0]).\n", + "2024-07-17 10:40:10,284 - harpy.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", + "2024-07-17 10:40:10,294 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:10,298 - harpy.image._manager - INFO - Writing results to layer 'image_a1_1_min_max'\n" ] } ], "source": [ - "sdata = sp.im.min_max_filtering(\n", + "sdata = hp.im.min_max_filtering(\n", " sdata, img_layer=\"image_a1_1\", output_layer=\"image_a1_1_min_max\", size_min_max_filter=40, overwrite=True\n", ")" ] @@ -202,22 +202,22 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:15,562 - sparrow.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x39d688670>). Specifying z-slices ([0]).\n", - "2024-07-17 10:40:15,563 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x39d688670>}). Specifying channels ([0]).\n", - "2024-07-17 10:40:15,564 - sparrow.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", - "2024-07-17 10:40:15,573 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:15,576 - sparrow.image._manager - INFO - Writing results to layer 'image_a1_1_min_max'\n", - "2024-07-17 10:40:15,900 - sparrow.utils._io - WARNING - layer with name 'image_a1_1_min_max' already exists. Overwriting...\n", - "2024-07-17 10:40:15,949 - sparrow.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x39d688670>). Specifying z-slices ([0]).\n", - "2024-07-17 10:40:15,949 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x39d688670>}). Specifying channels ([0]).\n", - "2024-07-17 10:40:15,951 - sparrow.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", - "2024-07-17 10:40:15,959 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:15,962 - sparrow.image._manager - INFO - Writing results to layer 'image_a1_2_min_max'\n" + "2024-07-17 10:40:15,562 - harpy.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x39d688670>). Specifying z-slices ([0]).\n", + "2024-07-17 10:40:15,563 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x39d688670>}). Specifying channels ([0]).\n", + "2024-07-17 10:40:15,564 - harpy.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", + "2024-07-17 10:40:15,573 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:15,576 - harpy.image._manager - INFO - Writing results to layer 'image_a1_1_min_max'\n", + "2024-07-17 10:40:15,900 - harpy.utils._io - WARNING - layer with name 'image_a1_1_min_max' already exists. Overwriting...\n", + "2024-07-17 10:40:15,949 - harpy.image._apply - INFO - 'combine_z' is False, but not all 'z-slices' spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 40}/._apply_min_max_filter at 0x39d688670>). Specifying z-slices ([0]).\n", + "2024-07-17 10:40:15,949 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({0: {'size_min_max_filter': 40}}/{0: ._apply_min_max_filter at 0x39d688670>}). Specifying channels ([0]).\n", + "2024-07-17 10:40:15,951 - harpy.image._filters - WARNING - Provided value for min max filter size is even ('40'). To prevent unexpected output, we set min max filter to '41'.\n", + "2024-07-17 10:40:15,959 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:15,962 - harpy.image._manager - INFO - Writing results to layer 'image_a1_2_min_max'\n" ] } ], "source": [ - "sdata = sp.im.min_max_filtering(\n", + "sdata = hp.im.min_max_filtering(\n", " sdata,\n", " img_layer=\"image_a1_1\",\n", " output_layer=\"image_a1_1_min_max\",\n", @@ -226,7 +226,7 @@ " to_coordinate_system=\"a1_1\",\n", " overwrite=True,\n", ")\n", - "sdata = sp.im.min_max_filtering(\n", + "sdata = hp.im.min_max_filtering(\n", " sdata,\n", " img_layer=\"image_a1_2\",\n", " output_layer=\"image_a1_2_min_max\",\n", @@ -254,7 +254,7 @@ } ], "source": [ - "sp.pl.plot_image(\n", + "hp.pl.plot_image(\n", " sdata,\n", " img_layer=\"image_a1_1_min_max\",\n", " to_coordinate_system=\"a1_1\",\n", @@ -278,16 +278,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:21,945 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:21,948 - sparrow.image._manager - INFO - Writing results to layer 'labels_a1_1'\n", - "2024-07-17 10:40:29,241 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-07-17 10:40:29,244 - sparrow.image._manager - INFO - Writing results to layer 'labels_a1_2'\n" + "2024-07-17 10:40:21,945 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:21,948 - harpy.image._manager - INFO - Writing results to layer 'labels_a1_1'\n", + "2024-07-17 10:40:29,241 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-07-17 10:40:29,244 - harpy.image._manager - INFO - Writing results to layer 'labels_a1_2'\n" ] } ], "source": [ "# no need to specify coordinate system if no crop is specifed\n", - "sdata = sp.im.segment(\n", + "sdata = hp.im.segment(\n", " sdata,\n", " img_layer=\"image_a1_1_min_max\",\n", " output_labels_layer=\"labels_a1_1\",\n", @@ -298,7 +298,7 @@ "\n", "# but need to specify to_coordinate_system when crop is defined\n", "\n", - "sdata = sp.im.segment(\n", + "sdata = hp.im.segment(\n", " sdata,\n", " img_layer=\"image_a1_2_min_max\",\n", " output_labels_layer=\"labels_a1_2\",\n", @@ -326,7 +326,7 @@ } ], "source": [ - "sp.pl.plot_shapes(\n", + "hp.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"image_a1_2_min_max\",\n", " shapes_layer=\"shapes_a1_2\",\n", @@ -352,13 +352,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:29,684 - sparrow.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", - "2024-07-17 10:40:29,684 - sparrow.io._transcripts - INFO - Transform matrix used:\n", + "2024-07-17 10:40:29,684 - harpy.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", + "2024-07-17 10:40:29,684 - harpy.io._transcripts - INFO - Transform matrix used:\n", " [[1. 0. 0.]\n", " [0. 1. 0.]\n", " [0. 0. 1.]]\n", - "2024-07-17 10:40:30,908 - sparrow.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", - "2024-07-17 10:40:30,908 - sparrow.io._transcripts - INFO - Transform matrix used:\n", + "2024-07-17 10:40:30,908 - harpy.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", + "2024-07-17 10:40:30,908 - harpy.io._transcripts - INFO - Transform matrix used:\n", " [[1. 0. 0.]\n", " [0. 1. 0.]\n", " [0. 0. 1.]]\n" @@ -378,11 +378,11 @@ " \"overwrite\": True,\n", "}\n", "\n", - "sdata = sp.io.read_transcripts(\n", + "sdata = hp.io.read_transcripts(\n", " sdata, path_count_matrix=path_points_a1_1, to_coordinate_system=\"a1_1\", output_layer=\"points_a1_1\", **kwargs\n", ")\n", "\n", - "sdata = sp.io.read_transcripts(\n", + "sdata = hp.io.read_transcripts(\n", " sdata, path_count_matrix=path_points_a1_2, to_coordinate_system=\"a1_2\", output_layer=\"points_a1_2\", **kwargs\n", ")" ] @@ -453,11 +453,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:32,132 - sparrow.plot._sanity - INFO - size before sampling is 93924\n", - "2024-07-17 10:40:32,289 - sparrow.plot._sanity - INFO - Plotting 10000 transcripts.\n", - "2024-07-17 10:40:32,290 - sparrow.plot._sanity - INFO - Selecting boundaries\n", - "2024-07-17 10:40:32,297 - sparrow.plot._sanity - INFO - Plotting boundaries\n", - "2024-07-17 10:40:32,331 - sparrow.plot._sanity - INFO - End plotting boundaries\n" + "2024-07-17 10:40:32,132 - harpy.plot._sanity - INFO - size before sampling is 93924\n", + "2024-07-17 10:40:32,289 - harpy.plot._sanity - INFO - Plotting 10000 transcripts.\n", + "2024-07-17 10:40:32,290 - harpy.plot._sanity - INFO - Selecting boundaries\n", + "2024-07-17 10:40:32,297 - harpy.plot._sanity - INFO - Plotting boundaries\n", + "2024-07-17 10:40:32,331 - harpy.plot._sanity - INFO - End plotting boundaries\n" ] }, { @@ -472,7 +472,7 @@ } ], "source": [ - "sp.pl.sanity_plot_transcripts_matrix(\n", + "hp.pl.sanity_plot_transcripts_matrix(\n", " sdata,\n", " img_layer=\"image_a1_1_min_max\",\n", " shapes_layer=\"shapes_a1_1\",\n", @@ -492,11 +492,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:32,649 - sparrow.plot._sanity - INFO - size before sampling is 98247\n", - "2024-07-17 10:40:32,770 - sparrow.plot._sanity - INFO - Plotting 10000 transcripts.\n", - "2024-07-17 10:40:32,772 - sparrow.plot._sanity - INFO - Selecting boundaries\n", - "2024-07-17 10:40:32,780 - sparrow.plot._sanity - INFO - Plotting boundaries\n", - "2024-07-17 10:40:32,932 - sparrow.plot._sanity - INFO - End plotting boundaries\n" + "2024-07-17 10:40:32,649 - harpy.plot._sanity - INFO - size before sampling is 98247\n", + "2024-07-17 10:40:32,770 - harpy.plot._sanity - INFO - Plotting 10000 transcripts.\n", + "2024-07-17 10:40:32,772 - harpy.plot._sanity - INFO - Selecting boundaries\n", + "2024-07-17 10:40:32,780 - harpy.plot._sanity - INFO - Plotting boundaries\n", + "2024-07-17 10:40:32,932 - harpy.plot._sanity - INFO - End plotting boundaries\n" ] }, { @@ -511,7 +511,7 @@ } ], "source": [ - "sp.pl.sanity_plot_transcripts_matrix(\n", + "hp.pl.sanity_plot_transcripts_matrix(\n", " sdata,\n", " img_layer=\"image_a1_2_min_max\",\n", " shapes_layer=\"shapes_a1_2\",\n", @@ -531,28 +531,28 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:33,073 - sparrow.table._allocation - INFO - Calculating cell counts.\n", + "2024-07-17 10:40:33,073 - harpy.table._allocation - INFO - Calculating cell counts.\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:430: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", " warnings.warn(\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/anndata/_core/aligned_df.py:67: ImplicitModificationWarning: Transforming to str index.\n", " warnings.warn(\"Transforming to str index.\", ImplicitModificationWarning)\n", - "/Users/arnedf/VIB/harpy/src/sparrow/table/_allocation.py:207: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "/Users/arnedf/VIB/harpy/src/harpy/table/_allocation.py:207: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates[coordinates.index != \"0\"].values\n", - "2024-07-17 10:40:33,579 - sparrow.shape._manager - WARNING - No polygons filtered out for shapes layer 'shapes_a1_1'. As a result, shapes layer 'filtered_segmentation_shapes_a1_1' will not be created. This is expected if 'indexes_to_keep' matches 'shapes_a1_1' indexes.\n", - "2024-07-17 10:40:33,581 - sparrow.table._allocation - INFO - Calculating cell counts.\n", + "2024-07-17 10:40:33,579 - harpy.shape._manager - WARNING - No polygons filtered out for shapes layer 'shapes_a1_1'. As a result, shapes layer 'filtered_segmentation_shapes_a1_1' will not be created. This is expected if 'indexes_to_keep' matches 'shapes_a1_1' indexes.\n", + "2024-07-17 10:40:33,581 - harpy.table._allocation - INFO - Calculating cell counts.\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:430: FutureWarning: The dtype argument is deprecated and will be removed in late 2024.\n", " warnings.warn(\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/anndata/_core/aligned_df.py:67: ImplicitModificationWarning: Transforming to str index.\n", " warnings.warn(\"Transforming to str index.\", ImplicitModificationWarning)\n", - "/Users/arnedf/VIB/harpy/src/sparrow/table/_allocation.py:207: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "/Users/arnedf/VIB/harpy/src/harpy/table/_allocation.py:207: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates[coordinates.index != \"0\"].values\n", - "2024-07-17 10:40:34,121 - sparrow.utils._io - WARNING - layer with name 'table' already exists. Overwriting...\n", - "2024-07-17 10:40:34,352 - sparrow.shape._manager - WARNING - No polygons filtered out for shapes layer 'shapes_a1_2'. As a result, shapes layer 'filtered_segmentation_shapes_a1_2' will not be created. This is expected if 'indexes_to_keep' matches 'shapes_a1_2' indexes.\n" + "2024-07-17 10:40:34,121 - harpy.utils._io - WARNING - layer with name 'table' already exists. Overwriting...\n", + "2024-07-17 10:40:34,352 - harpy.shape._manager - WARNING - No polygons filtered out for shapes layer 'shapes_a1_2'. As a result, shapes layer 'filtered_segmentation_shapes_a1_2' will not be created. This is expected if 'indexes_to_keep' matches 'shapes_a1_2' indexes.\n" ] } ], "source": [ - "sdata = sp.tb.allocate(\n", + "sdata = hp.tb.allocate(\n", " sdata,\n", " labels_layer=\"labels_a1_1\",\n", " points_layer=\"points_a1_1\",\n", @@ -563,7 +563,7 @@ ")\n", "\n", "# append gene count of labels_a1_2 and points_a1_2 to anndata object with name 'table'\n", - "sdata = sp.tb.allocate(\n", + "sdata = hp.tb.allocate(\n", " sdata,\n", " labels_layer=\"labels_a1_2\",\n", " points_layer=\"points_a1_2\",\n", @@ -584,19 +584,19 @@ "output_type": "stream", "text": [ "OMP: Info #276: omp_set_nested routine deprecated, please use omp_set_max_active_levels instead.\n", - "2024-07-17 10:40:34,435 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'labels_a1_1'\n", - "2024-07-17 10:40:34,463 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'labels_a1_2'\n", + "2024-07-17 10:40:34,435 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'labels_a1_1'\n", + "2024-07-17 10:40:34,463 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'labels_a1_2'\n", "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/spatialdata/models/models.py:959: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", " return convert_region_column_to_categorical(adata)\n", - "2024-07-17 10:40:35,008 - sparrow.shape._manager - INFO - Filtering 3 cells from shapes layer 'shapes_a1_1'. Adding new shapes layer 'filtered_low_counts_shapes_a1_1' containing these filtered out polygons.\n", - "2024-07-17 10:40:35,346 - sparrow.utils._io - WARNING - layer with name 'shapes_a1_1' already exists. Overwriting...\n", - "2024-07-17 10:40:35,550 - sparrow.shape._manager - INFO - Filtering 1 cells from shapes layer 'shapes_a1_2'. Adding new shapes layer 'filtered_low_counts_shapes_a1_2' containing these filtered out polygons.\n", - "2024-07-17 10:40:35,849 - sparrow.utils._io - WARNING - layer with name 'shapes_a1_2' already exists. Overwriting...\n" + "2024-07-17 10:40:35,008 - harpy.shape._manager - INFO - Filtering 3 cells from shapes layer 'shapes_a1_1'. Adding new shapes layer 'filtered_low_counts_shapes_a1_1' containing these filtered out polygons.\n", + "2024-07-17 10:40:35,346 - harpy.utils._io - WARNING - layer with name 'shapes_a1_1' already exists. Overwriting...\n", + "2024-07-17 10:40:35,550 - harpy.shape._manager - INFO - Filtering 1 cells from shapes layer 'shapes_a1_2'. Adding new shapes layer 'filtered_low_counts_shapes_a1_2' containing these filtered out polygons.\n", + "2024-07-17 10:40:35,849 - harpy.utils._io - WARNING - layer with name 'shapes_a1_2' already exists. Overwriting...\n" ] } ], "source": [ - "sdata = sp.tb.preprocess_transcriptomics(\n", + "sdata = hp.tb.preprocess_transcriptomics(\n", " sdata,\n", " labels_layer=[\"labels_a1_1\", \"labels_a1_2\"],\n", " table_layer=\"table\",\n", @@ -614,16 +614,16 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-07-17 10:40:36,700 - sparrow.shape._manager - INFO - Filtering 28 cells from shapes layer 'shapes_a1_1'. Adding new shapes layer 'filtered_size_shapes_a1_1' containing these filtered out polygons.\n", - "2024-07-17 10:40:37,152 - sparrow.utils._io - WARNING - layer with name 'shapes_a1_1' already exists. Overwriting...\n", - "2024-07-17 10:40:37,440 - sparrow.shape._manager - INFO - Filtering 16 cells from shapes layer 'shapes_a1_2'. Adding new shapes layer 'filtered_size_shapes_a1_2' containing these filtered out polygons.\n", - "2024-07-17 10:40:37,899 - sparrow.utils._io - WARNING - layer with name 'shapes_a1_2' already exists. Overwriting...\n", - "2024-07-17 10:40:38,194 - sparrow.table._table - INFO - 44 cells were filtered out based on size.\n" + "2024-07-17 10:40:36,700 - harpy.shape._manager - INFO - Filtering 28 cells from shapes layer 'shapes_a1_1'. Adding new shapes layer 'filtered_size_shapes_a1_1' containing these filtered out polygons.\n", + "2024-07-17 10:40:37,152 - harpy.utils._io - WARNING - layer with name 'shapes_a1_1' already exists. Overwriting...\n", + "2024-07-17 10:40:37,440 - harpy.shape._manager - INFO - Filtering 16 cells from shapes layer 'shapes_a1_2'. Adding new shapes layer 'filtered_size_shapes_a1_2' containing these filtered out polygons.\n", + "2024-07-17 10:40:37,899 - harpy.utils._io - WARNING - layer with name 'shapes_a1_2' already exists. Overwriting...\n", + "2024-07-17 10:40:38,194 - harpy.table._table - INFO - 44 cells were filtered out based on size.\n" ] } ], "source": [ - "sdata = sp.tb.filter_on_size(\n", + "sdata = hp.tb.filter_on_size(\n", " sdata,\n", " labels_layer=[\"labels_a1_1\", \"labels_a1_2\"],\n", " table_layer=\"table_preprocessed\",\n", @@ -695,7 +695,7 @@ "metadata": {}, "outputs": [], "source": [ - "from sparrow.utils._keys import _REGION_KEY\n", + "from harpy.utils._keys import _REGION_KEY\n", "\n", "for to_coordinate_system in [\"a1_1\", \"a1_2\"]:\n", " assert sdata[\"table\"][sdata[\"table\"].obs[_REGION_KEY] == f\"labels_{to_coordinate_system}\"].shape[0] == len(\n", @@ -723,7 +723,7 @@ "]\n", "to_coordinate_system = [\"a1_1\", \"a1_2\"]\n", "\n", - "sdata_queried = sp.utils.bounding_box_query(\n", + "sdata_queried = hp.utils.bounding_box_query(\n", " sdata,\n", " labels_layer=labels_layer,\n", " crd=crd,\n", diff --git a/docs/tutorials/general/FlowSOM_for_pixel_and_cell_clustering.ipynb b/docs/tutorials/general/FlowSOM_for_pixel_and_cell_clustering.ipynb index f1fec39d..114df677 100644 --- a/docs/tutorials/general/FlowSOM_for_pixel_and_cell_clustering.ipynb +++ b/docs/tutorials/general/FlowSOM_for_pixel_and_cell_clustering.ipynb @@ -25,11 +25,11 @@ "%load_ext autoreload\n", "%autoreload 2\n", "\n", - "import sparrow as sp\n", - "from sparrow.datasets import pixie_example\n", - "from sparrow.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", - "from sparrow.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", - "from sparrow.utils._keys import ClusteringKey" + "import harpy\n", + "from harpy.datasets import pixie_example\n", + "from harpy.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", + "from harpy.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", + "from harpy.utils._keys import ClusteringKey" ] }, { @@ -48,13 +48,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:18:53,290 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:53,348 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0'\n", - "2024-06-14 10:18:53,351 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:53,357 - sparrow.image._manager - INFO - Writing results to layer 'label_nuclear_fov0'\n", - "2024-06-14 10:18:53,359 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:53,365 - sparrow.image._manager - INFO - Writing results to layer 'label_whole_fov0'\n", - "2024-06-14 10:18:53,394 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n" + "2024-06-14 10:18:53,290 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:53,348 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0'\n", + "2024-06-14 10:18:53,351 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:53,357 - harpy.image._manager - INFO - Writing results to layer 'label_nuclear_fov0'\n", + "2024-06-14 10:18:53,359 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:53,365 - harpy.image._manager - INFO - Writing results to layer 'label_whole_fov0'\n", + "2024-06-14 10:18:53,394 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n" ] }, { @@ -68,11 +68,11 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:18:53,518 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1'\n", - "2024-06-14 10:18:53,520 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:53,550 - sparrow.image._manager - INFO - Writing results to layer 'label_nuclear_fov1'\n", - "2024-06-14 10:18:53,571 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:53,580 - sparrow.image._manager - INFO - Writing results to layer 'label_whole_fov1'\n", + "2024-06-14 10:18:53,518 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1'\n", + "2024-06-14 10:18:53,520 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:53,550 - harpy.image._manager - INFO - Writing results to layer 'label_nuclear_fov1'\n", + "2024-06-14 10:18:53,571 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:53,580 - harpy.image._manager - INFO - Writing results to layer 'label_whole_fov1'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:183: ImplicitModificationWarning: Transforming to str index.\n", " warnings.warn(\"Transforming to str index.\", ImplicitModificationWarning)\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/models/models.py:929: ImplicitModificationWarning: Trying to modify attribute `._uns` of view, initializing view as actual.\n", @@ -143,10 +143,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:18:54,056 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:54,549 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_processed'\n", - "2024-06-14 10:18:54,552 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:54,890 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_processed'\n" + "2024-06-14 10:18:54,056 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:54,549 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_processed'\n", + "2024-06-14 10:18:54,552 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:54,890 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_processed'\n" ] }, { @@ -176,7 +176,7 @@ } ], "source": [ - "sdata_ark_analysis = sp.im.pixel_clustering_preprocess(\n", + "sdata_ark_analysis = harpy.im.pixel_clustering_preprocess(\n", " sdata_ark_analysis,\n", " img_layer=[\"raw_image_fov0\", \"raw_image_fov1\"],\n", " output_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", @@ -200,14 +200,14 @@ "\u001b[32m2024-06-14 10:18:55.164\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m84\u001b[0m - \u001b[34m\u001b[1mReading input.\u001b[0m\n", "\u001b[32m2024-06-14 10:18:55.165\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m86\u001b[0m - \u001b[34m\u001b[1mFitting model: clustering and metaclustering.\u001b[0m\n", "\u001b[32m2024-06-14 10:18:58.077\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m88\u001b[0m - \u001b[34m\u001b[1mUpdating derived values.\u001b[0m\n", - "2024-06-14 10:18:58,601 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:59,231 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_clusters'\n", - "2024-06-14 10:18:59,232 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:18:59,625 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_metaclusters'\n", - "2024-06-14 10:18:59,627 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:19:00,514 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_clusters'\n", - "2024-06-14 10:19:00,515 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-14 10:19:01,370 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_metaclusters'\n" + "2024-06-14 10:18:58,601 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:59,231 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_clusters'\n", + "2024-06-14 10:18:59,232 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:18:59,625 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_metaclusters'\n", + "2024-06-14 10:18:59,627 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:19:00,514 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_clusters'\n", + "2024-06-14 10:19:00,515 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-14 10:19:01,370 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_metaclusters'\n" ] }, { @@ -241,7 +241,7 @@ } ], "source": [ - "sdata_ark_analysis, fsom, mapping = sp.im.flowsom(\n", + "sdata_ark_analysis, fsom, mapping = harpy.im.flowsom(\n", " sdata_ark_analysis,\n", " img_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", " output_layer_clusters=[\n", @@ -266,15 +266,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_allocation_intensity.py:210: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_allocation_intensity.py:210: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_allocation_intensity.py:210: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_allocation_intensity.py:210: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `counts_clusters` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", - "2024-06-14 10:19:02,922 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov0_flowsom_clusters'\n", - "2024-06-14 10:19:02,929 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov1_flowsom_clusters'\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", + "2024-06-14 10:19:02,922 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov0_flowsom_clusters'\n", + "2024-06-14 10:19:02,929 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov1_flowsom_clusters'\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", " adata = spatialdata.models.TableModel.parse(\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `counts_clusters` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", @@ -314,7 +314,7 @@ } ], "source": [ - "sdata_ark_analysis = sp.tb.cluster_intensity(\n", + "sdata_ark_analysis = harpy.tb.cluster_intensity(\n", " sdata_ark_analysis,\n", " mapping=mapping,\n", " img_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", @@ -336,17 +336,17 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:19:03,234 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov0'\n", - "2024-06-14 10:19:03,241 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov1'\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", + "2024-06-14 10:19:03,234 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov0'\n", + "2024-06-14 10:19:03,241 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov1'\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", " adata = spatialdata.models.TableModel.parse(\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", "\u001b[32m2024-06-14 10:19:03.270\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m84\u001b[0m - \u001b[34m\u001b[1mReading input.\u001b[0m\n", "\u001b[32m2024-06-14 10:19:03.271\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m86\u001b[0m - \u001b[34m\u001b[1mFitting model: clustering and metaclustering.\u001b[0m\n", "\u001b[32m2024-06-14 10:19:03.302\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m88\u001b[0m - \u001b[34m\u001b[1mUpdating derived values.\u001b[0m\n", - "2024-06-14 10:19:03,514 - sparrow.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['clustering']'\n", - "2024-06-14 10:19:03,535 - sparrow.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['metaclustering']'\n", + "2024-06-14 10:19:03,514 - harpy.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['clustering']'\n", + "2024-06-14 10:19:03,535 - harpy.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['metaclustering']'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n" ] @@ -384,7 +384,7 @@ } ], "source": [ - "sdata_ark_analysis, fsom = sp.tb.flowsom(\n", + "sdata_ark_analysis, fsom = harpy.tb.flowsom(\n", " sdata_ark_analysis,\n", " labels_layer_cells=[\"label_whole_fov0\", \"label_whole_fov1\"],\n", " labels_layer_clusters=[\n", @@ -408,9 +408,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:19:03,666 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(clustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'clustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", - "2024-06-14 10:19:03,670 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(metaclustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'metaclustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", - "2024-06-14 10:19:03,670 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding average marker expression for each cell weighted by pixel cluster count to '.obs' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-14 10:19:03,666 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(clustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'clustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-14 10:19:03,670 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(metaclustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'metaclustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-14 10:19:03,670 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding average marker expression for each cell weighted by pixel cluster count to '.obs' of table layer 'table_cell_clustering_flowsom'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n" ] @@ -449,7 +449,7 @@ ], "source": [ "# weighted channel average for visualization -> calculate this on the flowsom clustered matrix\n", - "sdata_ark_analysis = sp.tb.weighted_channel_expression(\n", + "sdata_ark_analysis = harpy.tb.weighted_channel_expression(\n", " sdata_ark_analysis,\n", " table_layer_cell_clustering=\"table_cell_clustering_flowsom\",\n", " table_layer_pixel_cluster_intensity=\"counts_clusters\",\n", @@ -469,9 +469,9 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-14 10:19:03,790 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", - "2024-06-14 10:19:03,793 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", - "2024-06-14 10:19:03,796 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n" + "2024-06-14 10:19:03,790 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", + "2024-06-14 10:19:03,793 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", + "2024-06-14 10:19:03,796 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n" ] }, { diff --git a/docs/tutorials/general/Harpy_QC_IMC.ipynb b/docs/tutorials/general/Harpy_QC_IMC.ipynb index fca6d045..519dea4a 100644 --- a/docs/tutorials/general/Harpy_QC_IMC.ipynb +++ b/docs/tutorials/general/Harpy_QC_IMC.ipynb @@ -117,11 +117,11 @@ "%load_ext autoreload\n", "%autoreload 2\n", "\n", - "import sparrow as sp\n", + "import harpy\n", "import matplotlib.pyplot as plt\n", "import scanpy as sc\n", "import spatialdata_plot # noqa\n", - "from sparrow.datasets.proteomics import imc_example\n", + "from harpy.datasets.proteomics import imc_example\n", "\n", "plt.viridis()\n", "\n", @@ -1958,7 +1958,7 @@ } ], "source": [ - "df = sp.pl.calculate_snr_ratio(sdata)\n", + "df = harpy.pl.calculate_snr_ratio(sdata)\n", "df" ] }, @@ -1982,7 +1982,7 @@ "CD16 13.795251 6.557556\u001b[0m\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/textalloc/__init__.py:502: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " p = ax.transData.transform((x[i], y[i]))\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " ax.legend()\n" ] }, @@ -2008,7 +2008,7 @@ } ], "source": [ - "sp.pl.snr_ratio(sdata)" + "harpy.pl.snr_ratio(sdata)" ] }, { @@ -2031,7 +2031,7 @@ "CD16 13.795251 6.557556\u001b[0m\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/textalloc/__init__.py:502: FutureWarning: Series.__getitem__ treating keys as positions is deprecated. In a future version, integer keys will always be treated as labels (consistent with DataFrame behavior). To access a value by position, use `ser.iloc[pos]`\n", " p = ax.transData.transform((x[i], y[i]))\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_image.py:101: UserWarning: No artists with labels found to put in legend. Note that artists whose label start with an underscore are ignored when legend() is called with no argument.\n", " ax.legend()\n" ] }, @@ -2057,7 +2057,7 @@ } ], "source": [ - "sp.pl.snr_ratio(sdata, signal_threshold=2)" + "harpy.pl.snr_ratio(sdata, signal_threshold=2)" ] }, { @@ -2103,7 +2103,7 @@ } ], "source": [ - "sp.pl.signal_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" + "harpy.pl.signal_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" ] }, { @@ -2140,7 +2140,7 @@ } ], "source": [ - "sp.pl.snr_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" + "harpy.pl.snr_clustermap(sdata, signal_threshold=2, figsize=(12, 10))" ] }, { @@ -2159,34 +2159,34 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-09-27 15:30:42,237 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:43,063 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient1_001_image'\n", - "2024-09-27 15:30:43,094 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:43,544 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient1_002_image'\n", - "2024-09-27 15:30:43,584 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:44,018 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient1_003_image'\n", - "2024-09-27 15:30:44,043 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:44,383 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient2_001_image'\n", - "2024-09-27 15:30:44,412 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:44,843 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient2_002_image'\n", - "2024-09-27 15:30:44,869 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:45,276 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient2_003_image'\n", - "2024-09-27 15:30:45,308 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:45,694 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient2_004_image'\n", - "2024-09-27 15:30:45,733 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:46,214 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient3_001_image'\n", - "2024-09-27 15:30:46,238 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:46,625 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient3_002_image'\n", - "2024-09-27 15:30:46,652 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:47,080 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient3_003_image'\n", - "2024-09-27 15:30:47,130 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:47,403 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient4_005_image'\n", - "2024-09-27 15:30:47,440 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:47,789 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient4_006_image'\n", - "2024-09-27 15:30:47,815 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:48,042 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient4_007_image'\n", - "2024-09-27 15:30:48,065 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-27 15:30:48,317 - sparrow.image._manager - INFO - Writing results to layer 'normalized_Patient4_008_image'\n" + "2024-09-27 15:30:42,237 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:43,063 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient1_001_image'\n", + "2024-09-27 15:30:43,094 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:43,544 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient1_002_image'\n", + "2024-09-27 15:30:43,584 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:44,018 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient1_003_image'\n", + "2024-09-27 15:30:44,043 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:44,383 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient2_001_image'\n", + "2024-09-27 15:30:44,412 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:44,843 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient2_002_image'\n", + "2024-09-27 15:30:44,869 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:45,276 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient2_003_image'\n", + "2024-09-27 15:30:45,308 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:45,694 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient2_004_image'\n", + "2024-09-27 15:30:45,733 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:46,214 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient3_001_image'\n", + "2024-09-27 15:30:46,238 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:46,625 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient3_002_image'\n", + "2024-09-27 15:30:46,652 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:47,080 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient3_003_image'\n", + "2024-09-27 15:30:47,130 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:47,403 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient4_005_image'\n", + "2024-09-27 15:30:47,440 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:47,789 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient4_006_image'\n", + "2024-09-27 15:30:47,815 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:48,042 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient4_007_image'\n", + "2024-09-27 15:30:48,065 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-09-27 15:30:48,317 - harpy.image._manager - INFO - Writing results to layer 'normalized_Patient4_008_image'\n" ] }, { @@ -2677,7 +2677,7 @@ } ], "source": [ - "df_norm = sp.pl.calculate_mean_norm(sdata, overwrite=True, q_min=5, q_max=95, c_mask=[\"DNA1\", \"DNA2\"])\n", + "df_norm = harpy.pl.calculate_mean_norm(sdata, overwrite=True, q_min=5, q_max=95, c_mask=[\"DNA1\", \"DNA2\"])\n", "df_norm" ] }, @@ -2875,7 +2875,7 @@ } ], "source": [ - "sp.pl.clustermap(df_norm, row_colors=sp.pl.make_cols_colors(df_metadata), figsize=(12, 10))" + "harpy.pl.clustermap(df_norm, row_colors=harpy.pl.make_cols_colors(df_metadata), figsize=(12, 10))" ] }, { @@ -2912,7 +2912,7 @@ } ], "source": [ - "sp.pl.segmentation_coverage(sdata)" + "harpy.pl.segmentation_coverage(sdata)" ] }, { @@ -3108,7 +3108,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:44: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:44: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " sdata.table.obs[[area_key, sample_key]].plot.box(by=sample_key, rot=45, ax=ax)\n" ] }, @@ -3134,7 +3134,7 @@ } ], "source": [ - "sp.pl.segmentation_size_boxplot(sdata)" + "harpy.pl.segmentation_size_boxplot(sdata)" ] }, { @@ -3218,7 +3218,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:20: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:20: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df = table.groupby(sample_key).agg({sample_key: \"count\", \"image_width_px\": \"mean\", \"image_height_px\": \"mean\"})\n" ] }, @@ -3384,7 +3384,7 @@ } ], "source": [ - "sp.pl.calculate_segments_per_area(sdata)" + "harpy.pl.calculate_segments_per_area(sdata)" ] }, { @@ -3396,7 +3396,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/plot/_qc_segmentation.py:20: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/plot/_qc_segmentation.py:20: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n", " df = table.groupby(sample_key).agg({sample_key: \"count\", \"image_width_px\": \"mean\", \"image_height_px\": \"mean\"})\n" ] }, @@ -3422,7 +3422,7 @@ } ], "source": [ - "sp.pl.segments_per_area(sdata)" + "harpy.pl.segments_per_area(sdata)" ] }, { @@ -3573,7 +3573,7 @@ } ], "source": [ - "sp.pl.ridgeplot_channel_sample(adata, y=\"patient_id\", value_vars=[\"Ecad\", \"CD40\", \"PD1\"])" + "harpy.pl.ridgeplot_channel_sample(adata, y=\"patient_id\", value_vars=[\"Ecad\", \"CD40\", \"PD1\"])" ] }, { diff --git a/docs/tutorials/general/Harpy_feature_calculation.ipynb b/docs/tutorials/general/Harpy_feature_calculation.ipynb index 802b7be2..207ef5f4 100644 --- a/docs/tutorials/general/Harpy_feature_calculation.ipynb +++ b/docs/tutorials/general/Harpy_feature_calculation.ipynb @@ -11,11 +11,20 @@ }, { "cell_type": "code", - "execution_count": 41, + "execution_count": 1, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/dask/dataframe/__init__.py:31: FutureWarning: The legacy Dask DataFrame implementation is deprecated and will be removed in a future version. Set the configuration option `dataframe.query-planning` to `True` or None to enable the new Dask Dataframe implementation and silence this warning.\n", + " warnings.warn(\n" + ] + } + ], "source": [ - "import sparrow as sp\n", + "import harpy\n", "from matplotlib import pyplot as plt\n", "import spatialdata_plot" ] @@ -26,14 +35,22 @@ "source": [ "## 1. Load the example dataset\n", "\n", - "The example dataset for this notebook will be downloaded and cached using `pooch` via `sparrow.dataset.registry`. The dataset is a small subset of a larger dataset that was generated using the MACSima platform.\n" + "The example dataset for this notebook will be downloaded and cached using `pooch` via `harpy.dataset.registry`. The dataset is a small subset of a larger dataset that was generated using the MACSima platform.\n" ] }, { "cell_type": "code", - "execution_count": 42, + "execution_count": 2, "metadata": {}, "outputs": [ + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/zarr/creation.py:614: UserWarning: ignoring keyword argument 'read_only'\n", + " compressor, fill_value = _kwargs_compat(compressor, fill_value, kwargs)\n" + ] + }, { "data": { "text/plain": [ @@ -45,13 +62,13 @@ " HumanLiverH35 (Images)" ] }, - "execution_count": 42, + "execution_count": 2, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "from sparrow.datasets import macsima_example\n", + "from harpy.datasets import macsima_example\n", "\n", "sdata = macsima_example()\n", "sdata" @@ -66,7 +83,7 @@ }, { "cell_type": "code", - "execution_count": 43, + "execution_count": 3, "metadata": {}, "outputs": [ { @@ -82,7 +99,7 @@ "'R0 DAPI, R1 DAPI, R1 VSIG4, R1 CD14, R2 DAPI, R2 CD163, R3 DAPI, R3 CD11c, R3 CD335, R4 DAPI, R4 CD141, R5 DAPI, R5 CD169, R5 CD49d, R6 DAPI, R6 CD279, R7 DAPI, R7 CD4, R7 CD41a, R8 DAPI, R8 CD16b, R9 DAPI, R9 CD26, R9 CD133, R10 DAPI, R10 CD36, R11 DAPI, R11 CD68, R11 CD164, R12 DAPI, R12 CD90, R13 DAPI, R13 Desmin, R13 CD123, R14 DAPI, R14 CD38, R15 DAPI, R15 CD49a, R15 CD1c, R16 DAPI, R16 CD5, R17 DAPI, R17 CD54, R17 CD206, R18 DAPI, R18 CD73, R19 DAPI, R19 CD49b, R19 CD64, R20 DAPI, R20 CD161, R21 DAPI, R21 CD41b, R21 CD55, R22 DAPI, R22 CD56, R23 DAPI, R23 CD105, R23 CD271, R24 DAPI, R24 CD107b, R25 DAPI, R25 CD133, R25 CD13, R26 DAPI, R26 CD11a, R26 CD134, R27 DAPI, R27 CD61, R27 CD177, R27 CD146, R28 DAPI, R28 CD20, R28 CD95, R29 DAPI, R29 CD24, R29 CD196, R29 CD3, R30 DAPI, R30 CD34, R30 CD230, R31 DAPI, R31 CD43, R31 CD243, R31 CD200, R32 DAPI, R32 CD268, R32 CD277, R33 DAPI, R33 CD8, R33 CD28, R33 CD22, R34 DAPI, R34 CD9, R34 CD35, R35 DAPI, R35 CD104, R35 CD235a, R35 CD276, R36 DAPI, R36 CD162, R36 CD40, R37 DAPI, R37 CD27, R37 CD44, R37 CD48, R38 DAPI, R38 CD52, R38 CD57, R39 DAPI, R39 CD45RA, R39 CD65, R39 CD74, R40 DAPI, R40 CD107a, R40 CD39, R41 DAPI, R41 CD82, R41 CD7, R41 CD98, R43 DAPI, R43 HLA, R43 HLA, R43 CD19, R44 DAPI, R44 CD63, R44 Collagen, R45 DAPI, R45 CD99, R45 PSA, R45 CD29, R46 DAPI, R46 CD18, R46 S100A8, R47 DAPI, R47 CD326, R47 CD71, R48 DAPI, R48 CD45, R48 CD47, R48 CD15, R49 DAPI, R49 MPO, R49 CX3CR1, R50 DAPI, R50 CD31, R50 CD183, R50 CD66abce, R51 DAPI, R51 Vimentin, R51 WT1'" ] }, - "execution_count": 43, + "execution_count": 3, "metadata": {}, "output_type": "execute_result" } @@ -95,7 +112,7 @@ }, { "cell_type": "code", - "execution_count": 44, + "execution_count": 4, "metadata": {}, "outputs": [ { @@ -104,7 +121,7 @@ "100" ] }, - "execution_count": 44, + "execution_count": 4, "metadata": {}, "output_type": "execute_result" } @@ -120,17 +137,17 @@ "source": [ "## 2. Plot the image\n", "\n", - "We can plot the image to see what it looks like. For this we can use the `sp.pl.plot_image` function. There is also interoperability with `spatialdata-plot` for advanced visualisation. Note that image intensities are not normalized, so combined plotting of channels may not be very informative.\n" + "We can plot the image to see what it looks like. For this we can use the `harpy.pl.plot_image` function. There is also interoperability with `spatialdata-plot` for advanced visualisation. Note that image intensities are not normalized, so combined plotting of channels may not be very informative.\n" ] }, { "cell_type": "code", - "execution_count": 45, + "execution_count": 5, "metadata": {}, "outputs": [ { "data": { - "image/png": "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", + "image/png": "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", "text/plain": [ "
" ] @@ -141,19 +158,19 @@ ], "source": [ "subset_channels = [\"R0 DAPI\", \"R13 Desmin\", \"R23 CD271\"]\n", - "sp.pl.plot_image(sdata, img_layer=\"HumanLiverH35\", channel=subset_channels, figsize=(5, 5))" + "harpy.pl.plot_image(sdata, img_layer=\"HumanLiverH35\", channel=subset_channels, figsize=(5, 5))" ] }, { "cell_type": "code", - "execution_count": 46, + "execution_count": 6, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAAElCAYAAAAWfiigAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9ebhmV1Unjn/2PtM73KmqUkNSGZlNwqCBQBpkUAw2QVRAEQWVRrvRRNQo8nVEWgYneLAVWhwQnyaI0MBPWrpbQ1BQBILSIkNCgJA5Nded3ukMe/3+WHvtvc+573tvVaWqUhXPep773Hvf4Zx9pr3XZ63P+ixFRITWWmuttdZaa6211lprrbXWTorpB3sArbXWWmuttdZaa6211lprDyVrQVZrrbXWWmuttdZaa6211tpJtBZktdZaa6211lprrbXWWmutnURrQVZrrbXWWmuttdZaa6211tpJtBZktdZaa6211lprrbXWWmutnURrQVZrrbXWWmuttdZaa6211tpJtBZktdZaa6211lprrbXWWmutnURrQVZrrbXWWmuttdZaa6211tpJtBZktdZaa6211lprrbXWWmutnURrQVZrrbXWWmutnWa74447oJTCu971rgd7KK211lprrZ0Ca0FWa1vau971Liil3E8cx9i7dy9+9Ed/FPfee+/U79xyyy34zu/8TszNzWH79u142ctehoMHDx7T/pr72r59O6644gr89E//NL785S9v+t23v/3tUErhyU9+8jFtX2uN8847D1dffTX+/u//vva5iy++GM973vOOacyttfZQteN9/m+++Wb85E/+JK644gokSQKl1NTtjkYjvOIVr8Dll1+OxcVFzM3N4fGPfzx+7/d+D0VRbDmuv//7v6+NK8sy7N69G8985jPxxje+8Zjnm9Zaa+302vHMKcYYvOtd78Lzn/98XHDBBej3+7j88svx+te/HuPxuPbZBzqniO3fvx8///M/j8c85jHo9Xro9/u44oor8PrXvx7Ly8vuc8985jNrvsTCwgIe/ehH42UvexluvPHGDdsdDod429vehquvvhrnnnsu5ufn8c3f/M347//9v6Oqqtpnf/3Xf712jpo/n/zkJ91nj3XObe30W/xgD6C1s8f+63/9r7jkkkswHo/x6U9/Gu9617vwj//4j/jiF7+ITqfjPnfPPffg6U9/OhYXF/HGN74R6+vr+N3f/V184QtfwM0334w0Tbfc13d8x3fgh3/4h0FEWFlZwec//3n8+Z//Od7+9rfjt37rt3D99ddP/d4NN9yAiy++GDfffDO+9rWv4RGPeMSW2//GN76Bt7/97fi2b/s2fOQjH8F//I//8cROUGutPYTtWJ////2//zf+5E/+BI973OPwsIc9DLfddtvU7Y1GI3zpS1/Cc5/7XFx88cXQWuOf/umf8LM/+7P4zGc+g/e85z3HNK5XvepVeNKTnoSqqnDw4EH80z/9E1772tfiLW95C973vvfh277t207K8Z9su+iiizAajZAkyYM9lNZae1DsWOaU4XCIl7/85XjKU56CV77yldi1axc+9alP4bWvfS1uuukmfOxjH3Og4mTMKZ/97Gfx3Oc+F+vr63jpS1+KK664AgDwz//8z/jN3/xNfOITn8Df/u3fus+ff/75eNOb3gQAGAwG+NrXvoYPfvCDePe7343v//7vx7vf/W73jN9+++34qZ/6KXz7t387rr/+eiwsLOBv/uZv8JM/+ZP49Kc/jT//8z93233BC14w1X/5pV/6Jayvr+NJT3qSe+1Y59zWHgSj1lrbwv7sz/6MANBnP/vZ2uuvec1rCAD95V/+Ze31n/iJn6But0t33nmne+3GG28kAPSOd7xjy/0BoGuvvXbD64cOHaKrrrqKANBHPvKRDe/ffvvtBIA++MEP0s6dO+nXf/3Xj3n7//Zv/0YA6Oqrr3avXXTRRXTNNddsOd7WWnso2/E+//v27aPhcEhERNdeey0d7zJz3XXXEQC6//77N/3c3/3d3xEAev/737/hvX/913+lXbt20dLSEt13333Htf/WWmvt1NrxzCmTyYQ++clPbtjG6173OgJAN95445b7O9Y55ejRo7R3717avXs33XLLLRve37dvH/3Gb/yG+/8Zz3gGXXbZZRs+V5Yl/eRP/iQBoF/4hV9wrx88eJC++MUvbvj8y1/+cgJAX/3qVzcd31133UVKKfrxH//xDeN6IHNua6fOWrpgayds3/qt3woA+PrXv157/QMf+ACe97zn4cILL3SvPfvZz8ajHvUovO997zvh/e3YsQPvfe97Eccx3vCGN2x4/4YbbsC2bdtwzTXX4EUvehFuuOGGY972Yx/7WJxzzjn4xje+ccLja621f0826/nfvXs3ut3u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4/zzz8ezn/1sfPu3fzuuvPLKFmC11toWdizP/8mwF73oRVhfX8df/dVfPaDtFEWB2267zdVhGGMAAC996Utx4403Tv0REPVN3/RN+MpXvoL3vve9eNrTnoYPfOADeNrTnobXvva1G/bTzJLPeg1gZ2krm/Xd1lp7qNnxzik33ngjfviHfxjXXHMN/vAP//CY93Osc8pjHvMY3Hbbbcjz/LiOY5Z98YtfBICptWDvete78JrXvAavfOUrtxTT+OQnP4k777yzzWKdhdaCrNZOyKIowpve9Cbcd999NfWuvXv3YufOnfjnf/7nDd+5+eab8YQnPOEB7feuu+7Cxz/+cVx11VUuOnTDDTdg165deP/737/h5yUveQk+9KEPORpja6219sBt1vN/MkyeVVHkOlH7n//zf2I0GuE5z3kOAGDnzp2Yn59HVVV49rOfPfVn165d7vv9fh8vfvGL8Wd/9me46667cM011+ANb3jDhgaorbXW2gO3reaUz3zmM/je7/1ePPGJT8T73ve+46rZPNY55bu+67swGo3wgQ984PgGP8WqqsJ73vMe9Ho9PO1pT6u991d/9Vf4sR/7MbzgBS/A2972ti23dcMNN0AphR/8wR98wONq7fRaC7JaO2F75jOfiSuvvBJvfetba47HC1/4Qvz1X/817r77bvfaTTfdhNtuu+0BCUscOXIEL3nJS1BVFX75l38ZAE+eH/zgB/G85z0PL3rRizb8XHfddVhbW8OHP/zhEz/Q1lprbYPNev6P1UR4pml/8id/AgBTFUqP1T7/+c/jZ37mZ7Bt2zZce+21ANiJe+ELX4gPfOADLsIc2sGDB93fTVpfmqa49NJLQUQoiuKEx9Vaa63Ntllzyi233IJrrrkGF198Mf76r/96ZsnBA51TXvnKV+Lcc8/Fz/3cz01t6HvgwAG8/vWv3/I4qqrCq171Ktxyyy141atehYWFBffeJz7xCfzAD/wAnv70p+OGG26A1pu74UVR4P3vfz+e9rSnbaAmt3bmW1uT1doDsle/+tX4vu/7PrzrXe9yxdq/9Eu/hPe///141rOehZ/+6Z/G+vo6fud3fgePfexj8fKXv/yYtnvbbbfh3e9+N4gIq6ur+PznP4/3v//9WF9fx1ve8hZ853d+JwCWXF1bW8Pzn//8qdt5ylOegp07d+KGG27Ai1/84pNz0K21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wOx+R2ax3bPYZmA2272RxxBgc40js/j9AHK71zNmsc3A+o0jq3qVXbt2AQAefvjh6POHH35Ytu3atQuPPPJItL1tWxw6dCjap+8c+ho5cuTYfJHHkBw5cpxp5HEkR44cGyFWFWTt2bMHu3btwm233SafHT16FPv378fevXsBAHv37sXhw4dxzz33yD633347rLW48sorZZ877rgDjXIuuvXWW/HUpz61l57PkSPH5og8huTIkeNMI48jOXLk2BBxuklcx44dowMHDtCBAwcIAH3gAx+gAwcO0Pe//30iIrrxxhtpx44d9JnPfIbuv/9+etnLXkZ79uyhpaUlOcev/dqv0eWXX0779++nO++8k57ylKfQK1/5Stl++PBh2rlzJ1133XX0wAMP0E033UQLCwv0N3/zN6fczuXlZXr3u99Ny8vLp3uLZy1msc1Eud3rGbPYZqK43XkMWdvI7V6/mMU2E81mu9M253Fk7WIW20yU272eMYttJlr/dp82yPrCF77Q69Rx/fXXExGRtZbe+c530s6dO2k4HNILX/hCevDBB6NzPPbYY/TKV76Stm7dStu2baNXvepVdOzYsWif++67j6666ioaDod08cUX04033vjE7zJHjhwbJvIYkiNHjjONPI7kyJFjo8cZ1cnKkSNHjhw5cuTIkSNHjhxxbGybnhw5cuTIkSNHjhw5cuSYscggK0eOHDly5MiRI0eOHDlWMTLIypEjR44cOXLkyJEjR45VjAyycuTIkSNHjhw5cuTIkWMVY1OCrA996EN48pOfjLm5OVx55ZX48pe/fNba8t73vhe//Mu/jHPOOQcXXnghXv7yl+PBBx+M9lleXsYNN9yA888/H1u3bsVv/dZvTRRAfOihh3DttddiYWEBF154Id7ylregbdt1u48bb7wRxhi88Y1v3NDt/tGPfoTf+Z3fwfnnn4/5+Xk885nPxFe+8hXZTkR417vehYsuugjz8/O4+uqr8e1vfzs6x6FDh7Bv3z5s27YNO3bswKtf/WocP358zdrcdR3e+c53Ys+ePZifn8fP/MzP4M///M+hPWk2QrvvuOMOvPSlL8Xu3bthjMEtt9wSbV+tNt5///14/vOfj7m5OVxyySV43/vet2r3cDqRx5HVjVkZQ4A8jqxVu/MYkseQM41ZGUfyGJLnItyYTRU33XQTDQYD+vu//3v62te+Rr//+79PO3bsoIcffvistOeaa66hj33sY/TAAw/QvffeSy95yUvo0ksvpePHj8s+r33ta+mSSy6h2267jb7yla/Qr/zKr9Bzn/tc2d62LT3jGc+gq6++mg4cOECf+9zn6IILLqC3v/3t63IPX/7yl+nJT34y/eIv/iK94Q1v2LDtPnToEF122WX0u7/7u7R//3767ne/S//2b/9G//Vf/yX73HjjjbR9+3a65ZZb6L777qNf//Vf762d8qxnPYu+9KUv0X/8x3/Qz/7sz0a1U1Y73vOe99D5559Pn/3sZ+l73/sefepTn6KtW7fSX/7lX26odn/uc5+jd7zjHfTpT3+aANDNN98cbV+NNh45coR27txJ+/btowceeIA++clP0vz8/GnVpVmNyOPI6sasjCFEeRxZy3bnMSSPIWcSszKO5DEkz0U4Nh3Ies5znkM33HCD/L/rOtq9eze9973vPYutCvHII48QAPriF79IRK7YYV3X9KlPfUr2+cY3vkEA6K677iIi94UqioIOHjwo+3z4wx+mbdu20Wg0WtP2Hjt2jJ7ylKfQrbfeSr/6q78qA9tGbPdb3/pWuuqqq6Zut9bSrl276P3vf798dvjwYRoOh/TJT36SiIi+/vWvEwC6++67ZZ9//dd/JWMM/ehHP1r1NhMRXXvttfR7v/d70We/+Zu/Sfv27duw7U4HttVq41//9V/TueeeG30/3vrWt9JTn/rUVb+HlSKPI6sXszSGEOVxZL3anceQsxuzNIYQzdY4kseQPBfh2FRywfF4jHvuuQdXX321fFYUBa6++mrcddddZ7FlIY4cOQIAOO+88wAA99xzD5qmidr8tKc9DZdeeqm0+a677sIzn/lM7Ny5U/a55pprcPToUXzta19b0/becMMNuPbaa6P2bdR2//M//zOuuOIK/PZv/zYuvPBCXH755fjbv/1b2f69730PBw8ejNq8fft2XHnllVGbd+zYgSuuuEL2ufrqq1EUBfbv37/qbQaA5z73ubjtttvwrW99CwBw33334c4778SLX/ziDd1uHavVxrvuugsveMELMBgMZJ9rrrkGDz74IB5//PE1vw8gjyOrHbM0hgB5HDlb40geQ9Y3ZmkMAWZrHMljSJ6LcFRnekMbKR599FF0XRf9IQHAzp078c1vfvMstSqEtRZvfOMb8bznPQ/PeMYzAAAHDx7EYDDAjh07on137tyJgwcPyj5998Tb1ipuuukm/Od//ifuvvvuiW0bsd3f/e538eEPfxhvetOb8Kd/+qe4++678frXvx6DwQDXX3+9XLOvTbrNF154YbS9qiqcd955a9bXb3vb23D06FE87WlPQ1mW6LoO73nPe7Bv3z5p00Zst47VauPBgwexZ8+eiXPwtnPPPXdN2q8jjyOrF7M2hgB5HDlb40geQ9YvZmkMAWZvHMljSJ6LyHlP/xZyPNG44YYb8MADD+DOO+882005afzgBz/AG97wBtx6662Ym5s72805pbDW4oorrsBf/MVfAAAuv/xyPPDAA/jIRz6C66+//iy3bnr80z/9Ez7xiU/gH//xH/ELv/ALuPfee/HGN74Ru3fv3tDtznF2YlbGkVkcQ4A8juTY/DErYwgwm+NIHkNycGwqueAFF1yAsiwnXGUefvhh7Nq16yy1ysXrXvc6fPazn8UXvvAF/NRP/ZR8vmvXLozHYxw+fDjaX7d5165dvffE29Yi7rnnHjzyyCP4pV/6JVRVhaqq8MUvfhEf/OAHUVUVdu7cueHafdFFF+HpT3969NnP//zP46GHHoquudL3Y9euXXjkkUei7W3b4tChQ2vW1295y1vwtre9Da94xSvwzGc+E9dddx3+6I/+CO9973s3dLt1rFYbz8Z3PY08jqxOzOIYAuRx5GyNI3kMWZ+YpTEEmM1xJI8heS7CsalA1mAwwLOf/Wzcdttt8pm1Frfddhv27t17VtpERHjd616Hm2++GbfffvsE/fjsZz8bdV1HbX7wwQfx0EMPSZv37t2Lr371q9GX4tZbb8W2bdsm/pBXK174whfiq1/9Ku699175ueKKK7Bv3z75faO1+3nPe96EJe23vvUtXHbZZQCAPXv2YNeuXVGbjx49iv3790dtPnz4MO655x7Z5/bbb4e1FldeeeWqtxkAFhcXURTxn2JZlrDWbuh261itNu7duxd33HEHmqaRfW699VY89alPXReZD5DHkdWKWRxDgDyOnK1xJI8haxuzOIYAszmO5DEkz0UkTtvKY4PHTTfdRMPhkD7+8Y/T17/+dXrNa15DO3bsiFxl1jP+4A/+gLZv307//u//Tj/+8Y/lZ3FxUfZ57WtfS5deeindfvvt9JWvfIX27t1Le/fule1sP/qiF72I7r33Xvr85z9PT3rSk9bNNpVDO/psxHZ/+ctfpqqq6D3veQ99+9vfpk984hO0sLBA//AP/yD73HjjjbRjxw76zGc+Q/fffz+97GUv67X2vPzyy2n//v1055130lOe8pQ1tU29/vrr6eKLLxbb1E9/+tN0wQUX0J/8yZ9sqHYfO3aMDhw4QAcOHCAA9IEPfIAOHDhA3//+91etjYcPH6adO3fSddddRw888ADddNNNtLCwcFbsl/M4svqx0ccQojyOrGW78xiSx5DViI0+juQxJM9FODYdyCIi+qu/+iu69NJLaTAY0HOe8xz60pe+dNbaAqD352Mf+5jss7S0RH/4h39I5557Li0sLNBv/MZv0I9//OPoPP/93/9NL37xi2l+fp4uuOACevOb30xN06zrvaQD20Zs97/8y7/QM57xDBoOh/S0pz2NPvrRj0bbrbX0zne+k3bu3EnD4ZBe+MIX0oMPPhjt89hjj9ErX/lK2rp1K23bto1e9apX0bFjx9aszUePHqU3vOENdOmll9Lc3Bz99E//NL3jHe+IrEM3Qru/8IUv9H6Xr7/++lVt43333UdXXXUVDYdDuvjii+nGG29ctXs4ncjjyOrHLIwhRHkcWat25zEkjyGrEbMwjuQxJM9FiIgMkSrlnCNHjhw5cuTIkSNHjhw5zig2VU5Wjhw5cuTIkSNHjhw5cpztyCArR44cOXLkyJEjR44cOVYxMsjKkSNHjhw5cuTIkSNHjlWMDLJy5MiRI0eOHDly5MiRYxUjg6wcOXLkyJEjR44cOXLkWMXIICtHjhw5cuTIkSNHjhw5VjEyyMqRI0eOHDly5MiRI0eOVYwMsnLkyJEjR44cOXLkyJFjFSODrBw5cuTIkSNHjhw5cuRYxcggK0eOHDly5MiRI0eOHDlWMTLIypEjR44cOXLkyJEjR45VjP8HunJQE64f9A4AAAAASUVORK5CYII=", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA3QAAALICAYAAAA377IBAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOy9eZwdVZ33/zlVd+8t6SzdgYQkwMMSVglbHpQBxUSMCwIjggsqgvgkMhAHEGVY1AEUQZgBZBzF+BuCICOMDlEggIBIEAyG3SAQSIB09vR6t6o6vz/OUlW3by9Jp7np7s/7xX2RvvdU1am6t751vruQUkoQQgghhBBCCBlxOLWeACGEEEIIIYSQHYMKHSGEEEIIIYSMUKjQEUIIIYQQQsgIhQodIYQQQgghhIxQqNARQgghhBBCyAiFCh0hhBBCCCGEjFCo0BFCCCGEEELICIUKHSGEEEIIIYSMUBK1ngAhZHgpFAoolUq1ngZSqRQymUytp0EI2U4oQwghQ4VyZHihQkfIKKZQKGDm9Hq0bfBrPRW0trZi9erVo1KQEjJaoQwhhAwVypHhhwodIaOYUqmEtg0+3loxA40NtYuw7ugMMH32myiVSqNOiBIymqEMIYQMFcqR4YcKHSFjgPoGgfoGUbPjB6jdsQkhQ4cyhBAyVChHhg8WRSGEEEIIIYSQEQoVOkIIIYQQQggZoTDkkpAxgC8D+LK2xyeEjFwoQwghQ4VyZPigh44QQgghhBBCRihU6AghhBBCCCFkhMKQS0LGAAEkAtQuzqGWxyaEDB3KEELIUKEcGT7ooSOEEEIIIYSQEQo9dISMAQIEqGUqcG2PTggZKpQhhJChQjkyfNBDRwghhBBCCCEjFCp0hBBCCCGEEDJCYcglIWMAX0r4snbJwLU8NiFk6FCGEEKGCuXI8EEPHSGEEEIIIYSMUKjQEUIIIYQQQsgIhSGXhIwB2PuFEDIUKEMIIUOFcmT4oIeOEEIIIYQQQkYo9NARMgYIIOHTKkYI2UEoQwghQ4VyZPigh44QQgghhBBCRihU6AghhBBCCCFkhMKQS0LGAExEJoQMBcoQQshQoRwZPuihI4QQQgghhJARChU6QgghhBBCCBmhMOSSkDGALyV8WbtQg1oemxAydChDCCFDhXJk+KCHjhBCCCGEEEJGKPTQETIGCPSrlscnhIxcKEMIIUOFcmT4oIeOEEIIIYQQQkYoVOgIIYQQQgghZITCkEtCxgA+JPwa9l+p5bEJIUOHMoQQMlQoR4YPeugIIYQQQgghZIRChY4QQgghhBBCRigMuSRkDOBL9arl8QkhIxfKEELIUKEcGT7ooSOEEEIIIYSQEQo9dISMAdj7hRAyFChDCCFDhXJk+KCHjhBCCCGEEEJGKFToCCGEEEIIIWSEwpBLQsYAAQR8iJoenxAycqEMIYQMFcqR4YMeOkIIIYQQQggZoVChI4QQQgghhJARCkMuCRkDBFK9anl8QsjIhTKEEDJUKEeGD3roCCGEEEIIIWSEQg8dIWMAv8aJyLU8NiFk6FCGEEKGCuXI8EEPHSGEEEIIIYSMUKjQEUIIIYQQQkiEq6++GkcccQQaGhowefJknHTSSVi1alVszHHHHQchROx17rnnxsasWbMG8+fPRy6Xw+TJk3HhhRfC87zYmEcffRSHHXYY0uk09t57byxevHi75sqQS0LGAAxzIIQMBcoQQshQGWly5LHHHsOCBQtwxBFHwPM8fOtb38LcuXPx8ssvo66uzo47++yz8Z3vfMf+ncvlwmP6PubPn4/W1lY8+eSTWLduHb7whS8gmUziqquuAgCsXr0a8+fPx7nnnoslS5bg4Ycfxle+8hVMmTIF8+bNG9RcqdARQgghhBBCSIT7778/9vfixYsxefJkrFixAscee6x9P5fLobW1teo+HnzwQbz88st46KGH0NLSgkMPPRTf/e53cfHFF+OKK65AKpXCrbfeipkzZ+K6664DAOy///544okn8KMf/WjQCh1DLgkhhBBCCCFjgo6OjtirWCwOarv29nYAQHNzc+z9JUuWYOLEiTjwwANxySWXoKenx362fPlyHHTQQWhpabHvzZs3Dx0dHXjppZfsmBNOOCG2z3nz5mH58uWDPid66AgZAwRSIJC1C3Oo5bEJIUOHMoQQMlR2FTkybdq02PuXX345rrjiiv63DQKcf/75OOaYY3DggQfa98844wxMnz4du+22G55//nlcfPHFWLVqFe655x4AQFtbW0yZA2D/bmtr63dMR0cH8vk8stnsgOdGhY4QQgghhBAyJli7di0aGxvt3+l0esBtFixYgBdffBFPPPFE7P1zzjnH/vuggw7ClClT8KEPfQivv/469tprr5036QGgQkfIGGCkJSITQnYtKEMI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4YMeOkIIIYQQQggZodBDR8gYgInIhJChQBlCCBkqlCPDBz10hJBdjh//+Mc4+OCD0djYiMbGRsyZMwe///3v7eeFQgELFizAhAkTUF9fj1NOOQXr16+P7WPNmjWYP38+crkcJk+ejAsvvBCe58XGPProozjssMOQTqex9957Y/Hixb3mcvPNN2PGjBnIZDI46qij8PTTTw/LORNCCCGE7AhU6AghuxxTp07FNddcgxUrVuAvf/kLPvjBD+KTn/wkXnrpJQDABRdcgP/93//F3XffjcceewzvvvsuTj75ZLu97/uYP38+SqUSnnzySfziF7/A4sWLcdlll9kxq1evxvz583H88cdj5cqVOP/88/GVr3wFDzzwgB1z1113YdGiRbj88svx7LPP4pBDDsG8efOwYcOG9+5iEEIIIYT0g5ByFGcIEjLG6ejoQFNTE/7j2dnI1tcuwjrf5eGrh61Ae3s7Ghsbd2gfzc3NuPbaa3Hqqadi0qRJuOOOO3DqqacCAP72t79h//33x/Lly3H00Ufj97//PT72sY/h3XffRUtLCwDg1ltvxcUXX4yNGzcilUrh4osvxtKlS/Hiiy/aY3zmM5/Btm3bcP/99wMAjjrqKBxxxBG46aabAABBEGDatGn4+te/jm9+85tDuSSEjAhGkwwhhNQGypHhhx46Qsh7RkdHR+xVLBYH3Mb3fdx5553o7u7GnDlzsGLFCpTLZZxwwgl2zH777Yc99tgDy5cvBwAsX74cBx10kFXmAGDevHno6OiwXr7ly5fH9mHGmH2USiWsWLEiNsZxHJxwwgl2DCGEEEJIraFCRwh5z5g2bRqamprs6+qrr+5z7AsvvID6+nqk02mce+65uPfeezFr1iy0tbUhlUph3LhxsfEtLS1oa2sDALS1tcWUOfO5+ay/MR0dHcjn89i0aRN83686xuyDEEIIIaTWsMolIWOAAA6CGtpvzLHXrl0bC3NIp9N9brPvvvti5cqVaG9vx3//93/jzDPPxGOPPTbscyWE9GZXkSGEkJEL5cjwQYWOEPKeYapWDoZUKoW9994bADB79mw888wzuPHGG3HaaaehVCph27ZtMS/d+vXr0draCgBobW3tVY3SVMGMjqmsjLl+/Xo0NjYim83CdV24rlt1jNkHIYQQQkitGb2qKiFkVBEEAYrFImbPno1kMomHH37YfrZq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EAKLFy+u9VQIIYSQPqFCN0pYvHgxhBD2lUgksPvuu+OLX/wi3nnnnarbvPLKK/jIRz6C+vp6NDc34/Of/zw2btw4qONVHqu5uRmzZ8/GP/3TP+Hll1/ud9tbbrkFQggcddRRg9q/4zjYbbfdMHfuXDz66KOxcTNmzMDHPvaxQc15LCMBSFnDV60vwChne+//p59+Gv/v//0/zJ49G8lkEkJUt1rm83mcddZZOPDAA9HU1IT6+noccsghuPHGG1Eulwec16OPPhqbVzqdRktLC4477jhcddVVg5Y3pPZQhowttkemBEGAxYsX4xOf+ASmTZuGuro6HHjggfje976HQqEQGztUmWJYv349/vmf/xn77bcfcrkc6urqMHv2bHzve9/Dtm3b7LjjjjsutpZobGzEvvvui89//vNYtmxZr/329PTg5ptvxty5czFlyhQ0NDTgfe97H3784x/D9/3Y2CuuuCJ2jSpff/rTn+zYwcrc0Q7lyPDBkMtRxne+8x3MnDkThUIBTz31FBYvXownnngCL774IjKZjB339ttv49hjj0VTUxOuuuoqdHV14Yc//CFeeOEFPP3000ilUgMe68Mf/jC+8IUvQEqJ9vZ2PPfcc/jFL36BW265Bd///vexaNGiqtstWbIEM2bMwNNPP43XXnsNe++994D7X716NW655RZ88IMfxNKlS3HiiSfu2AUiZBQz2Pv/d7/7HX7605/i4IMPxp577olXX3216v7y+TxeeuklfPSjH8WMGTPgOA6efPJJXHDBBfjzn/+MO+64Y1DzOu+883DEEUfA931s3LgRTz75JC6//HJcf/31+NWvfoUPfvCDO+X8dzbTp09HPp9HMpms9VQIqQmDkSk9PT340pe+hKOPPhrnnnsuJk+ejOXLl+Pyyy/Hww8/jEceecQqMDtDpjzzzDP46Ec/iq6uLnzuc5/D7NmzAQB/+ctfcM011+Dxxx/Hgw8+aMdPnToVV199NQCgu7sbr732Gu655x7cfvvt+PSnP43bb7/d3uNvvPEGvv71r+NDH/oQFi1ahMbGRjzwwAP4f//v/+Gpp57CL37xC7vfk08+uer65Vvf+ha6urpwxBFH2PcGK3MJ2VGo0I0yTjzxRBx++OEAgK985SuYOHEivv/97+O3v/0tPv3pT9txV111Fbq7u7FixQrsscceAIAjjzwSH/7wh7F48WKcc845Ax5rn332wec+97nYe9dccw0+/vGP4xvf+Ab2228/fPSjH419vnr1ajz55JO455578NWvfhVLlizB5ZdfPqj9f+pTn8LBBx+MG264gQodIVUY7P3/ta99DRdffDGy2SwWLlzY5+KiubkZTz31VOy9c889F01NTbjppptw/fXXo7W1dcB5feADH8Cpp54ae++5557D3Llzccopp+Dll1/GlClTtvd0hx0hREwRJmSsMRiZkkql8Kc//Qn/9//+X7vd2WefjRkzZlil7oQTTgAwdJmybds2fOpTn4LruvjrX/+K/fbbL/b5v/7rv+I///M/Y+81NTVVXaucd955uOWWWzBjxgx8//vfBwC0trbihRdewAEHHGDHfvWrX8WXv/xl/PznP8e//Mu/WCXu4IMPxsEHHxzb79q1a/H222/jK1/5SswwPliZS8iOwpDLUc4HPvABAMDrr78ee//Xv/41Pvaxj1llDgBOOOEE7LPPPvjVr361w8ebMGEC7rzzTiQSCfzrv/5rr8+XLFmC8ePHY/78+Tj11FOxZMmSQe/7oIMOwsSJE7F69eodnt9YJYCo+Yu89/R1/7e0tCCbze7wfmfMmAEAsdCm7eWQQw7BDTfcgG3btuGmm26KffbOO+/gy1/+MlpaWpBOp3HAAQfgtttu67WPf//3f8cBBxyAXC6H8ePH4/DDD49Z+E1I1KuvvorPfe5zaGpqwqRJk/Av//IvkFJi7dq1+OQnP4nGxka0trbiuuuui+2/Wg7dF7/4RdTX1+Odd97BSSedhPr6ekyaNAn//M//3CskazRRa/lBGbJrUE2mpFKpmDJn+NSnPgVApXcMxGBlyn/8x3/gnXfewfXXX99LmQOUbLv00ksHPJ7ruvi3f/s3zJo1CzfddBPa29sBABMnTowpc4bBnssvf/lLSCnx2c9+tte8hiJzRwu1liGjWY5QoRvlvPnmmwCA8ePH2/feeecdbNiwwVrdohx55JH461//OqRj7rHHHviHf/gHPPXUU+jo6Ih9tmTJEpx88slIpVI4/fTT8fe//x3PPPPMoPa7detWbN26FRMmTBjS/AgZK1S7/3eEUqmETZs2Ye3atbj33nvxwx/+ENOnT+8zXHqwnHrqqchms7HwqPXr1+Poo4/GQw89hIULF+LGG2/E3nvvjbPOOgs33HCDHfef//mf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U5Sokp/+9KcAULVS7mB57rnncP7552P8+PFYsGABALVgPOWUU/DrX//aWs6jbNy40f67MjQylUph1qxZkFKiXC7v8LwIIX3Tl0x55ZVXMH/+fMyYMQP33Xdfn2kbQ5Up5557LqZMmYJvfOMbVXu5bdiwAd/73vcGPA/f93HeeefhlVdewXnnnYfGxkb72eOPP47PfOYzOPbYY7FkyRI4Tv9L5XK5jLvvvhvvf//7e4V3E/JewZDLMcCFF16If/zHf8TixYttIv+3vvUt3H333Tj++OPxT//0T+jq6sK1116Lgw46CF/60pcGtd9XX30Vt99+O6SU6OjowHPPPYe7774bXV1duP766/GRj3wEgCoz3NnZiU984hNV93P00Udj0qRJWLJkCU477bSdc9IkhpTqVcvjk9pQ7f5/6623bAEP46k3i6Dp06fj85//PADg9ttvx6233oqTTjoJe+65Jzo7O/HAAw9g2bJl+PjHP44PfvCDg5rDH//4RxQKBfi+j82bN+NPf/oTfvvb36KpqQn33ntvLGfmmmuuwR/+8AccddRROPvsszFr1ixs2bIFzz77LB566CFs2bIFADB37ly0trbimGOOQUtLC1555RXcdNNNmD9//k4tmkAUlCHEUClTOjs7MW/ePGzduhUXXnghli5dGhu/1157Yc6cOQCGLlPGjx+Pe++9Fx/96Edx6KGH4nOf+xxmz54NAHj22Wfxy1/+0h7L0N7ejttvvx0A0NPTg9deew333HMPXn/9dXzmM5/Bd7/7XTv2rbfewic+8QkIIXDqqaf2qqJbrZn4Aw88gM2bN/dbDGWwMne0QzkyfFChGwOcfPLJ2GuvvfDDH/4QZ599NlzXxbRp0/DYY49h0aJF+OY3v4lUKoX58+fjuuuuG3T+3LJly7Bs2TI4joPGxkbMnDkTZ555Js455xzMmjXLjluyZAkymQw+/OEPV92P4ziYP38+lixZgs2bN7PPHCE7kWr3/+rVq23JfYP5+x/+4R/s4uL9738/nnzySfzyl7/E+vXrkUgksO++++L666/H17/+9UHP4d/+7d8AqDYF48aNw/77748rr7wSZ599dq/iIi0tLXj66afxne98B/fccw9uueUWTJgwAQcccAC+//3v23Ff/epXsWTJElx//fXo6urC1KlTcd555w2qqTAZGzz++OO49tprsWLF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2Gb58uW45557mh7n3e9+N37xi1+MqW8MMydpsTHkgQcewMaNG/H2t78dURTh05/+NNasWYOnnnoKHR0dpt0ll1ziLPS0t7ebn+M4xrp169Dd3Y2HHnoIL7/8Mi644AKEYYgbbrhh4tfEMHONFhtHWgk26BiGYRiGmVVs3brV+f22227DokWLsHPnTpx++unm/fb2diOUlOXee+/FU089he3bt2Px4sU4+eST8bnPfQ5XXXUVNm/ejFKpNKXXwDAMM1o45JJh5gK0KjadL4ZhWpfpHj/0GNLX1+e8qtXqqLp/8OBBAMDChQud92+//XYcddRRePOb34yrr74ag4ODZtuOHTtw4oknOvUq165di76+PuzatWuid5Rh5h7TPYbM4rkIe+gYhmEYhmkJli1b5vx+3XXXYfPmzU33SZIEl112Gd75znfizW9+s3n/Qx/6EJYvX46lS5fi8ccfx1VXXYWnn37a5OP29vY6xhwA83tvb+8kXA3DMMzkwAYdwzAMwzAtwQsvvIDOzk7z+2hqWW7cuBFPPvkkfvKTnzjvX3rppebnE088EUuWLMEZZ5yB5557Dscee+zkdZphGGaKYYOOYeYC0x1qMIvDHBhmTjBDxpDOzk7HoBuJTZs24e6778aDDz6I1772tU3brlq1CgDw7LPP4thjj0V3dzceffRRp82ePXsAoDDvjmGYJsyQcWQ2wjl0DMMwDMPMKqSU2LRpE374wx/i/vvvx4oVK0bc57HHHgMALFmyBADQ09ODJ554Anv37jVttm3bhs7OTqxcuXJK+s0wDDMe2EPHMAzDMMysYuPGjbjjjjvwj//4j5g/f77Jeevq6kJbWxuee+453HHHHTj77LNx5JFH4vHHH8fll1+O008/HSeddBIAYM2aNVi5ciU+/OEPY8uWLejt7cU111yDjRs3jirUk2EY5nDBBh3DzAUSAOl5dLgAAAY8SURBVGKaz88wTOvSYmPIN77xDQCq1qTNrbfeio985CMolUrYvn07vvKVr2BgYADLli3D+vXrcc0115i2vu/j7rvvxsc//nH09PSgo6MDF154oVO3jmGYMdBi40grwQYdwzAMwzCzCjlCrsyyZcvwwAMPjHic5cuX45577pmsbjEMw0wJbNAxzBxASAkxjcnA03luhmEmDo8h///27li1qiwKA/C6Bm4uYinkNoK1jYJBXyBga2cpKeys8gCJTyA2gpW9LzDYpBsQBK3tbBO1EmyiOXsKYSDoMGP2bLbr7O+DNAfhbCx++O9a5xyglhxpx0tRAAAAklLoAAAAkrJyCSPw7ReghgwBasmRZkzoAAAAklLoAAAAkrJyCSOYSsSi46rBNN81BxiCDAFqyZFmTOgAAACSMqGDEXgQGaghQ4BacqQZEzoAAICkFDoAAICkrFzCEDqvOcR81xxgDDIEqCVHWjGhAwAASEqhAwAASMrKJYzAm6WAGjIEqCVHmjGhAwAASMqEDkYwlej6MPA031/FYAgyBKglR5oxoQMAAEhKoQMAAEjKyiWMoEzf/3reH8hLhgC15EgzJnQAAABJKXQAAABJWbmEEfj2C1BDhgC15EgzJnQAAABJmdDBCHz7BaghQ4BacqQZEzoAAICkFDoAAICkrFzCCDyIDNSQIUAtOdKMCR0AAEBSCh0AAEBSVi5hBCU6rzn0uzXwP5AhQC050owJHQAAQFImdDACDyIDNWQIUEuONGNCBwAAkJRCBwAAkJSVSxjBNEXE1Pn+QFoyBKglR5oxoQMAAEhKoQMAAEjKyiWMwJulgBoyBKglR5oxoQMAAEjKhA5G4FcxoIYMAWrJkWZM6AAAAJJS6AAAAJKycgkjmEpEdFw1mOa75gBDkCFALTnSjAkdAABAUgodAABAUlYuYQClTFHK1PX+QF4yBKglR9oxoQMAAEjKhA5GUErfh4Fn/O0XGIIMAWrJkWZM6AAAAJJS6AAAAJKycgkjKJ2//TLjNQcYggwBasmRZkzoAAAAklLoAAAAkrJyCSOYpohFx++vzPjbLzAEGQLUkiPNmNABAAAkZUIHI/AgMlBDhgC15EgzJnQAAABJKXQAAABJWbmEAZRpitLxQeQy4weRYQQyBKglR9oxoQMAAEhKoQMAAEjKyiWMwJulgBoyBKglR5oxoQMAAEjKhA5GMJWIhV/FgHOSIUAtOdKMCR0AAEBSCh0AAEBSVi5hBKVERMfvr8x4zQGGIEOAWnKkGRM6AACApBQ6AACApKxcwgDKVKJ0fLNUmfGaA4xAhgC15Eg7JnQAAABJmdDBCMoUfR9E7nhvoJ4MAWrJkWZM6AAAAJJS6AAAAJKycgkD8CAyUEOGALXkSDsmdADALD19+jSuXr0aq9Uqbt++Ha9fv+59JCCRLBmi0AEAs/PixYvY29uLg4ODePv2bVy/fj3u3LkTHz586H00IIFMGaLQwQjK1P8PyKt3fpwjQx4/fhwPHjyI3d3duHbtWjx79iwuXrwYz58/b/AfBPyr3hnyizmSKUMUOgBgVk5OTuLNmzexs7Pz97ULFy7Ezs5OvHr1quPJgAyyZYiXosAAvsXXiI7PAn+Lr/1uDlT7XTLk8+fPZ65vbm7G5ubmD//+06dPcXp6GltbW2eub21txbt379odFPhHmXIkW4YodDBjy+Uy1ut1/Hn0R++jxHq9juVy2fsYwC/4nTLk0qVLceXKlTPXDg4O4tGjR30OBPwncqQ9hQ5mbLVaxfv37+Pk5KT3UWK5XMZqtep9DOAX/E4ZUkqJxWJx5trPpnMREZcvX46NjY04Pj4+c/34+DjW63WzMwI/ypgj2TJEoYOZW61WihRwbhkzZLlcxs2bN+Pw8DDu3r0bERHTNMXh4WE8fPiw7+FgQNlyJFuGKHQAwOzs7e3F/fv3Y3t7O27duhVPnjyJL1++xO7ubu+jAQlkyhCFDgCYnXv37sXHjx9jf38/jo6O4saNG/Hy5csfXnIA8DOZMmRRSun4vhkAAADOy3foAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAklLoAAAAkvoLi8z0BAU4z+sAAAAASUVORK5CYII=", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -175,66 +192,47 @@ }, { "cell_type": "code", - "execution_count": 47, + "execution_count": 27, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "2024-09-05 13:43:54,947 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-05 13:44:03,462 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n" + "2024-11-28 10:39:20,049 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-11-28 10:39:20,069 - harpy.image._manager - INFO - Writing results to layer '__image__'\n", + "2024-11-28 10:39:26,244 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-11-28 10:39:26,259 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", + "2024-11-28 10:39:26,307 - harpy.shape._manager - INFO - Finished vectorizing. Dissolving shapes at the border of the chunks. This can take a couple minutes if input mask contains a lot of chunks.\n", + "2024-11-28 10:39:26,318 - harpy.shape._manager - INFO - Dissolve is done.\n" ] } ], "source": [ - "from sparrow.image.segmentation.segmentation_models._cellpose import _cellpose\n", + "from harpy.image import cellpose_callable\n", "\n", - "sdata = sp.im.segment(\n", + "#Hotfix: Due to an issue with passing z_axis to model.eval inside the Cellpose library, it appears to be ignored and is therefore automatically inferred incorrectly\n", + "#Temporary fix is to write to intermediate slot \"__image__\", with only one channel dimension.\n", + "img_layer = \"HumanLiverH35\"\n", + "sdata=harpy.im.add_image_layer( sdata, arr= sdata[ \"HumanLiverH35\" ].sel( c=\"R0 DAPI\" ).data[ None, ... ], output_layer=\"__image__\", overwrite=True )\n", + "\n", + "sdata = harpy.im.segment(\n", " sdata,\n", - " img_layer=\"HumanLiverH35\",\n", + " img_layer=\"__image__\",\n", " chunks=1000,\n", " depth=200,\n", - " model=_cellpose, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", - " # parameters that will be passed to the callable _cellpose\n", + " model=cellpose_callable, # can be any callable. GPU will be used for segmentation if it could be found by torch (torch.cuda.is_available())\n", + " # parameters that will be passed to the callable cellpose_callable\n", " diameter=50,\n", " flow_threshold=0.8,\n", " cellprob_threshold=-4,\n", " output_labels_layer=\"segmentation_mask\",\n", " output_shapes_layer=\"segmentation_mask_boundaries\",\n", " overwrite=True,\n", + " z_axis=0,\n", ")" ] }, - { - "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "SpatialData object\n", - "├── Images\n", - "│ └── 'HumanLiverH35': DataArray[cyx] (151, 1000, 1000)\n", - "├── Labels\n", - "│ └── 'segmentation_mask': DataArray[yx] (1000, 1000)\n", - "└── Shapes\n", - " └── 'segmentation_mask_boundaries': GeoDataFrame shape: (70, 1) (2D shapes)\n", - "with coordinate systems:\n", - " ▸ 'global', with elements:\n", - " HumanLiverH35 (Images), segmentation_mask (Labels), segmentation_mask_boundaries (Shapes)" - ] - }, - "execution_count": 48, - "metadata": {}, - "output_type": "execute_result" - } - ], - "source": [ - "sdata" - ] - }, { "cell_type": "markdown", "metadata": {}, @@ -244,14 +242,14 @@ }, { "cell_type": "code", - "execution_count": 49, + "execution_count": 29, "metadata": {}, "outputs": [ { "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAA1kAAAGiCAYAAAAVywzAAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/TGe4hAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eZRl11nfD3+evc9wpxp6ntRSa7bkSbZsCZsf2ICJMXH4EWJsSN7ENhAGYwiLlZUFrDCv4GWmOGBwnLBeQ2xDHDsBwwrwGmGb0TbCsy3Zmrol9VjdNd260xn23u8f+5xb9966VV0ttXpQn+9aUlfd4Zx99r21v+d59vf5PuKcc1SoUKFChQoVKlSoUKFChYsCdbkHUKFChQoVKlSoUKFChQrPJlRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoUKFSpcRFRBVoUKFSpUqFChQoWrBq985St55StfebmHUaHClqiCrAoVLjJ+93d/FxEZ/ler1Th48CCvfvWr+Y3f+A3W1tY2fe8999yDiPCud71r28e+7bbbeOtb38qZM2eGr/v4xz+OiPChD33ool9fhQoVKlSocD780i/9En/0R3/0lN//wAMP8HM/93McO3bsoo2pQoVLiSrIqlDhGcIv/MIv8N73vpd3vetd/MiP/AgAP/ZjP8bzn/98vvCFL2x4/cMPP8z999/PkSNHeP/737+tY7/zne/k5S9/Oe9617t42cteRq/Xe0aupUKFChUqVLgQXIwg6+d//uenBlkf+chH+MhHPvLUB1ehwiVAcLkHUKHCsxWvec1reMlLXjL8/Sd/8if56Ec/ymtf+1q+7du+jQcffJB6vT58/n3vex979+7l137t13jd617HsWPHOHLkyHmP/X3f933s2rWLX//1X+fDH/4w3/3d3/2MXleFChUqVKhwORFF0eUeQoUK50W1k1WhwiXEN37jN/LTP/3TPP7447zvfe8be+73f//3ed3rXsdrX/ta5ubm+P3f//0LOi7A0aNHL+p4K1SoUKHChWFtbY0f+7Ef48iRI8RxzN69e/nmb/5mPvOZzwxf86lPfYpv+ZZvYW5ujkajwSte8Qr+7u/+bsOxPv7xj/OSl7yEWq3GzTffzLvf/W5+7ud+DhEZe52I8Na3vpUPfvCD3HnnndTrdV72spfxxS9+EYB3v/vd3HLLLdRqNV75yldO3R3azpjKcz/yyCO86U1vYn5+nrm5Od785jePKSlEhG63y+/93u8N5e1vetObAHj88cd5y1vewu233069XmfXrl1853d+59iYfvd3f5fv/M7vBOAbvuEbhsf4+Mc/DkyvyVpYWOB7v/d72bdvH7VajRe+8IX83u/93thrjh07hojwq7/6q/y3//bfuPnmm4njmJe+9KXcf//9Gz/MChWeBqqdrAoVLjH+9b/+1/zUT/0UH/nIR/i3//bfAp7cHnnkEd7znvcQRRHf8R3fwfvf/35+6qd+alvHfPTRRwHYtWvXMzbuChUqVKhwfvzgD/4gH/rQh3jrW9/KnXfeyeLiIn/7t3/Lgw8+yItf/GI++tGP8prXvIa7776bn/3Zn0UpxXve8x6+8Ru/kb/5m7/hnnvuAeCzn/0s3/It38KBAwf4+Z//eYwx/MIv/AJ79uyZet6/+Zu/4Y//+I/54R/+YQDe9ra38drXvpb/8B/+A7/927/NW97yFpaXl/nlX/5lvud7voePfvSjw/dud0wlXv/613PjjTfytre9jc985jP8zu/8Dnv37uXtb387AO9973v5vu/7Pu655x6+//u/H4Cbb74ZgPvvv5+///u/57u+67u47rrrOHbsGO9617t45StfyQMPPECj0eDrv/7r+dEf/VF+4zd+g5/6qZ/ijjvuABj+O4l+v88rX/lKHnnkEd761rdy44038sEPfpA3velNrKys8O/+3b8be/3v//7vs7a2xg/8wA8gIvzyL/8y3/Ed38Fjjz1GGIYX9HlXqLApXIUKFS4q3vOe9zjA3X///Zu+Zm5uzr3oRS8a/v7Wt77VHT582FlrnXPOfeQjH3GA++xnPzv12Pfdd587e/ase/LJJ93//J//0+3atcvV63V3/Phx55xzH/vYxxzgPvjBD178C6xQoUKFCptibm7O/fAP//DU56y17tZbb3WvfvWrh+u9c871ej134403um/+5m8ePvbP/tk/c41Gw504cWL42MMPP+yCIHCTt2+Ai+PYHT16dPjYu9/9bge4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", + "image/png": "iVBORw0KGgoAAAANSUhEUgAAA28AAAMWCAYAAABm4r71AAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjkuMiwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy8hTgPZAAAACXBIWXMAAA9hAAAPYQGoP6dpAAEAAElEQVR4nOz9eZicV3nn/7/PeZ6n1l7U2iVLtmXLKxgb29g4DITFicMyCVcggZkshmwQIBnCfAdCfgxkmO8M35BlSAZCMpMZ4EogQ0KGbITdGBJwgNgYMNjGsi3LttRqtdRrbc9yzu+PU1W9ajOyVC19XtfVl6zqWk5VyXXXfc597mO89x4REREREREZaPZMD0BERERERESOT8mbiIiIiIjIGqDkTUREREREZA1Q8iYiIiIiIrIGKHkTERERERFZA5S8iYiIiIiIrAFK3kRERERERNYAJW8iIiIiIiJrQHymByAicq5rt9ukaXqmh7GqUqlEpVI508MQEZHTTLFpMCl5ExE5g9rtNrsuGGJ8ojjTQ1nV1q1befjhh8/ZICkici5SbBpcSt5ERM6gNE0Znyh45M4LGRkerEr22TnHBdftJU3TczJAioicqxSbBpeSNxGRATAybBkZjs70MERERPoUmwaPkjcRkQHg8DjcmR7GEg5/pocgIiJnkGLT4BmsdVARERERERFZlZI3ERERERGRNUBlkyIiA6DwjmLAKkEKP1ilMiIicnopNg0erbyJiIiIiIisAUreRERERERE1gCVTYqIDIDQ0WuwalMGbTwiInJ6KTYNHq28iYiIiIiIrAFK3kRERERERNYAlU2KiAwAN3DHoDKAIxIRkdNJsWnwaOVNRERERERkDVDyJiIiIiIisgaobFJEZAAU3lP4weqgNWjjERGR00uxafBo5U1ERERERGQNUPImIiIiIiKyBqhsUkRkAOggVBERGTSKTYNHK28iIiIiIiJrgJI3ERERERGRNUBlkyIiA8DhKQasFORcL00RETnXKTYNHq28iYiIiIiIrAFK3kRERERERNYAlU2KiAwAdfQSEZFBo9g0eLTyJiIiIiIisgYoeRMREREREVkDVDYpIjIACu8p/GCVggzaeERE5PRSbBo8WnkTERERERFZA5S8iYiIiIiIrAEqmxQRGQCu+zNIBm08IiJyeik2DR6tvImIiIiIiKwBSt5ERERERETWAJVNiogMgAJPMWAHjw7aeERE5PRSbBo8WnkTERERERFZA5S8iYiIiIiIrAEqmxQRGQCFDz+DZNDGIyIip5di0+DRypuIiIiIiMgaoORNRERERERkDVDZpIjIANBBqCIiMmgUmwaPVt5ERERERETWACVvIiIiIiIia4DKJkVEBoDDUGDO9DCWcAM2HhEROb0UmwaPVt5ERERERETWACVvIiIiIiIia4DKJkVEBoDz4WeQDNp4RETk9FJsGjxaeRMREREREVkDlLyJiIiIiIisASqbFBEZAMUAdvQatPGIiMjppdg0eLTyJiIiIiIisgYoeRMREREREVkDVDYpIjIAVJoiIiKDRrFp8GjlTUREREREZA1Q8iYiIiIiIrIGqGxSRGQAOG9wfrBKQQZtPCIicnopNg0erbyJiIiIiIisAUreRERERERE1gCVTYqIDAB19BIRkUGj2DR4tPImIiIiIiKyBih5ExERERERWQNUNikiMgAKLMWAzacVZ3oAIiJyRik2DZ7BejdERERERERkVUreRERERERE1gCVTYqIDAA/gAeh+gEbj4iInF6KTYNHK28iIiIiIiJrgJI3ERERERGRNUBlkyIiA0AHoYqIyKBRbBo8WnkTERERERFZA5S8iYiIiIiIrAEqmxQRGQCFtxR+sObTCn+mRyAiImeSYtPgGax3Q0RERERERFal5E1ERERERGQNUNmkiMgAcBjcgM2nOc7x2hQRkXOcYtPgGax3Q0RERERERFal5E1ERERERGQNUNmkiMgA0EGoIiIyaBSbBo9W3kRERERERNYAJW8iIiIiIiJrgMomRUQGwGAehHpud/QSETnXKTYNnsF6N0RERERERGRVSt5ERERERETWAJVNiogMgHAQ6mB10Bq08YiIyOml2DR4tPImIiIiIiKyBih5ExERERERWQNUNikiMgAclmLA5tMc53ZHLxGRc51i0+AZrHdDREREREREVqXkTUREREREZA1Q2aSIyADQQagiIjJoFJsGz2C9GyIiIiIiIrIqJW8iIiIiIiJrgMomRUQGgMPiBmw+7Vzv6CUicq5TbBo8g/VuiIiIiIiIyKqUvImIiIiIiKwBKpsUERkAhTcU3pzpYSwxaOMREZHTS7Fp8GjlTUREREREZA1Q8iYiIiIiIrIGqGxSRGQAFFiKAZtPK87xjl4iIuc6xabBM1jvhoiIiIiIiKxKyZuIiIiIiMgaoLJJEZEB4LzF+cGaT3P+3C5NERE51yk2DZ7BejdERERERERkVUreRERERERE1gCVTYqIDAB19BIRkUGj2DR4BuvdEBGRNev9738/T3va0xgZGWFkZISbbrqJT37yk/3ft9ttXv/617NhwwaGhoZ42ctexsGDB5fcx759+3jxi19MrVZj8+bN/If/8B/I83zJdW6//XauvfZayuUyu3fv5oMf/OCKsbzvfe/jwgsvpFKpcOONN/K1r33tSXnOIiIyuM7GuKTkTURETokdO3bw//1//x933nkn//Iv/8Lzn/98fuzHfozvfOc7APzar/0af/d3f8df/uVf8sUvfpH9+/fz4z/+4/3bF0XBi1/8YtI05Stf+Qof+tCH+OAHP8jb3/72/nUefvhhXvziF/O85z2Pu+++mze+8Y38wi/8Ap/+9Kf71/noRz/Km970Jt7xjndw1113cfXVV3PLLbcwMTFx+l4MERE5487GuGS8P8dbtoiInEGzs7OMjo7yx3ddR3VosCrZW/M5r7n2TmZmZhgZGXlC97F+/Xp++7d/m5e//OVs2rSJj3zkI7z85S8H4L777uOKK67gjjvu4JnPfCaf/OQneclLXsL+/fvZsmULAH/0R3/EW97yFg4dOkSpVOItb3kLn/jEJ7jnnnv6j/HKV76S6elpPvWpTwFw44038oxnPIP3vve9ADjn2LlzJ7/yK7/Cr//6r38/L4mIyDnhbI5Naz0uaeVNRESOaXZ2dslPp9M57m2KouD//J//Q6PR4KabbuLOO+8kyzJuvvnm/nUuv/xyzj//fO644w4A7rjjDq666qp+gAS45ZZbmJ2d7c+S3nHHHUvuo3ed3n2kacqdd9655DrWWm6++eb+dUREZO072dh0tsQlJW8iInJMO3fuZHR0tP/zrne966jX/fa3v83Q0BDlcpnXvva1fPzjH+fKK69kfHycUqnEunXrllx/y5YtjI+PAzA+Pr4kQPZ+3/vdsa4zOztLq9VicnKSoihWvU7vPkREZO070dh0tsWlwVoHFRE5RzksbsDm03rjefTRR5eUppTL5aPe5rLLLuPuu+9mZmaGj33sY9x666188YtffNLHKiIip97ZEJvOtrik5E1ERI6p16XrRJRKJXbv3g3Addddx9e//nV+//d/n1e84hWkacr09PSSWc6DBw+ydetWALZu3bqi+1av69fi6yzvBHbw4EFGRkaoVqtEUUQURatep3cfIiKy9p1obDrb4tJgpdIiInJWcc7R6XS47rrrSJKEz3/+8/3f3X///ezbt4+bbroJgJtuuolvf/vbS7pvffazn2VkZIQrr7yyf53F99G7Tu8+SqUS11133ZLrOOf4/Oc/37+OiIicu9Z6XNLKm4jIACi8pfCDNZ92suN561vfygtf+ELOP/985ubm+MhHPsLtt9/Opz/9aUZHR/n5n/953vSmN7F+/XpGRkb4lV/5FW666Sae+cxnAvDDP/zDXHnllfzMz/wM7373uxkfH+dtb3sbr3/96/vlMK997Wt573vfy5vf/GZ+7ud+jttuu42/+Iu/4BOf+ER/HG9605u49dZbuf7667nhhht4z3veQ6PR4NWvfvWpe3FERM4Baz02nY1xScmbiIicEhMTE/zsz/4sBw4cYHR0lKc97Wl8+tOf5od+6IcA+G//7b9hreVlL3sZnU6HW265hT/8wz/s3z6KIv7+7/+eX/7lX+amm26iXq9z66238s53vrN/nV27dvGJT3yCX/u1X+P3f//32bFjB3/yJ3/CLbfc0r/OK17xCg4dOsTb3/52xsfHueaaa/jUpz61YrO4iIic3c7GuKRz3kREzqDeWTrvvfPGgTxL5w3XffX7OudNRETWHsWmwTVY74aIyDnKYXCYMz2MJQZtPCIicnopNg2ewSpiFRERERERkVUpeRMREREREVkDVDYpIjIA1npHLxEROfsoNg2ec/vZi4iIiIiIrBFK3kRERERERNYAlU2KiAyAAksxYPNpgzYeERE5vRSbBs+5/exFRERERETWCCVvIiIiIiIia4DKJkVEBoDzBucH6+DRQRuPiIicXopNg0crbyIiIiIiImuAkjcREREREZE1QGWTIiIDwA1gRy83YOMREZHTS7Fp8Jzbz15ERERERGSNUPImIiIiIiKyBqhsUkRkADhvcX6w5tMGbTwiInJ6KTYNnnP72YuIiIiIiKwRSt5ERERERETWAJVNiogMgAJDwWAdPDpo4xERkdNLsWnwaOVNRERERERkDVDyJiIiIiIisgaobFJEZACoo5eIiAwaxabBc24/exERERERkTVCyZuIiIiIiMgaoLJJEZEBUDB4HbSKMz0AERE5oxSbBo9W3kRERERERNYAJW8iIiIiIiJrgMomRUQGgDp6iYjIoFFsGjzn9rMXERERERFZI5S8iYiIiIiIrAEqmxQRGQCFtxQDVgoyaOMREZHTS7Fp8Jzbz15ERERERGSNUPImIiIiIiKyBqhsUkRkAHgMbsAOQvUDNh4RETm9FJsGj1beRERERERE1gAlbyIiIiIiImuAyiZFRAaAOnqJiMigUWwaPOf2sxcREREREVkjlLyJiIiIiIisASqbFBEZAM4bnB+sDlqDNh4RETm9FJsGj1beRERERERE1gAlbyIiIiIiImuAyiZFRAZAgaUYsPm0QRuPiIicXopNg+fcfvYiIiIiIiJrhJI3ERERERGRNUBlkyIiA0AdvUREZNAoNg0erbyJiIiIiIisAUreRERERERE1gCVTYqIDACHxQ3YfNqgjUdERE4vxabBc24/exERERERkTVCyZuIiIiIiMgaoLJJEZEBUHhDMWAdtAZtPCIicnopNg0erbyJiIiIiIisAUreRERERERE1gCVTYqIDAAdhCoiIoNGsWnwaOVNRERERERkDVDyJiIiIiIisgaobFJEZAB4b3F+sObT/ICNR0RETi/FpsFzbj97ERERERGRNULJm4iIiIiIyBqgskkRkQFQYCgYrA5agzYeERE5vRSbBo9W3kRERERERNYAJW8iIiIiIiJrgMomRUQGgPODd/Co82d6BCIiciYpNg0erbyJiIiIiIisAUreRERERERE1gCVTYqIDAA3gAehDtp4RETk9FJsGjzn9rMXERERERFZI5S8iYiIiIiIrAEqmxQRGQAOgxuwg0cHbTwiInJ6KTYNHq28iYiIiIiIrAFK3kRERERERNYAlU2KiAyAwhuKATsIddDGIyIip5di0+DRypuIiIiIiMgaoORNRERERERkDVDZpIjIANBBqCIiMmgUmwbPuf3sRURERERE1gglbyIiIiIiImuAkjcREREREZE1QHveREQGgMPgBqz9sWOwxiMiIqeXYtPg0cqbiIiIiIjIGqDkTUREREREZA1Q2aSIyADwmIErBfEDNh4RETm9FJsGj1beRERERERE1gAlbyIiIiIiImuAyiZFRAaA8wPY0WvAxiMiIqeXYtPg0cqbiIiIiIjIGqDkTUREREREZA1Q2aSIyABw3uL8YM2nDdp4RETk9FJsGjzn9rMXERERERFZI5S8iYiIiIiI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fOMbuemmmxgdHcUYwytf+coVK3xPlu9n/CKyQMmbnBP+9E//FIBbbrmFRqPB3/zN3/CKV7xi1fPYfvVXf5UPf/jDK5I3kSfTIJaCDNp4RI5l27ZtvO51r+N1r3sdExMTXHvttfyX//Jf+G//7b8BMDIyws0333zU22/evJlKpbKkGqNntcu+H71GIscb08la3hGz52Mf+xi33nrrkj2B7Xab6enpE7r9ai644AK+9a1v4Zxbsvp233339X8va59i0+BRzZec9W677Tb+83/+z+zatYuf+qmf4uMf/ziNRoPXv/71vPzlL1/x85KXvIS/+qu/otPpnOmhi4jIcRRFsaL0b/PmzWzfvp1Op8N1113HxRdfzO/8zu8wPz+/4vaHDh0CwsrQzTffzF//9V8v2Tu3Z88ePvnJT57SMZ/omE5WvV5fkZBBeG7LV7j++3//7xRFseL2wKr3sdyLXvQixsfH+ehHP9q/LM9z/vt//+8MDQ3xgz/4gyf/BETkuLTyJmeVT37yk9x3333kec7Bgwe57bbb+OxnP8sFF1zA3/7t31KpVPjwhz/Mhg0b+IEf+IFV7+NHf/RH+Z//83/yiU98gh//8R8/zc9AREROxtzcHDt27ODlL385V199NUNDQ3zuc5/j61//Or/7u7+LtZY/+ZM/4YUvfCFPecpTePWrX815553H448/zhe+8AVGRkb4u7/7OyCcqfaZz3yGZz3rWfzyL/8yRVHw3ve+l6c+9ancfffdp2zMJzOmk3Hdddfxuc99jt/7vd9j+/bt7Nq1ixtvvJGXvOQl/Omf/imjo6NceeWV3HHHHXzuc59bcdTNNddcQxRF/NZv/RYzMzOUy+V+M6/lfumXfok//uM/5lWvehV33nknF154IR/72Mf48pe/zHve854lDVtE5NRR8iZnlbe//e0AlEol1q9fz1VXXcV73vMeXv3qVzM8PMzExASf+9zn+Df/5t8ctf7+BS94AbVajT/7sz9T8ianjUpTRJ6YWq3G6173Oj7zmc/097jt3r2bP/zDP+SXf/mXgXDA9B133MF//s//mfe+973Mz8+zdetWbrzxRl7zmtf07+u6667jk5/8JP/P//P/8B//439k586dvPOd7+Tee+/tlwOeKic6ppPxe7/3e/zSL/0Sb3vb22i1Wtx6663ceOON/P7v/z5RFPHhD3+YdrvN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", "text/plain": [ - "
" + "
" ] }, "metadata": {}, @@ -274,20 +272,20 @@ "\n", "Now we have the location of the cells, we can try to extract features from the image to represent the expression of each cell for the marker. There are many different ways to summarize the signal to a single value. When working on spatial proteomics, it is common to use the mean intensity of the pixels in the cell instead of e.g. the count of transcripts. The mean intensity is a simple and fast way to summarize the signal, but it can be sensitive to noise. A more robust way is to use a quantile normalization first to remove intensity outliers and then calculate the mean intensity. Note that we expect the whole-slide image to be already corrected for illumination and background.\n", "\n", - "You should inspect the normalized images for each channel, as rare or abundant markers may have different distributions and need different q_min and q_max values, which `sp.im.normalize` supports.\n" + "You should inspect the normalized images for each channel, as rare or abundant markers may have different distributions and need different q_min and q_max values, which `harpy.im.normalize` supports.\n" ] }, { "cell_type": "code", - "execution_count": 50, + "execution_count": 30, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "2024-09-05 13:44:04,406 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", - "2024-09-05 13:44:09,805 - sparrow.image._manager - INFO - Writing results to layer 'HumanLiverH35_normalized_image'\n" + "2024-11-28 10:42:05,614 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is ((c), (z), y, x)\n", + "2024-11-28 10:42:09,713 - harpy.image._manager - INFO - Writing results to layer 'HumanLiverH35_normalized_image'\n" ] }, { @@ -296,23 +294,24 @@ "SpatialData object\n", "├── Images\n", "│ ├── 'HumanLiverH35': DataArray[cyx] (151, 1000, 1000)\n", - "│ └── 'HumanLiverH35_normalized_image': DataArray[cyx] (151, 1000, 1000)\n", + "│ ├── 'HumanLiverH35_normalized_image': DataArray[cyx] (151, 1000, 1000)\n", + "│ └── '__image__': DataArray[cyx] (1, 1000, 1000)\n", "├── Labels\n", "│ └── 'segmentation_mask': DataArray[yx] (1000, 1000)\n", "└── Shapes\n", - " └── 'segmentation_mask_boundaries': GeoDataFrame shape: (70, 1) (2D shapes)\n", + " └── 'segmentation_mask_boundaries': GeoDataFrame shape: (74, 1) (2D shapes)\n", "with coordinate systems:\n", " ▸ 'global', with elements:\n", - " HumanLiverH35 (Images), HumanLiverH35_normalized_image (Images), segmentation_mask (Labels), segmentation_mask_boundaries (Shapes)" + " HumanLiverH35 (Images), HumanLiverH35_normalized_image (Images), __image__ (Images), segmentation_mask (Labels), segmentation_mask_boundaries (Shapes)" ] }, - "execution_count": 50, + "execution_count": 30, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sdata = sp.im.normalize(\n", + "sdata = harpy.im.normalize(\n", " sdata, img_layer=\"HumanLiverH35\", output_layer=\"HumanLiverH35_normalized_image\", q_min=5, q_max=95\n", ")\n", "sdata" @@ -327,15 +326,15 @@ }, { "cell_type": "code", - "execution_count": 51, + "execution_count": 31, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_allocation_intensity.py:217: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", - " adata.obsm[\"spatial\"] = coordinates\n" + "/Users/arnedf/VIB/harpy/src/harpy/table/_allocation_intensity.py:217: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + " adata.obsm[_SPATIAL] = coordinates\n" ] }, { @@ -344,26 +343,27 @@ "SpatialData object\n", "├── Images\n", "│ ├── 'HumanLiverH35': DataArray[cyx] (151, 1000, 1000)\n", - "│ └── 'HumanLiverH35_normalized_image': DataArray[cyx] (151, 1000, 1000)\n", + "│ ├── 'HumanLiverH35_normalized_image': DataArray[cyx] (151, 1000, 1000)\n", + "│ └── '__image__': DataArray[cyx] (1, 1000, 1000)\n", "├── Labels\n", "│ └── 'segmentation_mask': DataArray[yx] (1000, 1000)\n", "├── Shapes\n", - "│ └── 'segmentation_mask_boundaries': GeoDataFrame shape: (70, 1) (2D shapes)\n", + "│ └── 'segmentation_mask_boundaries': GeoDataFrame shape: (74, 1) (2D shapes)\n", "└── Tables\n", - " └── 'table_intensities': AnnData (70, 10)\n", + " └── 'table_intensities': AnnData (74, 10)\n", "with coordinate systems:\n", " ▸ 'global', with elements:\n", - " HumanLiverH35 (Images), HumanLiverH35_normalized_image (Images), segmentation_mask (Labels), segmentation_mask_boundaries (Shapes)" + " HumanLiverH35 (Images), HumanLiverH35_normalized_image (Images), __image__ (Images), segmentation_mask (Labels), segmentation_mask_boundaries (Shapes)" ] }, - "execution_count": 51, + "execution_count": 31, "metadata": {}, "output_type": "execute_result" } ], "source": [ "subset = 9 # to speed up the computation, change to None to process all markers\n", - "sdata = sp.tb.allocate_intensity(\n", + "sdata = harpy.tb.allocate_intensity(\n", " sdata,\n", " img_layer=\"HumanLiverH35_normalized_image\",\n", " labels_layer=\"segmentation_mask\",\n", @@ -376,7 +376,7 @@ }, { "cell_type": "code", - "execution_count": 52, + "execution_count": 33, "metadata": {}, "outputs": [ { @@ -427,69 +427,69 @@ " \n", " \n", " \n", - " 28_segmentation_mask_a6296d86\n", - " 8.453275\n", - " 8.485674\n", - " 0.081951\n", - " 1.638744\n", - " 0.608115\n", - " 0.157106\n", - " 0.316933\n", - " 2.388009\n", - " 0.524589\n", - " 0.446725\n", + " 33_segmentation_mask_07a41c54\n", + " 901.286499\n", + " 859.435852\n", + " 39.055691\n", + " 72.314949\n", + " 31.544216\n", + " 18.148848\n", + " 38.960236\n", + " 37.893223\n", + " 126.944412\n", + " 30.255545\n", " \n", " \n", - " 30_segmentation_mask_a6296d86\n", - " 481.477844\n", - " 461.444702\n", - " 3.208881\n", - " 39.630463\n", - " 14.820113\n", - " 6.905374\n", - " 17.973820\n", - " 16.287153\n", - " 5.468932\n", - " 16.321264\n", + " 34_segmentation_mask_07a41c54\n", + " 452.876068\n", + " 416.128967\n", + " 2.863963\n", + " 36.244148\n", + " 13.447089\n", + " 6.193063\n", + " 15.889750\n", + " 14.409328\n", + " 5.006378\n", + " 14.735500\n", " \n", " \n", - " 31_segmentation_mask_a6296d86\n", - " 273.114929\n", - " 278.218292\n", - " 1.598520\n", - " 20.792833\n", - " 8.889306\n", - " 4.262804\n", - " 12.501141\n", - " 10.629593\n", - " 3.966493\n", - " 9.423994\n", + " 35_segmentation_mask_07a41c54\n", + " 275.933868\n", + " 271.816925\n", + " 1.641660\n", + " 20.777933\n", + " 8.800744\n", + " 4.284281\n", + " 11.925040\n", + " 10.480279\n", + " 3.940476\n", + " 9.060714\n", " \n", " \n", - " 32_segmentation_mask_a6296d86\n", - " 1821.622681\n", - " 1814.473999\n", - " 15.792405\n", - " 169.055939\n", - " 73.052490\n", - " 31.527687\n", - " 72.733559\n", - " 80.217995\n", - " 41.294930\n", - " 63.434566\n", + " 36_segmentation_mask_07a41c54\n", + " 1774.831055\n", + " 1711.807251\n", + " 15.105599\n", + " 158.970551\n", + " 68.844269\n", + " 29.830456\n", + " 68.790359\n", + " 78.087234\n", + " 38.053139\n", + " 60.102043\n", " \n", " \n", - " 34_segmentation_mask_a6296d86\n", - " 2176.708252\n", - " 1942.784180\n", - " 26.035578\n", - " 165.693909\n", - " 64.110741\n", - " 32.464184\n", - " 77.349564\n", - " 68.796753\n", - " 56.799263\n", - " 68.296951\n", + " 38_segmentation_mask_07a41c54\n", + " 1933.348633\n", + " 1683.799072\n", + " 19.233635\n", + " 143.941345\n", + " 55.506332\n", + " 27.852724\n", + " 65.781021\n", + " 58.703094\n", + " 34.127796\n", + " 59.527596\n", " \n", " \n", " ...\n", @@ -505,122 +505,122 @@ " ...\n", " \n", " \n", - " 117_segmentation_mask_a6296d86\n", - " 1797.145508\n", - " 2227.670654\n", - " 19.743132\n", - " 158.006531\n", - " 75.400482\n", - " 31.141397\n", - " 74.905701\n", - " 96.634911\n", - " 37.125347\n", - " 60.232002\n", + " 128_segmentation_mask_07a41c54\n", + " 2266.860107\n", + " 2433.300049\n", + " 19.245781\n", + " 209.781219\n", + " 91.205643\n", + " 38.151402\n", + " 82.948532\n", + " 168.787888\n", + " 39.396973\n", + " 72.533195\n", " \n", " \n", - " 119_segmentation_mask_a6296d86\n", - " 236.237228\n", - " 1032.827148\n", - " 6.398957\n", - " 228.379120\n", - " 43.384563\n", - " 14.236951\n", - " 31.777786\n", - " 257.761353\n", - " 24.130495\n", - " 27.231934\n", + " 130_segmentation_mask_07a41c54\n", + " 501.386078\n", + " 557.464478\n", + " 4.000781\n", + " 41.935040\n", + " 20.914459\n", + " 7.652809\n", + " 18.346027\n", + " 23.808697\n", + " 11.253345\n", + " 16.459185\n", " \n", " \n", - " 120_segmentation_mask_a6296d86\n", - " 2369.248291\n", - " 2703.972900\n", - " 21.302315\n", - " 232.887207\n", - " 102.278770\n", - " 42.206997\n", - " 92.118530\n", - " 183.811722\n", - " 44.216293\n", - " 80.043633\n", + " 131_segmentation_mask_07a41c54\n", + " 2271.332275\n", + " 2305.040039\n", + " 19.026636\n", + " 180.464600\n", + " 79.712288\n", + " 37.410896\n", + " 80.717453\n", + " 107.784081\n", + " 47.904995\n", + " 74.204285\n", " \n", " \n", - " 122_segmentation_mask_a6296d86\n", - " 560.971375\n", - " 722.847229\n", - " 5.113818\n", - " 55.217510\n", - " 28.228409\n", - " 10.410857\n", - " 23.498461\n", - " 31.893955\n", - " 14.415325\n", - " 21.260866\n", + " 133_segmentation_mask_07a41c54\n", + " 4346.653320\n", + " 4590.537598\n", + " 34.279163\n", + " 334.847473\n", + " 157.842194\n", + " 68.926071\n", + " 148.829987\n", + " 185.697098\n", + " 84.713448\n", + " 128.367111\n", " \n", " \n", - " 124_segmentation_mask_a6296d86\n", - " 2475.520020\n", - " 2676.347656\n", - " 22.146822\n", - " 208.821655\n", - " 94.903267\n", - " 43.792377\n", - " 93.398483\n", - " 129.732712\n", - " 56.929302\n", - " 85.590813\n", + " 135_segmentation_mask_07a41c54\n", + " 96.312706\n", + " 168.987030\n", + " 0.907175\n", + " 8.637729\n", + " 5.348975\n", + " 1.385662\n", + " 5.131026\n", + " 4.169611\n", + " 1.349420\n", + " 4.257977\n", " \n", " \n", "\n", - "

70 rows × 10 columns

\n", + "

74 rows × 10 columns

\n", "" ], "text/plain": [ "channels R0 DAPI R1 VSIG4 R1 CD14 \\\n", "cells \n", - "28_segmentation_mask_a6296d86 8.453275 8.485674 0.081951 \n", - "30_segmentation_mask_a6296d86 481.477844 461.444702 3.208881 \n", - "31_segmentation_mask_a6296d86 273.114929 278.218292 1.598520 \n", - "32_segmentation_mask_a6296d86 1821.622681 1814.473999 15.792405 \n", - "34_segmentation_mask_a6296d86 2176.708252 1942.784180 26.035578 \n", + "33_segmentation_mask_07a41c54 901.286499 859.435852 39.055691 \n", + "34_segmentation_mask_07a41c54 452.876068 416.128967 2.863963 \n", + "35_segmentation_mask_07a41c54 275.933868 271.816925 1.641660 \n", + "36_segmentation_mask_07a41c54 1774.831055 1711.807251 15.105599 \n", + "38_segmentation_mask_07a41c54 1933.348633 1683.799072 19.233635 \n", "... ... ... ... \n", - "117_segmentation_mask_a6296d86 1797.145508 2227.670654 19.743132 \n", - "119_segmentation_mask_a6296d86 236.237228 1032.827148 6.398957 \n", - "120_segmentation_mask_a6296d86 2369.248291 2703.972900 21.302315 \n", - "122_segmentation_mask_a6296d86 560.971375 722.847229 5.113818 \n", - "124_segmentation_mask_a6296d86 2475.520020 2676.347656 22.146822 \n", + "128_segmentation_mask_07a41c54 2266.860107 2433.300049 19.245781 \n", + "130_segmentation_mask_07a41c54 501.386078 557.464478 4.000781 \n", + "131_segmentation_mask_07a41c54 2271.332275 2305.040039 19.026636 \n", + "133_segmentation_mask_07a41c54 4346.653320 4590.537598 34.279163 \n", + "135_segmentation_mask_07a41c54 96.312706 168.987030 0.907175 \n", "\n", - "channels R2 CD163 R3 CD11c R3 CD335 R4 CD141 \\\n", - "cells \n", - "28_segmentation_mask_a6296d86 1.638744 0.608115 0.157106 0.316933 \n", - "30_segmentation_mask_a6296d86 39.630463 14.820113 6.905374 17.973820 \n", - "31_segmentation_mask_a6296d86 20.792833 8.889306 4.262804 12.501141 \n", - "32_segmentation_mask_a6296d86 169.055939 73.052490 31.527687 72.733559 \n", - "34_segmentation_mask_a6296d86 165.693909 64.110741 32.464184 77.349564 \n", - "... ... ... ... ... \n", - "117_segmentation_mask_a6296d86 158.006531 75.400482 31.141397 74.905701 \n", - "119_segmentation_mask_a6296d86 228.379120 43.384563 14.236951 31.777786 \n", - "120_segmentation_mask_a6296d86 232.887207 102.278770 42.206997 92.118530 \n", - "122_segmentation_mask_a6296d86 55.217510 28.228409 10.410857 23.498461 \n", - "124_segmentation_mask_a6296d86 208.821655 94.903267 43.792377 93.398483 \n", + "channels R2 CD163 R3 CD11c R3 CD335 R4 CD141 \\\n", + "cells \n", + "33_segmentation_mask_07a41c54 72.314949 31.544216 18.148848 38.960236 \n", + "34_segmentation_mask_07a41c54 36.244148 13.447089 6.193063 15.889750 \n", + "35_segmentation_mask_07a41c54 20.777933 8.800744 4.284281 11.925040 \n", + "36_segmentation_mask_07a41c54 158.970551 68.844269 29.830456 68.790359 \n", + "38_segmentation_mask_07a41c54 143.941345 55.506332 27.852724 65.781021 \n", + "... ... ... ... ... \n", + "128_segmentation_mask_07a41c54 209.781219 91.205643 38.151402 82.948532 \n", + "130_segmentation_mask_07a41c54 41.935040 20.914459 7.652809 18.346027 \n", + "131_segmentation_mask_07a41c54 180.464600 79.712288 37.410896 80.717453 \n", + "133_segmentation_mask_07a41c54 334.847473 157.842194 68.926071 148.829987 \n", + "135_segmentation_mask_07a41c54 8.637729 5.348975 1.385662 5.131026 \n", "\n", - "channels R5 CD169 R5 CD49d R6 CD279 \n", - "cells \n", - "28_segmentation_mask_a6296d86 2.388009 0.524589 0.446725 \n", - "30_segmentation_mask_a6296d86 16.287153 5.468932 16.321264 \n", - "31_segmentation_mask_a6296d86 10.629593 3.966493 9.423994 \n", - "32_segmentation_mask_a6296d86 80.217995 41.294930 63.434566 \n", - "34_segmentation_mask_a6296d86 68.796753 56.799263 68.296951 \n", - "... ... ... ... \n", - "117_segmentation_mask_a6296d86 96.634911 37.125347 60.232002 \n", - "119_segmentation_mask_a6296d86 257.761353 24.130495 27.231934 \n", - "120_segmentation_mask_a6296d86 183.811722 44.216293 80.043633 \n", - "122_segmentation_mask_a6296d86 31.893955 14.415325 21.260866 \n", - "124_segmentation_mask_a6296d86 129.732712 56.929302 85.590813 \n", + "channels R5 CD169 R5 CD49d R6 CD279 \n", + "cells \n", + "33_segmentation_mask_07a41c54 37.893223 126.944412 30.255545 \n", + "34_segmentation_mask_07a41c54 14.409328 5.006378 14.735500 \n", + "35_segmentation_mask_07a41c54 10.480279 3.940476 9.060714 \n", + "36_segmentation_mask_07a41c54 78.087234 38.053139 60.102043 \n", + "38_segmentation_mask_07a41c54 58.703094 34.127796 59.527596 \n", + "... ... ... ... \n", + "128_segmentation_mask_07a41c54 168.787888 39.396973 72.533195 \n", + "130_segmentation_mask_07a41c54 23.808697 11.253345 16.459185 \n", + "131_segmentation_mask_07a41c54 107.784081 47.904995 74.204285 \n", + "133_segmentation_mask_07a41c54 185.697098 84.713448 128.367111 \n", + "135_segmentation_mask_07a41c54 4.169611 1.349420 4.257977 \n", "\n", - "[70 rows x 10 columns]" + "[74 rows x 10 columns]" ] }, - "execution_count": 52, + "execution_count": 33, "metadata": {}, "output_type": "execute_result" } @@ -638,39 +638,39 @@ }, { "cell_type": "code", - "execution_count": 53, + "execution_count": 34, "metadata": {}, "outputs": [ { "name": "stderr", "output_type": "stream", "text": [ - "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:116: UserWarning: Key `table_intensities` already exists. Overwriting it in-memory.\n", + "/Users/arnedf/miniconda3/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:116: UserWarning: Key `table_intensities` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n" ] }, { "data": { "text/plain": [ - "AnnData object with n_obs × n_vars = 70 × 10\n", + "AnnData object with n_obs × n_vars = 74 × 10\n", " obs: 'cell_ID', 'fov_labels', 'area', 'eccentricity', 'major_axis_length', 'minor_axis_length', 'perimeter', 'centroid-0', 'centroid-1', 'convex_area', 'equivalent_diameter', '_major_minor_axis_ratio', '_perim_square_over_area', '_major_axis_equiv_diam_ratio', '_convex_hull_resid', '_centroid_dif'\n", " uns: 'spatialdata_attrs'\n", " obsm: 'spatial'" ] }, - "execution_count": 53, + "execution_count": 34, "metadata": {}, "output_type": "execute_result" } ], "source": [ - "sdata = sp.tb.add_regionprop_features(sdata, labels_layer=\"segmentation_mask\", table_layer=\"table_intensities\")\n", + "sdata = harpy.tb.add_regionprop_features(sdata, labels_layer=\"segmentation_mask\", table_layer=\"table_intensities\")\n", "sdata[\"table_intensities\"]" ] }, { "cell_type": "code", - "execution_count": 54, + "execution_count": 35, "metadata": {}, "outputs": [ { @@ -733,99 +733,99 @@ " \n", " \n", " \n", - " 28_segmentation_mask_a6296d86\n", - " 28\n", + " 33_segmentation_mask_07a41c54\n", + " 33\n", " segmentation_mask\n", - " 10.0\n", - " 1.000000\n", - " 11.489125\n", - " 0.000000\n", - " 8.000000\n", - " 0.000000\n", - " 938.500000\n", - " 10.0\n", - " 3.568248\n", - " NaN\n", - " 6.400000\n", - " 3.219822\n", - " 0.000000\n", - " 0.000000\n", + " 956.0\n", + " 0.896502\n", + " 61.988472\n", + " 27.463349\n", + " 160.911688\n", + " 10.179916\n", + " 657.606695\n", + " 1260.0\n", + " 34.888637\n", + " 2.257134\n", + " 27.084280\n", + " 1.776752\n", + " 0.241270\n", + " 0.094272\n", " \n", " \n", - " 30_segmentation_mask_a6296d86\n", - " 30\n", + " 34_segmentation_mask_07a41c54\n", + " 34\n", " segmentation_mask\n", - " 569.0\n", - " 0.849515\n", - " 37.553555\n", - " 19.811945\n", - " 95.556349\n", - " 7.950791\n", - " 527.402460\n", - " 583.0\n", - " 26.916042\n", - " 1.895501\n", - " 16.047480\n", - " 1.395211\n", - " 0.024014\n", - " 0.008750\n", + " 512.0\n", + " 0.828443\n", + " 34.523129\n", + " 19.335484\n", + " 88.970563\n", + " 7.759766\n", + " 527.658203\n", + " 522.0\n", + " 25.532306\n", + " 1.785480\n", + " 15.460471\n", + " 1.352135\n", + " 0.019157\n", + " 0.004131\n", " \n", " \n", - " 31_segmentation_mask_a6296d86\n", - " 31\n", + " 35_segmentation_mask_07a41c54\n", + " 35\n", " segmentation_mask\n", - " 338.0\n", - " 0.845465\n", - " 29.006027\n", - " 15.490118\n", - " 74.142136\n", - " 6.068047\n", - " 556.668639\n", - " 349.0\n", - " 20.744999\n", - " 1.872550\n", - " 16.263480\n", - " 1.398218\n", - " 0.031519\n", - " 0.010715\n", + " 331.0\n", + " 0.853362\n", + " 28.991798\n", + " 15.113989\n", + " 72.727922\n", + " 5.876133\n", + " 555.948640\n", + " 336.0\n", + " 20.529060\n", + " 1.918210\n", + " 15.979911\n", + " 1.412232\n", + " 0.014881\n", + " 0.004703\n", " \n", " \n", - " 32_segmentation_mask_a6296d86\n", - " 32\n", + " 36_segmentation_mask_07a41c54\n", + " 36\n", " segmentation_mask\n", - " 2064.0\n", - " 0.595122\n", - " 57.373850\n", - " 46.107664\n", - " 169.882251\n", - " 20.983043\n", - " 918.371124\n", - " 2094.0\n", - " 51.263695\n", - " 1.244345\n", - " 13.982548\n", - " 1.119191\n", - " 0.014327\n", - " 0.001952\n", + " 1948.0\n", + " 0.611787\n", + " 56.202407\n", + " 44.457350\n", + " 165.882251\n", + " 20.927105\n", + " 918.508214\n", + " 1981.0\n", + " 49.802316\n", + " 1.264187\n", + " 14.125730\n", + " 1.128510\n", + " 0.016658\n", + " 0.002261\n", " \n", " \n", - " 34_segmentation_mask_a6296d86\n", - " 34\n", + " 38_segmentation_mask_07a41c54\n", + " 38\n", " segmentation_mask\n", - " 2280.0\n", - " 0.526249\n", - " 58.489938\n", - " 49.735775\n", - " 179.823376\n", - " 32.771491\n", - " 675.711842\n", - " 2334.0\n", - " 53.879367\n", - " 1.176013\n", - " 14.182652\n", - " 1.085572\n", - " 0.023136\n", - " 0.000533\n", + " 1984.0\n", + " 0.529934\n", + " 54.665025\n", + " 46.358068\n", + " 168.509668\n", + " 32.781754\n", + " 677.330645\n", + " 2041.0\n", + " 50.260395\n", + " 1.179191\n", + " 14.312252\n", + " 1.087636\n", + " 0.027927\n", + " 0.001835\n", " \n", " \n", " ...\n", @@ -847,222 +847,222 @@ " ...\n", " \n", " \n", - " 117_segmentation_mask_a6296d86\n", - " 117\n", + " 128_segmentation_mask_07a41c54\n", + " 128\n", " segmentation_mask\n", - " 2294.0\n", - " 0.903363\n", - " 83.235088\n", - " 35.697612\n", - " 205.296465\n", - " 763.748474\n", - " 968.740192\n", - " 2393.0\n", - " 54.044533\n", - " 2.331671\n", - " 18.372554\n", - " 1.540120\n", - " 0.041371\n", - " 0.004665\n", + " 2537.0\n", + " 0.371634\n", + " 59.402448\n", + " 55.148014\n", + " 189.580736\n", + " 833.050059\n", + " 872.049665\n", + " 2590.0\n", + " 56.834925\n", + " 1.077146\n", + " 14.166675\n", + " 1.045175\n", + " 0.020463\n", + " 0.002283\n", " \n", " \n", - " 119_segmentation_mask_a6296d86\n", - " 119\n", + " 130_segmentation_mask_07a41c54\n", + " 130\n", " segmentation_mask\n", - " 1055.0\n", - " 0.722431\n", - " 44.170692\n", - " 30.541510\n", - " 123.639610\n", - " 798.527962\n", - " 799.662559\n", - " 1088.0\n", - " 36.650617\n", - " 1.446251\n", - " 14.489813\n", - " 1.205183\n", - " 0.030331\n", - " 0.001037\n", + " 584.0\n", + " 0.945431\n", + " 49.268407\n", + " 16.052682\n", + " 113.112698\n", + " 857.618151\n", + " 993.092466\n", + " 595.0\n", + " 27.268515\n", + " 3.069170\n", + " 21.908361\n", + " 1.806787\n", + " 0.018487\n", + " 0.002992\n", " \n", " \n", - " 120_segmentation_mask_a6296d86\n", - " 120\n", + " 131_segmentation_mask_07a41c54\n", + " 131\n", " segmentation_mask\n", - " 2817.0\n", - " 0.466619\n", - " 63.972321\n", - " 56.580862\n", - " 198.752309\n", - " 832.299255\n", - " 872.217252\n", - " 2871.0\n", - " 59.889196\n", - " 1.130635\n", - " 14.022890\n", - " 1.068178\n", - " 0.018809\n", - " 0.001319\n", + " 2392.0\n", + " 0.630507\n", + " 63.426667\n", + " 49.230714\n", + " 190.166522\n", + " 868.863712\n", + " 939.228679\n", + " 2447.0\n", + " 55.186855\n", + " 1.288356\n", + " 15.118439\n", + " 1.149307\n", + " 0.022477\n", + " 0.001299\n", " \n", " \n", - " 122_segmentation_mask_a6296d86\n", - " 122\n", + " 133_segmentation_mask_07a41c54\n", + " 133\n", " segmentation_mask\n", - " 754.0\n", - " 0.946071\n", - " 55.767770\n", - " 18.066420\n", - " 127.112698\n", - " 857.046419\n", - " 992.155172\n", - " 770.0\n", - " 30.984232\n", - " 3.086819\n", - " 21.429228\n", - " 1.799876\n", - " 0.020779\n", - " 0.004239\n", + " 4838.0\n", + " 0.499897\n", + " 85.297759\n", + " 73.875114\n", + " 272.977705\n", + " 926.341257\n", + " 930.267466\n", + " 5077.0\n", + " 78.485240\n", + " 1.154621\n", + " 15.402403\n", + " 1.086800\n", + " 0.047075\n", + " 0.004843\n", " \n", " \n", - " 124_segmentation_mask_a6296d86\n", - " 124\n", + " 135_segmentation_mask_07a41c54\n", + " 135\n", " segmentation_mask\n", - " 2774.0\n", - " 0.559395\n", - " 65.718533\n", - " 54.474188\n", - " 198.509668\n", - " 867.899784\n", - " 938.690339\n", - " 2824.0\n", - " 59.430350\n", - " 1.206416\n", - " 14.205511\n", - " 1.105808\n", - " 0.017705\n", - " 0.000505\n", + " 182.0\n", + " 0.697848\n", + " 18.160693\n", + " 13.007522\n", + " 50.041631\n", + " 990.549451\n", + " 949.285714\n", + " 190.0\n", + " 15.222667\n", + " 1.396168\n", + " 13.759147\n", + " 1.193003\n", + " 0.042105\n", + " 0.009042\n", " \n", " \n", "\n", - "

70 rows × 16 columns

\n", + "

74 rows × 16 columns

\n", "" ], "text/plain": [ " cell_ID fov_labels area \\\n", "cells \n", - "28_segmentation_mask_a6296d86 28 segmentation_mask 10.0 \n", - "30_segmentation_mask_a6296d86 30 segmentation_mask 569.0 \n", - "31_segmentation_mask_a6296d86 31 segmentation_mask 338.0 \n", - "32_segmentation_mask_a6296d86 32 segmentation_mask 2064.0 \n", - "34_segmentation_mask_a6296d86 34 segmentation_mask 2280.0 \n", + "33_segmentation_mask_07a41c54 33 segmentation_mask 956.0 \n", + "34_segmentation_mask_07a41c54 34 segmentation_mask 512.0 \n", + "35_segmentation_mask_07a41c54 35 segmentation_mask 331.0 \n", + "36_segmentation_mask_07a41c54 36 segmentation_mask 1948.0 \n", + "38_segmentation_mask_07a41c54 38 segmentation_mask 1984.0 \n", "... ... ... ... \n", - "117_segmentation_mask_a6296d86 117 segmentation_mask 2294.0 \n", - "119_segmentation_mask_a6296d86 119 segmentation_mask 1055.0 \n", - "120_segmentation_mask_a6296d86 120 segmentation_mask 2817.0 \n", - "122_segmentation_mask_a6296d86 122 segmentation_mask 754.0 \n", - "124_segmentation_mask_a6296d86 124 segmentation_mask 2774.0 \n", + "128_segmentation_mask_07a41c54 128 segmentation_mask 2537.0 \n", + "130_segmentation_mask_07a41c54 130 segmentation_mask 584.0 \n", + "131_segmentation_mask_07a41c54 131 segmentation_mask 2392.0 \n", + "133_segmentation_mask_07a41c54 133 segmentation_mask 4838.0 \n", + "135_segmentation_mask_07a41c54 135 segmentation_mask 182.0 \n", "\n", " eccentricity major_axis_length \\\n", "cells \n", - "28_segmentation_mask_a6296d86 1.000000 11.489125 \n", - "30_segmentation_mask_a6296d86 0.849515 37.553555 \n", - "31_segmentation_mask_a6296d86 0.845465 29.006027 \n", - "32_segmentation_mask_a6296d86 0.595122 57.373850 \n", - "34_segmentation_mask_a6296d86 0.526249 58.489938 \n", + "33_segmentation_mask_07a41c54 0.896502 61.988472 \n", + "34_segmentation_mask_07a41c54 0.828443 34.523129 \n", + "35_segmentation_mask_07a41c54 0.853362 28.991798 \n", + "36_segmentation_mask_07a41c54 0.611787 56.202407 \n", + "38_segmentation_mask_07a41c54 0.529934 54.665025 \n", "... ... ... \n", - "117_segmentation_mask_a6296d86 0.903363 83.235088 \n", - "119_segmentation_mask_a6296d86 0.722431 44.170692 \n", - "120_segmentation_mask_a6296d86 0.466619 63.972321 \n", - "122_segmentation_mask_a6296d86 0.946071 55.767770 \n", - "124_segmentation_mask_a6296d86 0.559395 65.718533 \n", + "128_segmentation_mask_07a41c54 0.371634 59.402448 \n", + "130_segmentation_mask_07a41c54 0.945431 49.268407 \n", + "131_segmentation_mask_07a41c54 0.630507 63.426667 \n", + "133_segmentation_mask_07a41c54 0.499897 85.297759 \n", + "135_segmentation_mask_07a41c54 0.697848 18.160693 \n", "\n", " minor_axis_length perimeter centroid-0 \\\n", "cells \n", - "28_segmentation_mask_a6296d86 0.000000 8.000000 0.000000 \n", - "30_segmentation_mask_a6296d86 19.811945 95.556349 7.950791 \n", - "31_segmentation_mask_a6296d86 15.490118 74.142136 6.068047 \n", - "32_segmentation_mask_a6296d86 46.107664 169.882251 20.983043 \n", - "34_segmentation_mask_a6296d86 49.735775 179.823376 32.771491 \n", + "33_segmentation_mask_07a41c54 27.463349 160.911688 10.179916 \n", + "34_segmentation_mask_07a41c54 19.335484 88.970563 7.759766 \n", + "35_segmentation_mask_07a41c54 15.113989 72.727922 5.876133 \n", + "36_segmentation_mask_07a41c54 44.457350 165.882251 20.927105 \n", + "38_segmentation_mask_07a41c54 46.358068 168.509668 32.781754 \n", "... ... ... ... \n", - "117_segmentation_mask_a6296d86 35.697612 205.296465 763.748474 \n", - "119_segmentation_mask_a6296d86 30.541510 123.639610 798.527962 \n", - "120_segmentation_mask_a6296d86 56.580862 198.752309 832.299255 \n", - "122_segmentation_mask_a6296d86 18.066420 127.112698 857.046419 \n", - "124_segmentation_mask_a6296d86 54.474188 198.509668 867.899784 \n", + "128_segmentation_mask_07a41c54 55.148014 189.580736 833.050059 \n", + "130_segmentation_mask_07a41c54 16.052682 113.112698 857.618151 \n", + "131_segmentation_mask_07a41c54 49.230714 190.166522 868.863712 \n", + "133_segmentation_mask_07a41c54 73.875114 272.977705 926.341257 \n", + "135_segmentation_mask_07a41c54 13.007522 50.041631 990.549451 \n", "\n", " centroid-1 convex_area equivalent_diameter \\\n", "cells \n", - "28_segmentation_mask_a6296d86 938.500000 10.0 3.568248 \n", - "30_segmentation_mask_a6296d86 527.402460 583.0 26.916042 \n", - "31_segmentation_mask_a6296d86 556.668639 349.0 20.744999 \n", - "32_segmentation_mask_a6296d86 918.371124 2094.0 51.263695 \n", - "34_segmentation_mask_a6296d86 675.711842 2334.0 53.879367 \n", + "33_segmentation_mask_07a41c54 657.606695 1260.0 34.888637 \n", + "34_segmentation_mask_07a41c54 527.658203 522.0 25.532306 \n", + "35_segmentation_mask_07a41c54 555.948640 336.0 20.529060 \n", + "36_segmentation_mask_07a41c54 918.508214 1981.0 49.802316 \n", + "38_segmentation_mask_07a41c54 677.330645 2041.0 50.260395 \n", "... ... ... ... \n", - "117_segmentation_mask_a6296d86 968.740192 2393.0 54.044533 \n", - "119_segmentation_mask_a6296d86 799.662559 1088.0 36.650617 \n", - "120_segmentation_mask_a6296d86 872.217252 2871.0 59.889196 \n", - "122_segmentation_mask_a6296d86 992.155172 770.0 30.984232 \n", - "124_segmentation_mask_a6296d86 938.690339 2824.0 59.430350 \n", + "128_segmentation_mask_07a41c54 872.049665 2590.0 56.834925 \n", + "130_segmentation_mask_07a41c54 993.092466 595.0 27.268515 \n", + "131_segmentation_mask_07a41c54 939.228679 2447.0 55.186855 \n", + "133_segmentation_mask_07a41c54 930.267466 5077.0 78.485240 \n", + "135_segmentation_mask_07a41c54 949.285714 190.0 15.222667 \n", "\n", " _major_minor_axis_ratio \\\n", "cells \n", - "28_segmentation_mask_a6296d86 NaN \n", - "30_segmentation_mask_a6296d86 1.895501 \n", - "31_segmentation_mask_a6296d86 1.872550 \n", - "32_segmentation_mask_a6296d86 1.244345 \n", - "34_segmentation_mask_a6296d86 1.176013 \n", + "33_segmentation_mask_07a41c54 2.257134 \n", + "34_segmentation_mask_07a41c54 1.785480 \n", + "35_segmentation_mask_07a41c54 1.918210 \n", + "36_segmentation_mask_07a41c54 1.264187 \n", + "38_segmentation_mask_07a41c54 1.179191 \n", "... ... \n", - "117_segmentation_mask_a6296d86 2.331671 \n", - "119_segmentation_mask_a6296d86 1.446251 \n", - "120_segmentation_mask_a6296d86 1.130635 \n", - "122_segmentation_mask_a6296d86 3.086819 \n", - "124_segmentation_mask_a6296d86 1.206416 \n", + "128_segmentation_mask_07a41c54 1.077146 \n", + "130_segmentation_mask_07a41c54 3.069170 \n", + "131_segmentation_mask_07a41c54 1.288356 \n", + "133_segmentation_mask_07a41c54 1.154621 \n", + "135_segmentation_mask_07a41c54 1.396168 \n", "\n", " _perim_square_over_area \\\n", "cells \n", - "28_segmentation_mask_a6296d86 6.400000 \n", - "30_segmentation_mask_a6296d86 16.047480 \n", - "31_segmentation_mask_a6296d86 16.263480 \n", - "32_segmentation_mask_a6296d86 13.982548 \n", - "34_segmentation_mask_a6296d86 14.182652 \n", + "33_segmentation_mask_07a41c54 27.084280 \n", + "34_segmentation_mask_07a41c54 15.460471 \n", + "35_segmentation_mask_07a41c54 15.979911 \n", + "36_segmentation_mask_07a41c54 14.125730 \n", + "38_segmentation_mask_07a41c54 14.312252 \n", "... ... \n", - "117_segmentation_mask_a6296d86 18.372554 \n", - "119_segmentation_mask_a6296d86 14.489813 \n", - "120_segmentation_mask_a6296d86 14.022890 \n", - "122_segmentation_mask_a6296d86 21.429228 \n", - "124_segmentation_mask_a6296d86 14.205511 \n", + "128_segmentation_mask_07a41c54 14.166675 \n", + "130_segmentation_mask_07a41c54 21.908361 \n", + "131_segmentation_mask_07a41c54 15.118439 \n", + "133_segmentation_mask_07a41c54 15.402403 \n", + "135_segmentation_mask_07a41c54 13.759147 \n", "\n", " _major_axis_equiv_diam_ratio \\\n", "cells \n", - "28_segmentation_mask_a6296d86 3.219822 \n", - "30_segmentation_mask_a6296d86 1.395211 \n", - "31_segmentation_mask_a6296d86 1.398218 \n", - "32_segmentation_mask_a6296d86 1.119191 \n", - "34_segmentation_mask_a6296d86 1.085572 \n", + "33_segmentation_mask_07a41c54 1.776752 \n", + "34_segmentation_mask_07a41c54 1.352135 \n", + "35_segmentation_mask_07a41c54 1.412232 \n", + "36_segmentation_mask_07a41c54 1.128510 \n", + "38_segmentation_mask_07a41c54 1.087636 \n", "... ... \n", - "117_segmentation_mask_a6296d86 1.540120 \n", - "119_segmentation_mask_a6296d86 1.205183 \n", - "120_segmentation_mask_a6296d86 1.068178 \n", - "122_segmentation_mask_a6296d86 1.799876 \n", - "124_segmentation_mask_a6296d86 1.105808 \n", + "128_segmentation_mask_07a41c54 1.045175 \n", + "130_segmentation_mask_07a41c54 1.806787 \n", + "131_segmentation_mask_07a41c54 1.149307 \n", + "133_segmentation_mask_07a41c54 1.086800 \n", + "135_segmentation_mask_07a41c54 1.193003 \n", "\n", " _convex_hull_resid _centroid_dif \n", "cells \n", - "28_segmentation_mask_a6296d86 0.000000 0.000000 \n", - "30_segmentation_mask_a6296d86 0.024014 0.008750 \n", - "31_segmentation_mask_a6296d86 0.031519 0.010715 \n", - "32_segmentation_mask_a6296d86 0.014327 0.001952 \n", - "34_segmentation_mask_a6296d86 0.023136 0.000533 \n", + "33_segmentation_mask_07a41c54 0.241270 0.094272 \n", + "34_segmentation_mask_07a41c54 0.019157 0.004131 \n", + "35_segmentation_mask_07a41c54 0.014881 0.004703 \n", + "36_segmentation_mask_07a41c54 0.016658 0.002261 \n", + "38_segmentation_mask_07a41c54 0.027927 0.001835 \n", "... ... ... \n", - "117_segmentation_mask_a6296d86 0.041371 0.004665 \n", - "119_segmentation_mask_a6296d86 0.030331 0.001037 \n", - "120_segmentation_mask_a6296d86 0.018809 0.001319 \n", - "122_segmentation_mask_a6296d86 0.020779 0.004239 \n", - "124_segmentation_mask_a6296d86 0.017705 0.000505 \n", + "128_segmentation_mask_07a41c54 0.020463 0.002283 \n", + "130_segmentation_mask_07a41c54 0.018487 0.002992 \n", + "131_segmentation_mask_07a41c54 0.022477 0.001299 \n", + "133_segmentation_mask_07a41c54 0.047075 0.004843 \n", + "135_segmentation_mask_07a41c54 0.042105 0.009042 \n", "\n", - "[70 rows x 16 columns]" + "[74 rows x 16 columns]" ] }, - "execution_count": 54, + "execution_count": 35, "metadata": {}, "output_type": "execute_result" } @@ -1073,7 +1073,7 @@ }, { "cell_type": "code", - "execution_count": 62, + "execution_count": 36, "metadata": {}, "outputs": [ { @@ -1082,13 +1082,13 @@ "" ] }, - "execution_count": 62, + "execution_count": 36, "metadata": {}, "output_type": "execute_result" }, { "data": { - "image/png": "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arNmzZLP59PUqVNjY/Sqc9m6dauuvfZa9enTR/n5+Ro5cqRWr14de9w5p3vvvVcDBgxQfn6+xo4dqw0bNsStsXv3bk2aNEnBYFA9e/bUDTfcoH379sXNef/99/Xd735XXbt2VXFxsX77298elePLJi0tLbrnnns0ZMgQ5efn68QTT9T9998fdz2NY65fqVwrpDOaN2+ey8vLc0899ZT74IMP3I033uh69uzpPv/8844uLatVVFS4OXPmuMbGRrd27Vp3ySWXuJKSErdv377YnJtuuskVFxe7xYsXu9WrV7vvfOc77pxzzok9/vXXX7sRI0a4sWPHun/84x/u9ddfd4WFhW769OmxOZs2bXIFBQWuurraffjhh+6RRx5xOTk5buHChUf1eLPFO++8444//ng3atQod9ttt8XG6VXnsXv3bjd48GD3k5/8xK1atcpt2rTJLVq0yG3cuDE2Z9asWa5Hjx7upZdecu+99567/PLL3ZAhQ9yXX34Zm/P973/fnXbaaW7lypXu73//uzvppJPcxIkTY483NTW5fv36uUmTJrnGxkb37LPPuvz8fPf4448f1eP1uhkzZrg+ffq41157zX3yySfuhRdecN26dXMPP/xwbM6x1i/PB4sxY8a4qqqq2P2WlhY3cOBAN3PmzA6s6tizY8cOJ8ktXbrUOefcnj17nN/vdy+88EJszkcffeQkuRUrVjjnnHv99dddly5d3Pbt22NzZs+e7YLBoAuHw8455+644w43fPjwuH1dc801rqKiItOHlHX27t3rTj75ZFdfX+8uuOCCWLCgV53LnXfe6c4777w2H49Go65///7ud7/7XWxsz549LhAIuGeffdY559yHH37oJLmGhobYnAULFjifz+e2bt3qnHPuj3/8o+vVq1esfwf3fcopp1gfUlabMGGCu/766+PGfvCDH7hJkyY5547Nfnn6rZCDl3EfO3ZsbKy9y7gjM5qamiRJvXv3liStWbNGkUgkrjdDhw5VSUlJrDcrVqzQyJEj4/64WkVFhUKhkD744IPYnG+ucXAO/U1dVVWVJkyY0Op80qvO5ZVXXlFpaamuvvpqFRUVafTo0XryySdjj3/yySfavn173Lnu0aOHzj777Lh+9ezZU6WlpbE5Y8eOVZcuXbRq1arYnPPPP195eXmxORUVFVq/fr2++OKLTB9m1jjnnHO0ePFiffzxx5Kk9957T8uXL9f48eMlHZv9yvjVTTNp586damlpafVXP/v166d//vOfHVTVsScajWrq1Kk699xzNWLECEnS9u3blZeX1+qCc/369dP27dtjcxL17uBjh5sTCoX05ZdfKj8/PxOHlHXmzZund999Vw0NDa0eo1edy6ZNmzR79mxVV1fr7rvvVkNDg2699Vbl5eVp8uTJsfOd6Fx/sxdFRUVxj+fm5qp3795xc4YMGdJqjYOP9erVKyPHl23uuusuhUIhDR06VDk5OWppadGMGTM0adIkSTom++XpYIHOoaqqSo2NjVq+fHlHl4IEtmzZottuu0319fXq2rVrR5eDdkSjUZWWluqBBx6QJI0ePVqNjY167LHHNHny5A6uDod6/vnn9cwzz6iurk7Dhw/X2rVrNXXqVA0cOPCY7Zen3wpJ5zLusHXLLbfotdde01tvvaVBgwbFxvv3768DBw5oz549cfO/2Zv+/fsn7N3Bxw43JxgM8v+Ak7RmzRrt2LFDZ5xxhnJzc5Wbm6ulS5fq97//vXJzc9WvXz961YkMGDBAw4YNixs79dRTtXnzZkn/O9+H+3evf//+2rFjR9zjX3/9tXbv3p1ST9G+adOm6a677tKPfvQjjRw5Utddd51uv/12zZw5U9Kx2S9PBwsu495xnHO65ZZbNH/+fL355putXqI788wz5ff743qzfv16bd68OdabsrIyrVu3Lu4Xqr6+XsFgMPYPa1lZWdwaB+fQ3+RdfPHFWrdundauXRu7lZaWatKkSbH/pledx7nnntvqq9sff/yxBg8eLEkaMmSI+vfvH3euQ6GQVq1aFdevPXv2aM2aNbE5b775pqLRqM4+++zYnGXLlikSicTm1NfX65RTTulUL6t3ds3NzerSJf6pNCcnR9FoVNIx2q+O/vTokZo3b54LBAJu7ty57sMPP3Q//elPXc+ePeM+vQ57N998s+vRo4dbsmSJ27ZtW+zW3Nwcm3PTTTe5kpIS9+abb7rVq1e7srIyV1ZWFnv84FcYx40b59auXesWLlzo+vbtm/ArjNOmTXMfffSRe/TRR/kKo4FvfivEOXrVmbzzzjsuNzfXzZgxw23YsME988wzrqCgwD399NOxObNmzXI9e/Z0L7/8snv//ffdFVdckfDri6NHj3arVq1yy5cvdyeffHLc1xf37Nnj+vXr56677jrX2Njo5s2b5woKCjrl1xc7s8mTJ7vjjjsu9nXTF1980RUWFro77rgjNudY65fng4Vzzj3yyCOupKTE5eXluTFjxriVK1d2dElZT1LC25w5c2JzvvzyS/ezn/3M9erVyxUUFLirrrrKbdu2LW6dTz/91I0fP97l5+e7wsJC94tf/MJFIpG4OW+99ZY7/fTTXV5enjvhhBPi9oH0HBos6FXn8uqrr7oRI0a4QCDghg4d6p544om4x6PRqLvnnntcv379XCAQcBdffLFbv3593Jxdu3a5iRMnum7durlgMOimTJni9u7dGzfnvffec+edd54LBALuuOOOc7Nmzcr4sWWbUCjkbrvtNldSUuK6du3qTjjhBPerX/0q7muhx1q/uGw6AAAw4+nPWAAAgM6FYAEAAMwQLAAAgBmCBQAAMEOwAAAAZggWAADADMECAACYIVgAAAAzBAsAAGCGYAEAAMwQLAAAgBmCBQAAMPN/h+ETPtqQMW4AAAAASUVORK5CYII=", + "image/png": "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vffcLbfc4nJzc93nn3/e1kuLy6uvvup++9vfun/+859Oklu6dGnE9gULFrguXbq4ZcuWuXfeecddffXVbsCAAe6rr74Kz/nRj37kRowY4TZs2OD+85//uIEDB7opU6aEt1dVVblevXq5adOmucrKSvfcc8+5jh07uscff7y1YjaouLjYLVq0yFVWVrpt27a5K664whUUFLhjx46F59x6660uPz/fvfHGG27z5s3ue9/7nvv+978f3v7NN9+4YcOGufHjx7utW7e6V1991eXl5bk5c+aE53z88ccuJyfHzZo1y73//vvukUcece3bt3crVqxo1bx1vfzyy+7f//63+/DDD92OHTvcb37zG+f1el1lZaVzLn1z1/fWW2+5M8880w0fPtzNnDkzPJ7O+efOneuGDh3q9u/fH7588cUX4e3pnP3IkSOuf//+7sYbb3QbN250H3/8sVu5cqXbtWtXeE46P+cdPHgw4n4vLy93ktzq1audc+l939eXlMVi9OjRrqSkJHz95MmTrm/fvm7+/PltuKpvp36xqK2tdb1793Z/+tOfwmNHjx51Pp/PPffcc845595//30nyW3atCk8Z/ny5c7j8bh9+/Y555z7y1/+4rp27eqCwWB4zuzZs92gQYMSnCg+Bw8edJJcRUWFc+5UVq/X61544YXwnA8++MBJcuvXr3fOnSpm7dq1cwcOHAjPWbhwofP7/eG8v/71r93QoUMjjjV58mRXXFyc6Ehx6dq1q3vqqacyJnd1dbU7++yzXXl5ufvBD34QLhbpnn/u3LluxIgRDW5L9+yzZ892F110UaPbM+05b+bMme673/2uq62tTfv7vr6keyvk9Fezjx8/PjzW3Fezp6Ldu3frwIEDETm7dOmiMWPGhHOuX79eubm5KiwsDM8ZP3682rVrp40bN4bnXHLJJcrOzg7PKS4u1o4dO/Tll1+2UprmVVVVSZK6desmSdqyZYtCoVBE/sGDB6ugoCAi/3nnnRfxx9eKi4sVCAT03nvvhefUvY3Tc5LlsXLy5EktWbJEx48fV1FRUcbkLikp0aRJk6LWmAn5d+7cqb59++qss87StGnTtGfPHknpn/3ll19WYWGhrr/+evXs2VMjR47Uk08+Gd6eSc95J06c0LPPPqubbrpJHo8n7e/7+pKuWBw6dEgnT56M+kuevXr10oEDB9poVfZOZ2kq54EDB9SzZ8+I7VlZWerWrVvEnIZuo+4x2lptba3uuusujR07VsOGDZN0am3Z2dlRX0hXP39z2RqbEwgE9NVXXyUiTky2b9+uTp06yefz6dZbb9XSpUs1ZMiQtM8tSUuWLNHbb7+t+fPnR21L9/xjxozR4sWLtWLFCi1cuFC7d+/WxRdfrOrq6rTP/vHHH2vhwoU6++yztXLlSt12222688479de//lVSZj3nLVu2TEePHtWNN94oKf0f9/Ul/GvTgZKSElVWVmrdunVtvZRWM2jQIG3btk1VVVV68cUXNX36dFVUVLT1shJu7969mjlzpsrLy9WhQ4e2Xk6rmzhxYvi/hw8frjFjxqh///76+9//ro4dO7bhyhKvtrZWhYWFeuCBByRJI0eOVGVlpR577DFNnz69jVfXup5++mlNnDix2a8XT1dJ94pFS76aPRWdztJUzt69e+vgwYMR27/55hsdOXIkYk5Dt1H3GG3pjjvu0CuvvKLVq1erX79+4fHevXvrxIkTOnr0aMT8+vmby9bYHL/f36ZP5NnZ2Ro4cKBGjRql+fPna8SIEXr44YfTPveWLVt08OBBXXDBBcrKylJWVpYqKir05z//WVlZWerVq1da568vNzdX55xzjnbt2pX2932fPn00ZMiQiLFzzz03/FZQpjznffrpp3r99df1s5/9LDyW7vd9fUlXLDLlq9kHDBig3r17R+QMBALauHFjOGdRUZGOHj2qLVu2hOesWrVKtbW1GjNmTHjO2rVrFQqFwnPKy8s1aNAgde3atZXSRHPO6Y477tDSpUu1atUqDRgwIGL7qFGj5PV6I/Lv2LFDe/bsici/ffv2iCea8vJy+f3+8BNYUVFRxG2cnpNsj5Xa2loFg8G0zz1u3Dht375d27ZtC18KCws1bdq08H+nc/76jh07po8++kh9+vRJ+/t+7NixUR8p//DDD9W/f39J6f+cd9qiRYvUs2dPTZo0KTyW7vd9lLb+7dGGLFmyxPl8Prd48WL3/vvvu5///OcuNzc34rdlU0F1dbXbunWr27p1q5PkHnzwQbd161b36aefOudOffQqNzfXvfTSS+7dd99111xzTYMfvRo5cqTbuHGjW7dunTv77LMjPnp19OhR16tXL/eTn/zEVVZWuiVLlricnJw2/+jVbbfd5rp06eLWrFkT8RGsmpqa8Jxbb73VFRQUuFWrVrnNmze7oqIiV1RUFN5++uNXl19+udu2bZtbsWKF69GjR4Mfv7rnnnvcBx984B599NE2//jVvffe6yoqKtzu3bvdu+++6+69917n8Xjca6+95pxL39yNqfupEOfSO//dd9/t1qxZ43bv3u3++9//uvHjx7u8vDx38OBB51x6Z3/rrbdcVlaWu//++93OnTvd3/72N5eTk+OeffbZ8Jx0fs5z7tQnGAsKCtzs2bOjtqXzfV9fUhYL55x75JFHXEFBgcvOznajR492GzZsaOslxW316tVOUtRl+vTpzrlTH7/63e9+53r16uV8Pp8bN26c27FjR8RtHD582E2ZMsV16tTJ+f1+N2PGDFddXR0x55133nEXXXSR8/l87owzznALFixorYiNaii3JLdo0aLwnK+++srdfvvtrmvXri4nJ8ddd911bv/+/RG388knn7iJEye6jh07ury8PHf33Xe7UCgUMWf16tXu/PPPd9nZ2e6ss86KOEZbuOmmm1z//v1ddna269Gjhxs3bly4VDiXvrkbU79YpHP+yZMnuz59+rjs7Gx3xhlnuMmTJ0f8HYd0zu6cc//617/csGHDnM/nc4MHD3ZPPPFExPZ0fs5zzrmVK1c6SVGZnEv/+74uvjYdAACYSbrfsQAAAKmLYgEAAMxQLAAAgBmKBQAAMEOxAAAAZigWAADADMUCAACYoVgAAAAzFAsAAGCGYgEAAMxQLAAAgBmKBQAAMPN//W17DsZzx2MAAAAASUVORK5CYII=", "text/plain": [ "
" ] @@ -1118,7 +1118,7 @@ } ], "source": [ - "sp.pl.plot_shapes(\n", + "harpy.pl.plot_shapes(\n", " sdata,\n", " img_layer=\"HumanLiverH35_normalized_image\",\n", " shapes_layer=\"segmentation_mask_boundaries\",\n", diff --git a/docs/tutorials/general/Visualizing_napari.ipynb b/docs/tutorials/general/Visualizing_napari.ipynb index e3cadd83..c63e06b5 100644 --- a/docs/tutorials/general/Visualizing_napari.ipynb +++ b/docs/tutorials/general/Visualizing_napari.ipynb @@ -156,7 +156,7 @@ "%load_ext autoreload\n", "%autoreload 2\n", "\n", - "from sparrow.datasets import multisample_blobs\n", + "from harpy.datasets import multisample_blobs\n", "\n", "sdata = multisample_blobs(n_samples=4)\n", "sdata" @@ -192,7 +192,7 @@ } ], "source": [ - "from sparrow.utils._flowsom import _flowsom\n", + "from harpy.utils._flowsom import _flowsom\n", "\n", "adata, fsom = _flowsom(sdata[\"sample_0_table\"], n_clusters=10, xdim=4, ydim=4)\n", "adata" diff --git a/docs/tutorials/hpc/intro.md b/docs/tutorials/hpc/intro.md index bcfcbd95..b2171865 100644 --- a/docs/tutorials/hpc/intro.md +++ b/docs/tutorials/hpc/intro.md @@ -56,14 +56,14 @@ hydra: Check the configuration has no errors: ```bash -HYDRA_FULL_ERROR=1 sparrow +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --cfg job +HYDRA_FULL_ERROR=1 harpy +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --cfg job ``` Run on a dataset on the login node (only for testing, no big jobs!). If it fails on `pthread_create()` due to the CPU thread limit on login nodes, you should switch to an interactive cluster (e.g. slaking). ```bash -sparrow +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun +harpy +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun ``` ## Submit batch jobs @@ -93,7 +93,7 @@ defaults: You can now run this experiment from the command line: ```bash -sparrow +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun +harpy +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun ``` You can create new datasets by adding a config _.yaml_ to your local `/Path/to/local/configs/dataset/` folder. Extend existing configs using the defaults keyword. Make sure that the name of the new dataset is unique: @@ -126,7 +126,7 @@ defaults: Now running the experiment can be done using only the name of the experiment: ```bash -sparrow +experiment=resolve_liver_2 hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun +harpy +experiment=resolve_liver_2 hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun ``` By creating multiple experiment configs, experiments can be cleanly defined by composing existing configs and overwriting only a few new parameters. @@ -136,12 +136,12 @@ By creating multiple experiment configs, experiments can be cleanly defined by c Multiple experiment can be run using a comma: ```bash -sparrow +experiment=resolve_liver,resolve_liver_2 hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun +harpy +experiment=resolve_liver,resolve_liver_2 hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun ``` -## Use of configuration files generated by the napari-sparrow plugin +## Use of configuration files generated by the harpy plugin -After every step of the pipeline in the napari-sparrow plugin, a corresponding configuration _.yaml_ file is saved in the `configs` folder of the chosen output directory containing the tuned parameters. These _.yaml_ files can be used to rerun the same experiment via the CLI. This is useful when the parameters are tuned on a small crop of the image, and the user wants to use these parameters on the complete image in an HPC environment, or on the CLI on a more powerful workstation +After every step of the pipeline in the harpy plugin, a corresponding configuration _.yaml_ file is saved in the `configs` folder of the chosen output directory containing the tuned parameters. These _.yaml_ files can be used to rerun the same experiment via the CLI. This is useful when the parameters are tuned on a small crop of the image, and the user wants to use these parameters on the complete image in an HPC environment, or on the CLI on a more powerful workstation To use these generated _.yaml_ files, please copy them to the corresponding directory of the configs folder downloaded locally (i.e. the configs folder that is in the hydra searchpath). E.g., the generated _.yaml_ `configs/clean/plugin.yaml` should be placed in the corresponding `/Path/to/local/configs/clean` folder in the hydra searchpath. @@ -162,7 +162,7 @@ defaults: An experiment can then be started as follows: ```bash -sparrow +experiment=plugin hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun +harpy +experiment=plugin hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow --multirun ``` Note that if parameters were tuned on a crop of the image (`clean.crop_param` and `segmentation.crop_param` in the corresponding _.yaml_), you must set these parameters to `null`, if you want to run on the uncropped image. diff --git a/docs/usage.md b/docs/usage.md index bb3b1aca..dd421b98 100644 --- a/docs/usage.md +++ b/docs/usage.md @@ -5,7 +5,7 @@ There are some built-in datasets. For example to get data from a [Resolve](https://resolvebiosciences.com/) experiment on mouse liver: ``` -from sparrow.datasets.registry import get_registry +from harpy.datasets.registry import get_registry registry=get_registry() path_image = registry.fetch( "transcriptomics/resolve/mouse/20272_slide1_A1-1_DAPI.tiff" ) @@ -15,8 +15,8 @@ path_coordinates = registry.fetch("transcriptomics/resolve/mouse/20272_slide1_A1 And to download an example SpatialData object resulting from running the `Harpy` pipeline: ``` -import sparrow as sp -sdata=sp.datasets.resolve_example() +import harpy as hp +sdata=hp.datasets.resolve_example() ``` ### Jupyter notebooks @@ -25,7 +25,7 @@ Check the notebooks in the [tutorials section](tutorials/index.md). ### Napari plugin -After installing [installing](installation.md) Harpy, you can run the plugin by first starting Napari, and starting the plugin from Napari's menu bar: `napari > Plugins > sparrow`. +After installing [installing](installation.md) Harpy, you can run the plugin by first starting Napari, and starting the plugin from Napari's menu bar: `napari > Plugins > harpy`. Use the plugin to tune the parameters of Harpy for the different steps of the pipeline. Tuning can be done on small crops of the image. After every step, a corresponding configuration _.yaml_ file will be saved in the output directory chosen by the user. We refer to the [hpc](/tutorials/hpc/index.md) documentation for information on how to use these generated configuration files via the CLI. @@ -48,7 +48,7 @@ defaults: - override /hydra/launcher: submitit_local ``` -If sparrow is run on a SLURM cluster, change this to: +If harpy is run on a SLURM cluster, change this to: ```yaml defaults: @@ -69,7 +69,7 @@ assuming the RESOLVE mouse liver data is used. The RESOLVE mouse liver experiment is preconfigured in `configs/experiment/resolve_liver.yaml`, and can now be run from the CLI: ```bash -sparrow +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow +harpy +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_harpy ``` Please update the _hydra.searchpath_ with the path to the `configs` folder downloaded locally. @@ -77,7 +77,7 @@ Please update the _hydra.searchpath_ with the path to the `configs` folder downl All parameters can also be overwritten from the CLI, e.g. for the size of the min max filter: ```bash -sparrow +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_sparrow clean.size_min_max_filter=35 +harpy +experiment=resolve_liver hydra.searchpath="[/Path/to/local/configs]" task_name=results_harpy clean.size_min_max_filter=35 ``` -The default values for all parameters for each step of the pipeline can be found at `src/sparrow/configs`. +The default values for all parameters for each step of the pipeline can be found at `src/harpy/configs`. diff --git a/experiments/example_of_cluster_plotter.ipynb b/experiments/example_of_cluster_plotter.ipynb index 0c6115d1..19b386f9 100644 --- a/experiments/example_of_cluster_plotter.ipynb +++ b/experiments/example_of_cluster_plotter.ipynb @@ -1052,7 +1052,7 @@ ], "metadata": { "kernelspec": { - "display_name": "napari-sparrow", + "display_name": "napari-harpy", "language": "python", "name": "python3" }, @@ -1066,7 +1066,7 @@ "name": "python", "nbconvert_exporter": "python", "pygments_lexer": "ipython3", - "version": "3.10.13" + "version": "3.10.8" } }, "nbformat": 4, diff --git a/experiments/example_pixel_cell_clustering_ark.ipynb b/experiments/example_pixel_cell_clustering_ark.ipynb index a958158a..590567c6 100644 --- a/experiments/example_pixel_cell_clustering_ark.ipynb +++ b/experiments/example_pixel_cell_clustering_ark.ipynb @@ -28,13 +28,13 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-06 16:33:59,124 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,174 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0'\n", - "2024-06-06 16:33:59,177 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,182 - sparrow.image._manager - INFO - Writing results to layer 'label_nuclear_fov0'\n", - "2024-06-06 16:33:59,189 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,193 - sparrow.image._manager - INFO - Writing results to layer 'label_whole_fov0'\n", - "2024-06-06 16:33:59,220 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n" + "2024-06-06 16:33:59,124 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,174 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0'\n", + "2024-06-06 16:33:59,177 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,182 - harpy.image._manager - INFO - Writing results to layer 'label_nuclear_fov0'\n", + "2024-06-06 16:33:59,189 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,193 - harpy.image._manager - INFO - Writing results to layer 'label_whole_fov0'\n", + "2024-06-06 16:33:59,220 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n" ] }, { @@ -48,74 +48,74 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-06-06 16:33:59,338 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1'\n", - "2024-06-06 16:33:59,340 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,356 - sparrow.image._manager - INFO - Writing results to layer 'label_nuclear_fov1'\n", - "2024-06-06 16:33:59,359 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,366 - sparrow.image._manager - INFO - Writing results to layer 'label_whole_fov1'\n", + "2024-06-06 16:33:59,338 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1'\n", + "2024-06-06 16:33:59,340 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,356 - harpy.image._manager - INFO - Writing results to layer 'label_nuclear_fov1'\n", + "2024-06-06 16:33:59,359 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,366 - harpy.image._manager - INFO - Writing results to layer 'label_whole_fov1'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/anndata/_core/anndata.py:183: ImplicitModificationWarning: Transforming to str index.\n", " warnings.warn(\"Transforming to str index.\", ImplicitModificationWarning)\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/models/models.py:929: ImplicitModificationWarning: Trying to modify attribute `._uns` of view, initializing view as actual.\n", " adata.uns[cls.ATTRS_KEY] = attr\n", - "2024-06-06 16:33:59,686 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:33:59,942 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_processed'\n", - "2024-06-06 16:33:59,944 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:34:00,217 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_processed'\n", + "2024-06-06 16:33:59,686 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:33:59,942 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_processed'\n", + "2024-06-06 16:33:59,944 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:34:00,217 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_processed'\n", "\u001b[32m2024-06-06 16:34:00.355\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m84\u001b[0m - \u001b[34m\u001b[1mReading input.\u001b[0m\n", "\u001b[32m2024-06-06 16:34:00.356\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m86\u001b[0m - \u001b[34m\u001b[1mFitting model: clustering and metaclustering.\u001b[0m\n", "\u001b[32m2024-06-06 16:34:01.889\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m88\u001b[0m - \u001b[34m\u001b[1mUpdating derived values.\u001b[0m\n", - "2024-06-06 16:34:02,232 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:34:02,558 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_clusters'\n", - "2024-06-06 16:34:02,558 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:34:02,862 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_metaclusters'\n", - "2024-06-06 16:34:02,863 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:34:03,529 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_clusters'\n", - "2024-06-06 16:34:03,529 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-06-06 16:34:04,190 - sparrow.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_metaclusters'\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_allocation_intensity.py:211: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "2024-06-06 16:34:02,232 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:34:02,558 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_clusters'\n", + "2024-06-06 16:34:02,558 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:34:02,862 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov0_flowsom_metaclusters'\n", + "2024-06-06 16:34:02,863 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:34:03,529 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_clusters'\n", + "2024-06-06 16:34:03,529 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-06-06 16:34:04,190 - harpy.image._manager - INFO - Writing results to layer 'raw_image_fov1_flowsom_metaclusters'\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_allocation_intensity.py:211: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_allocation_intensity.py:211: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_allocation_intensity.py:211: ImplicitModificationWarning: Setting element `.obsm['spatial']` of view, initializing view as actual.\n", " adata.obsm[\"spatial\"] = coordinates\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `counts_clusters` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", - "2024-06-06 16:34:05,601 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov0_flowsom_clusters'\n", - "2024-06-06 16:34:05,606 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov1_flowsom_clusters'\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", + "2024-06-06 16:34:05,601 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov0_flowsom_clusters'\n", + "2024-06-06 16:34:05,606 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'raw_image_fov1_flowsom_clusters'\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", " adata = spatialdata.models.TableModel.parse(\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `counts_clusters` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `counts_clusters` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", - "2024-06-06 16:34:05,793 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov0'\n", - "2024-06-06 16:34:05,798 - sparrow.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov1'\n", - "/Users/benjaminr/Documents/GitHub/harpy/src/sparrow/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", + "2024-06-06 16:34:05,793 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov0'\n", + "2024-06-06 16:34:05,798 - harpy.table._preprocess - INFO - Calculating cell size from provided labels_layer 'label_whole_fov1'\n", + "/Users/benjaminr/Documents/GitHub/harpy/src/harpy/table/_manager.py:33: UserWarning: Converting `region_key: fov_labels` to categorical dtype.\n", " adata = spatialdata.models.TableModel.parse(\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", "\u001b[32m2024-06-06 16:34:05.821\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m84\u001b[0m - \u001b[34m\u001b[1mReading input.\u001b[0m\n", "\u001b[32m2024-06-06 16:34:05.822\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m86\u001b[0m - \u001b[34m\u001b[1mFitting model: clustering and metaclustering.\u001b[0m\n", "\u001b[32m2024-06-06 16:34:05.847\u001b[0m | \u001b[34m\u001b[1mDEBUG \u001b[0m | \u001b[36mflowsom.main\u001b[0m:\u001b[36m__init__\u001b[0m:\u001b[36m88\u001b[0m - \u001b[34m\u001b[1mUpdating derived values.\u001b[0m\n", - "2024-06-06 16:34:06,002 - sparrow.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['clustering']'\n", - "2024-06-06 16:34:06,019 - sparrow.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['metaclustering']'\n", + "2024-06-06 16:34:06,002 - harpy.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['clustering']'\n", + "2024-06-06 16:34:06,019 - harpy.table.cell_clustering._clustering - INFO - Adding mean cluster intensity to '.uns['metaclustering']'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", - "2024-06-06 16:34:06,032 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(clustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'clustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", - "2024-06-06 16:34:06,040 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(metaclustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'metaclustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", - "2024-06-06 16:34:06,053 - sparrow.table.cell_clustering._weighted_channel_expression - INFO - Adding average marker expression for each cell weighted by pixel cluster count to '.obs' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-06 16:34:06,032 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(clustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'clustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-06 16:34:06,040 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding mean over obtained cell clusters '(metaclustering)' of the average marker expression for each cell weighted by pixel cluster count to '.uns[ 'metaclustering_channels' ]' of table layer 'table_cell_clustering_flowsom'\n", + "2024-06-06 16:34:06,053 - harpy.table.cell_clustering._weighted_channel_expression - INFO - Adding average marker expression for each cell weighted by pixel cluster count to '.obs' of table layer 'table_cell_clustering_flowsom'\n", "/opt/homebrew/Caskroom/mambaforge/base/envs/harpy/lib/python3.10/site-packages/spatialdata/_core/_elements.py:122: UserWarning: Key `table_cell_clustering_flowsom` already exists. Overwriting it in-memory.\n", " self._check_key(key, self.keys(), self._shared_keys)\n", - "2024-06-06 16:34:06,069 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", - "2024-06-06 16:34:06,101 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", - "2024-06-06 16:34:06,124 - sparrow.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n" + "2024-06-06 16:34:06,069 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", + "2024-06-06 16:34:06,101 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n", + "2024-06-06 16:34:06,124 - harpy.table.cell_clustering._utils - WARNING - Increasing cell cluster IDs (SOM cluster and meta cluster IDs) with +1 for visualization. The underlying dataframe in the SpatialData object remains unchanges.\n" ] } ], "source": [ - "import sparrow as sp\n", - "from sparrow.datasets import pixie_example\n", - "from sparrow.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", - "from sparrow.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", - "from sparrow.utils._keys import ClusteringKey\n", + "import harpy\n", + "from harpy.datasets import pixie_example\n", + "from harpy.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", + "from harpy.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", + "from harpy.utils._keys import ClusteringKey\n", "\n", "sdata_ark_analysis = pixie_example([\"fov0\", \"fov1\"])\n", "\n", @@ -138,7 +138,7 @@ " \"Vim\",\n", "]\n", "\n", - "sdata_ark_analysis = sp.im.pixel_clustering_preprocess(\n", + "sdata_ark_analysis = harpy.im.pixel_clustering_preprocess(\n", " sdata_ark_analysis,\n", " img_layer=[\"raw_image_fov0\", \"raw_image_fov1\"],\n", " output_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", @@ -149,7 +149,7 @@ ")\n", "\n", "\n", - "sdata_ark_analysis, fsom, mapping = sp.im.flowsom(\n", + "sdata_ark_analysis, fsom, mapping = harpy.im.flowsom(\n", " sdata_ark_analysis,\n", " img_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", " output_layer_clusters=[\n", @@ -163,7 +163,7 @@ " overwrite=True,\n", ")\n", "\n", - "sdata_ark_analysis = sp.tb.cluster_intensity(\n", + "sdata_ark_analysis = harpy.tb.cluster_intensity(\n", " sdata_ark_analysis,\n", " mapping=mapping,\n", " img_layer=[\"raw_image_fov0_processed\", \"raw_image_fov1_processed\"],\n", @@ -174,7 +174,7 @@ ")\n", "# TODO: to visualize in napari spatialdata, this counts_clusters table layer needs to be removed from the sdata, because napari-spatialdata does not support viewing sdata that contain tables not linked to element.\n", "\n", - "sdata_ark_analysis, fsom = sp.tb.flowsom(\n", + "sdata_ark_analysis, fsom = harpy.tb.flowsom(\n", " sdata_ark_analysis,\n", " labels_layer_cells=[\"label_whole_fov0\", \"label_whole_fov1\"],\n", " labels_layer_clusters=[\n", @@ -189,7 +189,7 @@ "\n", "\n", "# weighted channel average for visualization -> calculate this on the flowsom clustered matrix\n", - "sdata_ark_analysis = sp.tb.weighted_channel_expression(\n", + "sdata_ark_analysis = harpy.tb.weighted_channel_expression(\n", " sdata_ark_analysis,\n", " table_layer_cell_clustering=\"table_cell_clustering_flowsom\",\n", " table_layer_pixel_cluster_intensity=\"counts_clusters\",\n", diff --git a/experiments/example_pixel_cell_clustering_blobs.ipynb b/experiments/example_pixel_cell_clustering_blobs.ipynb index 0fd511fe..82fffd45 100644 --- a/experiments/example_pixel_cell_clustering_blobs.ipynb +++ b/experiments/example_pixel_cell_clustering_blobs.ipynb @@ -16,7 +16,7 @@ "metadata": {}, "outputs": [], "source": [ - "import sparrow as sp" + "import harpy" ] }, { @@ -32,12 +32,12 @@ "metadata": {}, "outputs": [], "source": [ - "from sparrow.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", + "from harpy.table.pixel_clustering._cluster_intensity import _export_to_ark_format as _export_to_ark_format_pixels\n", "\n", "# output path\n", "path = \"/Users/arnedf/VIB/DATA/ark_analysis\"\n", "\n", - "sdata = sp.datasets.cluster_blobs(\n", + "sdata = harpy.datasets.cluster_blobs(\n", " shape=(512, 512), n_cell_types=10, n_cells=100, noise_level_channels=1.2, noise_level_nuclei=1.2, seed=10\n", ")\n", "\n", @@ -45,7 +45,7 @@ "labels_layer = \"blobs_labels\"\n", "channels = [\"lineage_0\", \"lineage_1\", \"lineage_5\", \"lineage_9\"]\n", "\n", - "sdata = sp.im.pixel_clustering_preprocess(\n", + "sdata = harpy.im.pixel_clustering_preprocess(\n", " sdata,\n", " img_layer=[img_layer],\n", " output_layer=[f\"{img_layer}_preprocessed\"],\n", @@ -55,7 +55,7 @@ " sigma=0.0,\n", ")\n", "\n", - "sdata, fsom, mapping = sp.im.flowsom(\n", + "sdata, fsom, mapping = harpy.im.flowsom(\n", " sdata,\n", " img_layer=[f\"{img_layer}_preprocessed\"],\n", " output_layer_clusters=[f\"{img_layer}_flowsom_clusters\"],\n", @@ -67,7 +67,7 @@ " overwrite=True,\n", ")\n", "\n", - "sdata = sp.tb.cluster_intensity(\n", + "sdata = harpy.tb.cluster_intensity(\n", " sdata,\n", " mapping=mapping,\n", " img_layer=f\"{img_layer}_preprocessed\",\n", @@ -93,10 +93,10 @@ "metadata": {}, "outputs": [], "source": [ - "from sparrow.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", - "from sparrow.utils._keys import ClusteringKey\n", + "from harpy.table.cell_clustering._utils import _export_to_ark_format as _export_to_ark_format_cells\n", + "from harpy.utils._keys import ClusteringKey\n", "\n", - "sdata, fsom = sp.tb.flowsom(\n", + "sdata, fsom = harpy.tb.flowsom(\n", " sdata,\n", " labels_layer_cells=[labels_layer],\n", " labels_layer_clusters=f\"{img_layer}_flowsom_metaclusters\",\n", @@ -106,7 +106,7 @@ " overwrite=True,\n", ")\n", "\n", - "sdata = sp.tb.weighted_channel_expression(\n", + "sdata = harpy.tb.weighted_channel_expression(\n", " sdata,\n", " table_layer_cell_clustering=\"table_cell_clustering\",\n", " table_layer_pixel_cluster_intensity=\"counts_clusters\",\n", diff --git a/experiments/example_spatial_vib_compute.ipynb b/experiments/example_spatial_vib_compute.ipynb index e263c005..be5c0f11 100644 --- a/experiments/example_spatial_vib_compute.ipynb +++ b/experiments/example_spatial_vib_compute.ipynb @@ -38,14 +38,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/tqdm/auto.py:21: TqdmWarning: IProgress not found. Please update jupyter and ipywidgets. See https://ipywidgets.readthedocs.io/en/stable/user_install.html\n", " from .autonotebook import tqdm as notebook_tqdm\n", "the value of the environment variable BASIC_DCT_BACKEND is not in [\"JAX\",\"SCIPY\"]\n" ] } ], "source": [ - "import sparrow as sp" + "import harpy" ] }, { @@ -117,15 +117,15 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 14:59:48,247 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 14:59:48,247 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 14:59:48,260 - sparrow.image._manager - INFO - Writing results to layer 'raw_image'\n", - "2024-03-20 14:59:48,260 - sparrow.image._manager - INFO - Writing results to layer 'raw_image'\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", + "2024-03-20 14:59:48,247 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 14:59:48,247 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 14:59:48,260 - harpy.image._manager - INFO - Writing results to layer 'raw_image'\n", + "2024-03-20 14:59:48,260 - harpy.image._manager - INFO - Writing results to layer 'raw_image'\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", " for s, v in _shapes(source, mask, connectivity, transform):\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", " for s, v in _shapes(source, mask, connectivity, transform):\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/rasterio/features.py:128: NotGeoreferencedWarning: Dataset has no geotransform, gcps, or rpcs. The identity matrix will be returned.\n", " for s, v in _shapes(source, mask, connectivity, transform):\n" ] } @@ -135,7 +135,7 @@ "\n", "img_layer = \"raw_image\"\n", "\n", - "sdata = sp.io.create_sdata(\n", + "sdata = harpy.io.create_sdata(\n", " input=path_image,\n", " output_path=os.path.join(OUTPUT_DIR, \"sdata.zarr\"),\n", " img_layer=img_layer,\n", @@ -162,7 +162,7 @@ "source": [ "crd = [5000, 9000, 3000, 7000]\n", "\n", - "sp.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))" + "harpy.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))" ] }, { @@ -190,7 +190,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:00:24,654 - sparrow.image._tiling - WARNING - No image layer specified. Applying image processing on the last image layer 'raw_image' of the provided SpatialData object.\n" + "2024-03-20 15:00:24,654 - harpy.image._tiling - WARNING - No image layer specified. Applying image processing on the last image layer 'raw_image' of the provided SpatialData object.\n" ] }, { @@ -204,77 +204,77 @@ "name": "stderr", "output_type": "stream", "text": [ - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", "No GPU/TPU found, falling back to CPU. (Set TF_CPP_MIN_LOG_LEVEL=0 and rerun for more info.)\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-sparrow/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", + "/home/VIB.LOCAL/arne.defauw/.conda/envs/napari-harpy/lib/python3.9/site-packages/xarray/core/utils.py:494: FutureWarning: The return type of `Dataset.dims` will be changed to return a set of dimension names in future, in order to be more consistent with `DataArray.dims`. To access a mapping from dimension names to lengths, please use `Dataset.sizes`.\n", " warnings.warn(\n", - "2024-03-20 15:00:55,144 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:00:55,144 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:00:55,157 - sparrow.image._manager - INFO - Writing results to layer 'tiling_correction'\n", - "2024-03-20 15:00:55,157 - sparrow.image._manager - INFO - Writing results to layer 'tiling_correction'\n" + "2024-03-20 15:00:55,144 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:00:55,144 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:00:55,157 - harpy.image._manager - INFO - Writing results to layer 'tiling_correction'\n", + "2024-03-20 15:00:55,157 - harpy.image._manager - INFO - Writing results to layer 'tiling_correction'\n" ] }, { @@ -289,11 +289,11 @@ } ], "source": [ - "sdata, flatfields = sp.im.tiling_correction(\n", + "sdata, flatfields = harpy.im.tiling_correction(\n", " sdata=sdata, crd=crop_param, output_layer=\"tiling_correction\", overwrite=True\n", ")\n", "\n", - "sp.pl.tiling_correction(sdata, crd=crd, img_layer=[\"raw_image\", \"tiling_correction\"])" + "harpy.pl.tiling_correction(sdata, crd=crd, img_layer=[\"raw_image\", \"tiling_correction\"])" ] }, { @@ -323,8 +323,8 @@ } ], "source": [ - "sp.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))\n", - "sp.pl.plot_image(sdata, img_layer=\"tiling_correction\", crd=crd, figsize=(8, 8))" + "harpy.pl.plot_image(sdata, img_layer=\"raw_image\", crd=crd, figsize=(8, 8))\n", + "harpy.pl.plot_image(sdata, img_layer=\"tiling_correction\", crd=crd, figsize=(8, 8))" ] }, { @@ -351,14 +351,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:01:26,708 - sparrow.image._apply - INFO - combine_z flag was set to False, while layer 'tiling_correction' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", - "2024-03-20 15:01:26,708 - sparrow.image._apply - INFO - combine_z flag was set to False, while layer 'tiling_correction' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", - "2024-03-20 15:01:26,710 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filtering at 0x7fdb788144c0>). Specifying channels ([0]).\n", - "2024-03-20 15:01:26,710 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filtering at 0x7fdb788144c0>). Specifying channels ([0]).\n", - "2024-03-20 15:01:26,721 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:26,721 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:26,734 - sparrow.image._manager - INFO - Writing results to layer 'min_max_filtered'\n", - "2024-03-20 15:01:26,734 - sparrow.image._manager - INFO - Writing results to layer 'min_max_filtered'\n" + "2024-03-20 15:01:26,708 - harpy.image._apply - INFO - combine_z flag was set to False, while layer 'tiling_correction' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", + "2024-03-20 15:01:26,708 - harpy.image._apply - INFO - combine_z flag was set to False, while layer 'tiling_correction' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", + "2024-03-20 15:01:26,710 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filtering at 0x7fdb788144c0>). Specifying channels ([0]).\n", + "2024-03-20 15:01:26,710 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'size_min_max_filter': 45}/._apply_min_max_filtering at 0x7fdb788144c0>). Specifying channels ([0]).\n", + "2024-03-20 15:01:26,721 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:26,721 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:26,734 - harpy.image._manager - INFO - Writing results to layer 'min_max_filtered'\n", + "2024-03-20 15:01:26,734 - harpy.image._manager - INFO - Writing results to layer 'min_max_filtered'\n" ] }, { @@ -375,14 +375,14 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:01:28,662 - sparrow.image._apply - INFO - combine_z flag was set to False, while layer 'min_max_filtered' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", - "2024-03-20 15:01:28,662 - sparrow.image._apply - INFO - combine_z flag was set to False, while layer 'min_max_filtered' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", - "2024-03-20 15:01:28,664 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x7fdb781191f0>). Specifying channels ([0]).\n", - "2024-03-20 15:01:28,664 - sparrow.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x7fdb781191f0>). Specifying channels ([0]).\n", - "2024-03-20 15:01:28,677 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:28,677 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:28,689 - sparrow.image._manager - INFO - Writing results to layer 'clahe'\n", - "2024-03-20 15:01:28,689 - sparrow.image._manager - INFO - Writing results to layer 'clahe'\n" + "2024-03-20 15:01:28,662 - harpy.image._apply - INFO - combine_z flag was set to False, while layer 'min_max_filtered' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", + "2024-03-20 15:01:28,662 - harpy.image._apply - INFO - combine_z flag was set to False, while layer 'min_max_filtered' does not contain a 'z' dimension, setting 'combine_z' to True for proper processing.\n", + "2024-03-20 15:01:28,664 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x7fdb781191f0>). Specifying channels ([0]).\n", + "2024-03-20 15:01:28,664 - harpy.image._apply - INFO - 'combine_c' is False, but not all channels spefified in 'fn_kwargs'/'func' ({'contrast_clip': 3.5}/._apply_clahe at 0x7fdb781191f0>). Specifying channels ([0]).\n", + "2024-03-20 15:01:28,677 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:28,677 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:28,689 - harpy.image._manager - INFO - Writing results to layer 'clahe'\n", + "2024-03-20 15:01:28,689 - harpy.image._manager - INFO - Writing results to layer 'clahe'\n" ] }, { @@ -397,14 +397,14 @@ } ], "source": [ - "sdata = sp.im.min_max_filtering(\n", + "sdata = harpy.im.min_max_filtering(\n", " sdata=sdata, img_layer=\"tiling_correction\", output_layer=\"min_max_filtered\", size_min_max_filter=45, overwrite=True\n", ")\n", - "sp.pl.plot_image(sdata, img_layer=\"min_max_filtered\", crd=crd, figsize=(8, 8))\n", - "sdata = sp.im.enhance_contrast(\n", + "harpy.pl.plot_image(sdata, img_layer=\"min_max_filtered\", crd=crd, figsize=(8, 8))\n", + "sdata = harpy.im.enhance_contrast(\n", " sdata=sdata, img_layer=\"min_max_filtered\", output_layer=\"clahe\", contrast_clip=3.5, chunks=20000, overwrite=True\n", ")\n", - "sp.pl.plot_image(sdata, img_layer=\"clahe\", crd=crd, figsize=(8, 8))" + "harpy.pl.plot_image(sdata, img_layer=\"clahe\", crd=crd, figsize=(8, 8))" ] }, { @@ -434,10 +434,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:01:48,029 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:48,029 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:01:48,038 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", - "2024-03-20 15:01:48,038 - sparrow.image._manager - INFO - Writing results to layer 'segmentation_mask'\n" + "2024-03-20 15:01:48,029 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:48,029 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:01:48,038 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n", + "2024-03-20 15:01:48,038 - harpy.image._manager - INFO - Writing results to layer 'segmentation_mask'\n" ] }, { @@ -466,7 +466,7 @@ } ], "source": [ - "sdata = sp.im.segment(\n", + "sdata = harpy.im.segment(\n", " sdata=sdata,\n", " img_layer=\"clahe\",\n", " output_labels_layer=\"segmentation_mask\",\n", @@ -482,7 +482,7 @@ " depth=(2 * 50, 2 * 50),\n", ")\n", "\n", - "sp.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "harpy.pl.segment(sdata=sdata, crd=crd, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -507,17 +507,17 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:17:19,607 - sparrow.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", - "2024-03-20 15:17:19,608 - sparrow.io._transcripts - INFO - Transform matrix used:\n", + "2024-03-20 15:17:19,607 - harpy.io._transcripts - INFO - No transform matrix given, will use identity matrix.\n", + "2024-03-20 15:17:19,608 - harpy.io._transcripts - INFO - Transform matrix used:\n", " [[1. 0. 0.]\n", " [0. 1. 0.]\n", " [0. 0. 1.]]\n", - "2024-03-20 15:17:22,549 - sparrow.table._allocation - INFO - Creating masks from polygons.\n", - "2024-03-20 15:17:22,996 - sparrow.table._allocation - INFO - Created masks with shape (4000, 4000).\n", - "2024-03-20 15:17:23,080 - sparrow.table._allocation - INFO - Calculating cell counts.\n", - "2024-03-20 15:17:26,637 - sparrow.table._allocation - INFO - Finished calculating cell counts.\n", - "2024-03-20 15:17:26,640 - sparrow.table._allocation - INFO - Creating AnnData object.\n", - "2024-03-20 15:17:27,283 - sparrow.shape._manager - INFO - Filtering 4 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_boundaries' containing these filtered out polygons.\n" + "2024-03-20 15:17:22,549 - harpy.table._allocation - INFO - Creating masks from polygons.\n", + "2024-03-20 15:17:22,996 - harpy.table._allocation - INFO - Created masks with shape (4000, 4000).\n", + "2024-03-20 15:17:23,080 - harpy.table._allocation - INFO - Calculating cell counts.\n", + "2024-03-20 15:17:26,637 - harpy.table._allocation - INFO - Finished calculating cell counts.\n", + "2024-03-20 15:17:26,640 - harpy.table._allocation - INFO - Creating AnnData object.\n", + "2024-03-20 15:17:27,283 - harpy.shape._manager - INFO - Filtering 4 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_segmentation_segmentation_mask_boundaries' containing these filtered out polygons.\n" ] } ], @@ -528,9 +528,9 @@ "# delimiter='\\t',\n", "# )\n", "\n", - "sdata = sp.io.read_resolve_transcripts(sdata, path_count_matrix=path_transcripts)\n", + "sdata = harpy.io.read_resolve_transcripts(sdata, path_count_matrix=path_transcripts)\n", "\n", - "sdata = sp.tb.allocate(sdata=sdata, shapes_layer=\"segmentation_mask_boundaries\")" + "sdata = harpy.tb.allocate(sdata=sdata, shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -576,10 +576,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:27:18,899 - sparrow.plot._sanity - INFO - Plotting 4 transcripts.\n", - "2024-03-20 15:27:18,902 - sparrow.plot._sanity - INFO - Selecting boundaries\n", - "2024-03-20 15:27:18,914 - sparrow.plot._sanity - INFO - Plotting boundaries\n", - "2024-03-20 15:27:19,034 - sparrow.plot._sanity - INFO - End plotting boundaries\n" + "2024-03-20 15:27:18,899 - harpy.plot._sanity - INFO - Plotting 4 transcripts.\n", + "2024-03-20 15:27:18,902 - harpy.plot._sanity - INFO - Selecting boundaries\n", + "2024-03-20 15:27:18,914 - harpy.plot._sanity - INFO - Plotting boundaries\n", + "2024-03-20 15:27:19,034 - harpy.plot._sanity - INFO - End plotting boundaries\n" ] }, { @@ -610,7 +610,7 @@ "\n", " print(f\"plot transcripts matrix for cell {random_cell} and gene {random_gene}\")\n", "\n", - " sp.pl.sanity_plot_transcripts_matrix(\n", + " harpy.pl.sanity_plot_transcripts_matrix(\n", " sdata=sdata,\n", " img_layer=\"clahe\",\n", " points_layer=\"transcripts\",\n", @@ -642,7 +642,7 @@ } ], "source": [ - "sp.pl.plot_shapes(sdata, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "harpy.pl.plot_shapes(sdata, img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -687,7 +687,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:24:41,032 - sparrow.plot._transcripts - INFO - The ten genes with the highest proportion of transcripts filtered out in the region of interest ([x_min,x_max,y_min,y_max]=(5000, 9000, 3000, 7000)):\n", + "2024-03-20 15:24:41,032 - harpy.plot._transcripts - INFO - The ten genes with the highest proportion of transcripts filtered out in the region of interest ([x_min,x_max,y_min,y_max]=(5000, 9000, 3000, 7000)):\n", " proportion_kept raw_counts\n", "gene \n", "Mmrn1 0.000000 4\n", @@ -704,7 +704,7 @@ } ], "source": [ - "filtered = sp.pl.analyse_genes_left_out(sdata)" + "filtered = harpy.pl.analyse_genes_left_out(sdata)" ] }, { @@ -735,10 +735,10 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:28:01,757 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:28:01,757 - sparrow.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", - "2024-03-20 15:28:01,769 - sparrow.image._manager - INFO - Writing results to layer 'transcript_density'\n", - "2024-03-20 15:28:01,769 - sparrow.image._manager - INFO - Writing results to layer 'transcript_density'\n" + "2024-03-20 15:28:01,757 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:28:01,757 - harpy.image._manager - WARNING - No dims parameter specified. Assuming order of dimension of provided array is (c, (z), y, x)\n", + "2024-03-20 15:28:01,769 - harpy.image._manager - INFO - Writing results to layer 'transcript_density'\n", + "2024-03-20 15:28:01,769 - harpy.image._manager - INFO - Writing results to layer 'transcript_density'\n" ] }, { @@ -753,14 +753,14 @@ } ], "source": [ - "sdata = sp.im.transcript_density(\n", + "sdata = harpy.im.transcript_density(\n", " sdata,\n", " points_layer=\"transcripts\",\n", " output_layer=\"transcript_density\",\n", " overwrite=True,\n", " crd=crd,\n", ") # transcript_density added to sdata object.\n", - "sp.pl.transcript_density(sdata, img_layer=[\"clahe\", \"transcript_density\"])" + "harpy.pl.transcript_density(sdata, img_layer=[\"clahe\", \"transcript_density\"])" ] }, { @@ -868,7 +868,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:28:21,856 - sparrow.shape._manager - INFO - Filtering 52 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_boundaries' containing these filtered out polygons.\n" + "2024-03-20 15:28:21,856 - harpy.shape._manager - INFO - Filtering 52 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_low_counts_segmentation_mask_boundaries' containing these filtered out polygons.\n" ] }, { @@ -913,12 +913,12 @@ } ], "source": [ - "sdata = sp.tb.preprocess_anndata(\n", + "sdata = harpy.tb.preprocess_anndata(\n", " sdata=sdata,\n", " size_norm=True,\n", " shapes_layer=\"segmentation_mask_boundaries\",\n", ")\n", - "sp.pl.preprocess_anndata(sdata)" + "harpy.pl.preprocess_anndata(sdata)" ] }, { @@ -1711,7 +1711,7 @@ } ], "source": [ - "sp.pl.plot_shapes(sdata, column=\"total_counts\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "harpy.pl.plot_shapes(sdata, column=\"total_counts\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -1740,8 +1740,8 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:28:46,407 - sparrow.shape._manager - INFO - Filtering 39 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_boundaries' containing these filtered out polygons.\n", - "2024-03-20 15:28:46,694 - sparrow.table._table - INFO - 39 cells were filtered out based on size.\n" + "2024-03-20 15:28:46,407 - harpy.shape._manager - INFO - Filtering 39 cells from shapes layer 'segmentation_mask_boundaries'. Adding new shapes layer 'filtered_size_segmentation_mask_boundaries' containing these filtered out polygons.\n", + "2024-03-20 15:28:46,694 - harpy.table._table - INFO - 39 cells were filtered out based on size.\n" ] }, { @@ -1756,8 +1756,8 @@ } ], "source": [ - "sdata = sp.tb.filter_on_size(sdata, min_size=500)\n", - "sp.pl.plot_shapes(sdata, column=\"shapeSize\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "sdata = harpy.tb.filter_on_size(sdata, min_size=500)\n", + "harpy.pl.plot_shapes(sdata, column=\"shapeSize\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -1815,9 +1815,9 @@ } ], "source": [ - "sdata = sp.tb.cluster(sdata, 17, 35)\n", - "sp.pl.cluster(sdata)\n", - "sp.pl.plot_shapes(sdata, column=\"leiden\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" + "sdata = harpy.tb.cluster(sdata, 17, 35)\n", + "harpy.pl.cluster(sdata)\n", + "harpy.pl.plot_shapes(sdata, column=\"leiden\", img_layer=\"clahe\", shapes_layer=\"segmentation_mask_boundaries\")" ] }, { @@ -1919,12 +1919,12 @@ "source": [ "path_mg = os.path.join(DATA_DIR, \"markerGeneListMartinNoLow.csv\")\n", "\n", - "mg_dict, scoresper_cluster = sp.tb.score_genes(\n", + "mg_dict, scoresper_cluster = harpy.tb.score_genes(\n", " sdata=sdata,\n", " path_marker_genes=path_mg,\n", ")\n", "\n", - "sp.pl.score_genes(sdata=sdata, img_layer=\"clahe\", scoresper_cluster=scoresper_cluster, filter_index=5)" + "harpy.pl.score_genes(sdata=sdata, img_layer=\"clahe\", scoresper_cluster=scoresper_cluster, filter_index=5)" ] }, { @@ -2027,7 +2027,7 @@ "correct_marker_genes = False\n", "\n", "if correct_marker_genes:\n", - " sdata = sp.tb.correct_marker_genes(\n", + " sdata = harpy.tb.correct_marker_genes(\n", " sdata=sdata, celltype_correction_dict={\"HepatocytesPortal\": (8.6, 7.0), \"HepatocytesCentral\": (10.6, 7)}\n", " ) # fix here to hepatocytes portal and central!" ] @@ -2078,7 +2078,7 @@ "name": "stderr", "output_type": "stream", "text": [ - "2024-03-20 15:32:10,268 - sparrow.plot._plot - WARNING - Provided crd '[0, 2000, 0, 2000]' and image_boundary '(5000, 9000, 3000, 7000)' do not have any overlap. Please provide a crd that has some overlap with the image. Setting crd to image_boundary '(5000, 9000, 3000, 7000)'.\n" + "2024-03-20 15:32:10,268 - harpy.plot._plot - WARNING - Provided crd '[0, 2000, 0, 2000]' and image_boundary '(5000, 9000, 3000, 7000)' do not have any overlap. Please provide a crd that has some overlap with the image. Setting crd to image_boundary '(5000, 9000, 3000, 7000)'.\n" ] }, { @@ -2106,14 +2106,14 @@ "colors = None\n", "celltype_indexes = {}\n", "\n", - "sdata, color_dict = sp.tb.cluster_cleanliness(\n", + "sdata, color_dict = harpy.tb.cluster_cleanliness(\n", " sdata=sdata,\n", " celltypes=list(mg_dict.keys()),\n", " celltype_indexes=celltype_indexes,\n", " colors=colors,\n", ")\n", "\n", - "sp.pl.cluster_cleanliness(\n", + "harpy.pl.cluster_cleanliness(\n", " sdata=sdata,\n", " img_layer=\"clahe\",\n", " shapes_layer=\"segmentation_mask_boundaries\",\n", @@ -2238,7 +2238,7 @@ } ], "source": [ - "sdata = sp.tb.nhood_enrichment(sdata)" + "sdata = harpy.tb.nhood_enrichment(sdata)" ] }, { @@ -2258,7 +2258,7 @@ } ], "source": [ - "sp.pl.nhood_enrichment(sdata)" + "harpy.pl.nhood_enrichment(sdata)" ] }, { @@ -2273,9 +2273,9 @@ ], "metadata": { "kernelspec": { - "display_name": "napari-sparrow", + "display_name": "napari-harpy", "language": "python", - "name": "napari-sparrow" + "name": "napari-harpy" }, "language_info": { "codemirror_mode": { diff --git a/experiments/load_spatialdata.ipynb b/experiments/load_spatialdata.ipynb index 1f700907..3b3fd919 100644 --- a/experiments/load_spatialdata.ipynb +++ b/experiments/load_spatialdata.ipynb @@ -43,7 +43,7 @@ "from spatialdata import read_zarr\n", "from upath import UPath\n", "\n", - "import sparrow as sp\n", + "import harpy\n", "\n", "load_dotenv()\n", "\n", @@ -73,7 +73,7 @@ "\n", "sdata = read_zarr(store=path, selection=[\"images\"])\n", "\n", - "sp.pl.plot_image(sdata, img_layer=\"raw_image\")" + "harpy.pl.plot_image(sdata, img_layer=\"raw_image\")" ] } ], diff --git a/pyproject.toml b/pyproject.toml index a13c8584..f681f2b7 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta" # pyproject.toml file content [tool.coverage.run] -omit = ["src/sparrow/_tests/*", "experiments/*", "src/sparrow/widgets/*" ] +omit = ["src/harpy/_tests/*", "experiments/*", "src/harpy/widgets/*", "docs/*" ] [tool.ruff] src = ["src"] @@ -62,4 +62,4 @@ convention = "numpy" [tool.pytest.ini_options] -testpaths = ['src/sparrow/_tests'] +testpaths = ['src/harpy/_tests'] diff --git a/scripts/create_dataset.py b/scripts/create_dataset.py index c106ec72..8618a2a5 100644 --- a/scripts/create_dataset.py +++ b/scripts/create_dataset.py @@ -1,4 +1,4 @@ -"""Used to create a large dataset config folder for the sparrow mutlirun analysis, see docs/hpc.md.""" +"""Used to create a large dataset config folder for the harpy mutlirun analysis, see docs/hpc.md.""" import argparse import logging diff --git a/setup.cfg b/setup.cfg index 6ffcdee5..9b89fe68 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,11 +1,11 @@ [metadata] -name = sparrow +name = harpy-analysis author = dambi version = 0.0.1 -description = Napari plugin for spatial transcriptomics data analysis +description = single-cell spatial proteomics analysis that makes you happy long_description = file: README.md long_description_content_type = text/markdown -url = https://github.com/saeyslab/napari-sparrow +url = https://github.com/saeyslab/harpy license = BSD-3-Clause license_file = LICENSE license_files = LICENSE @@ -24,10 +24,10 @@ classifiers = Programming Language :: Python :: 3.12 Topic :: Software Development :: Testing project_urls = - Bug Tracker = https://github.com/saeyslab/napari-sparrow/issues - Documentation = https://github.com/saeyslab/napari-sparrow#README.md - Source Code = https://github.com/saeyslab/napari-sparrow - User Support = https://github.com/saeyslab/napari-sparrow/issues + Bug Tracker = https://github.com/saeyslab/harpy/issues + Documentation = https://github.com/saeyslab/harpy#README.md + Source Code = https://github.com/saeyslab/harpy + User Support = https://github.com/saeyslab/harpy/issues [options] packages = find: @@ -59,9 +59,9 @@ where = src [options.entry_points] console_scripts = - sparrow = sparrow.single:main + harpy = harpy.single:main napari.manifest = - sparrow = sparrow:napari.yaml + harpy = harpy:napari.yaml [options.extras_require] plugin = @@ -115,7 +115,7 @@ clustering = bokeh # For visualization spatialdata-plot>=0.2.0 - #napari-clusters-plotter>=0.7.3 # can not be installed alongside sparrow plugin + #napari-clusters-plotter>=0.7.3 # can not be installed alongside harpy plugin #napari-convpaint @ git+ssh://git@github.com/guiwitz/napari-convpaint.git instanseg = diff --git a/src/sparrow/__init__.py b/src/harpy/__init__.py similarity index 100% rename from src/sparrow/__init__.py rename to src/harpy/__init__.py diff --git a/src/sparrow/_tests/__init__.py b/src/harpy/_tests/__init__.py similarity index 100% rename from src/sparrow/_tests/__init__.py rename to src/harpy/_tests/__init__.py diff --git a/src/sparrow/_tests/conftest.py b/src/harpy/_tests/conftest.py similarity index 93% rename from src/sparrow/_tests/conftest.py rename to src/harpy/_tests/conftest.py index ad2cec18..654083ce 100644 --- a/src/sparrow/_tests/conftest.py +++ b/src/harpy/_tests/conftest.py @@ -9,11 +9,11 @@ from spatialdata import read_zarr from spatialdata.datasets import blobs -from sparrow.datasets.cluster_blobs import cluster_blobs -from sparrow.datasets.pixie_example import pixie_example -from sparrow.datasets.proteomics import mibi_example -from sparrow.datasets.registry import get_registry -from sparrow.datasets.transcriptomics import ( +from harpy.datasets.cluster_blobs import cluster_blobs +from harpy.datasets.pixie_example import pixie_example +from harpy.datasets.proteomics import mibi_example +from harpy.datasets.registry import get_registry +from harpy.datasets.transcriptomics import ( resolve_example, resolve_example_multiple_coordinate_systems, visium_hd_example_custom_binning, diff --git a/src/sparrow/_tests/test_datasets/test_pixie_example.py b/src/harpy/_tests/test_datasets/test_pixie_example.py similarity index 100% rename from src/sparrow/_tests/test_datasets/test_pixie_example.py rename to src/harpy/_tests/test_datasets/test_pixie_example.py diff --git a/src/sparrow/_tests/test_datasets/test_transcriptomics.py b/src/harpy/_tests/test_datasets/test_transcriptomics.py similarity index 85% rename from src/sparrow/_tests/test_datasets/test_transcriptomics.py rename to src/harpy/_tests/test_datasets/test_transcriptomics.py index 63db442a..38a38035 100644 --- a/src/sparrow/_tests/test_datasets/test_transcriptomics.py +++ b/src/harpy/_tests/test_datasets/test_transcriptomics.py @@ -3,13 +3,13 @@ from spatialdata.models import TableModel from spatialdata.transformations import Identity, get_transformation -from sparrow.datasets.transcriptomics import ( +from harpy.datasets.transcriptomics import ( merscope_example, merscope_segmentation_masks_example, visium_hd_example, xenium_example, ) -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY def test_visium_hd_example(): @@ -22,7 +22,7 @@ def test_xenium_example(): sdata = xenium_example(output=None) assert "transcripts_global" in sdata.points - # sparrow only supports points layers with identity transformation defined on them. + # harpy only supports points layers with identity transformation defined on them. assert get_transformation(sdata["transcripts_global"], to_coordinate_system="global") == Identity() assert "table_global" in sdata.tables assert "cell_labels_global" in sdata.labels @@ -30,7 +30,7 @@ def test_xenium_example(): # check that table is annotated by cell_labels_global assert ["cell_labels_global"] == sdata["table_global"].obs[_REGION_KEY].cat.categories.to_list() - # check that instance and region key in table are the sparrow instance and region keys + # check that instance and region key in table are the harpy instance and region keys assert sdata.tables["table_global"].uns[TableModel.ATTRS_KEY][TableModel.REGION_KEY_KEY] == _REGION_KEY assert sdata.tables["table_global"].uns[TableModel.ATTRS_KEY][TableModel.INSTANCE_KEY] == _INSTANCE_KEY diff --git a/src/sparrow/_tests/test_image/test_combine.py b/src/harpy/_tests/test_image/test_combine.py similarity index 91% rename from src/sparrow/_tests/test_image/test_combine.py rename to src/harpy/_tests/test_image/test_combine.py index 69eea140..2b2a053c 100644 --- a/src/sparrow/_tests/test_image/test_combine.py +++ b/src/harpy/_tests/test_image/test_combine.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image._combine import combine +from harpy.image._combine import combine def test_combine(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_contrast.py b/src/harpy/_tests/test_image/test_contrast.py similarity index 90% rename from src/sparrow/_tests/test_image/test_contrast.py rename to src/harpy/_tests/test_image/test_contrast.py index b7ca3c99..fad6ae3e 100644 --- a/src/sparrow/_tests/test_image/test_contrast.py +++ b/src/harpy/_tests/test_image/test_contrast.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image._contrast import enhance_contrast +from harpy.image._contrast import enhance_contrast def test_enhance_contrast(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_filters.py b/src/harpy/_tests/test_image/test_filters.py similarity index 92% rename from src/sparrow/_tests/test_image/test_filters.py rename to src/harpy/_tests/test_image/test_filters.py index 961346b3..5daf6946 100644 --- a/src/sparrow/_tests/test_image/test_filters.py +++ b/src/harpy/_tests/test_image/test_filters.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image._filters import gaussian_filtering, min_max_filtering +from harpy.image._filters import gaussian_filtering, min_max_filtering def test_min_max_filtering(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_manager.py b/src/harpy/_tests/test_image/test_manager.py similarity index 97% rename from src/sparrow/_tests/test_image/test_manager.py rename to src/harpy/_tests/test_image/test_manager.py index 475a4005..fade4bf4 100644 --- a/src/sparrow/_tests/test_image/test_manager.py +++ b/src/harpy/_tests/test_image/test_manager.py @@ -1,7 +1,7 @@ import pytest from spatialdata import SpatialData -from sparrow.image._image import _get_spatial_element, add_image_layer, add_labels_layer +from harpy.image._image import _get_spatial_element, add_image_layer, add_labels_layer @pytest.mark.parametrize( diff --git a/src/sparrow/_tests/test_image/test_map.py b/src/harpy/_tests/test_image/test_map.py similarity index 99% rename from src/sparrow/_tests/test_image/test_map.py rename to src/harpy/_tests/test_image/test_map.py index 41f84a3f..bedba73a 100644 --- a/src/sparrow/_tests/test_image/test_map.py +++ b/src/harpy/_tests/test_image/test_map.py @@ -5,7 +5,7 @@ from numpy.typing import NDArray from spatialdata import SpatialData -from sparrow.image._map import _precondition, map_image +from harpy.image._map import _precondition, map_image def _multiply(image: NDArray, parameter: Any): diff --git a/src/sparrow/_tests/test_image/test_normalize.py b/src/harpy/_tests/test_image/test_normalize.py similarity index 97% rename from src/sparrow/_tests/test_image/test_normalize.py rename to src/harpy/_tests/test_image/test_normalize.py index 87262a96..f72aa245 100644 --- a/src/sparrow/_tests/test_image/test_normalize.py +++ b/src/harpy/_tests/test_image/test_normalize.py @@ -1,6 +1,6 @@ import numpy as np -from sparrow.image._normalize import normalize +from harpy.image._normalize import normalize def test_normalize(sdata_blobs): diff --git a/src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py b/src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py similarity index 94% rename from src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py rename to src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py index 16a3c1b1..8f4b1226 100644 --- a/src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py +++ b/src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering.py @@ -3,12 +3,12 @@ import numpy as np import pytest -from sparrow.utils._keys import _SPATIAL +from harpy.utils._keys import _SPATIAL @pytest.mark.skipif(not importlib.util.find_spec("flowsom"), reason="requires the flowSOM library") def test_flowsom(sdata_blobs): - from sparrow.image.pixel_clustering._clustering import flowsom + from harpy.image.pixel_clustering._clustering import flowsom img_layer = "blobs_image" channels = ["lineage_0", "lineage_1", "lineage_5", "lineage_9"] @@ -43,7 +43,7 @@ def test_flowsom(sdata_blobs): @pytest.mark.skipif(not importlib.util.find_spec("flowsom"), reason="requires the flowSOM library") def test_flowsom_multi_c(sdata_multi_c_no_backed): - from sparrow.image.pixel_clustering._clustering import flowsom + from harpy.image.pixel_clustering._clustering import flowsom img_layer = "raw_image" fraction = 0.1 diff --git a/src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py b/src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py similarity index 88% rename from src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py rename to src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py index b2056184..64ecd10f 100644 --- a/src/sparrow/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py +++ b/src/harpy/_tests/test_image/test_pixel_clustering/test_pixel_clustering_preprocess.py @@ -1,4 +1,4 @@ -from sparrow.image.pixel_clustering._preprocess import pixel_clustering_preprocess +from harpy.image.pixel_clustering._preprocess import pixel_clustering_preprocess def test_pixel_clustering_preprocess_blobs(sdata_blobs): diff --git a/src/sparrow/_tests/test_image/test_rasterize.py b/src/harpy/_tests/test_image/test_rasterize.py similarity index 96% rename from src/sparrow/_tests/test_image/test_rasterize.py rename to src/harpy/_tests/test_image/test_rasterize.py index 797f8d85..69f751ea 100644 --- a/src/sparrow/_tests/test_image/test_rasterize.py +++ b/src/harpy/_tests/test_image/test_rasterize.py @@ -1,7 +1,7 @@ import numpy as np -from sparrow.image import rasterize -from sparrow.shape import add_shapes_layer +from harpy.image import rasterize +from harpy.shape import add_shapes_layer def test_rasterize(sdata_multi_c_no_backed): diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_align_masks.py b/src/harpy/_tests/test_image/test_segmentation/test_align_masks.py similarity index 88% rename from src/sparrow/_tests/test_image/test_segmentation/test_align_masks.py rename to src/harpy/_tests/test_image/test_segmentation/test_align_masks.py index ec962901..7f3d5d10 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_align_masks.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_align_masks.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image.segmentation._align_masks import align_labels_layers +from harpy.image.segmentation._align_masks import align_labels_layers def test_align_labels_layers(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_expand_labels.py b/src/harpy/_tests/test_image/test_segmentation/test_expand_labels.py similarity index 94% rename from src/sparrow/_tests/test_image/test_segmentation/test_expand_labels.py rename to src/harpy/_tests/test_image/test_segmentation/test_expand_labels.py index 23ad562b..9c660af8 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_expand_labels.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_expand_labels.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image.segmentation._expand_masks import expand_labels_layer +from harpy.image.segmentation._expand_masks import expand_labels_layer def test_expand_labels_layer(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_filter_masks.py b/src/harpy/_tests/test_image/test_segmentation/test_filter_masks.py similarity index 93% rename from src/sparrow/_tests/test_image/test_segmentation/test_filter_masks.py rename to src/harpy/_tests/test_image/test_segmentation/test_filter_masks.py index 5d049625..2f3f308e 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_filter_masks.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_filter_masks.py @@ -1,7 +1,7 @@ import dask.array as da from spatialdata import SpatialData -from sparrow.image.segmentation._filter_masks import ( +from harpy.image.segmentation._filter_masks import ( filter_labels_layer, ) diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_grid.py b/src/harpy/_tests/test_image/test_segmentation/test_grid.py similarity index 97% rename from src/sparrow/_tests/test_image/test_segmentation/test_grid.py rename to src/harpy/_tests/test_image/test_segmentation/test_grid.py index 3a5d4327..57c87ecf 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_grid.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_grid.py @@ -2,7 +2,7 @@ import pytest from spatialdata import SpatialData -from sparrow.image.segmentation._grid import add_grid_labels_layer +from harpy.image.segmentation._grid import add_grid_labels_layer @pytest.mark.parametrize("hex_size", [5, 13, 24, 27, 30]) diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_map_labels.py b/src/harpy/_tests/test_image/test_segmentation/test_map_labels.py similarity index 92% rename from src/sparrow/_tests/test_image/test_segmentation/test_map_labels.py rename to src/harpy/_tests/test_image/test_segmentation/test_map_labels.py index c5d1e1ce..fc236672 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_map_labels.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_map_labels.py @@ -1,6 +1,6 @@ from spatialdata import SpatialData -from sparrow.image import map_labels +from harpy.image import map_labels def test_map_labels(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_merge_masks.py b/src/harpy/_tests/test_image/test_segmentation/test_merge_masks.py similarity index 96% rename from src/sparrow/_tests/test_image/test_segmentation/test_merge_masks.py rename to src/harpy/_tests/test_image/test_segmentation/test_merge_masks.py index 48b1c29c..c2953d69 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_merge_masks.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_merge_masks.py @@ -1,7 +1,7 @@ from pandas import DataFrame from spatialdata import SpatialData -from sparrow.image.segmentation._merge_masks import ( +from harpy.image.segmentation._merge_masks import ( mask_to_original, merge_labels_layers, merge_labels_layers_nuclei, diff --git a/src/sparrow/_tests/test_image/test_segmentation/test_segmentation.py b/src/harpy/_tests/test_image/test_segmentation/test_segmentation.py similarity index 93% rename from src/sparrow/_tests/test_image/test_segmentation/test_segmentation.py rename to src/harpy/_tests/test_image/test_segmentation/test_segmentation.py index ca6ad2e6..f2426d85 100644 --- a/src/sparrow/_tests/test_image/test_segmentation/test_segmentation.py +++ b/src/harpy/_tests/test_image/test_segmentation/test_segmentation.py @@ -6,10 +6,10 @@ from dask.dataframe import DataFrame from spatialdata import SpatialData -from sparrow.image.segmentation._segmentation import segment, segment_points -from sparrow.image.segmentation.segmentation_models._baysor import _dummy -from sparrow.image.segmentation.segmentation_models._cellpose import cellpose_callable -from sparrow.points._points import add_points_layer +from harpy.image.segmentation._segmentation import segment, segment_points +from harpy.image.segmentation.segmentation_models._baysor import _dummy +from harpy.image.segmentation.segmentation_models._cellpose import cellpose_callable +from harpy.points._points import add_points_layer @pytest.mark.skipif(not importlib.util.find_spec("cellpose"), reason="requires the cellpose library") diff --git a/src/sparrow/_tests/test_image/test_transcripts.py b/src/harpy/_tests/test_image/test_transcripts.py similarity index 83% rename from src/sparrow/_tests/test_image/test_transcripts.py rename to src/harpy/_tests/test_image/test_transcripts.py index 39671772..66d395d4 100644 --- a/src/sparrow/_tests/test_image/test_transcripts.py +++ b/src/harpy/_tests/test_image/test_transcripts.py @@ -1,4 +1,4 @@ -from sparrow.image._transcripts import transcript_density +from harpy.image._transcripts import transcript_density def test_transcripts(sdata_blobs): diff --git a/src/sparrow/_tests/test_notebooks.py b/src/harpy/_tests/test_notebooks.py similarity index 98% rename from src/sparrow/_tests/test_notebooks.py rename to src/harpy/_tests/test_notebooks.py index 0d33dae4..8f725c5d 100644 --- a/src/sparrow/_tests/test_notebooks.py +++ b/src/harpy/_tests/test_notebooks.py @@ -158,10 +158,10 @@ def test_notebooks_rasterize_vectorize(notebook): @pytest.mark.parametrize( "notebook", [ - "SPArrOW_how_to_start.ipynb", + "Harpy_how_to_start.ipynb", ], ) -def test_notebook_sparrow_pipeline(notebook): +def test_notebook_harpy_pipeline(notebook): root = str(pyrootutils.setup_root(os.getcwd(), dotenv=True, pythonpath=True)) run_notebook(os.path.join(root, "docs/tutorials", notebook)) diff --git a/src/sparrow/_tests/test_pipeline.py b/src/harpy/_tests/test_pipeline.py similarity index 93% rename from src/sparrow/_tests/test_pipeline.py rename to src/harpy/_tests/test_pipeline.py index 9a0dbbea..eb5c5ffa 100644 --- a/src/sparrow/_tests/test_pipeline.py +++ b/src/harpy/_tests/test_pipeline.py @@ -5,7 +5,7 @@ import pytest from hydra.core.hydra_config import HydraConfig -from sparrow.single import main +from harpy.single import main @pytest.mark.skipif( diff --git a/src/sparrow/_tests/test_plot/test_plot.py b/src/harpy/_tests/test_plot/test_plot.py similarity index 96% rename from src/sparrow/_tests/test_plot/test_plot.py rename to src/harpy/_tests/test_plot/test_plot.py index 7aa9e83d..66bcdfcd 100644 --- a/src/sparrow/_tests/test_plot/test_plot.py +++ b/src/harpy/_tests/test_plot/test_plot.py @@ -6,10 +6,10 @@ import pytest import scanpy as sc -from sparrow.image._image import add_image_layer, add_labels_layer -from sparrow.plot._plot import plot_image, plot_labels, plot_shapes -from sparrow.plot._sanity import sanity_plot_transcripts_matrix -from sparrow.shape._shape import add_shapes_layer +from harpy.image._image import add_image_layer, add_labels_layer +from harpy.plot._plot import plot_image, plot_labels, plot_shapes +from harpy.plot._sanity import sanity_plot_transcripts_matrix +from harpy.shape._shape import add_shapes_layer def test_plot_labels(sdata_multi_c_no_backed, tmp_path): diff --git a/src/sparrow/_tests/test_plot/test_plot_annotation.py b/src/harpy/_tests/test_plot/test_plot_annotation.py similarity index 90% rename from src/sparrow/_tests/test_plot/test_plot_annotation.py rename to src/harpy/_tests/test_plot/test_plot_annotation.py index 3f3a6c7c..0ae2da56 100644 --- a/src/sparrow/_tests/test_plot/test_plot_annotation.py +++ b/src/harpy/_tests/test_plot/test_plot_annotation.py @@ -1,7 +1,7 @@ import os -from sparrow.plot import score_genes as score_genes_plot -from sparrow.table import score_genes +from harpy.plot import score_genes as score_genes_plot +from harpy.table import score_genes def test_score_genes(sdata_transcripts_no_backed, path_dataset_markers, tmp_path): diff --git a/src/sparrow/_tests/test_plot/test_plot_cluster.py b/src/harpy/_tests/test_plot/test_plot_cluster.py similarity index 87% rename from src/sparrow/_tests/test_plot/test_plot_cluster.py rename to src/harpy/_tests/test_plot/test_plot_cluster.py index b435d22c..31baec31 100644 --- a/src/sparrow/_tests/test_plot/test_plot_cluster.py +++ b/src/harpy/_tests/test_plot/test_plot_cluster.py @@ -1,7 +1,7 @@ import os -from sparrow.plot import cluster -from sparrow.table._clustering import leiden +from harpy.plot import cluster +from harpy.table._clustering import leiden def test_plot_cluster(sdata_multi_c_no_backed, tmp_path): diff --git a/src/sparrow/_tests/test_plot/test_plot_transcripts.py b/src/harpy/_tests/test_plot/test_plot_transcripts.py similarity index 85% rename from src/sparrow/_tests/test_plot/test_plot_transcripts.py rename to src/harpy/_tests/test_plot/test_plot_transcripts.py index ca17c707..c45ba878 100644 --- a/src/sparrow/_tests/test_plot/test_plot_transcripts.py +++ b/src/harpy/_tests/test_plot/test_plot_transcripts.py @@ -1,6 +1,6 @@ import os -from sparrow.plot._transcripts import analyse_genes_left_out +from harpy.plot._transcripts import analyse_genes_left_out def test_analyse_genes_left_out(sdata_transcripts_no_backed, tmp_path): diff --git a/src/sparrow/_tests/test_shapes/test_cell_expansion.py b/src/harpy/_tests/test_shapes/test_cell_expansion.py similarity index 90% rename from src/sparrow/_tests/test_shapes/test_cell_expansion.py rename to src/harpy/_tests/test_shapes/test_cell_expansion.py index bfa2ef2d..c5e4341b 100644 --- a/src/sparrow/_tests/test_shapes/test_cell_expansion.py +++ b/src/harpy/_tests/test_shapes/test_cell_expansion.py @@ -1,6 +1,6 @@ from geopandas import GeoDataFrame -from sparrow.shape import create_voronoi_boundaries +from harpy.shape import create_voronoi_boundaries def test_cell_expansion(sdata_multi_c_no_backed): diff --git a/src/sparrow/_tests/test_shapes/test_shape.py b/src/harpy/_tests/test_shapes/test_shape.py similarity index 94% rename from src/sparrow/_tests/test_shapes/test_shape.py rename to src/harpy/_tests/test_shapes/test_shape.py index 74dd1074..15e9c71e 100644 --- a/src/sparrow/_tests/test_shapes/test_shape.py +++ b/src/harpy/_tests/test_shapes/test_shape.py @@ -4,8 +4,8 @@ import numpy as np import pytest -from sparrow.image._rasterize import rasterize -from sparrow.shape._shape import vectorize +from harpy.image._rasterize import rasterize +from harpy.shape._shape import vectorize def test_vectorize(sdata): diff --git a/src/sparrow/_tests/test_table/test_allocation.py b/src/harpy/_tests/test_table/test_allocation.py similarity index 96% rename from src/sparrow/_tests/test_table/test_allocation.py rename to src/harpy/_tests/test_table/test_allocation.py index 43d81966..c5637139 100644 --- a/src/sparrow/_tests/test_table/test_allocation.py +++ b/src/harpy/_tests/test_table/test_allocation.py @@ -2,8 +2,8 @@ import pytest from spatialdata import SpatialData -from sparrow.table._allocation import allocate, bin_counts -from sparrow.utils._keys import _INSTANCE_KEY, _SPATIAL +from harpy.table._allocation import allocate, bin_counts +from harpy.utils._keys import _INSTANCE_KEY, _SPATIAL def test_allocation(sdata_transcripts: SpatialData): diff --git a/src/sparrow/_tests/test_table/test_allocation_intensity.py b/src/harpy/_tests/test_table/test_allocation_intensity.py similarity index 95% rename from src/sparrow/_tests/test_table/test_allocation_intensity.py rename to src/harpy/_tests/test_table/test_allocation_intensity.py index 6732830f..837487d7 100644 --- a/src/sparrow/_tests/test_table/test_allocation_intensity.py +++ b/src/harpy/_tests/test_table/test_allocation_intensity.py @@ -4,11 +4,11 @@ from spatialdata import SpatialData from xrspatial import zonal_stats -from sparrow.image.segmentation._align_masks import align_labels_layers -from sparrow.table._allocation_intensity import ( +from harpy.image.segmentation._align_masks import align_labels_layers +from harpy.table._allocation_intensity import ( allocate_intensity, ) -from sparrow.table._regionprops import add_regionprop_features +from harpy.table._regionprops import add_regionprop_features def test_integration_allocate_intensity(sdata_multi_c_no_backed: SpatialData): diff --git a/src/sparrow/_tests/test_table/test_annotation.py b/src/harpy/_tests/test_table/test_annotation.py similarity index 95% rename from src/sparrow/_tests/test_table/test_annotation.py rename to src/harpy/_tests/test_table/test_annotation.py index 5473ae23..0e66d008 100644 --- a/src/sparrow/_tests/test_table/test_annotation.py +++ b/src/harpy/_tests/test_table/test_annotation.py @@ -1,8 +1,8 @@ import pandas as pd from anndata import AnnData -from sparrow.table import score_genes, score_genes_iter -from sparrow.utils._keys import _ANNOTATION_KEY +from harpy.table import score_genes, score_genes_iter +from harpy.utils._keys import _ANNOTATION_KEY def test_score_genes(sdata_transcripts_no_backed, path_dataset_markers): diff --git a/src/sparrow/_tests/test_table/test_cell_clustering/test_cell_clustering.py b/src/harpy/_tests/test_table/test_cell_clustering/test_cell_clustering.py similarity index 90% rename from src/sparrow/_tests/test_table/test_cell_clustering/test_cell_clustering.py rename to src/harpy/_tests/test_table/test_cell_clustering/test_cell_clustering.py index 54fbc47a..49137509 100644 --- a/src/sparrow/_tests/test_table/test_cell_clustering/test_cell_clustering.py +++ b/src/harpy/_tests/test_table/test_cell_clustering/test_cell_clustering.py @@ -4,7 +4,7 @@ import pandas as pd import pytest -from sparrow.utils._keys import ClusteringKey +from harpy.utils._keys import ClusteringKey @pytest.mark.skipif(not importlib.util.find_spec("flowsom"), reason="requires the flowSOM library") @@ -12,10 +12,10 @@ def test_cell_clustering(sdata_blobs): """Integration test for cell clustering using flowsom""" import flowsom as fs - from sparrow.image.pixel_clustering._clustering import flowsom as flowsom_pixel - from sparrow.table.cell_clustering._clustering import flowsom as flowsom_cell - from sparrow.table.cell_clustering._weighted_channel_expression import weighted_channel_expression - from sparrow.table.pixel_clustering._cluster_intensity import cluster_intensity + from harpy.image.pixel_clustering._clustering import flowsom as flowsom_pixel + from harpy.table.cell_clustering._clustering import flowsom as flowsom_cell + from harpy.table.cell_clustering._weighted_channel_expression import weighted_channel_expression + from harpy.table.pixel_clustering._cluster_intensity import cluster_intensity img_layer = "blobs_image" labels_layer = "blobs_labels" diff --git a/src/sparrow/_tests/test_table/test_clustering.py b/src/harpy/_tests/test_table/test_clustering.py similarity index 96% rename from src/sparrow/_tests/test_table/test_clustering.py rename to src/harpy/_tests/test_table/test_clustering.py index 86c147b9..2eb5ad66 100644 --- a/src/sparrow/_tests/test_table/test_clustering.py +++ b/src/harpy/_tests/test_table/test_clustering.py @@ -2,8 +2,8 @@ import pytest -from sparrow.table._clustering import kmeans, leiden -from sparrow.table._preprocess import preprocess_proteomics +from harpy.table._clustering import kmeans, leiden +from harpy.table._preprocess import preprocess_proteomics @pytest.mark.skipif(not importlib.util.find_spec("sklearn"), reason="requires the scikit-learn library") diff --git a/src/sparrow/_tests/test_table/test_filter_on_size.py b/src/harpy/_tests/test_table/test_filter_on_size.py similarity index 91% rename from src/sparrow/_tests/test_table/test_filter_on_size.py rename to src/harpy/_tests/test_table/test_filter_on_size.py index d7c1096d..e533e0fe 100644 --- a/src/sparrow/_tests/test_table/test_filter_on_size.py +++ b/src/harpy/_tests/test_table/test_filter_on_size.py @@ -1,5 +1,5 @@ -from sparrow.table._preprocess import preprocess_proteomics -from sparrow.table._table import filter_on_size +from harpy.table._preprocess import preprocess_proteomics +from harpy.table._table import filter_on_size def test_filter_on_size(sdata_multi_c_no_backed): diff --git a/src/sparrow/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py b/src/harpy/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py similarity index 85% rename from src/sparrow/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py rename to src/harpy/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py index 650908ba..5fa60604 100644 --- a/src/sparrow/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py +++ b/src/harpy/_tests/test_table/test_pixel_clustering/test_cluster_intensity.py @@ -2,15 +2,15 @@ import pytest -from sparrow.table.pixel_clustering._cluster_intensity import _export_to_ark_format, cluster_intensity -from sparrow.utils._keys import ClusteringKey +from harpy.table.pixel_clustering._cluster_intensity import _export_to_ark_format, cluster_intensity +from harpy.utils._keys import ClusteringKey @pytest.mark.skipif(not importlib.util.find_spec("flowsom"), reason="requires the flowSOM library") def test_cluster_intensity(sdata_blobs): import flowsom as fs - from sparrow.image.pixel_clustering._clustering import flowsom + from harpy.image.pixel_clustering._clustering import flowsom img_layer = "blobs_image" channels = ["lineage_0", "lineage_1", "lineage_5", "lineage_9"] diff --git a/src/sparrow/_tests/test_table/test_preprocess.py b/src/harpy/_tests/test_table/test_preprocess.py similarity index 96% rename from src/sparrow/_tests/test_table/test_preprocess.py rename to src/harpy/_tests/test_table/test_preprocess.py index 92915b88..beb5c6e0 100644 --- a/src/sparrow/_tests/test_table/test_preprocess.py +++ b/src/harpy/_tests/test_table/test_preprocess.py @@ -1,7 +1,7 @@ import pytest -from sparrow.table._preprocess import preprocess_proteomics, preprocess_transcriptomics -from sparrow.utils._keys import _CELLSIZE_KEY, _REGION_KEY +from harpy.table._preprocess import preprocess_proteomics, preprocess_transcriptomics +from harpy.utils._keys import _CELLSIZE_KEY, _REGION_KEY @pytest.mark.parametrize("q", [None, 0.999]) diff --git a/src/sparrow/_tests/test_table/test_regionprops.py b/src/harpy/_tests/test_table/test_regionprops.py similarity index 84% rename from src/sparrow/_tests/test_table/test_regionprops.py rename to src/harpy/_tests/test_table/test_regionprops.py index ae385a6a..2265824b 100644 --- a/src/sparrow/_tests/test_table/test_regionprops.py +++ b/src/harpy/_tests/test_table/test_regionprops.py @@ -1,8 +1,8 @@ from anndata import AnnData from spatialdata import SpatialData -from sparrow.table._allocation_intensity import allocate_intensity -from sparrow.table._regionprops import add_regionprop_features +from harpy.table._allocation_intensity import allocate_intensity +from harpy.table._regionprops import add_regionprop_features def test_allocate_intensity(sdata_multi_c_no_backed): diff --git a/src/sparrow/_tests/test_utils/test_aggregate.py b/src/harpy/_tests/test_utils/test_aggregate.py similarity index 99% rename from src/sparrow/_tests/test_utils/test_aggregate.py rename to src/harpy/_tests/test_utils/test_aggregate.py index 0ed6e300..20f9588e 100644 --- a/src/sparrow/_tests/test_utils/test_aggregate.py +++ b/src/harpy/_tests/test_utils/test_aggregate.py @@ -7,8 +7,8 @@ from skimage.measure import regionprops_table from xrspatial import zonal_stats -from sparrow.utils._aggregate import RasterAggregator, _get_mask_area -from sparrow.utils._keys import _CELLSIZE_KEY +from harpy.utils._aggregate import RasterAggregator, _get_mask_area +from harpy.utils._keys import _CELLSIZE_KEY def test_aggregate_sum_dask_array(): diff --git a/src/sparrow/_tests/test_utils/test_query.py b/src/harpy/_tests/test_utils/test_query.py similarity index 97% rename from src/sparrow/_tests/test_utils/test_query.py rename to src/harpy/_tests/test_utils/test_query.py index f5b09fe7..a3570019 100644 --- a/src/sparrow/_tests/test_utils/test_query.py +++ b/src/harpy/_tests/test_utils/test_query.py @@ -6,8 +6,8 @@ from spatialdata import SpatialData from spatialdata.models import TableModel -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY -from sparrow.utils._query import bounding_box_query +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils._query import bounding_box_query @pytest.mark.parametrize("crd", [[2000, 3000, 3000, 4000], None]) diff --git a/src/sparrow/_tests/test_widget.py b/src/harpy/_tests/test_widget.py similarity index 90% rename from src/sparrow/_tests/test_widget.py rename to src/harpy/_tests/test_widget.py index 67d6533b..56bebb01 100644 --- a/src/sparrow/_tests/test_widget.py +++ b/src/harpy/_tests/test_widget.py @@ -7,12 +7,15 @@ @pytest.mark.skip -def test_sparrow_widgets(make_napari_viewer, cfg_pipeline, caplog): +def test_harpy_widgets( + make_napari_viewer, + cfg_pipeline, +): """ - Integration test for sparrow plugin in napari + Integration test for harpy plugin in napari """ - from sparrow import utils as utils - from sparrow.widgets import ( + from harpy import utils as utils + from harpy.widgets import ( allocate_widget, annotate_widget, clean_widget, @@ -80,10 +83,13 @@ def test_sparrow_widgets(make_napari_viewer, cfg_pipeline, caplog): @pytest.mark.skip -def test_load_widget(make_napari_viewer, cfg_pipeline, caplog): +def test_load_widget( + make_napari_viewer, + cfg_pipeline, +): """Test if the load works.""" - from sparrow import utils as utils - from sparrow.widgets import ( + from harpy import utils as utils + from harpy.widgets import ( load_widget, ) diff --git a/src/sparrow/configs/__init__.py b/src/harpy/configs/__init__.py similarity index 100% rename from src/sparrow/configs/__init__.py rename to src/harpy/configs/__init__.py diff --git a/src/sparrow/configs/allocate/default.yaml b/src/harpy/configs/allocate/default.yaml similarity index 100% rename from src/sparrow/configs/allocate/default.yaml rename to src/harpy/configs/allocate/default.yaml diff --git a/src/sparrow/configs/annotate/default.yaml b/src/harpy/configs/annotate/default.yaml similarity index 100% rename from src/sparrow/configs/annotate/default.yaml rename to src/harpy/configs/annotate/default.yaml diff --git a/src/sparrow/configs/clean/default.yaml b/src/harpy/configs/clean/default.yaml similarity index 100% rename from src/sparrow/configs/clean/default.yaml rename to src/harpy/configs/clean/default.yaml diff --git a/src/sparrow/configs/dataset/default.yaml b/src/harpy/configs/dataset/default.yaml similarity index 100% rename from src/sparrow/configs/dataset/default.yaml rename to src/harpy/configs/dataset/default.yaml diff --git a/src/sparrow/configs/extras/default.yaml b/src/harpy/configs/extras/default.yaml similarity index 100% rename from src/sparrow/configs/extras/default.yaml rename to src/harpy/configs/extras/default.yaml diff --git a/src/sparrow/configs/hydra/default.yaml b/src/harpy/configs/hydra/default.yaml similarity index 100% rename from src/sparrow/configs/hydra/default.yaml rename to src/harpy/configs/hydra/default.yaml diff --git a/src/sparrow/configs/paths/default.yaml b/src/harpy/configs/paths/default.yaml similarity index 100% rename from src/sparrow/configs/paths/default.yaml rename to src/harpy/configs/paths/default.yaml diff --git a/src/sparrow/configs/paths/output.yaml b/src/harpy/configs/paths/output.yaml similarity index 100% rename from src/sparrow/configs/paths/output.yaml rename to src/harpy/configs/paths/output.yaml diff --git a/src/sparrow/configs/pipeline.yaml b/src/harpy/configs/pipeline.yaml similarity index 100% rename from src/sparrow/configs/pipeline.yaml rename to src/harpy/configs/pipeline.yaml diff --git a/src/sparrow/configs/segmentation/cellpose.yaml b/src/harpy/configs/segmentation/cellpose.yaml similarity index 100% rename from src/sparrow/configs/segmentation/cellpose.yaml rename to src/harpy/configs/segmentation/cellpose.yaml diff --git a/src/sparrow/configs/segmentation/default.yaml b/src/harpy/configs/segmentation/default.yaml similarity index 74% rename from src/sparrow/configs/segmentation/default.yaml rename to src/harpy/configs/segmentation/default.yaml index 98ebd945..28cdd175 100644 --- a/src/sparrow/configs/segmentation/default.yaml +++ b/src/harpy/configs/segmentation/default.yaml @@ -1,6 +1,6 @@ chunks: "auto" depth: null -trim: False # True==squidpy algo for chunking, False==sparrow algo +trim: False # True==squidpy algo for chunking, False==harpy algo small_size_vis: null crop_param: null diff --git a/src/sparrow/configs/segmentation/watershed.yaml b/src/harpy/configs/segmentation/watershed.yaml similarity index 100% rename from src/sparrow/configs/segmentation/watershed.yaml rename to src/harpy/configs/segmentation/watershed.yaml diff --git a/src/sparrow/configs/visualize/default.yaml b/src/harpy/configs/visualize/default.yaml similarity index 100% rename from src/sparrow/configs/visualize/default.yaml rename to src/harpy/configs/visualize/default.yaml diff --git a/src/sparrow/configs/viz/default.yaml b/src/harpy/configs/viz/default.yaml similarity index 100% rename from src/sparrow/configs/viz/default.yaml rename to src/harpy/configs/viz/default.yaml diff --git a/src/sparrow/configs/viz/napari.yaml b/src/harpy/configs/viz/napari.yaml similarity index 100% rename from src/sparrow/configs/viz/napari.yaml rename to src/harpy/configs/viz/napari.yaml diff --git a/src/sparrow/datasets/__init__.py b/src/harpy/datasets/__init__.py similarity index 100% rename from src/sparrow/datasets/__init__.py rename to src/harpy/datasets/__init__.py diff --git a/src/sparrow/datasets/cluster_blobs.py b/src/harpy/datasets/cluster_blobs.py similarity index 97% rename from src/sparrow/datasets/cluster_blobs.py rename to src/harpy/datasets/cluster_blobs.py index 2a796db7..8edbde2a 100644 --- a/src/sparrow/datasets/cluster_blobs.py +++ b/src/harpy/datasets/cluster_blobs.py @@ -13,9 +13,9 @@ from spatialdata.models import Image2DModel, Labels2DModel, PointsModel, TableModel from spatialdata.transformations import Identity -from sparrow.table import add_regionprop_features -from sparrow.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.table import add_regionprop_features +from harpy.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/datasets/pixie_example.py b/src/harpy/datasets/pixie_example.py similarity index 96% rename from src/sparrow/datasets/pixie_example.py rename to src/harpy/datasets/pixie_example.py index 7da3ca2f..6e53a765 100644 --- a/src/sparrow/datasets/pixie_example.py +++ b/src/harpy/datasets/pixie_example.py @@ -40,7 +40,7 @@ def pixie_example(fovs: list | None = None, with_pixel_output=True, with_cells_o from dask_image import imread from datasets import load_dataset - import sparrow as sp + import harpy # ['segment_image_data', 'cluster_pixels', 'cluster_cells', 'post_clustering', 'fiber_segmentation', 'LDA_preprocessing', 'LDA_training_inference', 'neighborhood_analysis', 'pairwise_spatial_enrichment', 'ome_tiff', 'ez_seg_data'] dataset = load_dataset("angelolab/ark_example", "cluster_cells", trust_remote_code=True) @@ -90,7 +90,7 @@ def pixie_example(fovs: list | None = None, with_pixel_output=True, with_cells_o results.append(arr) da.stack(results, axis=0) - sdata = sp.im.add_image_layer( + sdata = harpy.im.add_image_layer( sdata, arr=da.stack(results, axis=0).squeeze(), output_layer=f"raw_image_{fov}", @@ -101,7 +101,7 @@ def pixie_example(fovs: list | None = None, with_pixel_output=True, with_cells_o # } ) - sdata = sp.im.add_labels_layer( + sdata = harpy.im.add_labels_layer( sdata, arr=imread.imread(os.path.join(path_segment_data, f"{fov}_nuclear.tiff")).squeeze(), output_layer=f"label_nuclear_{fov}", @@ -111,7 +111,7 @@ def pixie_example(fovs: list | None = None, with_pixel_output=True, with_cells_o # } ) - sdata = sp.im.add_labels_layer( + sdata = harpy.im.add_labels_layer( sdata, arr=imread.imread(os.path.join(path_segment_data, f"{fov}_whole_cell.tiff")).squeeze(), output_layer=f"label_whole_{fov}", diff --git a/src/sparrow/datasets/proteomics.py b/src/harpy/datasets/proteomics.py similarity index 98% rename from src/sparrow/datasets/proteomics.py rename to src/harpy/datasets/proteomics.py index c72c2a8c..3bfea12d 100644 --- a/src/sparrow/datasets/proteomics.py +++ b/src/harpy/datasets/proteomics.py @@ -9,7 +9,7 @@ from numpy.typing import NDArray from spatialdata import SpatialData, read_zarr -from sparrow.datasets.registry import get_ome_registry, get_registry, get_spatialdata_registry +from harpy.datasets.registry import get_ome_registry, get_registry, get_spatialdata_registry def mibi_example() -> SpatialData: diff --git a/src/sparrow/datasets/registry.py b/src/harpy/datasets/registry.py similarity index 97% rename from src/sparrow/datasets/registry.py rename to src/harpy/datasets/registry.py index 3d52c7b4..bbc739e5 100644 --- a/src/sparrow/datasets/registry.py +++ b/src/harpy/datasets/registry.py @@ -6,7 +6,8 @@ import pooch from pooch import Pooch -from sparrow import __version__ +# from harpy import __version__ +__version__ = "0.0.1" # Do not automatically update dataset Cache for each release, because it downloads a lot of data. BASE_URL = "https://objectstor.vib.be/spatial-hackathon-public/sparrow/public_datasets" diff --git a/src/sparrow/datasets/transcriptomics.py b/src/harpy/datasets/transcriptomics.py similarity index 95% rename from src/sparrow/datasets/transcriptomics.py rename to src/harpy/datasets/transcriptomics.py index 60c18522..2f7496e2 100644 --- a/src/sparrow/datasets/transcriptomics.py +++ b/src/harpy/datasets/transcriptomics.py @@ -4,11 +4,11 @@ import pooch from spatialdata import SpatialData, read_zarr -from sparrow.datasets.registry import get_registry -from sparrow.io._merscope import merscope -from sparrow.io._visium_hd import visium_hd -from sparrow.io._xenium import xenium -from sparrow.utils.pylogger import get_pylogger +from harpy.datasets.registry import get_registry +from harpy.io._merscope import merscope +from harpy.io._visium_hd import visium_hd +from harpy.io._xenium import xenium +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/__init__.py b/src/harpy/image/__init__.py similarity index 95% rename from src/sparrow/image/__init__.py rename to src/harpy/image/__init__.py index 9e2c2462..d8a69d0f 100644 --- a/src/sparrow/image/__init__.py +++ b/src/harpy/image/__init__.py @@ -1,4 +1,4 @@ -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger from ._combine import combine from ._contrast import enhance_contrast diff --git a/src/sparrow/image/_combine.py b/src/harpy/image/_combine.py similarity index 98% rename from src/sparrow/image/_combine.py rename to src/harpy/image/_combine.py index 80bfc8c7..70b8cb37 100644 --- a/src/sparrow/image/_combine.py +++ b/src/harpy/image/_combine.py @@ -9,11 +9,11 @@ from spatialdata.transformations import get_transformation from xarray import DataArray -from sparrow.image._image import ( +from harpy.image._image import ( _get_spatial_element, add_image_layer, ) -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/_contrast.py b/src/harpy/image/_contrast.py similarity index 95% rename from src/sparrow/image/_contrast.py rename to src/harpy/image/_contrast.py index f766c0e3..e540a17e 100644 --- a/src/sparrow/image/_contrast.py +++ b/src/harpy/image/_contrast.py @@ -7,16 +7,16 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image._image import _get_spatial_element -from sparrow.image._map import map_image -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.image._map import map_image +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) try: import cv2 except ImportError: - log.warning("'OpenCV (cv2)' not installed, to use 'sp.im.enhance_contrast' please install this library.") + log.warning("'OpenCV (cv2)' not installed, to use 'harpy.im.enhance_contrast' please install this library.") def enhance_contrast( diff --git a/src/sparrow/image/_filters.py b/src/harpy/image/_filters.py similarity index 98% rename from src/sparrow/image/_filters.py rename to src/harpy/image/_filters.py index da2c9626..43c4b6cd 100644 --- a/src/sparrow/image/_filters.py +++ b/src/harpy/image/_filters.py @@ -9,8 +9,8 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image._map import _get_spatial_element, map_image -from sparrow.utils.pylogger import get_pylogger +from harpy.image._map import _get_spatial_element, map_image +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/_image.py b/src/harpy/image/_image.py similarity index 98% rename from src/sparrow/image/_image.py rename to src/harpy/image/_image.py index c7ea81f6..c223522a 100644 --- a/src/sparrow/image/_image.py +++ b/src/harpy/image/_image.py @@ -11,9 +11,9 @@ from spatialdata.transformations.transformations import Identity, Sequence, Translation from xarray import DataArray, DataTree -from sparrow.image._manager import ImageLayerManager, LabelLayerManager -from sparrow.utils._transformations import _get_translation_values -from sparrow.utils.pylogger import get_pylogger +from harpy.image._manager import ImageLayerManager, LabelLayerManager +from harpy.utils._transformations import _get_translation_values +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/_manager.py b/src/harpy/image/_manager.py similarity index 98% rename from src/sparrow/image/_manager.py rename to src/harpy/image/_manager.py index 40d1b434..eef0ca68 100644 --- a/src/sparrow/image/_manager.py +++ b/src/harpy/image/_manager.py @@ -10,8 +10,8 @@ from spatialdata.models.models import ScaleFactors_t from xarray import DataArray, DataTree -from sparrow.utils._io import _incremental_io_on_disk -from sparrow.utils.pylogger import get_pylogger +from harpy.utils._io import _incremental_io_on_disk +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/_map.py b/src/harpy/image/_map.py similarity index 99% rename from src/sparrow/image/_map.py rename to src/harpy/image/_map.py index d21d917e..1ff287d2 100644 --- a/src/sparrow/image/_map.py +++ b/src/harpy/image/_map.py @@ -11,11 +11,11 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import get_transformation -from sparrow.image._image import ( +from harpy.image._image import ( _get_spatial_element, add_image_layer, ) -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/_normalize.py b/src/harpy/image/_normalize.py similarity index 97% rename from src/sparrow/image/_normalize.py rename to src/harpy/image/_normalize.py index 74ae6e1d..8047617d 100644 --- a/src/sparrow/image/_normalize.py +++ b/src/harpy/image/_normalize.py @@ -8,8 +8,8 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element, add_image_layer -from sparrow.image._map import map_image +from harpy.image._image import _get_spatial_element, add_image_layer +from harpy.image._map import map_image def normalize( diff --git a/src/sparrow/image/_rasterize.py b/src/harpy/image/_rasterize.py similarity index 98% rename from src/sparrow/image/_rasterize.py rename to src/harpy/image/_rasterize.py index e9f210b1..79b8a2e3 100644 --- a/src/sparrow/image/_rasterize.py +++ b/src/harpy/image/_rasterize.py @@ -17,9 +17,9 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import get_transformation -from sparrow.image._image import add_labels_layer -from sparrow.utils._keys import _INSTANCE_KEY -from sparrow.utils.utils import _get_uint_dtype +from harpy.image._image import add_labels_layer +from harpy.utils._keys import _INSTANCE_KEY +from harpy.utils.utils import _get_uint_dtype def rasterize( diff --git a/src/sparrow/image/_tiling.py b/src/harpy/image/_tiling.py similarity index 95% rename from src/sparrow/image/_tiling.py rename to src/harpy/image/_tiling.py index 98cdf7d5..e0c03512 100644 --- a/src/sparrow/image/_tiling.py +++ b/src/harpy/image/_tiling.py @@ -7,13 +7,13 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import Translation, get_transformation -from sparrow.image._image import ( +from harpy.image._image import ( _get_spatial_element, _get_translation, _substract_translation_crd, add_image_layer, ) -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -21,12 +21,14 @@ import jax.numpy as jnp from basicpy import BaSiC except ImportError: - log.warning("'jax' or 'basicpy' not installed, to use 'sp.im.tiling_correction', please install these libraries.") + log.warning( + "'jax' or 'basicpy' not installed, to use 'harpy.im.tiling_correction', please install these libraries." + ) try: import cv2 except ImportError: - log.warning("'OpenCV (cv2)' not installed, to use 'sp.im.tiling_correction' please install this library.") + log.warning("'OpenCV (cv2)' not installed, to use 'harpy.im.tiling_correction' please install this library.") def tiling_correction( diff --git a/src/sparrow/image/_transcripts.py b/src/harpy/image/_transcripts.py similarity index 97% rename from src/sparrow/image/_transcripts.py rename to src/harpy/image/_transcripts.py index eaa0fee4..ab67e9db 100644 --- a/src/sparrow/image/_transcripts.py +++ b/src/harpy/image/_transcripts.py @@ -6,9 +6,9 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import Translation -from sparrow.image._image import _get_boundary, _get_spatial_element, add_image_layer -from sparrow.utils._transformations import _identity_check_transformations_points -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_boundary, _get_spatial_element, add_image_layer +from harpy.utils._transformations import _identity_check_transformations_points +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/pixel_clustering/__init__.py b/src/harpy/image/pixel_clustering/__init__.py similarity index 100% rename from src/sparrow/image/pixel_clustering/__init__.py rename to src/harpy/image/pixel_clustering/__init__.py diff --git a/src/sparrow/image/pixel_clustering/_clustering.py b/src/harpy/image/pixel_clustering/_clustering.py similarity index 94% rename from src/sparrow/image/pixel_clustering/_clustering.py rename to src/harpy/image/pixel_clustering/_clustering.py index fc173867..9fbacb64 100644 --- a/src/sparrow/image/pixel_clustering/_clustering.py +++ b/src/harpy/image/pixel_clustering/_clustering.py @@ -12,18 +12,18 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element, add_labels_layer -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY, _SPATIAL, ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element, add_labels_layer +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY, _SPATIAL, ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) try: import flowsom as fs - from sparrow.utils._flowsom import _flowsom + from harpy.utils._flowsom import _flowsom except ImportError: - log.warning("'flowsom' not installed, to use 'sp.im.flowsom', please install this library.") + log.warning("'flowsom' not installed, to use 'harpy.im.flowsom', please install this library.") def flowsom( @@ -51,7 +51,7 @@ def flowsom( sdata The input SpatialData object. img_layer - The image layer(s) of `sdata` on which flowsom is run. It is recommended to preprocess the data with `sp.im.pixel_clustering_preprocess`. + The image layer(s) of `sdata` on which flowsom is run. It is recommended to preprocess the data with `harpy.im.pixel_clustering_preprocess`. output_layer_clusters The output labels layer in `sdata` to which labels layer with predicted flowsom SOM clusters are saved. output_layer_metaclusters @@ -85,12 +85,12 @@ def flowsom( See Also -------- - sparrow.im.pixel_clustering_preprocess : preprocess image layers before applying flowsom clustering. + harpy.im.pixel_clustering_preprocess : preprocess image layers before applying flowsom clustering. Warnings -------- - The function is intended for use with spatial proteomics data. Input data should be appropriately preprocessed - (e.g. via `sp.im.pixel_clustering_preprocess`) to ensure meaningful clustering results. + (e.g. via `harpy.im.pixel_clustering_preprocess`) to ensure meaningful clustering results. - The cluster and metacluster ID's found in `output_layer_clusters` and `output_layer_metaclusters` count from 1, while they count from 0 in the `FlowSOM` object. """ assert 0 < fraction <= 1, "Value must be between 0 and 1" diff --git a/src/sparrow/image/pixel_clustering/_preprocess.py b/src/harpy/image/pixel_clustering/_preprocess.py similarity index 97% rename from src/sparrow/image/pixel_clustering/_preprocess.py rename to src/harpy/image/pixel_clustering/_preprocess.py index 4bbe5e0e..2a78dc14 100644 --- a/src/sparrow/image/pixel_clustering/_preprocess.py +++ b/src/harpy/image/pixel_clustering/_preprocess.py @@ -10,8 +10,8 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element, add_image_layer -from sparrow.image._normalize import _nonzero_nonnan_percentile, _nonzero_nonnan_percentile_axis_0 +from harpy.image._image import _get_spatial_element, add_image_layer +from harpy.image._normalize import _nonzero_nonnan_percentile, _nonzero_nonnan_percentile_axis_0 def pixel_clustering_preprocess( @@ -31,7 +31,7 @@ def pixel_clustering_preprocess( """ Preprocess image layers specified in `img_layer`. Normalizes and blurs the images based on various quantile and gaussian blur parameters. The results are added to `sdata` as specified in `output_layer`. - Preprocessing function specifically designed for preprocessing images before using `sp.im.flowsom`. + Preprocessing function specifically designed for preprocessing images before using `harpy.im.flowsom`. Parameters ---------- @@ -74,7 +74,7 @@ def pixel_clustering_preprocess( See Also -------- - sparrow.im.flowsom : flowsom pixel clustering on image layers. + harpy.im.flowsom : flowsom pixel clustering on image layers. """ # setting q_sum =None, and norm_sum=False -> then there will be no data leakage in single fov case. diff --git a/src/sparrow/image/segmentation/__init__.py b/src/harpy/image/segmentation/__init__.py similarity index 100% rename from src/sparrow/image/segmentation/__init__.py rename to src/harpy/image/segmentation/__init__.py diff --git a/src/sparrow/image/segmentation/_align_masks.py b/src/harpy/image/segmentation/_align_masks.py similarity index 98% rename from src/sparrow/image/segmentation/_align_masks.py rename to src/harpy/image/segmentation/_align_masks.py index 99b665b2..3cf8056e 100644 --- a/src/sparrow/image/segmentation/_align_masks.py +++ b/src/harpy/image/segmentation/_align_masks.py @@ -9,8 +9,8 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image.segmentation._map import map_labels -from sparrow.image.segmentation._utils import ( +from harpy.image.segmentation._map import map_labels +from harpy.image.segmentation._utils import ( _SEG_DTYPE, _add_depth_to_chunks_size, _check_boundary, @@ -19,7 +19,7 @@ _rechunk_overlap, _substract_depth_from_chunks_size, ) -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/_expand_masks.py b/src/harpy/image/segmentation/_expand_masks.py similarity index 97% rename from src/sparrow/image/segmentation/_expand_masks.py rename to src/harpy/image/segmentation/_expand_masks.py index 127bf8a9..e97e7315 100644 --- a/src/sparrow/image/segmentation/_expand_masks.py +++ b/src/harpy/image/segmentation/_expand_masks.py @@ -5,8 +5,8 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image.segmentation._map import map_labels -from sparrow.utils.pylogger import get_pylogger +from harpy.image.segmentation._map import map_labels +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/_filter_masks.py b/src/harpy/image/segmentation/_filter_masks.py similarity index 97% rename from src/sparrow/image/segmentation/_filter_masks.py rename to src/harpy/image/segmentation/_filter_masks.py index d762a9d0..691288a9 100644 --- a/src/sparrow/image/segmentation/_filter_masks.py +++ b/src/harpy/image/segmentation/_filter_masks.py @@ -5,8 +5,8 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image.segmentation._map import map_labels -from sparrow.utils.pylogger import get_pylogger +from harpy.image.segmentation._map import map_labels +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/_grid.py b/src/harpy/image/segmentation/_grid.py similarity index 96% rename from src/sparrow/image/segmentation/_grid.py rename to src/harpy/image/segmentation/_grid.py index 050fd2a4..ff3a187d 100644 --- a/src/sparrow/image/segmentation/_grid.py +++ b/src/harpy/image/segmentation/_grid.py @@ -9,8 +9,8 @@ from spatialdata.models._utils import MappingToCoordinateSystem_t from spatialdata.models.models import ScaleFactors_t -from sparrow.image._rasterize import rasterize -from sparrow.shape._shape import add_shapes_layer +from harpy.image._rasterize import rasterize +from harpy.shape._shape import add_shapes_layer def add_grid_labels_layer( @@ -52,8 +52,8 @@ def add_grid_labels_layer( chunks Specifies the chunk size for Dask arrays when calculating the labels layer. client - A Dask `Client` instance, which will be passed to 'sp.im.rasterize' (function which rasterizes the generated `output_shapes_layer`) if specified. - Refer to the 'sp.im.rasterize' docstring for further details. + A Dask `Client` instance, which will be passed to 'harpy.im.rasterize' (function which rasterizes the generated `output_shapes_layer`) if specified. + Refer to the 'harpy.im.rasterize' docstring for further details. transformations Transformations that will be added to the resulting `output_shapes_layer` and `output_labels_layer`. scale_factors diff --git a/src/sparrow/image/segmentation/_map.py b/src/harpy/image/segmentation/_map.py similarity index 98% rename from src/sparrow/image/segmentation/_map.py rename to src/harpy/image/segmentation/_map.py index efcb98a2..a6c95f8c 100644 --- a/src/sparrow/image/segmentation/_map.py +++ b/src/harpy/image/segmentation/_map.py @@ -12,19 +12,19 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import Translation, get_transformation -from sparrow.image._image import ( +from harpy.image._image import ( _get_spatial_element, add_labels_layer, ) -from sparrow.image.segmentation._utils import ( +from harpy.image.segmentation._utils import ( _SEG_DTYPE, _add_depth_to_chunks_size, _check_boundary, _link_labels, _rechunk_overlap, ) -from sparrow.shape._shape import add_shapes_layer -from sparrow.utils.pylogger import get_pylogger +from harpy.shape._shape import add_shapes_layer +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/_merge_masks.py b/src/harpy/image/segmentation/_merge_masks.py similarity index 98% rename from src/sparrow/image/segmentation/_merge_masks.py rename to src/harpy/image/segmentation/_merge_masks.py index a06b5c92..1bcc0f0c 100644 --- a/src/sparrow/image/segmentation/_merge_masks.py +++ b/src/harpy/image/segmentation/_merge_masks.py @@ -10,10 +10,10 @@ from spatialdata import SpatialData from spatialdata.models.models import ScaleFactors_t -from sparrow.image._image import _get_spatial_element -from sparrow.image.segmentation._map import map_labels -from sparrow.image.segmentation._utils import _SEG_DTYPE, _rechunk_overlap -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.image.segmentation._map import map_labels +from harpy.image.segmentation._utils import _SEG_DTYPE, _rechunk_overlap +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -124,7 +124,7 @@ def merge_labels_layers_nuclei( Merge labels layers using nuclei segmentation. Given a labels layer obtained from nuclei segmentation (`labels_layer_nuclei`), - and corresponding expanded nuclei (`labels_layer_nuclei_expanded`), e.g. obtained through `sp.im.expand_labels_layer`, + and corresponding expanded nuclei (`labels_layer_nuclei_expanded`), e.g. obtained through `harpy.im.expand_labels_layer`, this function merges labels in labels layer `labels_layer_nuclei_expanded` with `labels_layer` in the SpatialData object, if corresponding nuclei in `labels_layer_nuclei` have less than `threshold` overlap with labels from `labels_layer`. diff --git a/src/sparrow/image/segmentation/_segmentation.py b/src/harpy/image/segmentation/_segmentation.py similarity index 97% rename from src/sparrow/image/segmentation/_segmentation.py rename to src/harpy/image/segmentation/_segmentation.py index 836c96b0..c1c8ecf4 100644 --- a/src/sparrow/image/segmentation/_segmentation.py +++ b/src/harpy/image/segmentation/_segmentation.py @@ -20,14 +20,14 @@ from upath import UPath from xarray import DataArray -from sparrow.image._image import ( +from harpy.image._image import ( _fix_dimensions, _get_spatial_element, _get_translation, add_labels_layer, ) -from sparrow.image.segmentation._align_masks import align_labels_layers -from sparrow.image.segmentation._utils import ( +from harpy.image.segmentation._align_masks import align_labels_layers +from harpy.image.segmentation._utils import ( _SEG_DTYPE, _add_depth_to_chunks_size, _check_boundary, @@ -38,13 +38,13 @@ _rechunk_overlap, _substract_depth_from_chunks_size, ) -from sparrow.image.segmentation.segmentation_models._baysor import _baysor as _model_points -from sparrow.image.segmentation.segmentation_models._cellpose import cellpose_callable as _model -from sparrow.points._points import add_points_layer -from sparrow.shape._shape import add_shapes_layer -from sparrow.utils._keys import _GENES_KEY -from sparrow.utils._transformations import _identity_check_transformations_points -from sparrow.utils.pylogger import get_pylogger +from harpy.image.segmentation.segmentation_models._baysor import _baysor as _model_points +from harpy.image.segmentation.segmentation_models._cellpose import cellpose_callable as _model +from harpy.points._points import add_points_layer +from harpy.shape._shape import add_shapes_layer +from harpy.utils._keys import _GENES_KEY +from harpy.utils._transformations import _identity_check_transformations_points +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -101,10 +101,10 @@ def segment( Boundary parameter passed to `dask.array.map_overlap`. trim If set to `True`, overlapping regions will be processed using the `squidpy` algorithm. - If set to `False`, the `sparrow` algorithm will be employed instead. For dense cell distributions, + If set to `False`, the `harpy` algorithm will be employed instead. For dense cell distributions, we recommend setting trim to `False`. iou - If set to `True`, will try to harmonize labels across chunks using a label adjacency graph with an iou threshold (see `sparrow.image.segmentation.utils._link_labels`). If set to `False`, conflicts will be resolved using an algorithm that only retains masks with the center in the chunk. + If set to `True`, will try to harmonize labels across chunks using a label adjacency graph with an iou threshold (see `harpy.image.segmentation.utils._link_labels`). If set to `False`, conflicts will be resolved using an algorithm that only retains masks with the center in the chunk. Setting `iou` to `False` gives good results if there is reasonable agreement of the predicted labels accross adjacent chunks. iou_depth iou depth used for harmonizing labels across chunks. Note that if `labels_layer_align` is specified, `iou_depth` will also be used for harmonizing labels between different chunks. @@ -234,10 +234,10 @@ def segment_points( Boundary parameter passed to `dask.array.map_overlap`. trim If set to True, overlapping regions will be processed using the `squidpy` algorithm. - If set to False, the `sparrow` algorithm will be employed instead. For dense cell distributions, + If set to False, the `harpy` algorithm will be employed instead. For dense cell distributions, we recommend setting trim to False. iou - If set to True, will try to harmonize labels across chunks using a label adjacency graph with an iou threshold (see `sparrow.image.segmentation.utils._link_labels`). If set to False, conflicts will be resolved using an algorithm that only retains masks with the center in the chunk. + If set to True, will try to harmonize labels across chunks using a label adjacency graph with an iou threshold (see `harpy.image.segmentation.utils._link_labels`). If set to False, conflicts will be resolved using an algorithm that only retains masks with the center in the chunk. Setting `iou` to False gives good results if there is reasonable agreement of the predicted labels accross adjacent chunks. iou_depth iou depth used for harmonizing labels across chunks. Note that if `labels_layer_align` is specified, `iou_depth` will also be used for harmonizing labels between different chunks. diff --git a/src/sparrow/image/segmentation/_utils.py b/src/harpy/image/segmentation/_utils.py similarity index 99% rename from src/sparrow/image/segmentation/_utils.py rename to src/harpy/image/segmentation/_utils.py index 57097d21..209db48b 100644 --- a/src/sparrow/image/segmentation/_utils.py +++ b/src/harpy/image/segmentation/_utils.py @@ -9,7 +9,7 @@ from numpy.typing import NDArray from sklearn import metrics as sk_metrics -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/segmentation_models/__init__.py b/src/harpy/image/segmentation/segmentation_models/__init__.py similarity index 100% rename from src/sparrow/image/segmentation/segmentation_models/__init__.py rename to src/harpy/image/segmentation/segmentation_models/__init__.py diff --git a/src/sparrow/image/segmentation/segmentation_models/_baysor.py b/src/harpy/image/segmentation/segmentation_models/_baysor.py similarity index 99% rename from src/sparrow/image/segmentation/segmentation_models/_baysor.py rename to src/harpy/image/segmentation/segmentation_models/_baysor.py index 64362311..4cbbc4a2 100644 --- a/src/sparrow/image/segmentation/segmentation_models/_baysor.py +++ b/src/harpy/image/segmentation/segmentation_models/_baysor.py @@ -20,7 +20,7 @@ from shapely.validation import make_valid from skimage.segmentation import relabel_sequential -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/image/segmentation/segmentation_models/_cellpose.py b/src/harpy/image/segmentation/segmentation_models/_cellpose.py similarity index 91% rename from src/sparrow/image/segmentation/segmentation_models/_cellpose.py rename to src/harpy/image/segmentation/segmentation_models/_cellpose.py index fe9fd8fe..88c77466 100644 --- a/src/sparrow/image/segmentation/segmentation_models/_cellpose.py +++ b/src/harpy/image/segmentation/segmentation_models/_cellpose.py @@ -4,7 +4,7 @@ from numpy.typing import NDArray -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -15,7 +15,7 @@ CUDA = torch.cuda.is_available() except ImportError: log.warning( - "Module 'torch' not installed, please install 'torch' if you want to use the callable 'sparrow.image.segmentation.segmentation_models._cellpose' as model for 'sp.im.segment'." + "Module 'torch' not installed, please install 'torch' if you want to use the callable 'harpy.image.segmentation.segmentation_models._cellpose' as model for 'harpy.im.segment'." ) TORCH_AVAILABLE = False CUDA = False @@ -26,7 +26,7 @@ CELLPOSE_AVAILABLE = True except ImportError: log.warning( - "Module 'cellpose' not installed, please install 'cellpose' if you want to use the callable 'sparrow.image.segmentation.segmentation_models._cellpose' as model for 'sp.im.segment'." + "Module 'cellpose' not installed, please install 'cellpose' if you want to use the callable 'harpy.image.segmentation.segmentation_models._cellpose' as model for 'harpy.im.segment'." ) CELLPOSE_AVAILABLE = False @@ -49,7 +49,7 @@ def cellpose_callable( """ Perform cell segmentation using the Cellpose model. - Should be passed to `model` parameter of `sp.im.segment` for distributed processing. + Should be passed to `model` parameter of `harpy.im.segment` for distributed processing. Parameters ---------- @@ -95,7 +95,7 @@ def cellpose_callable( See Also -------- - sparrow.im.segment : distributed segmentation using `Dask`. + harpy.im.segment : distributed segmentation using `Dask`. """ if channels is None: channels = [0, 0] diff --git a/src/sparrow/image/segmentation/segmentation_models/_instanseg.py b/src/harpy/image/segmentation/segmentation_models/_instanseg.py similarity index 98% rename from src/sparrow/image/segmentation/segmentation_models/_instanseg.py rename to src/harpy/image/segmentation/segmentation_models/_instanseg.py index cbfabd70..bda5decd 100644 --- a/src/sparrow/image/segmentation/segmentation_models/_instanseg.py +++ b/src/harpy/image/segmentation/segmentation_models/_instanseg.py @@ -13,7 +13,7 @@ from numpy.typing import NDArray from torch.jit import RecursiveScriptModule -from sparrow.image.segmentation._utils import _SEG_DTYPE +from harpy.image.segmentation._utils import _SEG_DTYPE def _instanseg( diff --git a/src/sparrow/image/segmentation/segmentation_models/_mesmer.py b/src/harpy/image/segmentation/segmentation_models/_mesmer.py similarity index 100% rename from src/sparrow/image/segmentation/segmentation_models/_mesmer.py rename to src/harpy/image/segmentation/segmentation_models/_mesmer.py diff --git a/src/sparrow/image/segmentation/segmentation_models/_watershed.py b/src/harpy/image/segmentation/segmentation_models/_watershed.py similarity index 100% rename from src/sparrow/image/segmentation/segmentation_models/_watershed.py rename to src/harpy/image/segmentation/segmentation_models/_watershed.py diff --git a/src/sparrow/io/__init__.py b/src/harpy/io/__init__.py similarity index 100% rename from src/sparrow/io/__init__.py rename to src/harpy/io/__init__.py diff --git a/src/sparrow/io/_merscope.py b/src/harpy/io/_merscope.py similarity index 97% rename from src/sparrow/io/_merscope.py rename to src/harpy/io/_merscope.py index 82b52210..47b64356 100644 --- a/src/sparrow/io/_merscope.py +++ b/src/harpy/io/_merscope.py @@ -17,9 +17,9 @@ from spatialdata_io import merscope as sdata_merscope from spatialdata_io._constants._constants import MerscopeKeys -from sparrow.image._image import _get_spatial_element -from sparrow.io._transcripts import read_transcripts -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.io._transcripts import read_transcripts +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -75,7 +75,7 @@ def merscope( Keyword arguments to pass to the image models. filter_gene_names Gene names that need to be filtered out (via `str.contains`), mostly control genes that were added, and which you don't want to use. - Filtering is case insensitive. Also see `sparrow.read_transcripts`. + Filtering is case insensitive. Also see `harpy.read_transcripts`. output The path where the resulting `SpatialData` object will be backed. If `None`, it will not be backed to a zarr store. diff --git a/src/sparrow/io/_spatial_data.py b/src/harpy/io/_spatial_data.py similarity index 98% rename from src/sparrow/io/_spatial_data.py rename to src/harpy/io/_spatial_data.py index 83bf4b33..9b64b5ae 100644 --- a/src/sparrow/io/_spatial_data.py +++ b/src/harpy/io/_spatial_data.py @@ -14,8 +14,8 @@ from spatialdata.models.models import ScaleFactors_t from spatialdata.transformations import Identity, Translation -from sparrow.image._image import _fix_dimensions, add_image_layer -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _fix_dimensions, add_image_layer +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/io/_transcripts.py b/src/harpy/io/_transcripts.py similarity index 98% rename from src/sparrow/io/_transcripts.py rename to src/harpy/io/_transcripts.py index bb56cb7b..2f91205a 100644 --- a/src/sparrow/io/_transcripts.py +++ b/src/harpy/io/_transcripts.py @@ -9,9 +9,9 @@ from spatialdata import SpatialData from spatialdata.transformations import Identity -from sparrow.points._points import add_points_layer -from sparrow.utils._keys import _GENES_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.points._points import add_points_layer +from harpy.utils._keys import _GENES_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/io/_visium_hd.py b/src/harpy/io/_visium_hd.py similarity index 97% rename from src/sparrow/io/_visium_hd.py rename to src/harpy/io/_visium_hd.py index bf396d2d..79e62022 100644 --- a/src/sparrow/io/_visium_hd.py +++ b/src/harpy/io/_visium_hd.py @@ -7,7 +7,7 @@ from spatialdata_io._constants._constants import VisiumHDKeys from spatialdata_io.readers.visium_hd import visium_hd as sdata_visium_hd -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY def visium_hd( diff --git a/src/sparrow/io/_xenium.py b/src/harpy/io/_xenium.py similarity index 97% rename from src/sparrow/io/_xenium.py rename to src/harpy/io/_xenium.py index 1662cbd7..d253d678 100644 --- a/src/sparrow/io/_xenium.py +++ b/src/harpy/io/_xenium.py @@ -14,9 +14,9 @@ from spatialdata_io import xenium as sdata_xenium from spatialdata_io._constants._constants import XeniumKeys -from sparrow.io._transcripts import read_transcripts -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY, _SPATIAL -from sparrow.utils.pylogger import get_pylogger +from harpy.io._transcripts import read_transcripts +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY, _SPATIAL +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -75,7 +75,7 @@ def xenium( If `True`, labels layer annotating the table will also be added to `sdata`. filter_gene_names Gene names that need to be filtered out (via `str.contains`), mostly control genes that were added, and which you don't want to use. - Filtering is case insensitive. Also see `sparrow.read_transcripts`. + Filtering is case insensitive. Also see `harpy.read_transcripts`. output The path where the resulting `SpatialData` object will be backed. If `None`, it will not be backed to a zarr store. diff --git a/src/harpy/napari.yaml b/src/harpy/napari.yaml new file mode 100644 index 00000000..535a6bb5 --- /dev/null +++ b/src/harpy/napari.yaml @@ -0,0 +1,33 @@ +name: harpy-analysis +display_name: harpy +contributions: + commands: + - id: harpy-analysis.widgets.wizard_widget + python_name: harpy.widgets._wizard_widget:wizard_widget + title: Wizard + - id: harpy-analysis.widgets.clean_widget + python_name: harpy.widgets._clean_widget:clean_widget + title: Cleaning + - id: harpy-analysis.widgets.segment_widget + python_name: harpy.widgets._segment_widget:segment_widget + title: Segment + - id: harpy-analysis.widgets.allocate_widget + python_name: harpy.widgets._allocate_widget:allocate_widget + title: Allocate + - id: harpy-analysis.widgets.annotate_widget + python_name: harpy.widgets._annotate_widget:annotate_widget + title: Annotate + widgets: + # display_name is the name shown in the napari menu + - command: harpy-analysis.widgets.wizard_widget + display_name: Wizard + # - command: harpy.widgets.clean_widget + # display_name: Clean + # - command: harpy.widgets.segment_widget + # display_name: Segment + # - command: harpy.widgets.allocate_widget + # display_name: Allocate + # - command: harpy.widgets.annotate_widget + # display_name: Annotate + # - command: harpy.widgets.visualize_widget + # display_name: Visualize diff --git a/src/sparrow/pipeline.py b/src/harpy/pipeline.py similarity index 92% rename from src/sparrow/pipeline.py rename to src/harpy/pipeline.py index 70a1f1b2..1831314a 100644 --- a/src/sparrow/pipeline.py +++ b/src/harpy/pipeline.py @@ -5,14 +5,14 @@ from omegaconf import DictConfig, ListConfig from spatialdata import SpatialData, read_zarr -import sparrow as sp -from sparrow.utils._keys import _CELLSIZE_KEY +import harpy +from harpy.utils._keys import _CELLSIZE_KEY -log = sp.utils.get_pylogger(__name__) +log = harpy.utils.get_pylogger(__name__) -class SparrowPipeline: - """Sparrow pipeline.""" +class HarpyPipeline: + """Harpy pipeline.""" def __init__(self, cfg: DictConfig, image_name: str = "raw_image"): self.cfg = cfg @@ -22,7 +22,7 @@ def __init__(self, cfg: DictConfig, image_name: str = "raw_image"): def run_pipeline(self) -> SpatialData: """Run the pipeline.""" - # Checks the config paths, see the src/sparrow/configs and local configs folder for settings + # Checks the config paths, see the src/harpy/configs and local configs folder for settings _check_config(self.cfg) # Supress _core_genes futerewarnings @@ -80,7 +80,7 @@ def load(self) -> SpatialData: f"Provided image layer '{self.loaded_image_name}' not in SpatialData object loaded from zarr." ) log.info( - f"Applying SparrowPipeline on '{self.loaded_image_name}' image layer in provided SpatialData object." + f"Applying HarpyPipeline on '{self.loaded_image_name}' image layer in provided SpatialData object." ) if self.cfg.dataset.image != self.cfg.paths.sdata: # changing backing directory @@ -91,7 +91,7 @@ def load(self) -> SpatialData: else: log.info("Creating sdata.") - sdata = sp.io.create_sdata( + sdata = harpy.io.create_sdata( input=filename_pattern, output_path=self.cfg.paths.sdata, img_layer=self.loaded_image_name, @@ -106,7 +106,7 @@ def load(self) -> SpatialData: def clean(self, sdata: SpatialData) -> SpatialData: """Cleaning step, the second step of the pipeline, performs tilingCorrection and preprocessing of the image to improve image quality.""" - sp.pl.plot_image( + harpy.pl.plot_image( sdata=sdata, output=os.path.join(self.cfg.paths.output_dir, "original"), crd=self.cfg.clean.small_size_vis, @@ -121,7 +121,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: output_layer = self.cfg.clean.output_img_layer_tiling_correction - sdata, flatfields = sp.im.tiling_correction( + sdata, flatfields = harpy.im.tiling_correction( sdata=sdata, img_layer=self.cleaned_image_name, crd=self.cfg.clean.crop_param if self.cfg.clean.crop_param is not None else None, @@ -138,7 +138,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: # Write plot to given path if output is enabled if "tiling_correction" in self.cfg.paths: log.info(f"Writing tiling correction plot to {self.cfg.paths.tiling_correction}") - sp.pl.tiling_correction( + harpy.pl.tiling_correction( sdata=sdata, img_layer=[self.loaded_image_name, self.cleaned_image_name], crd=self.cfg.clean.small_size_vis if self.cfg.clean.small_size_vis is not None else None, @@ -147,12 +147,12 @@ def clean(self, sdata: SpatialData) -> SpatialData: for i, flatfield in enumerate(flatfields): # flatfield can be None is tiling correction failed. if flatfield is not None: - sp.pl.flatfield( + harpy.pl.flatfield( flatfield, output=f"{self.cfg.paths.tiling_correction}_flatfield_{i}", ) - sp.pl.plot_image( + harpy.pl.plot_image( sdata=sdata, output=os.path.join(self.cfg.paths.output_dir, self.cleaned_image_name), crd=self.cfg.clean.small_size_vis, @@ -166,7 +166,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: output_layer = self.cfg.clean.output_img_layer_min_max_filtering - sdata = sp.im.min_max_filtering( + sdata = harpy.im.min_max_filtering( sdata=sdata, img_layer=self.cleaned_image_name, crd=self.cfg.clean.crop_param if self.cfg.clean.crop_param is not None else None, @@ -182,7 +182,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: log.info("Min max filtering finished.") - sp.pl.plot_image( + harpy.pl.plot_image( sdata=sdata, output=os.path.join(self.cfg.paths.output_dir, self.cleaned_image_name), crd=self.cfg.clean.small_size_vis, @@ -196,7 +196,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: output_layer = self.cfg.clean.output_img_layer_clahe - sdata = sp.im.enhance_contrast( + sdata = harpy.im.enhance_contrast( sdata=sdata, img_layer=self.cleaned_image_name, crd=self.cfg.clean.crop_param if self.cfg.clean.crop_param is not None else None, @@ -214,7 +214,7 @@ def clean(self, sdata: SpatialData) -> SpatialData: log.info("Contrast enhancing finished.") - sp.pl.plot_image( + harpy.pl.plot_image( sdata=sdata, output=os.path.join(self.cfg.paths.output_dir, self.cleaned_image_name), crd=self.cfg.clean.small_size_vis, @@ -241,7 +241,7 @@ def segment(self, sdata: SpatialData) -> SpatialData: self.labels_layer_name = self.cfg.segmentation.output_labels_layer # Perform segmentation - sdata = sp.im.segment( + sdata = harpy.im.segment( sdata=sdata, img_layer=self.cleaned_image_name, output_labels_layer=self.labels_layer_name, @@ -267,7 +267,7 @@ def segment(self, sdata: SpatialData) -> SpatialData: log.info("Segmentation finished.") - sp.pl.segment( + harpy.pl.segment( sdata=sdata, crd=self.cfg.segmentation.small_size_vis if self.cfg.segmentation.small_size_vis is not None @@ -278,7 +278,7 @@ def segment(self, sdata: SpatialData) -> SpatialData: ) if self.cfg.segmentation.expand_radius: - sdata = sp.im.expand_labels_layer( + sdata = harpy.im.expand_labels_layer( sdata, labels_layer=self.labels_layer_name, distance=self.cfg.segmentation.expand_radius, @@ -292,7 +292,7 @@ def segment(self, sdata: SpatialData) -> SpatialData: self.shapes_layer_name = f"expanded_cells_shapes_{self.cfg.segmentation.expand_radius}" self.labels_layer_name = f"expanded_cells_labels_{self.cfg.segmentation.expand_radius}" - sp.pl.segment( + harpy.pl.segment( sdata=sdata, crd=self.cfg.segmentation.small_size_vis if self.cfg.segmentation.small_size_vis is not None @@ -306,7 +306,7 @@ def segment(self, sdata: SpatialData) -> SpatialData: def allocate(self, sdata: SpatialData) -> SpatialData: """Allocation step, the fourth step of the pipeline, creates the adata object from the mask and allocates the transcripts from the supplied file.""" - sdata = sp.io.read_transcripts( + sdata = harpy.io.read_transcripts( sdata, path_count_matrix=self.cfg.dataset.coords, transform_matrix=self.cfg.dataset.transform_matrix, @@ -324,7 +324,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Start allocation.") - sdata = sp.tb.allocate( + sdata = harpy.tb.allocate( sdata=sdata, labels_layer=self.labels_layer_name, output_layer=self.cfg.allocate.table_layer_name, @@ -333,7 +333,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Allocation finished.") - sp.pl.plot_shapes( + harpy.pl.plot_shapes( sdata, img_layer=self.cleaned_image_name, shapes_layer=self.shapes_layer_name, @@ -343,7 +343,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: output=self.cfg.paths.polygons, ) - sp.pl.analyse_genes_left_out( + harpy.pl.analyse_genes_left_out( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -353,7 +353,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Preprocess AnnData.") # Perform preprocessing. - sdata = sp.tb.preprocess_transcriptomics( + sdata = harpy.tb.preprocess_transcriptomics( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -367,13 +367,13 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Preprocessing AnnData finished.") - sp.pl.preprocess_transcriptomics( + harpy.pl.preprocess_transcriptomics( sdata, table_layer=self.cfg.allocate.table_layer_name, output=self.cfg.paths.preprocess_adata, ) - sp.pl.plot_shapes( + harpy.pl.plot_shapes( sdata, img_layer=self.cleaned_image_name, shapes_layer=self.shapes_layer_name, @@ -388,7 +388,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: ) # Filter all cells based on size and distance - sdata = sp.tb.filter_on_size( + sdata = harpy.tb.filter_on_size( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -398,7 +398,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: overwrite=True, ) - sp.pl.plot_shapes( + harpy.pl.plot_shapes( sdata, img_layer=self.cleaned_image_name, shapes_layer=self.shapes_layer_name, @@ -414,7 +414,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Start clustering") - sdata = sp.tb.leiden( + sdata = harpy.tb.leiden( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -431,14 +431,14 @@ def allocate(self, sdata: SpatialData) -> SpatialData: log.info("Clustering finished") - sp.pl.cluster( + harpy.pl.cluster( sdata, table_layer=self.cfg.allocate.table_layer_name, key_added="leiden", output=self.cfg.paths.cluster, ) - sp.pl.plot_shapes( + harpy.pl.plot_shapes( sdata, img_layer=self.cleaned_image_name, shapes_layer=self.shapes_layer_name, @@ -454,7 +454,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: if self.cfg.allocate.calculate_transcripts_density: # calculate transcript density - sdata = sp.im.transcript_density( + sdata = harpy.im.transcript_density( sdata, img_layer=self.cleaned_image_name, crd=self.cfg.segmentation.crop_param, @@ -463,7 +463,7 @@ def allocate(self, sdata: SpatialData) -> SpatialData: overwrite=self.cfg.allocate.overwrite, ) - sp.pl.transcript_density( + harpy.pl.transcript_density( sdata, img_layer=[ self.cleaned_image_name, @@ -487,7 +487,7 @@ def annotate(self, sdata: SpatialData) -> SpatialData: log.info("Start scoring genes") - sdata, celltypes_scored, celltypes_all = sp.tb.score_genes( + sdata, celltypes_scored, celltypes_all = harpy.tb.score_genes( sdata=sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -504,7 +504,7 @@ def annotate(self, sdata: SpatialData) -> SpatialData: log.info("Scoring genes finished") - sp.pl.score_genes( + harpy.pl.score_genes( sdata=sdata, table_layer=self.cfg.allocate.table_layer_name, celltypes=celltypes_scored, # celltypes_scored, is a list of all celltypes that are scored. @@ -522,7 +522,7 @@ def visualize(self, sdata: SpatialData) -> SpatialData: """Visualisation step, the sixth and final step of the pipeline, checks the cluster cleanliness and performs nhood enrichement before saving the data as SpatialData object.""" # Perform correction for transcripts (and corresponding celltypes) that occur in all cells and are overexpressed if "correct_marker_genes_dict" in self.cfg.visualize: - sdata = sp.tb.correct_marker_genes( + sdata = harpy.tb.correct_marker_genes( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -536,7 +536,7 @@ def visualize(self, sdata: SpatialData) -> SpatialData: colors = self.cfg.visualize.colors if "colors" in self.cfg.visualize else None # Check cluster cleanliness - sdata, color_dict = sp.tb.cluster_cleanliness( + sdata, color_dict = harpy.tb.cluster_cleanliness( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, @@ -547,7 +547,7 @@ def visualize(self, sdata: SpatialData) -> SpatialData: overwrite=True, ) - sp.pl.cluster_cleanliness( + harpy.pl.cluster_cleanliness( sdata=sdata, table_layer=self.cfg.allocate.table_layer_name, img_layer=self.cleaned_image_name, @@ -562,14 +562,14 @@ def visualize(self, sdata: SpatialData) -> SpatialData: # squidpy sometimes fails calculating/plotting nhood enrichement if a too small region is selected, therefore try add a try except. try: # calculate nhood enrichment - sdata = sp.tb.nhood_enrichment( + sdata = harpy.tb.nhood_enrichment( sdata, labels_layer=self.labels_layer_name, table_layer=self.cfg.allocate.table_layer_name, output_layer=self.cfg.allocate.table_layer_name, overwrite=True, ) - sp.pl.nhood_enrichment( + harpy.pl.nhood_enrichment( sdata, table_layer=self.cfg.allocate.table_layer_name, output=self.cfg.paths.nhood, diff --git a/src/sparrow/plot/__init__.py b/src/harpy/plot/__init__.py similarity index 95% rename from src/sparrow/plot/__init__.py rename to src/harpy/plot/__init__.py index 80a2f0fc..96e281c3 100644 --- a/src/sparrow/plot/__init__.py +++ b/src/harpy/plot/__init__.py @@ -1,4 +1,4 @@ -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger from ._annotation import score_genes from ._cluster_cleanliness import cluster_cleanliness diff --git a/src/sparrow/plot/_annotation.py b/src/harpy/plot/_annotation.py similarity index 96% rename from src/sparrow/plot/_annotation.py rename to src/harpy/plot/_annotation.py index d2ecb982..03ec9117 100644 --- a/src/sparrow/plot/_annotation.py +++ b/src/harpy/plot/_annotation.py @@ -6,8 +6,8 @@ import scanpy as sc from spatialdata import SpatialData -from sparrow.plot._plot import plot_shapes -from sparrow.utils._keys import _ANNOTATION_KEY, _CLEANLINESS_KEY, _UNKNOWN_CELLTYPE_KEY +from harpy.plot._plot import plot_shapes +from harpy.utils._keys import _ANNOTATION_KEY, _CLEANLINESS_KEY, _UNKNOWN_CELLTYPE_KEY def score_genes( diff --git a/src/sparrow/plot/_cluster_cleanliness.py b/src/harpy/plot/_cluster_cleanliness.py similarity index 97% rename from src/sparrow/plot/_cluster_cleanliness.py rename to src/harpy/plot/_cluster_cleanliness.py index b0a23281..aa2c382e 100644 --- a/src/sparrow/plot/_cluster_cleanliness.py +++ b/src/harpy/plot/_cluster_cleanliness.py @@ -4,8 +4,8 @@ import scanpy as sc from spatialdata import SpatialData -from sparrow.plot._plot import plot_shapes -from sparrow.utils._keys import _ANNOTATION_KEY +from harpy.plot._plot import plot_shapes +from harpy.utils._keys import _ANNOTATION_KEY def cluster_cleanliness( diff --git a/src/sparrow/plot/_clustering.py b/src/harpy/plot/_clustering.py similarity index 97% rename from src/sparrow/plot/_clustering.py rename to src/harpy/plot/_clustering.py index 59574604..b4e99574 100644 --- a/src/sparrow/plot/_clustering.py +++ b/src/harpy/plot/_clustering.py @@ -32,8 +32,8 @@ def cluster(sdata: SpatialData, table_layer: str, key_added: str = "leiden", out See Also -------- - sparrow.tb.leiden - sparrow.tb.kmeans + harpy.tb.leiden + harpy.tb.kmeans """ # Plot clusters on a UMAP sc.pl.umap(sdata.tables[table_layer], color=[key_added], show=not output) diff --git a/src/sparrow/plot/_enrichment.py b/src/harpy/plot/_enrichment.py similarity index 94% rename from src/sparrow/plot/_enrichment.py rename to src/harpy/plot/_enrichment.py index e113d76d..b6776306 100644 --- a/src/sparrow/plot/_enrichment.py +++ b/src/harpy/plot/_enrichment.py @@ -5,7 +5,7 @@ import squidpy as sq from spatialdata import SpatialData -from sparrow.utils._keys import _ANNOTATION_KEY +from harpy.utils._keys import _ANNOTATION_KEY def nhood_enrichment( @@ -45,7 +45,7 @@ def nhood_enrichment( See Also -------- - sparrow.tb.nhood_enrichment : Calculate neighborhood enrichment. + harpy.tb.nhood_enrichment : Calculate neighborhood enrichment. """ # remove 'nan' values. tmp = sdata.tables[table_layer].uns[f"{celltype_column}_nhood_enrichment"]["zscore"] diff --git a/src/sparrow/plot/_plot.py b/src/harpy/plot/_plot.py similarity index 98% rename from src/sparrow/plot/_plot.py rename to src/harpy/plot/_plot.py index 683431b8..58492330 100644 --- a/src/sparrow/plot/_plot.py +++ b/src/harpy/plot/_plot.py @@ -16,11 +16,11 @@ from spatialdata import SpatialData from spatialdata.transformations import get_transformation -from sparrow.image._image import _apply_transform, _get_boundary, _get_spatial_element, _unapply_transform -from sparrow.shape import intersect_rectangles -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY -from sparrow.utils._transformations import _get_translation_values -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _apply_transform, _get_boundary, _get_spatial_element, _unapply_transform +from harpy.shape import intersect_rectangles +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils._transformations import _get_translation_values +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -55,11 +55,11 @@ def plot_image( output Path to save the plot. If not provided, plot will be displayed. **kwargs - Additional arguments to be passed to the `sp.pl.plot_shapes` function. + Additional arguments to be passed to the `harpy.pl.plot_shapes` function. See Also -------- - sparrow.pl.plot_shapes + harpy.pl.plot_shapes """ plot_shapes( sdata, @@ -101,11 +101,11 @@ def plot_labels( output Path to save the plot. If not provided, plot will be displayed. **kwargs - Additional arguments to be passed to the `sp.pl.plot_shapes` function. + Additional arguments to be passed to the `harpy.pl.plot_shapes` function. See Also -------- - sparrow.pl.plot_shapes + harpy.pl.plot_shapes """ plot_shapes( sdata, diff --git a/src/sparrow/plot/_preprocess.py b/src/harpy/plot/_preprocess.py similarity index 95% rename from src/sparrow/plot/_preprocess.py rename to src/harpy/plot/_preprocess.py index 08bf804f..64e7743d 100644 --- a/src/sparrow/plot/_preprocess.py +++ b/src/harpy/plot/_preprocess.py @@ -5,7 +5,7 @@ import seaborn as sns from spatialdata import SpatialData -from sparrow.utils._keys import _CELLSIZE_KEY +from harpy.utils._keys import _CELLSIZE_KEY def preprocess_transcriptomics( @@ -25,7 +25,7 @@ def preprocess_transcriptomics( See Also -------- - sparrow.tb.preprocess_transcriptomics: preprocess. + harpy.tb.preprocess_transcriptomics: preprocess. """ sc.pl.pca( sdata.tables[table_layer], diff --git a/src/sparrow/plot/_qc_cells.py b/src/harpy/plot/_qc_cells.py similarity index 94% rename from src/sparrow/plot/_qc_cells.py rename to src/harpy/plot/_qc_cells.py index 1f768bda..c96b91d2 100644 --- a/src/sparrow/plot/_qc_cells.py +++ b/src/harpy/plot/_qc_cells.py @@ -1,7 +1,7 @@ import numpy as np import scanpy as sc -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -10,7 +10,7 @@ except ImportError: log.warning( - "'joypy' not installed, to use 'sp.pl.ridgeplot_channel' and 'sp.pl.ridgeplot_channel_sample', please install this library." + "'joypy' not installed, to use 'harpy.pl.ridgeplot_channel' and 'harpy.pl.ridgeplot_channel_sample', please install this library." ) diff --git a/src/sparrow/plot/_qc_image.py b/src/harpy/plot/_qc_image.py similarity index 97% rename from src/sparrow/plot/_qc_image.py rename to src/harpy/plot/_qc_image.py index d36bed47..73ad32b1 100644 --- a/src/sparrow/plot/_qc_image.py +++ b/src/harpy/plot/_qc_image.py @@ -6,8 +6,8 @@ import seaborn as sns import skimage as ski -from sparrow.image import normalize -from sparrow.utils.pylogger import get_pylogger +from harpy.image import normalize +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -16,7 +16,7 @@ except ImportError: log.warning( - "'textalloc' not installed, to use 'sp.pl.group_snr_ratio' and 'sp.pl.snr_ratio', please install this library." + "'textalloc' not installed, to use 'harpy.pl.group_snr_ratio' and 'harpy.pl.snr_ratio', please install this library." ) diff --git a/src/sparrow/plot/_qc_segmentation.py b/src/harpy/plot/_qc_segmentation.py similarity index 97% rename from src/sparrow/plot/_qc_segmentation.py rename to src/harpy/plot/_qc_segmentation.py index 975b6133..d13dcd09 100644 --- a/src/sparrow/plot/_qc_segmentation.py +++ b/src/harpy/plot/_qc_segmentation.py @@ -1,7 +1,7 @@ import matplotlib.pyplot as plt import pandas as pd -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/plot/_sanity.py b/src/harpy/plot/_sanity.py similarity index 96% rename from src/sparrow/plot/_sanity.py rename to src/harpy/plot/_sanity.py index f46b3d41..e40b2a30 100644 --- a/src/sparrow/plot/_sanity.py +++ b/src/harpy/plot/_sanity.py @@ -8,18 +8,18 @@ from shapely.affinity import translate from spatialdata import SpatialData -from sparrow.image._image import ( +from harpy.image._image import ( _apply_transform, _get_boundary, _get_spatial_element, _unapply_transform, ) -from sparrow.plot._plot import _get_translation_values_shapes, _get_z_slice_polygons -from sparrow.shape import intersect_rectangles -from sparrow.shape._shape import _extract_boundaries_from_geometry_collection -from sparrow.utils._keys import _GENES_KEY -from sparrow.utils._transformations import _identity_check_transformations_points -from sparrow.utils.pylogger import get_pylogger +from harpy.plot._plot import _get_translation_values_shapes, _get_z_slice_polygons +from harpy.shape import intersect_rectangles +from harpy.shape._shape import _extract_boundaries_from_geometry_collection +from harpy.utils._keys import _GENES_KEY +from harpy.utils._transformations import _identity_check_transformations_points +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/plot/_segmentation.py b/src/harpy/plot/_segmentation.py similarity index 97% rename from src/sparrow/plot/_segmentation.py rename to src/harpy/plot/_segmentation.py index ef3d27ab..d9efa927 100644 --- a/src/sparrow/plot/_segmentation.py +++ b/src/harpy/plot/_segmentation.py @@ -5,7 +5,7 @@ from spatialdata import SpatialData -from sparrow.plot import plot_shapes +from harpy.plot import plot_shapes def segment( @@ -52,7 +52,7 @@ def segment( See Also -------- - sparrow.im.segment + harpy.im.segment """ plot_shapes( sdata, diff --git a/src/sparrow/plot/_tiling_correction.py b/src/harpy/plot/_tiling_correction.py similarity index 97% rename from src/sparrow/plot/_tiling_correction.py rename to src/harpy/plot/_tiling_correction.py index 195341a5..111de912 100644 --- a/src/sparrow/plot/_tiling_correction.py +++ b/src/harpy/plot/_tiling_correction.py @@ -7,7 +7,7 @@ import numpy as np from spatialdata import SpatialData -from sparrow.plot import plot_shapes +from harpy.plot import plot_shapes def tiling_correction( @@ -61,7 +61,7 @@ def tiling_correction( See Also -------- - sparrow.im.tiling_correction + harpy.im.tiling_correction """ plot_shapes( sdata, @@ -102,7 +102,7 @@ def flatfield(flatfield: np.ndarray, output: str | Path | None = None) -> None: See Also -------- - sparrow.im.tiling_correction + harpy.im.tiling_correction """ fig, ax = plt.subplots(1, 1, figsize=(20, 10)) ax.imshow(flatfield, cmap="gray") diff --git a/src/sparrow/plot/_transcripts.py b/src/harpy/plot/_transcripts.py similarity index 94% rename from src/sparrow/plot/_transcripts.py rename to src/harpy/plot/_transcripts.py index 61710246..791264b2 100644 --- a/src/sparrow/plot/_transcripts.py +++ b/src/harpy/plot/_transcripts.py @@ -9,11 +9,11 @@ from scipy.stats import pearsonr from spatialdata import SpatialData -from sparrow.image._image import _get_boundary, _get_spatial_element -from sparrow.plot import plot_shapes -from sparrow.utils._keys import _GENES_KEY, _RAW_COUNTS_KEY, _REGION_KEY -from sparrow.utils._transformations import _identity_check_transformations_points -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_boundary, _get_spatial_element +from harpy.plot import plot_shapes +from harpy.utils._keys import _GENES_KEY, _RAW_COUNTS_KEY, _REGION_KEY +from harpy.utils._transformations import _identity_check_transformations_points +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -77,7 +77,7 @@ def analyse_genes_left_out( See Also -------- - sparrow.tb.allocate + harpy.tb.allocate """ # we need the segmentation_mask to calculate crd used during allocation step, # otherwise transcript counts in points layer of sdata (containing all transcripts) @@ -120,7 +120,7 @@ def analyse_genes_left_out( if not missing_indices.empty: raise ValueError( - f"There are genes found in '.var' of table layer '{table_layer}' that are not found in the points layer '{points_layer}'. Please verify that allocation '(sp.tb.allocation)' is performed using the correct points layer." + f"There are genes found in '.var' of table layer '{table_layer}' that are not found in the points layer '{points_layer}'. Please verify that allocation '(harpy.tb.allocation)' is performed using the correct points layer." ) raw_counts = _raw_counts[adata.var.index] @@ -210,7 +210,7 @@ def transcript_density( See Also -------- - sparrow.im.transcript_density + harpy.im.transcript_density """ plot_shapes( sdata, diff --git a/src/sparrow/points/__init__.py b/src/harpy/points/__init__.py similarity index 100% rename from src/sparrow/points/__init__.py rename to src/harpy/points/__init__.py diff --git a/src/sparrow/points/_points.py b/src/harpy/points/_points.py similarity index 94% rename from src/sparrow/points/_points.py rename to src/harpy/points/_points.py index 1dac63f1..1f14ba0a 100644 --- a/src/sparrow/points/_points.py +++ b/src/harpy/points/_points.py @@ -3,7 +3,7 @@ from spatialdata import SpatialData, read_zarr from spatialdata.models._utils import MappingToCoordinateSystem_t -from sparrow.utils._io import _incremental_io_on_disk +from harpy.utils._io import _incremental_io_on_disk def add_points_layer( @@ -32,7 +32,7 @@ def add_points_layer( coordinates A dictionary specifying the coordinate mappings for the points data (e.g., {"x": "x_column", "y": "y_column"}). transformations - Transformations that will be added to the resulting `output_layer`. Currently `sparrow` only supports the Identity transformation. + Transformations that will be added to the resulting `output_layer`. Currently `harpy` only supports the Identity transformation. overwrite If True, overwrites `output_layer` if it already exists in `sdata`. diff --git a/src/sparrow/shape/__init__.py b/src/harpy/shape/__init__.py similarity index 100% rename from src/sparrow/shape/__init__.py rename to src/harpy/shape/__init__.py diff --git a/src/sparrow/shape/_cell_expansion.py b/src/harpy/shape/_cell_expansion.py similarity index 97% rename from src/sparrow/shape/_cell_expansion.py rename to src/harpy/shape/_cell_expansion.py index d6e0fd26..017b274c 100644 --- a/src/sparrow/shape/_cell_expansion.py +++ b/src/harpy/shape/_cell_expansion.py @@ -8,8 +8,8 @@ from spatialdata import SpatialData from spatialdata.transformations import get_transformation -from sparrow.shape._shape import add_shapes_layer -from sparrow.utils.pylogger import get_pylogger +from harpy.shape._shape import add_shapes_layer +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/shape/_manager.py b/src/harpy/shape/_manager.py similarity index 98% rename from src/sparrow/shape/_manager.py rename to src/harpy/shape/_manager.py index 476c31da..f7914433 100644 --- a/src/sparrow/shape/_manager.py +++ b/src/harpy/shape/_manager.py @@ -19,9 +19,9 @@ from spatialdata.models._utils import MappingToCoordinateSystem_t from spatialdata.transformations import get_transformation -from sparrow.utils._io import _incremental_io_on_disk -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.utils._io import _incremental_io_on_disk +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -254,7 +254,7 @@ def _mask_to_polygons_rasterio(mask: Array, z_slice: int = None) -> GeoDataFrame -------- >>> import numpy as np >>> import dask.array as da - >>> from sparrow.shape._manager import _mask_to_polygons_rasterio + >>> from harpy.shape._manager import _mask_to_polygons_rasterio >>> mask = da.from_array(np.array([[0, 3], [5, 5]]), chunks=(1, 1)) >>> gdf = _mask_to_polygons_rasterio(mask) >>> gdf diff --git a/src/sparrow/shape/_shape.py b/src/harpy/shape/_shape.py similarity index 98% rename from src/sparrow/shape/_shape.py rename to src/harpy/shape/_shape.py index 6f46601b..c5473db8 100644 --- a/src/sparrow/shape/_shape.py +++ b/src/harpy/shape/_shape.py @@ -7,8 +7,8 @@ from spatialdata.models._utils import MappingToCoordinateSystem_t from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element -from sparrow.shape._manager import ShapesLayerManager +from harpy.image._image import _get_spatial_element +from harpy.shape._manager import ShapesLayerManager def vectorize( diff --git a/src/sparrow/single.py b/src/harpy/single.py similarity index 65% rename from src/sparrow/single.py rename to src/harpy/single.py index 4efe4d34..2c3d43bd 100644 --- a/src/sparrow/single.py +++ b/src/harpy/single.py @@ -1,4 +1,4 @@ -"""" This file acts as a starting point for running the pipeline for single sample analysis. It can be run from any place with the command: 'sparrow'.""" +"""File acts as a starting point for running the pipeline for single sample analysis. It can be run from any place with the command: 'harpy'.""" import logging @@ -11,9 +11,9 @@ @hydra.main(version_base="1.2", config_path="configs", config_name="pipeline.yaml") def main(cfg: DictConfig) -> None: """Main function for the single pipeline which checks the supplied paths first and then calls all seven steps from the pipeline functions.""" - from sparrow.pipeline import SparrowPipeline + from harpy.pipeline import HarpyPipeline - pipeline = SparrowPipeline(cfg) + pipeline = HarpyPipeline(cfg) _ = pipeline.run_pipeline() diff --git a/src/sparrow/table/__init__.py b/src/harpy/table/__init__.py similarity index 93% rename from src/sparrow/table/__init__.py rename to src/harpy/table/__init__.py index 5acff013..bdd3b584 100644 --- a/src/sparrow/table/__init__.py +++ b/src/harpy/table/__init__.py @@ -1,4 +1,4 @@ -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger from ._allocation import allocate, bin_counts from ._allocation_intensity import allocate_intensity diff --git a/src/sparrow/table/_allocation.py b/src/harpy/table/_allocation.py similarity index 96% rename from src/sparrow/table/_allocation.py rename to src/harpy/table/_allocation.py index b3f6c3eb..f447e7a6 100644 --- a/src/sparrow/table/_allocation.py +++ b/src/harpy/table/_allocation.py @@ -17,12 +17,12 @@ from spatialdata.transformations import Identity from xarray import DataArray -from sparrow.image._image import _get_spatial_element, _get_translation -from sparrow.shape._shape import filter_shapes_layer -from sparrow.table._table import add_table_layer -from sparrow.utils._keys import _CELL_INDEX, _GENES_KEY, _INSTANCE_KEY, _REGION_KEY, _SPATIAL -from sparrow.utils._transformations import _identity_check_transformations_points -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element, _get_translation +from harpy.shape._shape import filter_shapes_layer +from harpy.table._table import add_table_layer +from harpy.utils._keys import _CELL_INDEX, _GENES_KEY, _INSTANCE_KEY, _REGION_KEY, _SPATIAL +from harpy.utils._transformations import _identity_check_transformations_points +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -213,11 +213,11 @@ def bin_counts( sdata The SpatialData object. table_layer - The table layer holding the counts. E.g. obtained using `sp.io.visium_hd`. + The table layer holding the counts. E.g. obtained using `harpy.io.visium_hd`. We assume that `sdata[table_layer].obsm[_SPATIAL]` contains a numpy array holding the barcode coordinates ('x', 'y'). The relation of `sdata[table_layer].obsm[_SPATIAL]` to `to_coordinate_system` should be an identity transformation. labels_layer - The labels layer (e.g., segmentation mask, or a grid generated by `sp.im.add_grid_labels_layer`) in `sdata` used to bin barcodes (as specified via `table_layer`) into cells or regions. + The labels layer (e.g., segmentation mask, or a grid generated by `harpy.im.add_grid_labels_layer`) in `sdata` used to bin barcodes (as specified via `table_layer`) into cells or regions. output_layer The table layer in `sdata` in which to save the AnnData object with the binned counts per cell or region defined by `labels_layer`. to_coordinate_system @@ -239,7 +239,7 @@ def bin_counts( """ se = _get_spatial_element(sdata, layer=labels_layer) - # sdata[table_layer].obsm[_SPATIAL] contains the positions of the barcodes if visium reader is used 'sp.io.visium_hd' + # sdata[table_layer].obsm[_SPATIAL] contains the positions of the barcodes if visium reader is used 'harpy.io.visium_hd' name_x = "x" name_y = "y" df = pd.DataFrame(sdata[table_layer].obsm[_SPATIAL], columns=[name_x, name_y]) diff --git a/src/sparrow/table/_allocation_intensity.py b/src/harpy/table/_allocation_intensity.py similarity index 95% rename from src/sparrow/table/_allocation_intensity.py rename to src/harpy/table/_allocation_intensity.py index fee6b9ba..240e300f 100644 --- a/src/sparrow/table/_allocation_intensity.py +++ b/src/harpy/table/_allocation_intensity.py @@ -10,11 +10,11 @@ from dask_image.ndmeasure import center_of_mass from spatialdata import SpatialData -from sparrow.image._image import _get_spatial_element, _get_translation -from sparrow.table._table import add_table_layer -from sparrow.utils._aggregate import RasterAggregator -from sparrow.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY, _SPATIAL -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element, _get_translation +from harpy.table._table import add_table_layer +from harpy.utils._aggregate import RasterAggregator +from harpy.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY, _SPATIAL +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -83,7 +83,7 @@ def allocate_intensity( Example ------- - >>> sdata = sp.im.align_labels_layers( + >>> sdata = harpy.im.align_labels_layers( ... sdata, ... labels_layer_1="masks_nuclear", ... labels_layer_2="masks_whole", @@ -94,19 +94,19 @@ def allocate_intensity( ... depth=100, ... ) >>> - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_whole", output_layer="table_intensities", chunks=100 ... ) >>> - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_nuclear_aligned", output_later="table_intensities", chunks=100, append=True ... ) >>> # alternatively, save to different tables - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_whole", output_layer="table_intensities_masks_whole", chunks=100 ... ) >>> - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_nuclear_aligned", output_later="table_intensities_masks_nuclear_aligned", chunks=100, append=True ... ) """ diff --git a/src/sparrow/table/_annotation.py b/src/harpy/table/_annotation.py similarity index 99% rename from src/sparrow/table/_annotation.py rename to src/harpy/table/_annotation.py index faa0244d..3228e5bd 100644 --- a/src/sparrow/table/_annotation.py +++ b/src/harpy/table/_annotation.py @@ -15,9 +15,9 @@ from anndata import AnnData from spatialdata import SpatialData -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.utils._keys import _ANNOTATION_KEY, _CLEANLINESS_KEY, _UNKNOWN_CELLTYPE_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.table._table import ProcessTable, add_table_layer +from harpy.utils._keys import _ANNOTATION_KEY, _CLEANLINESS_KEY, _UNKNOWN_CELLTYPE_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -236,7 +236,7 @@ def score_genes_iter( cells in `sdata.tables[table_layer]` linked to other `labels_layer` (via the _REGION_KEY), will be removed from `sdata.tables[table_layer]`. If a list of labels layers is provided, they will therefore be scored together (e.g. multiple samples). table_layer - The table layer in `sdata` on which to perform annotation on. We assume the data is already preprocessed by e.g. `sp.tb.preprocess_transcriptomics`. + The table layer in `sdata` on which to perform annotation on. We assume the data is already preprocessed by e.g. `harpy.tb.preprocess_transcriptomics`. Features should all have approximately same variance. output_layer The output table layer in `sdata` to which table layer with results of annotation will be written. diff --git a/src/sparrow/table/_clustering.py b/src/harpy/table/_clustering.py similarity index 94% rename from src/sparrow/table/_clustering.py rename to src/harpy/table/_clustering.py index d7bb7a92..5d588b4e 100644 --- a/src/sparrow/table/_clustering.py +++ b/src/harpy/table/_clustering.py @@ -10,8 +10,8 @@ from sklearn.cluster import KMeans from spatialdata import SpatialData -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.utils.pylogger import get_pylogger +from harpy.table._table import ProcessTable, add_table_layer +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -90,13 +90,13 @@ def kmeans( Warnings -------- - The function is intended for use with spatial omics data. Input data should be appropriately preprocessed - (e.g. via `sp.tb.preprocess_transcriptomics` or `sp.tb.preprocess_proteomics`) to ensure meaningful clustering results. + (e.g. via `harpy.tb.preprocess_transcriptomics` or `harpy.tb.preprocess_proteomics`) to ensure meaningful clustering results. - The `rank_genes` functionality is marked for relocation to enhance modularity and clarity of the codebase. See Also -------- - sparrow.tb.preprocess_transcriptomics : preprocess transcriptomics data. - sparrow.tb.preprocess_proteomics : preprocess proteomics data. + harpy.tb.preprocess_transcriptomics : preprocess transcriptomics data. + harpy.tb.preprocess_proteomics : preprocess proteomics data. """ cluster = Cluster(sdata, labels_layer=labels_layer, table_layer=table_layer) cluster.cluster( @@ -196,13 +196,13 @@ def leiden( Warnings -------- - The function is intended for use with spatial omics data. Input data should be appropriately preprocessed - (e.g. via `sp.tb.preprocess_transcriptomics` or `sp.tb.preprocess_proteomics`) to ensure meaningful clustering results. + (e.g. via `harpy.tb.preprocess_transcriptomics` or `harpy.tb.preprocess_proteomics`) to ensure meaningful clustering results. - The `rank_genes` functionality is marked for relocation to enhance modularity and clarity of the codebase. See Also -------- - sparrow.tb.preprocess_transcriptomics : preprocess transcriptomics data. - sparrow.tb.preprocess_proteomics : preprocess proteomics data. + harpy.tb.preprocess_transcriptomics : preprocess transcriptomics data. + harpy.tb.preprocess_proteomics : preprocess proteomics data. """ cluster = Cluster(sdata, labels_layer=labels_layer, table_layer=table_layer) sdata = cluster.cluster( @@ -243,7 +243,7 @@ def _leiden( ) -> AnnData: if "neighbors" not in adata.uns.keys(): raise RuntimeError( - "Please first compute neighbors before calculating leiden cluster, by passing 'calculate_neighbors=True' to 'sp.tb.leiden'" + "Please first compute neighbors before calculating leiden cluster, by passing 'calculate_neighbors=True' to 'harpy.tb.leiden'" ) sc.tl.leiden(adata, copy=False, resolution=resolution, key_added=key_added, **kwargs) diff --git a/src/sparrow/table/_enrichment.py b/src/harpy/table/_enrichment.py similarity index 94% rename from src/sparrow/table/_enrichment.py rename to src/harpy/table/_enrichment.py index 5ecc08f1..ba75db7c 100644 --- a/src/sparrow/table/_enrichment.py +++ b/src/harpy/table/_enrichment.py @@ -1,8 +1,8 @@ import squidpy as sq from spatialdata import SpatialData -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.utils._keys import _ANNOTATION_KEY +from harpy.table._table import ProcessTable, add_table_layer +from harpy.utils._keys import _ANNOTATION_KEY def nhood_enrichment( diff --git a/src/sparrow/table/_manager.py b/src/harpy/table/_manager.py similarity index 93% rename from src/sparrow/table/_manager.py rename to src/harpy/table/_manager.py index 96047cb0..344a3fe4 100644 --- a/src/sparrow/table/_manager.py +++ b/src/harpy/table/_manager.py @@ -3,9 +3,9 @@ from spatialdata import SpatialData, read_zarr from spatialdata.models import TableModel -from sparrow.utils._io import _incremental_io_on_disk -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.utils._io import _incremental_io_on_disk +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/table/_preprocess.py b/src/harpy/table/_preprocess.py similarity index 95% rename from src/sparrow/table/_preprocess.py rename to src/harpy/table/_preprocess.py index a0f5ffb2..9ebb15be 100644 --- a/src/sparrow/table/_preprocess.py +++ b/src/harpy/table/_preprocess.py @@ -10,12 +10,12 @@ from scipy.sparse import issparse from spatialdata import SpatialData -from sparrow.image._image import _get_spatial_element -from sparrow.shape._shape import filter_shapes_layer -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.utils._aggregate import _get_mask_area -from sparrow.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.shape._shape import filter_shapes_layer +from harpy.table._table import ProcessTable, add_table_layer +from harpy.utils._aggregate import _get_mask_area +from harpy.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -105,7 +105,7 @@ def preprocess_transcriptomics( See Also -------- - sparrow.tb.allocate : create an AnnData table in `sdata` using a `points_layer` and a `labels_layer`. + harpy.tb.allocate : create an AnnData table in `sdata` using a `points_layer` and a `labels_layer`. """ preprocess_instance = Preprocess(sdata, labels_layer=labels_layer, table_layer=table_layer) sdata = preprocess_instance.preprocess( @@ -204,7 +204,7 @@ def preprocess_proteomics( See Also -------- - sparrow.tb.allocate_intensity : create an AnnData table in `sdata` using an `image_layer` and a `labels_layer`. + harpy.tb.allocate_intensity : create an AnnData table in `sdata` using an `image_layer` and a `labels_layer`. """ preprocess_instance = Preprocess(sdata, labels_layer=labels_layer, table_layer=table_layer) sdata = preprocess_instance.preprocess( @@ -306,7 +306,7 @@ def preprocess( if scale and q is not None: raise ValueError( - "Please choose between scaling via 'sp.pp.scale' or normalization by q quantile, not both." + "Please choose between scaling via 'harpy.pp.scale' or normalization by q quantile, not both." ) if scale: diff --git a/src/sparrow/table/_regionprops.py b/src/harpy/table/_regionprops.py similarity index 94% rename from src/sparrow/table/_regionprops.py rename to src/harpy/table/_regionprops.py index ba693166..22a65ee0 100644 --- a/src/sparrow/table/_regionprops.py +++ b/src/harpy/table/_regionprops.py @@ -8,10 +8,10 @@ from skimage.measure._regionprops import RegionProperties from spatialdata import SpatialData -from sparrow.image._image import _get_spatial_element -from sparrow.table._table import add_table_layer -from sparrow.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.table._table import add_table_layer +from harpy.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -55,7 +55,7 @@ def add_regionprop_features( Example ------- - >>> sdata = sp.im.align_labels_layers( + >>> sdata = harpy.im.align_labels_layers( ... sdata, ... labels_layer_1="masks_nuclear", ... labels_layer_2="masks_whole", @@ -66,19 +66,19 @@ def add_regionprop_features( ... depth=100, ... ) >>> - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_whole", output_layer="table_intensities", chunks=100 ... ) >>> - >>> sdata = sp.tb.allocate_intensity( + >>> sdata = harpy.tb.allocate_intensity( ... sdata, img_layer="raw_image", labels_layer="masks_nuclear_aligned", output_layer="table_intensities", chunks=100, append=True ... ) >>> - >>> sdata = sp.tb.add_regionprop_features( + >>> sdata = harpy.tb.add_regionprop_features( ... sdata, labels_layer="masks_whole", table_layer="table_intensities", ... ) >>> - >>> sdata = sp.tb.add_regionprop_features( + >>> sdata = harpy.tb.add_regionprop_features( ... sdata, labels_layer="masks_nuclear_aligned", table_layer="table_intensities", ... ) """ @@ -106,7 +106,7 @@ def add_regionprop_features( ), f"Please link observation to a labels_layer using the '{_REGION_KEY}' column in 'sdata.tables[{table_layer}].obs'" assert ( _INSTANCE_KEY in sdata.tables[table_layer].obs - ), f"Please add unique {_INSTANCE_KEY} (uint) for every observation in 'sdata.tables[{table_layer}]', e.g. see 'sp.table.allocate_intensity'." + ), f"Please add unique {_INSTANCE_KEY} (uint) for every observation in 'sdata.tables[{table_layer}]', e.g. see 'harpy.table.allocate_intensity'." cell_props[_REGION_KEY] = pd.Categorical([labels_layer] * len(cell_props)) diff --git a/src/sparrow/table/_table.py b/src/harpy/table/_table.py similarity index 95% rename from src/sparrow/table/_table.py rename to src/harpy/table/_table.py index bed7aa5b..aa808a25 100644 --- a/src/sparrow/table/_table.py +++ b/src/harpy/table/_table.py @@ -7,10 +7,10 @@ from spatialdata import SpatialData from spatialdata.models import TableModel -from sparrow.shape._shape import filter_shapes_layer -from sparrow.table._manager import TableLayerManager -from sparrow.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.shape._shape import filter_shapes_layer +from harpy.table._manager import TableLayerManager +from harpy.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -37,14 +37,14 @@ def __init__( if sdata.tables == {}: raise ValueError( "Provided SpatialData object 'sdata' does not contain any 'tables'. " - "Please create tables via e.g. 'sp.tb.allocation' or 'sp.tb.allocation_intensity' functions." + "Please create tables via e.g. 'harpy.tb.allocation' or 'harpy.tb.allocation_intensity' functions." ) if labels_layer is not None: if sdata.labels == {}: raise ValueError( "Provided SpatialData object 'sdata' does not contain 'labels'. " - "Please create a labels layer via e.g. 'sp.im.segment'." + "Please create a labels layer via e.g. 'harpy.im.segment'." ) labels_layer = ( list(labels_layer) @@ -231,7 +231,7 @@ def filter_on_size( ) -> SpatialData: """Returns the updated SpatialData object. - All cells with a size outside of the min and max size range are removed using the `cellsize_key` in `.obs`. Run e.g. `sp.tb.preprocess_transcriptomics` or `sp.tb.preprocess_proteomics` to obtain cell sizes. + All cells with a size outside of the min and max size range are removed using the `cellsize_key` in `.obs`. Run e.g. `harpy.tb.preprocess_transcriptomics` or `harpy.tb.preprocess_proteomics` to obtain cell sizes. Parameters ---------- diff --git a/src/sparrow/table/cell_clustering/__init__.py b/src/harpy/table/cell_clustering/__init__.py similarity index 100% rename from src/sparrow/table/cell_clustering/__init__.py rename to src/harpy/table/cell_clustering/__init__.py diff --git a/src/sparrow/table/cell_clustering/_clustering.py b/src/harpy/table/cell_clustering/_clustering.py similarity index 83% rename from src/sparrow/table/cell_clustering/_clustering.py rename to src/harpy/table/cell_clustering/_clustering.py index a2d0de9e..6f3fa33f 100644 --- a/src/sparrow/table/cell_clustering/_clustering.py +++ b/src/harpy/table/cell_clustering/_clustering.py @@ -7,21 +7,21 @@ from anndata import AnnData from spatialdata import SpatialData -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.table.cell_clustering._preprocess import cell_clustering_preprocess -from sparrow.table.cell_clustering._utils import _get_mapping -from sparrow.utils._keys import ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.table._table import ProcessTable, add_table_layer +from harpy.table.cell_clustering._preprocess import cell_clustering_preprocess +from harpy.table.cell_clustering._utils import _get_mapping +from harpy.utils._keys import ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) try: import flowsom as fs - from sparrow.utils._flowsom import _flowsom + from harpy.utils._flowsom import _flowsom except ImportError: - log.warning("'flowsom' not installed, to use 'sp.tb.flowsom', please install this library.") + log.warning("'flowsom' not installed, to use 'harpy.tb.flowsom', please install this library.") def flowsom( @@ -39,23 +39,23 @@ def flowsom( **kwargs, # keyword arguments for _flowsom ) -> tuple[SpatialData, fs.FlowSOM]: """ - Prepares the data obtained from pixel clustering for cell clustering (see docstring of `sp.tb.cell_clustering_preprocess`) and then executes the FlowSOM clustering algorithm on the resulting table layer (`output_layer`) of the SpatialData object. + Prepares the data obtained from pixel clustering for cell clustering (see docstring of `harpy.tb.cell_clustering_preprocess`) and then executes the FlowSOM clustering algorithm on the resulting table layer (`output_layer`) of the SpatialData object. This function applies the FlowSOM clustering algorithm (via `fs.FlowSOM`) on spatial data contained in a SpatialData object. The algorithm organizes data into self-organizing maps and then clusters these maps, grouping them into `n_clusters`. The results of this clustering are added to a table layer in the `sdata` object. - Typically one would first process `sdata` via `sp.im.pixel_clustering_preprocess` and `sp.im.flowsom` before using this function. + Typically one would first process `sdata` via `harpy.im.pixel_clustering_preprocess` and `harpy.im.flowsom` before using this function. Parameters ---------- sdata The input SpatialData object. labels_layer_cells - The labels layer(s) in `sdata` that contain cell segmentation masks. These masks should be previously generated using `sp.im.segment`. + The labels layer(s) in `sdata` that contain cell segmentation masks. These masks should be previously generated using `harpy.im.segment`. If a list of labels layers is provided, they will be clustered together (e.g. multiple samples). labels_layer_clusters - The labels layer(s) in `sdata` that contain metacluster or SOM cluster masks. These should be obtained via `sp.im.flowsom`. + The labels layer(s) in `sdata` that contain metacluster or SOM cluster masks. These should be obtained via `harpy.im.flowsom`. output_layer The output table layer in `sdata` where results of the clustering and metaclustering will be stored. q @@ -85,8 +85,8 @@ def flowsom( See Also -------- - sparrow.im.flowsom : flowsom pixel clustering - sparrow.tb.cell_clustering_preprocess : prepares data for cell clustering. + harpy.im.flowsom : flowsom pixel clustering + harpy.tb.cell_clustering_preprocess : prepares data for cell clustering. """ # first do preprocessing sdata = cell_clustering_preprocess( diff --git a/src/sparrow/table/cell_clustering/_preprocess.py b/src/harpy/table/cell_clustering/_preprocess.py similarity index 93% rename from src/sparrow/table/cell_clustering/_preprocess.py rename to src/harpy/table/cell_clustering/_preprocess.py index 5f364d91..bcaeb350 100644 --- a/src/sparrow/table/cell_clustering/_preprocess.py +++ b/src/harpy/table/cell_clustering/_preprocess.py @@ -11,10 +11,10 @@ from spatialdata import SpatialData from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element -from sparrow.table._preprocess import preprocess_proteomics -from sparrow.table._table import add_table_layer -from sparrow.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY +from harpy.image._image import _get_spatial_element +from harpy.table._preprocess import preprocess_proteomics +from harpy.table._table import add_table_layer +from harpy.utils._keys import _CELL_INDEX, _INSTANCE_KEY, _REGION_KEY def cell_clustering_preprocess( @@ -29,7 +29,7 @@ def cell_clustering_preprocess( """ Preprocesses spatial data for cell clustering. - This function prepares a SpatialData object for cell clustering by integrating cell segmentation masks (obtained via e.g. `sp.im.segment`) and SOM pixel/meta cluster (obtained via e.g. `sp.im.flosom`). + This function prepares a SpatialData object for cell clustering by integrating cell segmentation masks (obtained via e.g. `harpy.im.segment`) and SOM pixel/meta cluster (obtained via e.g. `harpy.im.flosom`). The function calculates the cluster count (clusters provided via `labels_layer_clusters`) for each cell in `labels_layer_cells`, normalized by cell size, and optionally by quantile normalization if `q` is provided. The results are stored in a specified table layer within the `sdata` object of shape (#cells, #clusters). @@ -38,9 +38,9 @@ def cell_clustering_preprocess( sdata The input SpatialData object containing the spatial proteomics data. labels_layer_cells - The labels layer(s) in `sdata` that contain cell segmentation masks. These masks should be previously generated using `sp.im.segment`. + The labels layer(s) in `sdata` that contain cell segmentation masks. These masks should be previously generated using `harpy.im.segment`. labels_layer_clusters - The labels layer(s) in `sdata` that contain metacluster or cluster masks. These should be derived from `sp.im.flowsom`. + The labels layer(s) in `sdata` that contain metacluster or cluster masks. These should be derived from `harpy.im.flowsom`. output_layer The name of the table layer within `sdata` where the preprocessed data will be stored. q @@ -56,8 +56,8 @@ def cell_clustering_preprocess( See Also -------- - sparrow.im.flowsom : flowsom pixel clustering. - sparrow.tb.flowsom : flowsom cell clustering. + harpy.im.flowsom : flowsom pixel clustering. + harpy.tb.flowsom : flowsom cell clustering. """ labels_layer_cells = ( list(labels_layer_cells) diff --git a/src/sparrow/table/cell_clustering/_utils.py b/src/harpy/table/cell_clustering/_utils.py similarity index 97% rename from src/sparrow/table/cell_clustering/_utils.py rename to src/harpy/table/cell_clustering/_utils.py index c4d3ac1e..0e8b4415 100644 --- a/src/sparrow/table/cell_clustering/_utils.py +++ b/src/harpy/table/cell_clustering/_utils.py @@ -7,8 +7,8 @@ from anndata import AnnData from spatialdata import SpatialData -from sparrow.utils._keys import ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.utils._keys import ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/table/cell_clustering/_weighted_channel_expression.py b/src/harpy/table/cell_clustering/_weighted_channel_expression.py similarity index 87% rename from src/sparrow/table/cell_clustering/_weighted_channel_expression.py rename to src/harpy/table/cell_clustering/_weighted_channel_expression.py index 206558ba..438cee9a 100644 --- a/src/sparrow/table/cell_clustering/_weighted_channel_expression.py +++ b/src/harpy/table/cell_clustering/_weighted_channel_expression.py @@ -4,10 +4,10 @@ from spatialdata import SpatialData from spatialdata.models import TableModel -from sparrow.table._table import ProcessTable, add_table_layer -from sparrow.table.cell_clustering._utils import _get_mapping -from sparrow.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.table._table import ProcessTable, add_table_layer +from harpy.table.cell_clustering._utils import _get_mapping +from harpy.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -19,7 +19,7 @@ def weighted_channel_expression( output_layer: str, clustering_key: ClusteringKey = ClusteringKey._METACLUSTERING_KEY, overwrite: bool = False, - # specify whether the metaclustering or SOM clustering labels layer of pixel clustering results was used as input for sp.tb.flowsom, i.e. key that was used for pixel clustering + # specify whether the metaclustering or SOM clustering labels layer of pixel clustering results was used as input for harpy.tb.flowsom, i.e. key that was used for pixel clustering ) -> SpatialData: """ Calculation of weighted channel expression in the context of cell clustering. @@ -30,22 +30,22 @@ def weighted_channel_expression( Average marker expression for each cell weighted by pixel cluster count is added to `sdata.tables[output_layer].obs`. Mean over the obtained cell clusters (both SOM and meta clusters) of the average marker expression for each cell weighted by pixel cluster count is added to `sdata.tables[output_layer].uns`. - This function should be run after running `sp.tb.flowsom` and `sp.tb.cluster_intensity`. + This function should be run after running `harpy.tb.flowsom` and `harpy.tb.cluster_intensity`. Parameters ---------- sdata The input SpatialData object containing the necessary data tables. table_layer_cell_clustering - The name of the table layer in `sdata` where FlowSOM cell clustering results are stored (obtained via 'sp.tb.flowsom'). - This layer should contain the cell cluster labels derived from the FlowSOM clustering algorithm and the non-normalized pixel cluster counts in `.layers[ _RAW_COUNTS_KEY ]`, as obtained after running `sp.tb.flowsom`. + The name of the table layer in `sdata` where FlowSOM cell clustering results are stored (obtained via 'harpy.tb.flowsom'). + This layer should contain the cell cluster labels derived from the FlowSOM clustering algorithm and the non-normalized pixel cluster counts in `.layers[ _RAW_COUNTS_KEY ]`, as obtained after running `harpy.tb.flowsom`. table_layer_pixel_cluster_intensity - The name of the table layer in `sdata` containing pixel cluster intensity values as obtained by running `sp.tb.cluster_intensity`. + The name of the table layer in `sdata` containing pixel cluster intensity values as obtained by running `harpy.tb.cluster_intensity`. These intensities are used to calculate the weighted expression of each channel for the cell clusters. output_layer The name of the output table layer in `sdata` where the results of the weighted channel expression computation will be stored. clustering_key - Specifies the key that was used for pixel clustering, indicating whether metaclustering or SOM clustering labels were used as input for flowsom cell clustering (`sp.tb.flowsom`). + Specifies the key that was used for pixel clustering, indicating whether metaclustering or SOM clustering labels were used as input for flowsom cell clustering (`harpy.tb.flowsom`). overwrite If True, overwrites any existing data in the `output_layer` if it already exists. @@ -55,8 +55,8 @@ def weighted_channel_expression( See Also -------- - sparrow.tb.flowsom : flowsom cell clustering - sparrow.tb.cluster_intensity : calculates average intensity SOM/meta cluster (pixel clusters). + harpy.tb.flowsom : flowsom cell clustering + harpy.tb.cluster_intensity : calculates average intensity SOM/meta cluster (pixel clusters). """ # subset over all _labels_layer in 'table_layer_cell_clustering' _labels_layer = [*sdata[table_layer_cell_clustering].uns[TableModel.ATTRS_KEY][TableModel.REGION_KEY]] @@ -70,7 +70,7 @@ def weighted_channel_expression( if key not in adata_cell_clustering.obs ] assert not missing_keys, ( - "Please first run 'sp.tb.flosom' before running this function. " + "Please first run 'harpy.tb.flosom' before running this function. " f"Missing keys in '.obs' of table layer '{table_layer_cell_clustering}' are: {', '.join(missing_keys)}." ) index_columns = adata_cell_clustering.to_df().columns.astype(int) diff --git a/src/sparrow/table/pixel_clustering/__init__.py b/src/harpy/table/pixel_clustering/__init__.py similarity index 100% rename from src/sparrow/table/pixel_clustering/__init__.py rename to src/harpy/table/pixel_clustering/__init__.py diff --git a/src/sparrow/table/pixel_clustering/_cluster_intensity.py b/src/harpy/table/pixel_clustering/_cluster_intensity.py similarity index 92% rename from src/sparrow/table/pixel_clustering/_cluster_intensity.py rename to src/harpy/table/pixel_clustering/_cluster_intensity.py index 3c22b942..e90ac17d 100644 --- a/src/sparrow/table/pixel_clustering/_cluster_intensity.py +++ b/src/harpy/table/pixel_clustering/_cluster_intensity.py @@ -11,12 +11,12 @@ from anndata import AnnData from spatialdata import SpatialData -from sparrow.image._image import _get_spatial_element -from sparrow.table._allocation_intensity import allocate_intensity -from sparrow.table._preprocess import preprocess_proteomics -from sparrow.table._table import add_table_layer -from sparrow.utils._keys import _CELL_INDEX, _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element +from harpy.table._allocation_intensity import allocate_intensity +from harpy.table._preprocess import preprocess_proteomics +from harpy.table._table import add_table_layer +from harpy.utils._keys import _CELL_INDEX, _CELLSIZE_KEY, _INSTANCE_KEY, _RAW_COUNTS_KEY, ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) @@ -36,7 +36,7 @@ def cluster_intensity( This function computes average intensity for each SOM cluster identified in the `labels_layer` and stores the results in a new table layer (`output_layer`). Average intensity per metacluster is added to `sdata.tables[output_layer].uns`. - The intensity calculation can be subset by channels and adjusted for chunk size for efficient processing. SOM clusters can be calculated using `sp.im.flowsom`. + The intensity calculation can be subset by channels and adjusted for chunk size for efficient processing. SOM clusters can be calculated using `harpy.im.flowsom`. Parameters ---------- @@ -47,7 +47,7 @@ def cluster_intensity( img_layer The image layer of `sdata` from which the intensity is calculated. labels_layer - The labels layer in `sdata` that contains the SOM cluster IDs. I.e. the `output_layer_clusters` labels layer obtained through `sp.im.flowsom`. + The labels layer in `sdata` that contains the SOM cluster IDs. I.e. the `output_layer_clusters` labels layer obtained through `harpy.im.flowsom`. output_layer The output table layer in `sdata` where results are stored. channels @@ -68,7 +68,7 @@ def cluster_intensity( See Also -------- - sparrow.im.flowsom : flowsom pixel clustering. + harpy.im.flowsom : flowsom pixel clustering. """ img_layer = list(img_layer) if isinstance(img_layer, Iterable) and not isinstance(img_layer, str) else [img_layer] labels_layer = ( @@ -202,7 +202,7 @@ def weighted_mean(x, data, weight): def _export_to_ark_format(adata: AnnData, output: str | Path | None = None) -> pd.DataFrame: - """Export avg intensity per SOM cluster calculated via `sp.tb.cluster_intensity` to a csv file that can be visualized by the ark gui.""" + """Export avg intensity per SOM cluster calculated via `harpy.tb.cluster_intensity` to a csv file that can be visualized by the ark gui.""" df = adata.to_df().copy() df["pixel_meta_cluster"] = adata.obs[ClusteringKey._METACLUSTERING_KEY.value].copy() df["pixel_som_cluster"] = adata.obs[_INSTANCE_KEY].copy() diff --git a/src/harpy/utils/__init__.py b/src/harpy/utils/__init__.py new file mode 100644 index 00000000..db69afd8 --- /dev/null +++ b/src/harpy/utils/__init__.py @@ -0,0 +1,9 @@ +from harpy.utils._query import bounding_box_query +from harpy.utils.pylogger import get_pylogger +from harpy.utils.utils import _export_config, _get_polygons_in_napari_format, _get_raster_multiscale + +LOAD = "raw_image" +IMAGE = "image" +CLEAN = "cleaned" +SEGMENT = "segment" +ALLOCATION = "allocation" diff --git a/src/sparrow/utils/_aggregate.py b/src/harpy/utils/_aggregate.py similarity index 99% rename from src/sparrow/utils/_aggregate.py rename to src/harpy/utils/_aggregate.py index 585e103f..b995f101 100644 --- a/src/sparrow/utils/_aggregate.py +++ b/src/harpy/utils/_aggregate.py @@ -12,7 +12,7 @@ from numpy.typing import NDArray from scipy import ndimage -from sparrow.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY +from harpy.utils._keys import _CELLSIZE_KEY, _INSTANCE_KEY class RasterAggregator: diff --git a/src/sparrow/utils/_flowsom.py b/src/harpy/utils/_flowsom.py similarity index 80% rename from src/sparrow/utils/_flowsom.py rename to src/harpy/utils/_flowsom.py index 5753e74c..237ab409 100644 --- a/src/sparrow/utils/_flowsom.py +++ b/src/harpy/utils/_flowsom.py @@ -1,14 +1,14 @@ from anndata import AnnData -from sparrow.utils._keys import ClusteringKey -from sparrow.utils.pylogger import get_pylogger +from harpy.utils._keys import ClusteringKey +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) try: import flowsom as fs except ImportError: - log.warning("'flowsom' not installed, 'sp.tb.flowsom' and `sp.im.flowsom` will not be available.") + log.warning("'flowsom' not installed, 'harpy.tb.flowsom' and `harpy.im.flowsom` will not be available.") def _flowsom( diff --git a/src/sparrow/utils/_io.py b/src/harpy/utils/_io.py similarity index 97% rename from src/sparrow/utils/_io.py rename to src/harpy/utils/_io.py index 396f90e5..701b1a17 100644 --- a/src/sparrow/utils/_io.py +++ b/src/harpy/utils/_io.py @@ -8,7 +8,7 @@ from spatialdata import SpatialData, read_zarr from xarray import DataArray, DataTree -from sparrow.utils.pylogger import get_pylogger +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/utils/_keys.py b/src/harpy/utils/_keys.py similarity index 100% rename from src/sparrow/utils/_keys.py rename to src/harpy/utils/_keys.py diff --git a/src/sparrow/utils/_query.py b/src/harpy/utils/_query.py similarity index 97% rename from src/sparrow/utils/_query.py rename to src/harpy/utils/_query.py index 53334cc4..97a2f4dd 100644 --- a/src/sparrow/utils/_query.py +++ b/src/harpy/utils/_query.py @@ -9,10 +9,10 @@ from spatialdata import bounding_box_query as bounding_box_query_spatialdata from spatialdata.transformations import get_transformation -from sparrow.image._image import _get_spatial_element, add_labels_layer -from sparrow.table._table import add_table_layer -from sparrow.utils._keys import _INSTANCE_KEY, _REGION_KEY -from sparrow.utils.pylogger import get_pylogger +from harpy.image._image import _get_spatial_element, add_labels_layer +from harpy.table._table import add_table_layer +from harpy.utils._keys import _INSTANCE_KEY, _REGION_KEY +from harpy.utils.pylogger import get_pylogger log = get_pylogger(__name__) diff --git a/src/sparrow/utils/_transformations.py b/src/harpy/utils/_transformations.py similarity index 100% rename from src/sparrow/utils/_transformations.py rename to src/harpy/utils/_transformations.py diff --git a/src/sparrow/utils/pylogger.py b/src/harpy/utils/pylogger.py similarity index 100% rename from src/sparrow/utils/pylogger.py rename to src/harpy/utils/pylogger.py diff --git a/src/sparrow/utils/utils.py b/src/harpy/utils/utils.py similarity index 98% rename from src/sparrow/utils/utils.py rename to src/harpy/utils/utils.py index 2fae18dd..b537f6c3 100644 --- a/src/sparrow/utils/utils.py +++ b/src/harpy/utils/utils.py @@ -16,7 +16,7 @@ from spatialdata.transformations import get_transformation from xarray import DataArray, DataTree -from sparrow.utils._transformations import _get_translation_values +from harpy.utils._transformations import _get_translation_values def _linestring_to_arrays(geometries): diff --git a/src/harpy/widgets/__init__.py b/src/harpy/widgets/__init__.py new file mode 100644 index 00000000..6bf99610 --- /dev/null +++ b/src/harpy/widgets/__init__.py @@ -0,0 +1,19 @@ +"""Export all the widgets for the napari plugin.""" + +__version__ = "0.0.1" + +from harpy.widgets._allocate_widget import allocate_widget +from harpy.widgets._annotate_widget import annotate_widget +from harpy.widgets._clean_widget import clean_widget +from harpy.widgets._load_widget import load_widget +from harpy.widgets._segment_widget import segment_widget +from harpy.widgets._wizard_widget import wizard_widget + +__all__ = [ + load_widget, + clean_widget, + segment_widget, + wizard_widget, + allocate_widget, + annotate_widget, +] diff --git a/src/sparrow/widgets/_allocate_widget.py b/src/harpy/widgets/_allocate_widget.py similarity index 95% rename from src/sparrow/widgets/_allocate_widget.py rename to src/harpy/widgets/_allocate_widget.py index c2151a42..ca936f48 100644 --- a/src/sparrow/widgets/_allocate_widget.py +++ b/src/harpy/widgets/_allocate_widget.py @@ -13,17 +13,17 @@ from napari.utils.notifications import show_info from spatialdata import SpatialData, read_zarr -import sparrow.utils as utils -from sparrow.pipeline import SparrowPipeline -from sparrow.shape._shape import add_shapes_layer -from sparrow.utils.utils import _translate_polygons +import harpy.utils as utils +from harpy.pipeline import HarpyPipeline +from harpy.shape._shape import add_shapes_layer +from harpy.utils.utils import _translate_polygons log = utils.get_pylogger(__name__) def allocateImage( sdata: SpatialData, - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, ) -> SpatialData: """Function representing the allocation step, this calls all the needed functions to allocate the transcripts to the cells.""" sdata = pipeline.allocate(sdata) @@ -132,7 +132,7 @@ def allocate_widget( worker = _allocation_worker(sdata, allocateImage, fn_kwargs=fn_kwargs) - def add_metadata(sdata: SpatialData, pipeline: SparrowPipeline, layer_name: str): + def add_metadata(sdata: SpatialData, pipeline: HarpyPipeline, layer_name: str): """Update the polygons, add anndata object to the metadata, so it can be viewed via napari spatialdata plugin, and it becomes visible in next steps.""" try: # if the layer exists, update its data diff --git a/src/sparrow/widgets/_annotate_widget.py b/src/harpy/widgets/_annotate_widget.py similarity index 96% rename from src/sparrow/widgets/_annotate_widget.py rename to src/harpy/widgets/_annotate_widget.py index 85287e90..3b3337a0 100644 --- a/src/sparrow/widgets/_annotate_widget.py +++ b/src/harpy/widgets/_annotate_widget.py @@ -13,15 +13,15 @@ from napari.utils.notifications import show_info from spatialdata import SpatialData, read_zarr -import sparrow.utils as utils -from sparrow.pipeline import SparrowPipeline +import harpy.utils as utils +from harpy.pipeline import HarpyPipeline log = utils.get_pylogger(__name__) def annotateImage( sdata: SpatialData, - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, ) -> SpatialData: """Function representing the annotation step, this calls all the needed functions to annotate the cells with the celltype.""" sdata = pipeline.annotate(sdata) @@ -85,7 +85,7 @@ def annotate_widget( def add_metadata( sdata: SpatialData, - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, layer_name: str, ): """Add the metadata to the previous layer, this way it becomes available in the next steps.""" diff --git a/src/sparrow/widgets/_clean_widget.py b/src/harpy/widgets/_clean_widget.py similarity index 95% rename from src/sparrow/widgets/_clean_widget.py rename to src/harpy/widgets/_clean_widget.py index 294637c6..48bb8500 100644 --- a/src/sparrow/widgets/_clean_widget.py +++ b/src/harpy/widgets/_clean_widget.py @@ -19,16 +19,16 @@ from spatialdata import SpatialData, read_zarr from xarray import DataTree -from sparrow import utils as utils -from sparrow.image._image import _get_translation -from sparrow.pipeline import SparrowPipeline +from harpy import utils as utils +from harpy.image._image import _get_translation +from harpy.pipeline import HarpyPipeline log = utils.get_pylogger(__name__) def cleanImage( sdata: SpatialData, - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, ) -> SpatialData: """Function representing the cleaning step, this calls all the needed functions to improve the image quality.""" sdata = pipeline.clean(sdata) @@ -117,7 +117,7 @@ def clean_widget( worker = _clean_worker(sdata, method=cleanImage, fn_kwargs=fn_kwargs) - def add_image(sdata: SpatialData, pipeline: SparrowPipeline, layer_name: str): + def add_image(sdata: SpatialData, pipeline: HarpyPipeline, layer_name: str): """Add the image to the napari viewer, overwrite if it already exists.""" try: # if the layer exists, update its data diff --git a/src/sparrow/widgets/_load_widget.py b/src/harpy/widgets/_load_widget.py similarity index 91% rename from src/sparrow/widgets/_load_widget.py rename to src/harpy/widgets/_load_widget.py index 20471b96..de0f2b04 100644 --- a/src/sparrow/widgets/_load_widget.py +++ b/src/harpy/widgets/_load_widget.py @@ -16,15 +16,15 @@ from spatialdata import SpatialData from xarray import DataTree -from sparrow import utils -from sparrow.image._image import _get_translation -from sparrow.pipeline import SparrowPipeline +from harpy import utils +from harpy.image._image import _get_translation +from harpy.pipeline import HarpyPipeline log = utils.get_pylogger(__name__) def loadImage( - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, ) -> SpatialData: """Function representing the loading step.""" sdata = pipeline.load() @@ -62,7 +62,7 @@ def load_widget( ): """Function represents the load widget and is called by the wizard to create the widget.""" # get the default values for the configs - abs_config_dir = resource_filename("sparrow", "configs") + abs_config_dir = resource_filename("harpy", "configs") with initialize_config_dir(version_base=None, config_dir=abs_config_dir): cfg = compose(config_name="pipeline") @@ -85,13 +85,13 @@ def load_widget( cfg.dataset.crop_param = crd - pipeline = SparrowPipeline(cfg, image_name=image_layer) + pipeline = HarpyPipeline(cfg, image_name=image_layer) fn_kwargs: dict[str, Any] = {"pipeline": pipeline} worker = _load_worker(method=loadImage, fn_kwargs=fn_kwargs) - def add_image(sdata: SpatialData, pipeline: SparrowPipeline, layer_name: str): + def add_image(sdata: SpatialData, pipeline: HarpyPipeline, layer_name: str): """Add the image to the napari viewer, overwrite if it already exists.""" try: # if the layer exists, update its data diff --git a/src/sparrow/widgets/_segment_widget.py b/src/harpy/widgets/_segment_widget.py similarity index 96% rename from src/sparrow/widgets/_segment_widget.py rename to src/harpy/widgets/_segment_widget.py index f29ec8bc..e068a714 100644 --- a/src/sparrow/widgets/_segment_widget.py +++ b/src/harpy/widgets/_segment_widget.py @@ -14,9 +14,9 @@ from napari.utils.notifications import show_info from spatialdata import SpatialData, read_zarr -import sparrow.utils as utils -from sparrow.pipeline import SparrowPipeline -from sparrow.utils.utils import _translate_polygons +import harpy.utils as utils +from harpy.pipeline import HarpyPipeline +from harpy.utils.utils import _translate_polygons log = utils.get_pylogger(__name__) @@ -28,7 +28,7 @@ class ModelOption(Enum): def segmentImage( sdata: SpatialData, - pipeline: SparrowPipeline, + pipeline: HarpyPipeline, ) -> SpatialData: """Function representing the segmentation step, this calls the segmentation function.""" sdata = pipeline.segment(sdata) @@ -140,7 +140,7 @@ def segment_widget( worker = _segmentation_worker(sdata, segmentImage, fn_kwargs=fn_kwargs) - def add_shape(sdata: SpatialData, pipeline: SparrowPipeline, layer_name: str): + def add_shape(sdata: SpatialData, pipeline: HarpyPipeline, layer_name: str): """Add the shapes to the napari viewer, overwrite if it already exists.""" try: # if the layer exists, update its data diff --git a/src/sparrow/widgets/_wizard_widget.py b/src/harpy/widgets/_wizard_widget.py similarity index 96% rename from src/sparrow/widgets/_wizard_widget.py rename to src/harpy/widgets/_wizard_widget.py index 554cfdd2..e8ebef45 100644 --- a/src/sparrow/widgets/_wizard_widget.py +++ b/src/harpy/widgets/_wizard_widget.py @@ -1,12 +1,11 @@ """Napari widget for managing the other widgets and giving a general overview of the workflow.""" - from magicgui.widgets import ComboBox, Container, Label, TextEdit from qtpy.QtGui import QPixmap from qtpy.QtWidgets import QSizePolicy -from sparrow.utils import get_pylogger -from sparrow.widgets import ( +from harpy.utils import get_pylogger +from harpy.widgets import ( allocate_widget, annotate_widget, clean_widget, @@ -67,8 +66,8 @@ def get_choices(): "### Load an image into napari.\n" "- path zarr: choose the path to a zarr store that contains a SpatialData object. If you wish to create a new zarr store from an image, leave this field blank.\n" "- path image: choose the path to an image, which can be either single-channel or multi-channel. This will be disregarded if the zarr path is specified.\n" - "- image layer: specify the image layer within the zarr store where you want to execute Sparrow. If providing a path to an image, this will designate the image layer in the zarr store that will be created.\n" - "- output dir: choose the directory where all figures and files produced by Sparrow will be saved.\n" + "- image layer: specify the image layer within the zarr store where you want to execute Harpy. If providing a path to an image, this will designate the image layer in the zarr store that will be created.\n" + "- output dir: choose the directory where all figures and files produced by Harpy will be saved.\n" "- x_min, x_min, x_max, y_min and y_max (optional): select cropping region.\n" ), ), @@ -169,7 +168,7 @@ def wizard_widget() -> None: """Napari widget for managing the other widgets and giving a general overview of the workflow.""" # Set DaMBi Icon icon = Label(name="icon", value="Made by DaMBi") - pixmap = QPixmap("./src/sparrow/widgets/dambi-white.png") + pixmap = QPixmap("./src/harpy/widgets/dambi-white.png") icon.native.setPixmap(pixmap) # Step selector diff --git a/src/sparrow/widgets/dambi-white.png b/src/harpy/widgets/dambi-white.png similarity index 100% rename from src/sparrow/widgets/dambi-white.png rename to src/harpy/widgets/dambi-white.png diff --git a/src/sparrow/widgets/dambi.png b/src/harpy/widgets/dambi.png similarity index 100% rename from src/sparrow/widgets/dambi.png rename to src/harpy/widgets/dambi.png diff --git a/src/sparrow/napari.yaml b/src/sparrow/napari.yaml deleted file mode 100644 index d2133e40..00000000 --- a/src/sparrow/napari.yaml +++ /dev/null @@ -1,33 +0,0 @@ -name: sparrow -display_name: sparrow -contributions: - commands: - - id: sparrow.widgets.wizard_widget - python_name: sparrow.widgets._wizard_widget:wizard_widget - title: Wizard - - id: sparrow.widgets.clean_widget - python_name: sparrow.widgets._clean_widget:clean_widget - title: Cleaning - - id: sparrow.widgets.segment_widget - python_name: sparrow.widgets._segment_widget:segment_widget - title: Segment - - id: sparrow.widgets.allocate_widget - python_name: sparrow.widgets._allocate_widget:allocate_widget - title: Allocate - - id: sparrow.widgets.annotate_widget - python_name: sparrow.widgets._annotate_widget:annotate_widget - title: Annotate - widgets: - # display_name is the name shown in the napari menu - - command: sparrow.widgets.wizard_widget - display_name: Wizard - # - command: napari-sparrow.widgets.clean_widget - # display_name: Clean - # - command: napari-sparrow.widgets.segment_widget - # display_name: Segment - # - command: napari-sparrow.widgets.allocate_widget - # display_name: Allocate - # - command: napari-sparrow.widgets.annotate_widget - # display_name: Annotate - # - command: napari-sparrow.widgets.visualize_widget - # display_name: Visualize diff --git a/src/sparrow/utils/__init__.py b/src/sparrow/utils/__init__.py deleted file mode 100644 index 02355cad..00000000 --- a/src/sparrow/utils/__init__.py +++ /dev/null @@ -1,9 +0,0 @@ -from sparrow.utils._query import bounding_box_query -from sparrow.utils.pylogger import get_pylogger -from sparrow.utils.utils import _export_config, _get_polygons_in_napari_format, _get_raster_multiscale - -LOAD = "raw_image" -IMAGE = "image" -CLEAN = "cleaned" -SEGMENT = "segment" -ALLOCATION = "allocation" diff --git a/src/sparrow/widgets/__init__.py b/src/sparrow/widgets/__init__.py deleted file mode 100644 index f3b6eb63..00000000 --- a/src/sparrow/widgets/__init__.py +++ /dev/null @@ -1,18 +0,0 @@ -"""Export all the widgets for the napari plugin.""" -__version__ = "0.0.1" - -from sparrow.widgets._allocate_widget import allocate_widget -from sparrow.widgets._annotate_widget import annotate_widget -from sparrow.widgets._clean_widget import clean_widget -from sparrow.widgets._load_widget import load_widget -from sparrow.widgets._segment_widget import segment_widget -from sparrow.widgets._wizard_widget import wizard_widget - -__all__ = [ - load_widget, - clean_widget, - segment_widget, - wizard_widget, - allocate_widget, - annotate_widget, -] diff --git a/tox.ini b/tox.ini deleted file mode 100644 index 480e1db2..00000000 --- a/tox.ini +++ /dev/null @@ -1,36 +0,0 @@ -# For more information about tox, see https://tox.readthedocs.io/en/latest/ -[tox] -envlist = py{38,39,310}-{linux,macos,windows} -isolated_build=true - -[gh-actions] -python = - 3.8: py38 - 3.9: py39 - 3.10: py310 - -[gh-actions:env] -PLATFORM = - ubuntu-latest: linux - macos-latest: macos - windows-latest: windows - -[testenv] -sitepackages = True -platform = - macos: darwin - linux: linux - windows: win32 -allowlist_externals = pytest -passenv = - CI, - GITHUB_ACTIONS, - DISPLAY, - XAUTHORITY, - NUMPY_EXPERIMENTAL_ARRAY_FUNCTION, - PYVISTA_OFF_SCREEN - CONDA - CONDA_EXE -extras = - testing -commands = pytest --ignore=src/sparrow/_tests/test_widget.py --color=yes --cov=sparrow --cov-config=pyproject.toml --cov-report=xml --cov-report=term-missing