77import numpy as np
88import pandas as pd
99from anndata import AnnData , OldFormatWarning
10+ from packaging .version import Version
1011
1112from .. import _utils
12- from .._compat import deprecated , old_positionals
13+ from .._compat import deprecated , old_positionals , pkg_version
1314from .._settings import settings
14- from .._utils ._doctests import doctest_internet , doctest_needs
15+ from .._utils ._doctests import doctest_internet , doctest_needs , doctest_skipif
1516from ..readwrite import read , read_h5ad , read_visium
1617from ._utils import check_datasetdir_exists
1718
5455HERE = Path (__file__ ).parent
5556
5657
58+ _doctest_skipif_old_anndata = doctest_skipif (
59+ pkg_version ("anndata" ) < Version ("0.13.dev0" ), reason = "old anndata"
60+ )
61+
62+
63+ @_doctest_skipif_old_anndata
5764@old_positionals (
5865 "n_variables" , "n_centers" , "cluster_std" , "n_observations" , "random_state"
5966)
@@ -92,6 +99,7 @@ def blobs(
9299 >>> sc.datasets.blobs()
93100 AnnData object with n_obs × n_vars = 640 × 11
94101 obs: 'blobs'
102+ layers: None
95103
96104 """
97105 import sklearn .datasets
@@ -106,6 +114,7 @@ def blobs(
106114 return AnnData (x , obs = dict (blobs = y .astype (str )))
107115
108116
117+ @_doctest_skipif_old_anndata
109118@doctest_internet
110119@check_datasetdir_exists
111120def burczynski06 () -> AnnData :
@@ -127,13 +136,15 @@ def burczynski06() -> AnnData:
127136 ...
128137 AnnData object with n_obs × n_vars = 127 × 22283
129138 obs: 'groups'
139+ layers: None
130140
131141 """
132142 filename = settings .datasetdir / "burczynski06/GDS1615_full.soft.gz"
133143 url = "https://exampledata.scverse.org/scanpy/GDS1615_full.soft.gz"
134144 return read (filename , backup_url = url )
135145
136146
147+ @_doctest_skipif_old_anndata
137148def krumsiek11 () -> AnnData :
138149 r"""Simulated myeloid progenitors :cite:p:`Krumsiek2011`.
139150
@@ -159,6 +170,7 @@ def krumsiek11() -> AnnData:
159170 AnnData object with n_obs × n_vars = 640 × 11
160171 obs: 'cell_type'
161172 uns: 'iroot', 'highlights'
173+ layers: None
162174
163175 """ # noqa: D401
164176 with settings .verbosity .override ("error" ): # suppress output...
@@ -176,6 +188,7 @@ def krumsiek11() -> AnnData:
176188 return adata
177189
178190
191+ @_doctest_skipif_old_anndata
179192@doctest_internet
180193@doctest_needs ("openpyxl" )
181194@check_datasetdir_exists
@@ -203,6 +216,7 @@ def moignard15() -> AnnData:
203216 AnnData object with n_obs × n_vars = 3934 × 42
204217 obs: 'exp_groups'
205218 uns: 'iroot', 'exp_groups_colors'
219+ layers: None
206220
207221 """
208222 filename = settings .datasetdir / "moignard15/nbt.3154-S3.xlsx"
@@ -236,6 +250,7 @@ def moignard15() -> AnnData:
236250 return adata
237251
238252
253+ @_doctest_skipif_old_anndata
239254@doctest_internet
240255@check_datasetdir_exists
241256def paul15 () -> AnnData :
@@ -257,6 +272,7 @@ def paul15() -> AnnData:
257272 AnnData object with n_obs × n_vars = 2730 × 3451
258273 obs: 'paul15_clusters'
259274 uns: 'iroot'
275+ layers: None
260276
261277 """
262278 import h5py
@@ -296,6 +312,7 @@ def paul15() -> AnnData:
296312 return adata
297313
298314
315+ @_doctest_skipif_old_anndata
299316def toggleswitch () -> AnnData :
300317 """Simulated toggleswitch.
301318
@@ -315,6 +332,7 @@ def toggleswitch() -> AnnData:
315332 ...
316333 AnnData object with n_obs × n_vars = 200 × 2
317334 uns: 'iroot'
335+ layers: None
318336
319337 """ # noqa: D401
320338 filename = HERE / "toggleswitch.txt"
@@ -323,6 +341,7 @@ def toggleswitch() -> AnnData:
323341 return adata
324342
325343
344+ @_doctest_skipif_old_anndata
326345def pbmc68k_reduced () -> AnnData :
327346 r"""Subsampled and processed 68k PBMCs.
328347
@@ -353,11 +372,13 @@ def pbmc68k_reduced() -> AnnData:
353372 obsm: 'X_pca', 'X_umap'
354373 varm: 'PCs'
355374 obsp: 'connectivities', 'distances'
375+ layers: None
356376
357377 """
358378 return read_h5ad (HERE / "10x_pbmc68k_reduced.h5ad" )
359379
360380
381+ @_doctest_skipif_old_anndata
361382@doctest_internet
362383@check_datasetdir_exists
363384def pbmc3k () -> AnnData :
@@ -402,6 +423,7 @@ def pbmc3k() -> AnnData:
402423 >>> sc.datasets.pbmc3k()
403424 AnnData object with n_obs × n_vars = 2700 × 32738
404425 var: 'gene_ids'
426+ layers: None
405427
406428 """
407429 url = "https://exampledata.scverse.org/scanpy/pbmc3k_raw.h5ad"
@@ -411,6 +433,7 @@ def pbmc3k() -> AnnData:
411433 return adata
412434
413435
436+ @_doctest_skipif_old_anndata
414437@doctest_internet
415438@check_datasetdir_exists
416439def pbmc3k_processed () -> AnnData :
@@ -442,6 +465,7 @@ def pbmc3k_processed() -> AnnData:
442465 obsm: 'X_pca', 'X_tsne', 'X_umap', 'X_draw_graph_fr'
443466 varm: 'PCs'
444467 obsp: 'distances', 'connectivities'
468+ layers: None
445469
446470 """ # noqa: D401
447471 url = "https://exampledata.scverse.org/scanpy/pbmc3k.h5ad"
@@ -509,6 +533,7 @@ def _download_visium_dataset(
509533
510534
511535@deprecated ("Use `squidpy.datasets.visium` instead." )
536+ @_doctest_skipif_old_anndata
512537@doctest_internet
513538@check_datasetdir_exists
514539def visium_sge (
@@ -550,6 +575,7 @@ def visium_sge(
550575 var: 'gene_ids', 'feature_types', 'genome'
551576 uns: 'spatial'
552577 obsm: 'spatial'
578+ layers: None
553579
554580 """ # noqa: D401
555581 spaceranger_version = "1.1.0" if "V1_" in sample_id else "1.2.0"
0 commit comments