简单基准#
在这里,我们进行简单的基准测试以演示基本性能。
[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)