Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 7 additions & 10 deletions .scripts/ci/download_data.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,10 +19,7 @@ def main(args: argparse.Namespace) -> None:
from anndata import AnnData

import squidpy as sq
from squidpy.datasets._downloader import get_downloader

downloader = get_downloader()
registry = downloader.registry
from squidpy.datasets._registry import dataset_names

# Visium samples tested in CI
visium_samples_to_cache = [
Expand All @@ -35,23 +32,23 @@ def main(args: argparse.Namespace) -> None:
logger.info("Cache: %s", settings.datasetdir)
logger.info(
"Would download: %d AnnData, %d images, %d SpatialData, %d Visium",
len(registry.anndata_datasets),
len(registry.image_datasets),
len(registry.spatialdata_datasets),
len(dataset_names("anndata")),
len(dataset_names("image")),
len(dataset_names("spatialdata")),
len(visium_samples_to_cache),
)
return

# Download all datasets - the downloader handles caching
for name in registry.anndata_datasets:
for name in dataset_names("anndata"):
obj = getattr(sq.datasets, name)()
assert isinstance(obj, AnnData)

for name in registry.image_datasets:
for name in dataset_names("image"):
obj = getattr(sq.datasets, name)()
assert isinstance(obj, sq.im.ImageContainer)

for name in registry.spatialdata_datasets:
for name in dataset_names("spatialdata"):
getattr(sq.datasets, name)()

for sample in visium_samples_to_cache:
Expand Down
3 changes: 2 additions & 1 deletion pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -60,12 +60,13 @@ dependencies = [
"omnipath>=1.0.7",
"pandas>=2.1",
"pillow>=8",
"pooch>=1.6",
"pyyaml>=6",
"scanpy>=1.9.3",
"scikit-image>=0.25",
# due to https://github.com/scikit-image/scikit-image/issues/6850 breaks rescale ufunc
"scikit-learn>=0.24",
# dataset registry + downloader (pooch) now live in scverse-misc
"scverse-misc[datasets]",
"spatialdata>=0.7.2", # 0.7.2 dropped xarray-schema (pkg_resources break, #1115)
"spatialdata-plot>=0.3.3",
"statsmodels>=0.12",
Expand Down
23 changes: 9 additions & 14 deletions src/squidpy/datasets/_datasets.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,8 @@
from pathlib import Path
from typing import TYPE_CHECKING, Any, Literal

from scanpy import settings

from squidpy.datasets._downloader import get_downloader
from squidpy.datasets._registry import DatasetType, get_registry
from squidpy.datasets._registry import dataset_names, get_registry
from squidpy.read._utils import PathLike

if TYPE_CHECKING:
Expand Down Expand Up @@ -125,15 +123,12 @@ def visium(
# Validate sample_id against known names
downloader = get_downloader()

if sample_id not in downloader.registry:
if sample_id not in downloader.datasets:
msg = f"Unknown Visium sample: {sample_id}. "
msg += f"Available samples: {downloader.registry.visium_datasets}"
msg += f"Available samples: {dataset_names('visium_10x')}"
raise ValueError(msg)

# Use scanpy.settings.datasetdir/visium if base_dir not specified
if base_dir is None:
base_dir = Path(settings.datasetdir) / "visium"

# downloads land in <datasetdir>/visium_10x/<sample_id>/
return downloader.download(sample_id, base_dir, include_hires_tiff=include_hires_tiff)


Expand Down Expand Up @@ -204,9 +199,9 @@ class _DocParts:
return_type=":class:`squidpy.im.ImageContainer`\n The image data.",
)

_DOC_PARTS_BY_TYPE: dict[DatasetType, _DocParts] = {
DatasetType.ANNDATA: _ANNDATA_DOC,
DatasetType.IMAGE: _IMAGE_DOC,
_DOC_PARTS_BY_TYPE: dict[str, _DocParts] = {
"anndata": _ANNDATA_DOC,
"image": _IMAGE_DOC,
}


Expand All @@ -228,9 +223,9 @@ def loader(path: PathLike | None = None, **kwargs: Any):
return get_downloader().download(dataset_name, path, **kwargs)

loader.__doc__ = f"""
{entry.doc_header}
{entry.metadata.get("doc_header")}

{doc_parts.shape_prefix} ``{entry.shape}``.
{doc_parts.shape_prefix} ``{entry.metadata.get("shape")}``.

Parameters
----------
Expand Down
Loading
Loading