精华内容
下载资源
问答
  • Deseq2

    2021-09-05 16:05:11
    =0,] dim(mycounts_1) mymeta("mymeta.csv",stringsAsFactors =T) mymeta colnames(mycounts_1)==mymeta$id library(DESeq2) dds(countData=mycounts_1, colData=mymeta, design=~dex) dds<-DESeq(dds) res(dds) ...
    mycounts<-read.csv("gene_count_matrix.csv",row.names=1)
    head(mycounts)
    dim(mycounts)
    mycounts_1<-mycounts[rowSums(mycounts) !=0,]
    dim(mycounts_1)
    mymeta<-read.csv("mymeta.csv",stringsAsFactors =T)
    mymeta
    colnames(mycounts_1)==mymeta$id
    library(DESeq2)
    dds<-DESeqDataSetFromMatrix(countData=mycounts_1,
                                colData=mymeta,
                                design=~dex)
    dds<-DESeq(dds)
    res<-results(dds)
    head(res)
    class(res)
    res_1<-data.frame(res)
    library(dplyr)
    res_1 %>%
      mutate(group = case_when(
        log2FoldChange >= 2 & padj <= 0.05 ~"up",
        log2FoldChange <= -2 & padj <=0.05 ~"DOWN",
        TRUE ~ "NOT_CHANGE"
      )) -> res_2
    table(res_2$group)
    write.csv(res_2,file="R_S_diff_expr_result.csv",
              quote = F)
    

    需要文件:

    gene_count_matrix.csv
    mymeta.csv
    file=“R_S_diff_expr_result.csv”

    展开全文
  • deseq2手册

    2015-04-21 08:17:09
    DESeq2 的最新manual (Nov. 2014)
  • rna-dge-salmon-deseq2 使用Salmon,tximport和DESeq2对FastQ文件执行差异分析 在上查看完整的文档
  • DESeq2详解

    千次阅读 2021-02-26 14:40:22
    DESeq2详解 先了解完整的分析流程和工具:http://blog.sina.com.cn/s/blog_9cf2d3640102x9kx.html 这是一个系列文,包括:从标准的workflow开始,到更高级的数据操作和workflow个性化,最后是DESeq2的统计学原理...

    DESeq2详解

    先了解完整的分析流程和工具:http://blog.sina.com.cn/s/blog_9cf2d3640102x9kx.html

    这是一个系列文,包括:从标准的workflow开始,到更高级的数据操作和workflow个性化,最后是DESeq2的统计学原理以及常见的question解答

    本文介绍在差异表达分析之前的操作步骤,主要是DESeq2导入数据和预处理,DESeq2对导入不同数据类型兼容性很好。

    导入数据

    Why un-normalized counts? DESeq2要求输入的数据必须是没有标准化的raw count,第i行第j列代表着在样本j分配到featrue(i)
    的reads数或fragemnts数(feature可以是基因、转录本、ChIP-seq等NGS测的对应区段bin、定量质谱中的某肽段序列)至于怎么获取count data参考:http://master.bioconductor.org/packages/release/workflows/html/rnaseqGene.html

    因为DESeq2模型内部本身会对文库大小做校正,所以不要用已经对文库做过scaled的数据

    关于DESeqDataSet对象

    这个对象实际上是继承于RangedSummarizedExperiment对象的(来自SummarizedExperiment package)也就是说从assay里获取的每一行(counts)都可以和genomic ranges关系上(比如gene exon/transcript)
    这个关联对于下游进一步个性化分析非常有用,比如可以通过DESeq2获取了差异表达基因,对比ChIP-seq数据寻找在基因组坐标上距离该差异基因最近的ChIP-seq peaks

    modeling中重要的一步就是design formula,添加适当的变量(DESeq2基于负二项分布线性模型)默认是把control放在前面,感兴趣变量放在后面:design~control+variable

    四种构建DESeqDataSet对象的方法

    Transcript abundance files and tximport / tximeta

    pipeline里推荐的一步是使用快速转录本定量工具获取counts,比如

    • Salmon (Patro et al. 2017)
    • Sailfish (Patro, Mount, and Kingsford 2014)
    • kallisto (Bray et al. 2016)
    • RSEM (Li and Dewey 2011)

    再用定量数据导入工具tximport导入,直接可以为DESeq2所用

    前三者是alignment-free或只是“轻度比对”,具有可以校正在不同样本中基因长度不同(不同isoform)速度快、省内存、省bam文件存储、灵敏度高的优点,参考https://www.bioinfo-scrounger.com/archives/411/

    和 https://www.jianshu.com/p/6d4cba26bb60

    Salmon软件使用说明:https://combine-lab.github.io/salmon/getting_started/

    示例数据演示( gene-level DESeqDataSet object from Salmon quant.sf files),分析自己的数据时dir更改为/path/to/quant/files,这里tximportData包只是为了提供演示数据而已,做自己的数据分析时不需要

    library("tximport")

    library("readr")

    library("tximportData")

    dir <- system.file("extdata", package="tximportData")

    samples <- read.table(file.path(dir,"samples.txt"), header=TRUE)

    samples$condition <- factor(rep(c("A","B"),each=3))

    # pop center                assay    sample experiment       run condition

    # 1 TSI  UNIGE NA20503.1.M_111124_5 ERS185497  ERX163094 ERR188297         A

    # 2 TSI  UNIGE NA20504.1.M_111124_7 ERS185242  ERX162972 ERR188088         A

    # 3 TSI  UNIGE NA20505.1.M_111124_6 ERS185048  ERX163009 ERR188329         A

    # 4 TSI  UNIGE NA20507.1.M_111124_7 ERS185412  ERX163158 ERR188288         B

    # 5 TSI  UNIGE NA20508.1.M_111124_2 ERS185362  ERX163159 ERR188021         B

    # 6 TSI  UNIGE NA20514.1.M_111124_4 ERS185217  ERX163062 ERR188356         B

    rownames(samples) <- samples$run

    samples[,c("pop","center","run","condition")]

     

    ##           pop center       run condition

    ## ERR188297 TSI  UNIGE ERR188297         A

    ## ERR188088 TSI  UNIGE ERR188088         A

    ## ERR188329 TSI  UNIGE ERR188329         A

    ## ERR188288 TSI  UNIGE ERR188288         B

    ## ERR188021 TSI  UNIGE ERR188021         B

    ## ERR188356 TSI  UNIGE ERR188356         B

     

    #读取每个run数据

    files <- file.path(dir,"salmon", samples$run, "quant.sf.gz")

    names(files) <- samples$run

    #把转录本和gene关联起来的table

    tx2gene <- read_csv(file.path(dir, "tx2gene.gencode.v27.csv"))

     

    #用tximport function导入转录本定量数据

    #关于tximport函数的详细说明和怎么构建tx2gene把转录本和基因对应上,参考:http://bioconductor.org/packages/release/bioc/html/tximport.html

    txi <- tximport(files, type="salmon", tx2gene=tx2gene)

    # reading in files with read_tsv

    # 1 2 3 4 5 6

    # summarizing abundance

    # summarizing counts

    # summarizing length

     

    library("DESeq2")#依赖包非常丰富,其中就包括了GenomicRanges、SummarizedExperiment等

    ddsTxi <- DESeqDataSetFromTximport(txi,

                                       colData = samples,

                                       design = ~ condition)

    #using counts and average transcript lengths from tximport

     

    #tximeta这个包还可以自动添加annotation metadata(会自动下载gtf文件),不需要tx2gene,详见https://bioconductor.org/packages/tximeta

    coldata <- samples

    coldata$files <- files

    coldata$names <- coldata$run

    library("tximeta")

    se <- tximeta(coldata)

    ddsTxi <- DESeqDataSet(se, design = ~ condition)

    #ddsTxi object here can then be used as dds in the following analysis steps

    Count matrix input

    关于DESeqDataSetFromMatrix函数, 需要提供的输入对象包括表达矩阵(count-matrix)、样本信息samples (the columns of the count matrix) ,样本信息制作成dataframe,然后就是design formula.

    示例数据来自pasilla包http://bioconductor.org/packages/pasilla

    library("pasilla")#示例数据来自pasillahttp://bioconductor.org/packages/pasilla

    pasCts <- system.file("extdata",

                          "pasilla_gene_counts.tsv",

                          package="pasilla", mustWork=TRUE)

    pasAnno <- system.file("extdata",

                           "pasilla_sample_annotation.csv",

                           package="pasilla", mustWork=TRUE)

    cts <- as.matrix(read.csv(pasCts,sep="\t",row.names="gene_id"))

    coldata <- read.csv(pasAnno, row.names=1)

    coldata <- coldata[,c("condition","type")]

    #注意检查colDatacount matrixrowname是否完全一致

    head(cts,2)

    ##             untreated1 untreated2 untreated3 untreated4 treated1 treated2

    ## FBgn0000003          0          0          0          0        0        0

    ## FBgn0000008         92        161         76         70      140       88

    ##             treated3

    ## FBgn0000003        1

    ## FBgn0000008       70

    coldata

    ##              condition        type

    ## treated1fb     treated single-read

    ## treated2fb     treated  paired-end

    ## treated3fb     treated  paired-end

    ## untreated1fb untreated single-read

    ## untreated2fb untreated single-read

    ## untreated3fb untreated  paired-end

    ## untreated4fb untreated  paired-end

    rownames(coldata) <- sub("fb", "", rownames(coldata))

    all(rownames(coldata) %in% colnames(cts))#修改rownames

    ## [1] TRUE

    all(rownames(coldata) == colnames(cts))#order不一致

    ## [1] FALSE

    cts <- cts[, rownames(coldata)]#重排一下

    all(rownames(coldata) == colnames(cts))

    ## [1] TRUE

    library("DESeq2")

    dds <- DESeqDataSetFromMatrix(countData = cts,

                                  colData = coldata,

                                  design = ~ condition)

    dds

    # class: DESeqDataSet

    # dim: 14599 7

    # metadata(1): version

    # assays(1): counts

    # rownames(14599): FBgn0000003 FBgn0000008 ... FBgn0261574 FBgn0261575

    # rowData names(0):

    #   colnames(7): treated1 treated2 ... untreated3 untreated4

    # colData names(2): condition type

     

    #如果有额外的meatdata要添加,可以直接添加到DESeqDataSet(这里只是为了演示)

    featureData <- data.frame(gene=rownames(cts))

    mcols(dds) <- DataFrame(mcols(dds), featureData)

    mcols(dds)

    # DataFrame with 14599 rows and 1 column

    # gene

    # <factor>

    #   FBgn0000003 FBgn0000003

    # FBgn0000008 FBgn0000008

    # FBgn0000014 FBgn0000014

    # FBgn0000015 FBgn0000015

    # FBgn0000017 FBgn0000017

    # ...                 ...

    # FBgn0261571 FBgn0261571

    # FBgn0261572 FBgn0261572

    # FBgn0261573 FBgn0261573

    # FBgn0261574 FBgn0261574

    # FBgn0261575 FBgn0261575

    htseq-count input

    如果是用HTSeq做的转录本定量,可以用DESeqDataSetFromHTSeqCount导入数据,同样这里用的演示数据:

    directory <- system.file("extdata", package="pasilla",

                             mustWork=TRUE)

    #list.files选择要读入的数据,并规定只读取包含"treated"字符串的文件

    sampleFiles <- grep("treated",list.files(directory),value=TRUE)

    sampleCondition <- sub("(.*treated).*","\\1",sampleFiles)#condition用于制作colData

    sampleTable <- data.frame(sampleName = sampleFiles,

                              fileName = sampleFiles,

                              condition = sampleCondition)#需要把每一个文件和condition对应起来

    library("DESeq2")

    ddsHTSeq <- DESeqDataSetFromHTSeqCount(sampleTable = sampleTable,

                                           directory = directory,

                                           design= ~ condition)

    ddsHTSeq

    # class: DESeqDataSet

    # dim: 70463 7

    # metadata(1): version

    # assays(1): counts

    # rownames(70463): FBgn0000003:001 FBgn0000008:001 ... FBgn0261575:001

    # FBgn0261575:002

    # rowData names(0):

    #   colnames(7): treated1fb.txt treated2fb.txt ... untreated3fb.txt

    # untreated4fb.txt

    # colData names(1): condition

    SummarizedExperiment input

    示例数据来自airway,这是一个非常经典的RNA-seq测试数据,导入后实际上是一个RangedSummarizedExperiment 对象,简称为"se",如果不熟悉请参考:http://bioconductor.org/packages/release/data/experiment/html/airway.html

    library("airway")

    data("airway")

    se <- airway

    library("DESeq2")

    ddsSE <- DESeqDataSet(se, design = ~ cell + dex)

    ddsSE

    # class: DESeqDataSet

    # dim: 64102 8

    # metadata(2): '' version

    # assays(1): counts

    # rownames(64102): ENSG00000000003 ENSG00000000005 ... LRG_98 LRG_99

    # rowData names(0):

    #   colnames(8): SRR1039508 SRR1039509 ... SRR1039520 SRR1039521

    # colData names(9): SampleName cell ... Sample BioSample

    数据预处理

    尽管在使用DESeq2函数前过滤低count的gene并不是必须的,但预过滤数据的好处是,去除那些只有很少reads的行以后,可以减少dds的存储,增加程序运行速度。这里演示一下简单的过滤,只保留那些至少有10条reads的基因。至于更严格的过滤方法( independent filtering ),以后我会在推文里写到。

    keep <- rowSums(counts(dds)) >= 10#对行求和函数rowSums()

    dds <- dds[keep,]

    关于因子水平

    和limma里面的contrast 类似的是,DESeq2同样最好说明清楚哪个因子level对应的control,避免后面解释数据遇到麻烦(你不知道到底logFC是以谁做参照的,我们希望是以control作为参照,这样logFC>1就表示实验组表达大于对照组;但是R不知道,R默认按字母顺序排列因子顺序,所以我们要对这个因子顺序set一下:

    #factor levels,写在前面的level作为参照

    dds$condition <- factor(dds$condition, levels = c("untreated","treated"))

    #或者用relevel函数

    dds$condition <- relevel(dds$condition, ref = "untreated")

    #如果对应的level没有样本,可以这样把对应level删除

    dds$condition <- droplevels(dds$condition)

    合并技术重复的数据

    DESeq2提供了一个collapseReplicates函数来把技术重复的样本数据合并到表达矩阵的一个列中;技术重复就是对同一样本测多次(multiple sequencing runs of the same library)。注意:不能对生物学重复数据用这种方法合并

    继续使用来自pasilla包的示例数据

    用results函数提取差异分析结果,默认的包括p-value,padj,log2foldchange,而且默认上述值是针对design里最后一个变量的,不过用户也可以自己规定针对什么变量,只要往results里添加参数name或者contrasts.

    dds <- DESeq(dds)
    res <- results(dds)
    res
    # log2 fold change (MLE): condition treated vs untreated 
    # Wald test p-value: condition treated vs untreated 
    # DataFrame with 14599 rows and 6 columns
    # baseMean      log2FoldChange             lfcSE
    # <numeric>           <numeric>         <numeric>
    #   FBgn0000003 0.171568715207063    1.02601368333522  3.80551160374507
    # FBgn0000008  95.1440789963134 0.00215175449141369 0.223883805414937
    # FBgn0000014  1.05657219346166  -0.496735199348756  2.16026616643833
    # FBgn0000015 0.846723274987709   -1.88276494877056  2.10643527029088
    # FBgn0000017   4352.5928987935  -0.240025038615816 0.126024321793908
    #如果要明确比较的变量,可以这样做
    res <- results(dds, name="condition_treated_vs_untreated")
    res <- results(dds, contrast=c("condition","treated","untreated"))

    Log fold change shrinkage for visualization and ranking

    表达量越低的基因,彼此之间离散程度越大,比如0和10的表达量就会显得方差相对很高;但是10010和10000也是差10但是相对表达量离散程度就很小,为了统计检验准确有效不受count数太大的影响,这里可以做shrink

    resultsNames(dds)#查看参数
    ## [1] "Intercept"                      "condition_treated_vs_untreated"
    #选择要shrink的参数
    resLFC <- lfcShrink(dds, coef="condition_treated_vs_untreated", type="apeglm")
    # using 'apeglm' for LFC shrinkage. If used in published research, please cite:
    #   Zhu, A., Ibrahim, J.G., Love, M.I. (2018) Heavy-tailed prior distributions for
    # sequence count data: removing the noise and preserving large differences.
    # Bioinformatics. https://doi.org/10.1093/bioinformatics/bty895
    resLFC
    #可以用as.data.frame方便查看res

    Using parallelization

    如果实验的设计更为复杂而且又大量样本,可以考虑并行计算,使用BiocParallel包

    Parallelizing DESeq, results, and lfcShrink can be easily accomplished by loading the BiocParallel package, and then setting the following arguments: parallel=TRUE and BPPARAM=MulticoreParam(4)

    或者一开始就声明好4核:

    library("BiocParallel")
    register(MulticoreParam(4))
    #像上述声明好后,在function里添加parallel=TRUE选项即可

    p-values and adjusted p-values

    resOrdered <- res[order(res$pvalue),]#按pvalue从小到大排列
    summary(res)
    # out of 12359 with nonzero total read count
    # adjusted p-value < 0.1
    # LFC > 0 (up)       : 521, 4.2%
    # LFC < 0 (down)     : 540, 4.4%
    # outliers [1]       : 1, 0.0081%
    # low counts [2]     : 4035, 33%
    # (mean count < 7)
    # [1] see 'cooksCutoff' argument of ?results
    # [2] see 'independentFiltering' argument of ?results
    sum(res$padj < 0.1, na.rm=TRUE)
    #results函数参数是很丰富的,建议?results查看,这里把默认pvalue=0.1设置成0.05
    res05 <- results(dds, alpha=0.05)
    summary(res05)
    # out of 12359 with nonzero total read count
    # adjusted p-value < 0.05
    # LFC > 0 (up)       : 406, 3.3%
    # LFC < 0 (down)     : 432, 3.5%
    # outliers [1]       : 1, 0.0081%
    # low counts [2]     : 3797, 31%
    # (mean count < 5)
    # [1] see 'cooksCutoff' argument of ?results
    # [2] see 'independentFiltering' argument of ?results
    sum(res05$padj < 0.05, na.rm=TRUE)

    Independent hypothesis weighting

    用IHW包对pvalue进行过滤,提高检验功效,通过给假设赋予权重进行多重检验
    http://bioconductor.org/packages/release/bioc/html/IHW.html

    library("IHW")
    resIHW <- results(dds, filterFun=ihw)
    summary(resIHW)
    # out of 12359 with nonzero total read count
    # adjusted p-value < 0.1
    # LFC > 0 (up)       : 498, 4%
    # LFC < 0 (down)     : 548, 4.4%
    # outliers [1]       : 1, 0.0081%
    # [1] see 'cooksCutoff' argument of ?results
    # see metadata(res)$ihwResult on hypothesis weighting
    sum(resIHW$padj < 0.1, na.rm=TRUE)
    metadata(resIHW)$ihwResult
    # ihwResult object with 14599 hypothesis tests 
    # Nominal FDR control level: 0.1 
    # Split into 8 bins, based on an ordinal covariate
    #注意,所有通过DESeq2这个包进行的计算结果都被存储在了DESeqDataSet或者DESeqResults对象中
    #怎么获取这些结果以后的推文会讨论

    探索、输出结果

    MA-plot

    每个点是一个gene,横坐标是平均的标准化counts,纵坐标是logFC

    plotMA(res, ylim=c(-2,2))

    #对log2 fold changes做了shrink以后

    plotMA(resLFC, ylim=c(-2,2))

    #交互式地判断每个点对应什么基因

    idx <- identify(res$baseMean, res$log2FoldChange)

    rownames(res)[idx]

    如果没有shrink就是这样,低表达量的基因往往离散程度更大

     

    MA-plot.png

    做了矫正后:

     

    MA_LFC.png

    其他的shrinkage estimators

    有时候对于一些数据集之前的shrink会过强,因此也可以考虑其他方法:
    通过修改lfcShrink参数type来指定

    The options for type are:

    normal is the the original DESeq2 shrinkage estimator, an adaptive Normal distribution as prior. This is currently the default, although the default will likely change to apeglm in the October 2018 release given apeglm’s superior performance.
    apeglm is the adaptive t prior shrinkage estimator from the apeglm package (Zhu, Ibrahim, and Love 2018).
    ashr is the adaptive shrinkage estimator from the ashr package (Stephens 2016). Here DESeq2 uses the ashr option to fit a mixture of Normal distributions to form the prior, with method="shrinkage".

    resultsNames(dds)

    # because we are interested in treated vs untreated, we set 'coef=2'

    resNorm <- lfcShrink(dds, coef=2, type="normal")

    resAsh <- lfcShrink(dds, coef=2, type="ashr")

     

    #比较三种shrink方法

    par(mfrow=c(1,3), mar=c(4,4,2,1))#修改图的展示方式

    xlim <- c(1,1e5); ylim <- c(-3,3)

    plotMA(resLFC, xlim=xlim, ylim=ylim, main="apeglm")

    plotMA(resNorm, xlim=xlim, ylim=ylim, main="normal")

    plotMA(resAsh, xlim=xlim, ylim=ylim, main="ashr")

     

    shrink_methods.png

    如果需要校正批次效应,在design里可以声明好batch factor,或者使用其他的包
    ,比如sva或者RUVseq去捕捉那些潜在会产生异质性数据的无关变量

    关于sva是什么,可以参考:https://journals.plos.org/plosgenetics/article?id=10.1371/journal.pgen.0030161

    实际上是帮助捕获并模拟那些我们观测或测定不了的会对生物学结果造成干扰的变量

    基因表达水平可以受很多因素影响,比如遗传、环境、人群、技术等。除了有些已知因素可以测量以外,很多因素实际上要么是未知的要么是无法测定或者过于复杂以至于不能在单一模型里很好地捕获它们。如果不能把这些因素造成的异质性考虑进去,实际上很有可能对研究结果产生较大的影响。本文介绍的SVA(‘surrogate variable analysis)是这样一种方法,它能够准确地捕获表达信息和任何建模变量间的关系,从而增强生物数据的准确性以及分析的可重复性。

    Plot counts

    #怎么检查某个基因在不同组里的表达情况?

    plotCounts(dds, gene=which.min(res$padj), intgroup="condition")

    #还可以用ggplot画

    d <- plotCounts(dds, gene=which.min(res$padj), intgroup="condition",

                    returnData=TRUE)

    library("ggplot2")

    ggplot(d, aes(x=condition, y=count)) +

      geom_point(position=position_jitter(w=0.1,h=0)) +

      scale_y_log10(breaks=c(25,100,400))

    关于Results

    #关于results的详细信息:变量和检验方法的查看

    mcols(res)$description

    ## [1] "mean of normalized counts for all samples"            

    ## [2] "log2 fold change (MLE): condition treated vs untreated"

    ## [3] "standard error: condition treated vs untreated"       

    ## [4] "Wald statistic: condition treated vs untreated"       

    ## [5] "Wald test p-value: condition treated vs untreated"    

    ## [6] "BH adjusted p-values"

    实际上p-value以及一些值可能会输出NA,原因有:

    • 如果某基因在所有样本的表达值都是0,将导致pvalue和padj都为NA
    • 如果某个基因在某个样本里有异常的count离群值;异常点的检测基于Cook’s distance,不过对异常点的处理是可以自己改的
    • 实际上在DESeq2和edgeR中除了library normalization之外,还会进行Independent Filtering。Independent Filtering筛去一些不太可能有生物学差异的基因,而不管它的p值是否显著,以尽量降低假阴性结果。如果某个基因因为这个(可能是low mean count)被自动过滤了,那么虽然有pvalue但padj为NA,详细可参考statQuest课程 http://www.360doc.com/content/18/1007/19/51784026_792756710.shtml

    Rich visualization and reporting of results

    如果想生成html报告,可以考虑ReportingTools这个包:http://bioconductor.org/packages/release/bioc/html/ReportingTools.html,示例代码在对应vignette的RNA-seq differential expression的文档中可以找到

    regionReport、Glimma 、pcaExplorer、iSEE、DEvis等也有交互展示运行结果的功能

    Exporting results to CSV files

    write.csv(as.data.frame(resOrdered),

              file="condition_treated_results.csv")

    #还可以通过条件限制需要输出的结果:subset函数

    resSig <- subset(resOrdered, padj < 0.1)

    resSig

    多因子实验设计

    这里简单介绍一点,具体的formula设计在以后的推文会讨论。

    实际上design的公式可以是非常多样的,还可以考虑因子间交互作用。pasilla包除了condition以外,还有测序类型可以考虑进去:

    colData(dds)

    # DataFrame with 7 rows and 3 columns

    # condition        type        sizeFactor

    # <factor>    <factor>         <numeric>

    #   treated1     treated single-read  1.63557509657607

    # treated2     treated  paired-end 0.761269768042316

    # treated3     treated  paired-end 0.832652635328833

    # untreated1 untreated single-read  1.13826297659084

    # untreated2 untreated single-read  1.79300035535039

    # untreated3 untreated  paired-end 0.649547030603726

    # untreated4 untreated  paired-end 0.751689223426488

    #先拷贝一份dds用来做多因子分析

    ddsMF <- dds

    levels(ddsMF$type)

    ## [1] "paired-end"  "single-read"

    levels(ddsMF$type) <- sub("-.*", "", levels(ddsMF$type))

    levels(ddsMF$type)

    #注意感兴趣的变量要放到末尾

    design(ddsMF) <- formula(~ type + condition)

    ddsMF <- DESeq(ddsMF)

     

    resMF <- results(ddsMF)

    head(resMF)

    实际上我们也可以获得其他变量造成的log2FC、pvalue等参数的结果(这里的其他变量只是测序类型,不是生物学上有意义的变量)
    ;如果是这样的design:~genotype + condition + genotype:condition,说明我们对由基因型造成的表达差异感兴趣

    这里演示只考虑type作为变量的差异分析

    resMFType <- results(ddsMF,

                         contrast=c("type", "single", "paired"))

    head(resMFType)

    # log2 fold change (MLE): type single vs paired

    # Wald test p-value: type single vs paired

    # DataFrame with 6 rows and 6 columns

    # baseMean      log2FoldChange             lfcSE

    # <numeric>           <numeric>         <numeric>

    #   FBgn0000003 0.171568715207063   -1.61158240361812     3.87108289314

    # FBgn0000008  95.1440789963134  -0.262254386430198  0.22068580426262

    # FBgn0000014  1.05657219346166    3.29058255215038  2.08724091994889

    # FBgn0000015 0.846723274987709  -0.581642730889627  2.18165959131568

    # FBgn0000017   4352.5928987935 -0.0997652738257474 0.111757030425811

    # FBgn0000018  418.614930505122   0.229299212203436   0.1305752643427

    # stat             pvalue              padj

    # <numeric>          <numeric>         <numeric>

    #   FBgn0000003 -0.416313070038884  0.677180929822828                NA

    # FBgn0000008  -1.18836092473855  0.234691244221223 0.543823121250909

    # FBgn0000014   1.57652263363587  0.114905406827234                NA

    # FBgn0000015 -0.266605630504831  0.789772819994317                NA

    # FBgn0000017 -0.892697966701751  0.372018939542609 0.683007220487336

    # FBgn0000018    1.7560692935044 0.0790765774697509 0.292463782417282

    到这里主要的workflow就结束了,后面会介绍更高阶的操作:数据转换、可视化、个性化分析等

    major reference

    http://bioconductor.org/packages/release/bioc/vignettes/DESeq2/inst/doc/DESeq2.html#exploring-and-exporting-results

    5人点赞

    生物信息与计算生物学

     

    展开全文
  • Salmon-DESeq2和Salmon-Wasabi-Sleuth管线进行RNAseq数据分析 通过Salmon-DESeq2和Salmon-Wasabi-Sleuth管道进行RNAseq数据分析可在此处进行。 RNAseq数据可从。 工作流程使用snakemake库。
  • 普遍用的好像都是DESeq2了。所以想问一下现在是不是都不用DESeq了,有没有比较直观的比较DESeq和DESeq2用法,如果还可以用DESeq的话应该怎么安装呢?Bioconductor已经不能安装了。</p>
  • DESeq2-On-Python-Jupyter-Notebook 对R / Bioconductor DESeq2使用Python 3的强大功能
  • 用于单细胞 RNA-seq 的 ZINB-WaVE + DESeq2 整合的工作流程 查看 或者查看
  • deseq2_project-源码

    2021-04-08 02:46:04
    deseq2_project 先决条件 的Python 3 迷你conda 蛇纹 R包 DESeq2 tximportData tximport 读卡器 ggplot2 dplyr 量具 gageData 路径视图 注释Dbi org.hs.eg.db RColorBrewer 秘籍图 增强火山 ...
  • RStudio安装DESeq2

    千次阅读 2019-12-27 11:36:07
    第一次用R… R version 3.6.2 install.packages("BiocManager") BiocManager::install(version = "3.10") BiocManager::install("DESeq2") library("DESeq2") 上路

    第一次用R…
    R version 3.6.2

    install.packages("BiocManager")
    BiocManager::install(version = "3.10")
    BiocManager::install("DESeq2")
    
    library("DESeq2")
    上路(mac和win7下测试都ok,win7下安装R和RStudio的路径都在默认路径下)
    
    展开全文
  • R DESeq2 详解

    千次阅读 2018-10-17 20:01:20
    DESeq2结果p-value和padj设为NA的理由: Note on p-values set to NA: some values in the results table can be set to NA for one of the following reasons: If within a row, all samples have zero counts, ...

    DESeq2结果p-value和padj设为NA的理由:

    Note on p-values set to NA: some values in the results table can be set to NA for one of the following reasons:

    • If within a row, all samples have zero counts, the baseMean column will be zero, and the log2 fold change estimates, p value and adjusted p value will all be set to NA.
    • If a row contains a sample with an extreme count outlier then the p value and adjusted p value will be set to NA. These outlier counts are detected by Cook’s distance. Customization of this outlier filtering and description of functionality for replacement of outlier counts and refitting is described below.
    • If a row is filtered by automatic independent filtering, for having a low mean normalized count, then only the adjusted p value will be set to NA. Description and customization of independent filtering is described below.
    展开全文
  • 依赖关系是pandas (python), rpy2 (python)和DESeq2 (R)最好的构建依赖关系的方法应该是通过conda。 conda config --add channels defaults conda config --add channels bioconda conda config --add ...
  • DESeq2包的安装

    千次阅读 2021-03-20 18:37:26
    DESeq2包的安装心路历程1.缺少RTools1.1RTools下载1.2RTools40环境配置1.2.1创建一个Renviron文件:1.2.2然后在文件里面写:1.2.3保存Renviron,关闭RStudio重新打开1.2.4输入下方语句,检查是否配置成功2.使用...
  • DESeq2筛选差异OTU及绘制火山图

    千次阅读 2020-01-24 03:17:01
    1.DESeq包安装 install.packages("BiocManager") library(BiocManager) BiocManager::install("DESeq2") ...(每一列为一个样本,每一行为一种OTU,交叉区域为每种OTU在各样本中的丰度,DESeq2计...
  • DESeq2 install 如何安装R包 RcppArmadillo

    万次阅读 2017-02-16 13:15:35
    安装R包( ‘RcppArmadillo’)失败,导致依赖该包的DESeq2 无法使用;首先对gcc,g++升级至4.7, 但依然报错,还是安装不了RcppArmadillo;报错如下:$ R> source("https://bioconductor.org/biocLite.R") ...
  • 安装DESeq2时遇到的错误

    千次阅读 2020-10-26 21:50:04
    BiocManager::install("DESeq2") 改了镜像之后安装成功 中途提示缺少什么包时手动安装 library(DESeq2) 报错 Error: package or namespace load failed for ‘GenomeInfoDb’ in loadNamespace(i, c(lib.loc, ....
  • DESeq2:检测差异表达基因

    千次阅读 2020-01-05 18:43:25
    DESeq2的适用性 分析来自RNA-seq的计数数据,基因任务是检测差异表达基因。 也适用于其他分析:ChIP-Seq、HiC、shRNA筛选。 快速开始 dds = DESeqDataFromMatrix(countData = cts, colData = colData, ...
  • 生信(一)——DESeq2差异基因分析 文章目录生信(一)——DESeq2差异基因分析一、差异基因分析原理二、代码实现1、前提:安装DESeq2包2.代码实现三、小结 记录学习过程,共勉。 一、差异基因分析原理 详见 二、...
  • 文章目录学习目标DESeq2差异基因表达分析流程第一步:估计大小因子第二步:估计基因离散(gene-wise dispersion)第三步:拟合曲线到基因的分散估计第四步:将基因离散估计值向曲线预测值收缩MOV10 DE分析:探讨离散...
  • ###Differential Gene Expression Analysis via DESeq2 (Love, Huber and Anders 2014) DESeq2 进行基因表达分析需要计数数据文件“25july_diseasecounts.tab”这个文件是每个基因的计数表:行是基因,列是样本样本...
  • 差异分析流程(四)DESeq2

    千次阅读 2019-12-19 16:40:30
    1.构建dds对象2.标准化3.提取差异分析结果 参考链接:...#加载包和数据 if (!requireNamespace("BiocManager", quietly = TRUE)) install.packages("BiocManager") if (!require("DESeq2", quietly = T...
  • 转录组入门7-用DESeq2进行差异表达分析 Analyzing RNA-seq data with DESeq2 1.关于DESeq2的概述 A basic task in the analysis of count data from RNA-seq is the detection of differentially expressed genes. ...
  • 简单使用DESeq2/EdgeR做差异分析

    千次阅读 2020-12-13 07:00:00
    DESeq2和EdgeR都可用于做基因差异表达分析,主要也是用于RNA-Seq数据,同样也可以处理类似的ChIP-Seq,shRNA以及质谱数据。这两个都属于R包,其相同点在于都是对co...
  • 使用DESeq2的两点要求: DEseq2要求输入数据是由整数组成的矩阵。 DESeq2要求矩阵是没有标准化的。 下面是基本流程: 一、准备工作: 确定工作路径,以确保上传文件时无误 getwd() #显示当前工作目录 setwd() #...
  • 果子老师做过一个非常惊人的举动,用DESeq2处理1225例样本的TCGA数据,在没有使用DESeq多线程参数parallel的情况下,跑了将近40个小时。 那么问题来了,在那么大的样本量的情况下,应该用DESeq2进行数据处理吗?我的...
  • 使用DESeq2进行两组间的差异分析

    千次阅读 2018-09-26 19:58:00
    欢迎关注”生信修炼手册”!DESeq2 接受raw count的定量表格,然后根据样本分组进行差异分析,具体步骤如下1. 读取数据读取基因的表达量表格和样本的分组信息两个文件,其中表达量...
  • 有一个朋友问了我一个问题,DESeq2的baseMean是如何计算?我最初都是认为baseMean计算的是对照组的样本标准化counts的均值。由于我在分析结果里还会提供所有样本的标准化的counts,所以这个baseMean我也没有太过在意...
  • 管道使用kallisto量化笔录级别的丰度,并使用DESeq2标准化计数和检测DEG。 安装 安装Anaconda或Miniconda,然后conda install snakemake 从下载适当的kallisto参考或自行构建 克隆存储库 在samples.csv描述您的...
  • library(DESeq2) library(limma) 读入表达矩阵与样本信息,并查看表达矩阵与样本信息 genesymbol<-read.delim("/Users/Desktop/ESCC_RNA_count_data/ESCC_count_cancer_expression.txt",header = TRUE,check....

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 899
精华内容 359
关键字:

deseq2