SuperAPI AI 工具集

bio-expression-matrix-sparse-handling

通用与其它

查看项目

更新于 10-16 05:49

技能介绍

用途:在单细胞和大规模 bulk RNA-seq 中存储、读写与计算表达矩阵,避免内存溢出。核心是选择与访问模式匹配的稀疏格式,并处理 R 与 Python 的约定差异。

主要能力:介绍 dgCMatrix(CSC,列操作快)、dgRMatrix(CSR,行操作快)、dgTMatrix(COO,构建期快,之后应转换);覆盖 scipy 的 csc/csr/coo;说明稀疏密度超过约 10–15% 时稠密往往更快;给出按场景的选择建议,如单细胞用 dgCMatrix 或 CSR adata.X,bulk 常用稠密。

关键提示:R Bioconductor 把细胞放在列,Python scverse 把细胞放在行,经 anndata2ri、zellkonverter、rpy2 转换会隐式转置一次,往返两次会相互抵消造成静默错误。建议用文件中间格式:adata.write('file.h5ad') 后用 zellkonverter::readH5AD('file.h5ad')。

存储与用法:HDF5 单文件、本地快、生态成熟;Zarr 分块、适合云端与并行写。提供稀疏度检查、构造与 CRS/CSC 转换、行列求和与过滤、稀疏 CPM 与 log1p(保持零值稀疏)、save_npz 与 h5ad/zarr 保存等示例。

大规模数据:scanpy backed 模式 sc.read_h5ad(..., backed='r') 按需加载,.X 只读、.obs/.var 全量加载,许多函数仍需内存;可分段处理。Bioconductor 用 HDF5Array + DelayedArray 做延迟计算,但 DESeq2/edgeR/limma 的支持程度需查文档。百万级样本可用 Zarr + Dask。

限制:稠密转换会带来约 24GB 级内存峰值,热图、部分 sklearn/XGBoost 与绘图函数易触发;超大稀疏 h5ad 即使 backed 模式也可能吃内存。10X 输出优先用 .h5 而非 MTX。资料未提供具体收费、价格与平台信息。