← 返回 Skill 列表
extension
分类: 数据与分析无需 API Key

scMetabolism单细胞代谢通量定量-PDAC顶刊复现

scMetabolism单细胞代谢通量定量工具方法:底层sc.metabolism()矩阵接口(method='AUCell',KEGG库,imputation=F)绕过Seurat v5@counts槽bug,按细胞类型aggregate均值+pheatmap展示。Invoke when单细胞代谢通路活性定量、figS3F式代谢热图或scMetabolism与Seurat5兼容问题。

person作者: user_30836134hubcommunity

作者 (author): LKP kunpeng.liao@abiosciences.com Skill 及脚本参数来源: Chen et al., 2025, Cancer Cell 43, 1656–1676, https://doi.org/10.1016/j.ccell.2025.06.020

scMetabolism 单细胞代谢定量

按 KEGG 代谢通路对单细胞打代谢活性分。

安装

# Windows 下已装 scMetabolism 时直接 library;安装:
remotes::install_github("YosefLab/VISION")
remotes::install_github("wu-yc/scMetabolism")

核心调用(Seurat v5 兼容写法)

library(scMetabolism)
# 关键:sc.metabolism.Seurat() 直接访问 Seurat v5 的 @counts 槽会失败,
# 必须用底层矩阵版 sc.metabolism()
countexp <- Seurat::GetAssayData(obj, assay = "RNA", layer = "counts")  # 稀疏矩阵
metab <- sc.metabolism(
  countexp        = countexp,
  method          = "AUCell",    # 本项目用 AUCell(另一选项 "VISION")
  imputation      = FALSE,
  ncores          = 2,
  metabolism.type = "KEGG"       # 代谢基因集取 KEGG(另有 GO/REACTOME)
)
# metab$metabolism:通路 × 细胞 的活性矩阵

下游汇总与热图

library(Seurat); library(pheatmap)
obj[["METABOLISM"]] <- CreateAssayObject(counts = metab$metabolism)
# 按细胞类型求均值
avg <- aggregate(t(metab$metabolism), by = list(celltype = obj$celltype), FUN = mean)
mat <- t(avg[, -1]); colnames(mat) <- avg$celltype
# 挑目标通路(如戊糖磷酸途径、糖酵解/糖异生、缬氨酸/亮氨酸/异亮氨酸降解与生物合成、
#           类固醇生物合成、谷胱甘肽代谢、膦酸酯代谢)
pheatmap(mat[selected_pathways, ], scale = "row",
         treeheight_row = 0, treeheight_col = 0)

常见坑

  1. Seurat v5 必须用矩阵接口:sc.metabolism.Seurat() 读 @counts 槽报错(v5 无该槽),改 GetAssayData(layer="counts") + 底层 sc.metabolism()
  2. imputation=F:插补(NNLS 去卷积)会改变通量分布,论文口径不插补
  3. AUCell 输出是相对活性:跨样本比较前按条件分层展示,不做绝对定量解读
  4. ncores:Windows 多核偶发内存暴涨,2 稳妥
  5. 输入建议去除正常参考亚群:如恶性 ductal 分析时剔除非恶性 D01_Ductal-CFTR 再打分