简单基准测试

简单基准#

在这里,我们进行简单的基准测试以演示基本性能。

[1]:
from __future__ import annotations

import scanpy as sc

import anndata as ad
[2]:
adata = sc.datasets.pbmc3k()
[3]:
adata
[3]:
AnnData object with n_obs × n_vars = 2700 × 32738
    var: 'gene_ids'

读取与写入#

让我们开始编写和读取 anndata 的原生 HDF5 文件格式:.h5ad

[4]:
%%time
adata.write("test.h5ad")
CPU times: user 93.9 ms, sys: 17.4 ms, total: 111 ms
Wall time: 118 ms
[5]:
%%time
adata = ad.read_h5ad("test.h5ad")
CPU times: user 51.2 ms, sys: 13.3 ms, total: 64.5 ms
Wall time: 64.1 ms

我们看到读取和写入的速度比织布机文件快得多。这里的效率提高是由于稀疏矩阵结构的显式存储。

[6]:
%%time
adata.write_loom("test.loom")
CPU times: user 2.82 s, sys: 457 ms, total: 3.27 s
Wall time: 3.31 s
[7]:
%%time
adata = ad.io.read_loom("test.loom")
CPU times: user 1.05 s, sys: 221 ms, total: 1.28 s
Wall time: 1.28 s
/Users/alexwolf/repos/anndata/anndata/_core/anndata.py:120: ImplicitModificationWarning: Transforming to str index.
  warnings.warn("Transforming to str index.", ImplicitModificationWarning)