打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
R画图-火山图

本文将会教大家用ggplot2画一个RNAseq差异表达后常见的一个图——火山图。

下边是我们用DESeq2得到的差异表达的基因的一个表格情况。我们只需要用到logFC(log10Fold Change)和padj(校正后的p value)作图。所以我就只以这两列为例,作图。

首先,生成包含logFC和padj的一个数据集。

logFC <>10000,mean=0,sd=4),1000,replace = T)padj <->10000, 0, 0.08) ,1000,replace = T)

sample是随机抽样的一个函数,rnorm从生成正态分布中生成数,而runif则是从生成均匀分布中生成数。

把刚刚生成的数做成一个数据框:

data <- data.frame(logfc="">

为了后续画图方便,我们先把数据作一下分类。在这里,我们把fold change大于-2和小于2,以及padj < 0.05="">

data$sig[(data$padj > 0.05|data$padj=='NA')|(data$logFC <>2)& data$logFC > -2] <->'no'data$sig[data$padj <=>0.05 & data$logFC >= 2] <->'up'data$sig[data$padj <=>0.05 & data$logFC <=>2] <->'down'

好,可以开始画图了:

# 选最大值作为xlim的上下边界x_lim <->

我们把padj做了一个-log10的变换:

# 绘制火山图p <->1*log10(padj),color = sig))+geom_point()+ xlim(-x_lim,x_lim) + labs(x='log2(FC)',y='-log10(FDR)')+ ggtitle('Volcano plot')print(p)

关于上边不了解的参数,建议可以尝试自己调整和删减,查看图片的变化,就可以知道这个参数是什么作用了。

由于fold change大于-2和小于2,以及padj < 0.05="">

volcano <- p="" +="" scale_color_manual(values="">'#619cff','grey','#f8766d'))print(volcano)

再添加几条阈值的线:

volcano <- volcano="" +="" geom_hline(aes(yintercept="">1*log10(0.05)),colour='black', linetype='dashed') + geom_vline(xintercept=c(-2,2),colour='black', linetype='dashed')print(volcano)

保存刚刚做好的图:

ggsave(('Volcano.png',volcano,device = 'png')

最后附上完整代码:

logFC <>10000,mean=0,sd=4),1000,replace = T)padj <->10000, 0, 0.08) ,1000,replace = T)data <- data.frame(logfc="logFC,padj=padj)data$sig[(data$padj"> 0.05|data$padj=='NA')|(data$logFC <>2)& data$logFC > -2] <->'no'data$sig[data$padj <=>0.05 & data$logFC >= 2] <->'up'data$sig[data$padj <=>0.05 & data$logFC <=>2] <->'down'# 选最大值作为xlim的上下边界x_lim <-># 绘制火山图p <->1*log10(padj),color = sig))+geom_point()+ xlim(-x_lim,x_lim) + labs(x='log2(FC)',y='-log10(FDR)')+ ggtitle('Volcano plot')print(p)volcano <- p="" +="" scale_color_manual(values="">'#619cff','grey','#f8766d'))print(volcano)volcano <- volcano="" +="" geom_hline(aes(yintercept="">1*log10(0.05)),colour='black', linetype='dashed') + geom_vline(xintercept=c(-2,2),colour='black', linetype='dashed')print(volcano)ggsave(('Volcano.png',volcano,device = 'png')
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
火山图(Volcano Plot)
R语言学习 - 火山图
Volcano plots of microarray data | The Bioinformat...
RNA-seq结果图片如何解读?(第一弹)
DESeq2差异表达分析(二)
TCGA数据分析系列之火山图
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服