火山图绘制

纳入数据

差异分析的数据
保证差异分析的数据包含p值,foldchange数据,以及根据前两者区分上下调基因的分类

导入基因

set.seed(123)
logFC <- rnorm(100, mean=0, sd=1)
pvalue <- runif(100, 0, 0.05)
gene_names <- paste("Gene", 1:100, sep="")
data <- data.frame(logFC=logFC, pvalue=pvalue, gene_names=gene_names)

对基因进行上下调分类

data$group <- ifelse(data$pvalue > 0.05, "NS", 
                            ifelse(data$pvalue < 0.05 & data$logFC > 0.7, "Up", 
                                   ifelse(data$pvalue < 0.05 & data$logFC < -0.7, "Down", "NS")))

绘制图形

初步绘制

ggplot(data, aes(x=logFC, y=-log10(PValue))) +
  geom_point(aes(color=group, size=abs(logFC)),  alpha=0.8) +
  labs(title="Volcano Plot", x="log2 Fold Change", y="-log10(p-value)") +
  geom_hline(yintercept=-log10(0.05), linetype="dashed", color="black") +
  geom_vline(xintercept=c(-0.7, 0.7), linetype="dashed", color="black") +
  scale_size(range = c(0.5, 3)) + 
  guides(size = guide_legend(override.aes = list(alpha = 1)))+
  theme_bw()

添加注释

sig_genes <- subset(data, pvalue < 0.01 & abs(logFC) > 1)

ggplot(data, aes(x=logFC, y=-log10(pvalue))) +
  geom_point(aes(color=pvalue), alpha=0.8) +
  scale_color_gradient(low="black", high="red") +
  labs(title="Volcano Plot", x="log2 Fold Change", y="-log10(p-value)") +
  annotate("text", x=sig_genes$logFC, y=-log10(sig_genes$pvalue),
           label=sig_genes$gene_names, size=3, color="blue")

火山图

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

生信小鹏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值