美文网首页
RNA-SEQ(四):火山图

RNA-SEQ(四):火山图

作者: 生信小白花 | 来源:发表于2022-09-08 16:40 被阅读0次

题目:DEseq2差异分析得到的差异基因做火山图。

目的:火山图可反映总体基因的表达情况,通过不同的颜色醒目的展示差异基因的情况。

内容:1. 对DEseq2分析得到的差异基因进行筛选。

2.筛选的得到的基因定义上下调基因。

3. 用ggplot包绘图。

数据:DEseq2差异分析得到的差异基因列表。(如下:deseq2差异分析得到的数据)

image.png

工具:Rstudio。

步骤:

  1. 筛选差异基因,设置了不同条件进行统计,差异基因很多,所以最终确定的筛选条件为pvalue<0.05 & abs(log2oldchange) >1。

  2. 定义log2oldchange>1的为上调基因,log2oldchange<-1的为下调基因。

  3. 对筛选得到的基因做火山图。脚本如下:

library(ggplot2)
library(ggrepel)  #用于标记的包

library(pheatmap)
library(export)
# 读取火山图数据文件
setwd("E:/造血干/ccx/差异分析")
#打开全部未筛选差异基因

data <- read.csv("h9_d2DEG.csv", header=TRUE)
# 建议您的文件里对应的名称跟demo数据一致,这样不用更改后续代码中的变量名称
colnames(data)[1] <- c("Name")


data <- data[,c(1,3,7)]
data <- na.omit(data)

log2FC = 1.5 # 用来判断上下调,一般蛋白质组的项目卡1.5
pvalue = 0.01 #用来判断上下调

# 判断每个基因的上下调,往数据框data里新增了sig列
data$sig[(-1*log10(data$padj) < -1*log10(pvalue)|data$padj=="NA")| data$log2FoldChange < log2FC & data$log2FoldChange > -(log2FC)] <- "NotSig"
data$sig[-1*log10(data$padj) >= -1*log10(pvalue) & data$log2FoldChange >= log2FC] <- "Up"
data$sig[-1*log10(data$padj) >= -1*log10(pvalue) & data$log2FoldChange <= -(log2FC)] <- "Down"

View(data$sig)
#标记上下调基因数目
this_tile <- paste0('Cutoff for logFC is ',round(1.5,2),
                    '\nThe number of up gene is ',nrow(data[data$sig =="Up",]) ,
                    '\nThe number of down gene is ',nrow(data[data$sig =="Down",]))                 
this_tile
# 标记特殊基因名方式(一)
# 根据数据框中的Marker列,1的为标记,0的为不标记
#data$label=ifelse(data$Marker == 1, as.character(data$Name), '')
# (或)标记方式(二)
# 根据PValue小于多少和log[2]FC的绝对值大于多少筛选出合适的点
PvalueLimit = 5.615066e-159
#FCLimit =5   data$label=ifelse(data$padj < PvalueLimit & abs(data$log2FoldChange) >= FCLimit, as.character(data$Name), '')
data$label=ifelse(data$padj < PvalueLimit , as.character(data$Name), '')
data$label
# 绘图
ggplot(data,aes(log2FoldChange,-1*log10(padj))) +    # 加载数据,定义横纵坐标
  geom_point(aes(color = sig)) +                           # 绘制散点图,分组依据是数据框的sig列
  xlab("log2 fold change") + 
  ylab("-log10 p-value") +
  ggtitle( this_tile ) +                             # 定义标题,x轴,y轴名称
 # scale_color_manual(values = c("blue","green","red")) + # 自定义颜色,将values更改成你想要的三个颜色
 scale_color_manual(values=c("#546de5", "#d2dae2","#ff4757"))+
  geom_hline(yintercept=-log10(pvalue),linetype=2)+        # 在图上添加虚线
  geom_vline(xintercept=c(-(log2FC),log2FC),linetype=2)+ # 在图上添加虚线
  geom_text_repel(aes(x = log2FoldChange,                   # geom_text_repel 标记函数
                      y = -1*log10(padj),          
                      label=label),                       
                  max.overlaps = 10000,                    # 最大覆盖率,当点很多时,有些标记会被覆盖,调大该值则不被覆盖,反之。
                  size=3,                                  # 字体大小
                  box.padding=unit(0.5,'lines'),           # 标记的边距
                  point.padding=unit(0.1, 'lines'), 
                  segment.color='black',      
                  show.legend=FALSE)                      # 标记线条的颜色
graph2ppt(file="d2gene_Volcano-name.ppt", width=10, aspectr=1)##或者4*6pdf保存

结果图

image.png

相关文章

  • 画火山图

    volcano plot 火山图 火山图(Volcano Plot)是做RNA-Seq分析的时候特别常用的一张图,...

  • RNA-SEQ(四):火山图

    题目:DEseq2差异分析得到的差异基因做火山图。 目的:火山图可反映总体基因的表达情况,通过不同的颜色醒目的展示...

  • RNA-seq-Li

    李老师RNA-seq PRC1.6-Gene和PRC1.6-Repeat数据分析 读取要处理的文件 火山图统计上下...

  • R包biomaRt: 转换ID、注释基因、GO通路

    从我写的RNA-seq摸索:4. edgeR/limma/DESeq2差异基因分析→ggplot2作火山图→bio...

  • 一个比较简洁的火山图作图包

    又是火山图: 火山图。。。。。真的很多了ggplot做火山图---添加任意基因标签|||突出显示标记基因[http...

  • ggplot做对角线火山图---与单细胞差异基因可视化更配哦

    火山图又双叒叕来了,之前做的火山图已经很精美了。 1、绝美!差异基因火山图大全![http://mp.weixin...

  • 火山图

    火山图 library(ggplot2) 4. 画图 r03 = ggplot(data,aes(log2FC,-...

  • 火山图

    画第一张图 画第二张图

  • 火山图

    在分析RNAseq和microarray数据的差异基因的时候,常常用到火山图,需要的数据是包含Fold chang...

  • 火山图

    标准的火山图常用于展示显著差异表达的基因,这里有两个关键词:显著是指P<0.05,差异表达一般我们按照Fold C...

网友评论

      本文标题:RNA-SEQ(四):火山图

      本文链接:https://www.haomeiwen.com/subject/kksonrtx.html