SuperAPI AI 工具集

bulk-rna-seq-batch-correction-with-combat

数据与分析

查看项目

更新于 10-16 02:38

技能介绍

用途:当用户拥有多个不同批次测得的大容量表达矩阵,需要在下游分析前进行协调(批次校正)时,可应用该技能。其流程参考 t_bulk_combat.ipynb,在卵巢癌微阵列队列上演示 pyComBat 工作流。

主要能力:加载各批次数据并转置为基因×样本,包装成 anndata.AnnData,为每个队列分配 batch 列;使用 anndata.concat([...], merge='same') 按共享基因合并;调用 ov.bulk.batch_correction(adata, batch_key='batch') 执行 ComBat,校正值存于 adata.layers['batch_correction'],原始计数保留在 adata.X;导出原始与校正矩阵,并保存协调后的 AnnData。

用法:导入 omicverse、anndata、pandas、matplotlib,调用 ov.ov_plot_set();用 pd.read_pickle(...)/pd.read_csv(...) 读取各批次矩阵;合并后确认每批次样本数均衡;执行校正;通过 adata.to_df().T 与 adata.to_df(layer='batch_correction').T 获取表格并 .to_csv(...),同时 adata.write_h5ad('adata_batch.h5ad', compression='gzip')。基准比较时,先将原始计数复制到命名层 adata.layers['raw'] = adata.X.copy(),再分别对 raw 与 batch_correction 层运行 ov.pp.pca(adata, layer=..., n_pcs=50),用 ov.pl.embedding(..., basis='raw|original|X_pca', color='batch', frameon='small') 查看批次混合情况,并绘制前后箱线图,用 ov.pl.red_color、blue_color、green_color 调色板对应批次。

防空验证:断言 adata.obs 含 'batch' 列且批次唯一值大于 1;合并后若 adata.n_vars 小于 100 应警告并检查基因 ID 一致性。

适用场景:合并三个 GEO 卵巢队列、运行 ComBat 并导出原始与校正 CSV;绘制校正前后 PCA 确认批次重叠;保存协调后的 AnnData 以便后续差异表达分析。

限制与提示:基因标识不一致会导致特征丢失,需在合并前统一特征名(如基因符号);pyComBat 期望对数尺度强度或分布相近的计数,强偏态矩阵建议先做对数转换;若缺少 batch_correction 层,需确认 batch_key 与 adata.obs 列名一致。其余功能、收费或平台信息暂未提供。