用途:输入 bulk RNA-seq 队列(AnnData,样本×基因)与带细胞类型标签的单细胞参考(AnnData,细胞×基因),推断每个 bulk 样本的细胞类型比例。该方法方向与 Bulk2Single(由 bulk 生成合成单细胞)相反,勿混淆。
主要能力:ov.bulk.Deconvolution 类统一封装四种后端,通过 method 切换——tape(默认,深度学习自编码器,CPU 可用)、scaden(深度神经网络,GPU 更佳)、bayesprism(贝叶斯,多核 CPU,输出后验比例,需 pip install BayesPrism)、omicstweezer(联合参考校正)。输出 pd.DataFrame(样本×细胞类型),可作堆叠条形图,或用 ov.pl.plot_grouped_fractions 按表型分组汇总。
使用方式:构造 deconv_obj = ov.bulk.Deconvolution(adata_bulk, adata_single, max_single_cells=10000, celltype_key='cell.type.coarse', cellstate_key='cell.type.fine', gpu=0),再调用 deconv_obj.deconvolution(method='bayesprism', n_cores=8, fast_mode=True) 或 method='scaden', scaler='ss', datatype='counts', pseudobulk_size=2000。结果列顺序须按参考的类别顺序重排:res = res[single_ad_ref.obs[celltype_key].cat.categories]。配色可从参考 uns 的 celltype_colors 构建字典后传给 res.plot(kind='bar', stacked=True)。内置演示数据集为 ov.datasets.decov_bulk_covid_bulk() 与 ov.datasets.decov_bulk_covid_single()。
适用场景:Bulk 队列的细胞组成分析、表型分组比较、同一队列上多方法对比。方法选择可参考计算环境与解释需求;BayesPrism 仅用 CPU,调 n_cores;NN 方法可用 gpu=0 或 gpu='mps'。
限制:cellstate_key 仅 BayesPrism 使用,其余后端忽略;不同 max_single_cells 的运行结果不可直接比较;样本数少于 10 时 NN 方法可能过拟合;参考中细胞数少于 50 的类型估计噪声大。空间转录组解卷积、单细胞参考构建、TCGA 预处理、bulk 差异表达等均属其它技能范围。