美文网首页
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

    相关文章

      网友评论

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

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