You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Seurat中计算LSC17干细胞得分并映射到UMAP?

基于Seurat计算LSC17加权干细胞性得分并映射到UMAP

核心说明

Seurat的AddModuleScore是计算无权重的基因模块平均得分,无法直接整合LSC17的特定加权系数,因此需要手动实现加权求和逻辑,步骤如下:


步骤1:定义LSC17基因-权重对应表

先整理Ng等人2016年研究中的基因与对应系数,确保基因名和你的Seurat对象基因名完全匹配(注意大小写、前缀后缀一致性):

# 定义LSC17基因及加权系数
lsc17_weights <- c(
  DNMT3B = 0.0874,
  ZBTB46 = -0.0347,
  NYNRIN = 0.00865,
  ARHGAP22 = -0.0138,
  LAPTM4B = 0.00582,
  MMRN1 = 0.0258,
  DPYSL3 = 0.0284,
  KIAA0125 = 0.0196,
  CDK6 = -0.0704,
  CPXM1 = -0.0258,
  SOCS2 = 0.0271,
  SMIM24 = -0.0226,
  EMP1 = 0.0146,
  NGFRAP1 = 0.0465,
  CD34 = 0.0338,
  AKR1C3 = -0.0402,
  GPR56 = 0.0501
)

# 检查基因是否存在于Seurat对象中
missing_genes <- setdiff(names(lsc17_weights), rownames(seurat_obj@assays$RNA@data))
if (length(missing_genes) > 0) {
  warning(paste("未找到的基因:", paste(missing_genes, collapse = ", ")))
}

步骤2:计算加权LSC17得分

提取标准化后的表达矩阵(建议用scaled数据,避免原始计数的量级干扰),逐细胞计算加权求和:

# 提取RNA assay的标准化表达矩阵
expr_matrix <- seurat_obj@assays$RNA@scaled.data

# 过滤出存在于对象中的LSC17基因
valid_genes <- names(lsc17_weights)[names(lsc17_weights) %in% rownames(expr_matrix)]
expr_lsc17 <- expr_matrix[valid_genes, ]

# 计算每个细胞的LSC17得分:表达量 × 对应权重的矩阵乘法
lsc17_scores <- as.vector(t(expr_lsc17) %*% lsc17_weights[valid_genes])

# 将得分添加到Seurat对象的元数据中
seurat_obj$LSC17_Stemness_Score <- lsc17_scores

步骤3:映射得分到UMAP可视化

用Seurat自带的FeaturePlot绘制UMAP上的得分分布:

# 绘制LSC17干细胞性得分的UMAP图
FeaturePlot(seurat_obj, features = "LSC17_Stemness_Score", label = TRUE, repel = TRUE) +
  scale_color_viridis_c(option = "plasma") # 可选:调整颜色渐变方案

关键注意事项

  • 必须使用标准化后的表达数据:原始计数(counts)因基因表达量级差异,会导致加权结果偏差
  • 基因名匹配是核心:如果你的Seurat对象基因名是小写/带前缀(如ENSG),需提前用tolower()或字符串处理统一格式
  • 若存在缺失基因:可保留现有基因计算得分,但需在结果报告中注明缺失情况

内容的提问来源于stack exchange,提问作者Jack Pep

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.15 11:33:43