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

在R中基于Seurat对象绘制基因在癌与正常成纤维细胞的表达散点图

用Seurat绘制同一基因在两种成纤维细胞中的表达散点图

要对比X基因在癌成纤维细胞和正常成纤维细胞中的表达水平,你提到的FeatureScatter默认是展示同一细胞中两个不同基因的表达关系,并不直接适用于不同细胞类型的同一基因对比。可以通过以下步骤实现需求:

步骤1:筛选目标细胞群体

首先从你的Seurat对象cells4中提取癌成纤维细胞和正常成纤维细胞,假设细胞类型信息存储在元数据的cell_type列中:

# 筛选癌成纤维细胞
caf_cells <- subset(cells4, subset = cell_type == "癌成纤维细胞")
# 筛选正常成纤维细胞
normal_fib_cells <- subset(cells4, subset = cell_type == "正常成纤维细胞")

注意:替换cell_type和细胞类型名称为你实际数据中的对应内容。

步骤2:提取目标基因的表达值并整理数据

提取X基因在两组细胞中的表达量,由于两组细胞数量可能不一致,我们可以随机抽样使两组样本量匹配,避免散点图过度拥挤:

# 提取X基因表达
caf_expr <- FetchData(caf_cells, vars = "X基因")
colnames(caf_expr) <- "CAF_X"
normal_expr <- FetchData(normal_fib_cells, vars = "X基因")
colnames(normal_expr) <- "Normal_X"

# 匹配两组样本量
sample_size <- min(nrow(caf_expr), nrow(normal_expr))
caf_sample <- caf_expr[sample(nrow(caf_expr), sample_size), , drop = FALSE]
normal_sample <- normal_expr[sample(nrow(normal_expr), sample_size), , drop = FALSE]

# 合并为绘图数据框
plot_data <- cbind(caf_sample, normal_sample)

步骤3:绘制散点图

用ggplot2绘制散点图,直观展示X基因在两种细胞中的表达关系:

library(ggplot2)
ggplot(plot_data, aes(x = CAF_X, y = Normal_X)) +
  geom_point(alpha = 0.5) +  # alpha参数调整点的透明度,避免重叠
  labs(
    x = "X基因在癌成纤维细胞中的表达",
    y = "X基因在正常成纤维细胞中的表达",
    title = "X基因在两种成纤维细胞中的表达对比"
  ) +
  theme_classic()

额外说明

  • 如果不需要严格匹配样本量,可以直接将两组表达值按行绑定后用geom_jitter替代geom_point,减少点的重叠
  • 若想同时展示表达分布,可以在散点图基础上添加密度曲线或箱线图辅助分析

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 22:03:13