差异分析|edgeR包

作者: 小杜的生信筆記 | 来源:发表于2021-11-30 13:22 被阅读0次

    获取本章节数据和代码:关注微信公众号:小杜的生信筆記(ID:Du_Bioinformatics),回复关键词:edgeR差异分析

    简介

    edgeR包也是用于做差异分析的包,也算是比较常用的方法。对于我自己来做分析,edgeR包主要是用来做没有重复的数据差异分析。如果你的数据没有重复,那么建议使用edgeR包来做差异,但是在实验设计是没有设置重复,那么你得想清楚哦!(仅个人观点)

    edgeR给出的描述如下下,你可以详细阅读edgeR帮助文档。

    image.png

    1 数据准备

    我们使用前面DESeq2差异分析中的数据(注:我们有重复),我们的数据仅是练习数据,没有任何参考价值。

         Control_01 Control_02 Control_03 Treat_01 Treat_02 Treat_03
    gene01         11         11         11       10       11       10
    gene02         14         14         14       13       14       13
    gene03         14         14         14       13       14       13
    gene04          7          7          7        6        7        6
    gene05         11         11         11       11       11       10
    gene06         14         14         14       13       14       12
    

    2 导入相关包

    #install.packages("fdrtool")
    #install.packages("edgeR")
    library(edgeR)
    library("fdrtool") 
    

    3 导入数据

    rawdata <- read.table("Countdata.txt", header = T, row.names = 1)
    head(rawdata)
    

    制作样本文件的注释信息

    group <- factor(c(rep("CK",3),rep("Treat",3)))
    

    4 数据处理

    过滤与标准化

    y <- DGEList(counts = rawdata, genes = rownames(rawdata), group = group)
    #过滤
    keep <- rowSums(cpm(y)>1) >= 1
    y <- y[keep,,keep.lib.sizes=FALSE]
    ##TMM 标准化
    y <- calcNormFactors(y)
    y$samples
    

    5 数据分析

    ###推测离散度,若样本是人,设置bcv = 0.4,模式生物设置0.1(此处是根据有相关教程进行设置,也可以你根据你的结果自行设置,最终得到你的理想值)
    
    bcv <- 0.2
    et <- exactTest(y, dispersion=bcv^2)
    topTags(et)
    summary(de <- decideTestsDGE(et))
    ###图形展示检验结果
    png('0h_vs_2h_MAplot.png')
    detags <- rownames(y)[as.logical(de)];
    plotSmear(et, de.tags=detags)
    abline(h=c(-4, 4), col="blue");
    dev.off()
    
    image.png

    6 矫正P值

    #矫正P值
    res <- DE
    head(DE)
    res$FDRP <- p.adjust(res$PValue,method = "fdr",n=length(res$PValue))
    #res$logP <- -log10(res$FDRP)
    head(res)
    

    [图片上传失败...(image-909522-1638249704871)]

    7 筛选出差异基因

    ## 筛选出差异基因
    ## 筛选标准 FDR < 0.05,|logFC| > 1
    diffsig <- res[(res$FDRP < 0.05 & abs(res$logFC) > 1),]
    dim(diffsig)
    ###----------
    > dim(diffsig)
    [1] 751   5
    

    共得到751个差异基因


    筛选上调和下调的基因,并进行标识,方法与前面的一致。

    ## 新增一列,标显著性
    res$Group <- "Not"
    ######
    res$Group[which((res$FDRP < 0.05) & (res$logFC > 1))] = "Up"
    res$Group[which((res$FDRP < 0.05) & (res$logFC < -1))] = "Down"
    #### 查看DE数目
    table(res$Group)
    #-----------
    > table(res$Group)
     Down   Not    Up 
      517 14862   234 
    

    叮! edgeR差异分析到此结束,就是这样的简单。差异火山图和热图,可参考以前的文章即可。


    image.png

    “小杜的生信筆記” 公众号、知乎、简书、B站平台,主要发表或收录生物信息学的教程,以及基于R的分析和可视化(包括数据分析,图形绘制等);分享感兴趣的文献和学习资料!

    差异分析|使用limma包

    差异分析 | DESeq2包

    相关文章

      网友评论

        本文标题:差异分析|edgeR包

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