加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

[转载]DESeq2的使用

(2015-05-09 13:36:12)
标签:

转载

分类: RNA-seq
DESeq2的使用:
> library("Deseq2")
> dds <- DESeqDataSet(se = se, design = ~condition)
> dds <- DESeq(dds)
> res <- results(dds)

    R包GenomiAlignments中的summarizeOverlaps函数在“Union”模式下可以以基因方式对align到的reads进行计数,而得到se对象(summarizedExperiment)。命令行中的dds是DESeq2存储read数的数据集,为DESeqDataSet的缩写,是基于se数据集而进一步拓展得到的。与se相比,dds有两点不同:1是dds矩阵中的值必须是非负整数;2是dds有一个相关联的“design formula”。这个design formula可以理解为告诉DESeq2实验是如何设计的,也就是指定DESeq2的分析。主要是指明metadata table(colData)中哪一个变量明确实验设计,以及这些因子在分析中的使用。差异表达分析中最简单的design formula是“design=~condition”,其中conditon是metadata中的一列,并且注明这些样品分别属于几组中的哪一组。当条件比较多时,design formula可能会变成这样“design=~conditon_1+conditon_2”
--*设计逻辑*--
首先得到se对象,然后将se对象转换成DESeq2所需要的dds数据对象,在这一步中加入实验信息,之后调用DESeq2程序对dds进行处理,最后得到结果,非常简洁明了。
se对象的生成是需要预处理得到的,有两种方法:1是从map好的bam文件直接由R包来生成;2是从用其他非R软件如cufflinks得到的read count matrix,再然后使用相应的R包处理生成。这里先以前一种方法为例:
> library("GenomicFeatures") ## 载入GenomicFeatures包。
> hse <- makeTranscriptDbFromGFF("path/to/your/genemodel.gtf",format="gtf") ## 生成转录组信息
> exonsByGene <- exonsBy(hse, by="gene") ## 按照基因来提取exon
> fls <- list.files("path/to/bam/files", pattern="bam$",full=TRUE) ## 读入bam文件,这里给到bam文件所在目录,list.files对给定目录进行列表显示,然后pattern是抓取匹配信息。
> library("Rsamtools") ## 载入Rsamtools
> bamLst <- BamFileList(fls) ## 生成bam文件
> library("GenomicAlignments") ## 载入GenomicAlignments
> se <-summarizeOverlaps(exonsByGene,bamLst,mode="Union",
                                              singleEnd=FALSE/TRUE,
                                              ignore.strand=FALSE/TRUE,
                                              fragments=FALSE/TRUE) ## 生成se对象
    fragments默认是FALSE,其作用是以逻辑判断符来表明是否要将配对read未map上的read进行记数,只在双端测序数据中使用。如果fragments=TRUE,那么singleEnd应该选择FALSE。
(此外,如果我们使用或者已经拥有read count的矩阵,并以此作为输入,也是可行的。不过需要使用DESeqDataSetFromMatrix函数。)
【添加实验信息:】

【去技术性冗余:】
    对于有冗余的片段,可以使用DESeq2包中的collapseReplicates函数进行去冗余。
【差异表达分析:】
    准备好read count矩阵之后开始进行差异表达分析:
> dds <- DESeq(dds)
> res <- results(dds)    
    一般地,大概几十秒的时间就可以完成分析,如果样品量非常大时可以使用并行来加速运算。加载BioParallel包,并申请所用线程数如下:
> library("BioParallel")
> register(MulticoreParam(4)) ##申请4线程
    然后在DESeq命令后添加“parallel=TRUE”,便会使用4线程进行运算。
【结果分析和可视化:】
    差异表达分析结束后按照p-value进行排序,summarize等进行分析。之后绘图可视化。

0

  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有