实现Stingtie与DEseq2的无缝连接
诚然HISAT - StringTie - Ballgown是一套分析转录组的一套流程,但是DESeq2是差异表达分析十分流行的Bioconductor安装包。为了自由的切换和分析,官网出了一套无缝连接的流程,提供了一个Python的脚本:prepDE.py,此脚本直接提取了stringtie生成的transcript的count信息。注意此脚本是用Python2进行编写的,用Python3的同学需要将此Script进行转换一下。
下面就讲一下怎样用此script进行连接,首先的前提是你以运行了Stringtie,运行stringtie的最后一步是需要有-B的参数的 -B 原意是为了生成ballgown而设置的,所以要保持原来的文件目录:
./ballgown/sample1/sample1.gtf
./ballgown/sample2/sample2.gtf
./ballgown/sample3/sample3.gtf
1.将prepDE.py的脚本下载到你运行文件的目录下:
$ wget http://ccb.jhu.edu/software/stringtie/dl/prepDE.py
2.由于作者是的脚本是用python2写的,我这里得转换一下:
$ 2to3.py -w prepDE.py 或直接 $ python2 prepDE.py
3.运行prepDE.py:
$ python prepDE.py
4.开始运行DEseq2:
4.1 启动R
$ R
4.2 在R上安装DESeq2:
> source("https://bioconductor.org/biocLite.R")
> biocLite("DESeq2")
4.3 将DESeq2 library加入R中
> library("DESeq2")
4.4 将基因或转录本的count matrix和lable载入:
> countData <- as.matrix(read.csv("gene_count_matrix.csv", row.names="gene_id"))
> colData <- read.csv(PHENO_DATA, sep="\t", row.names=1) (ps:PHENO_DATA 要改成自己生成的文件,我自己的文件名为:geuvadis_phenodata.csv,所以第二行命令改为:
> colData <- read.csv("geuvadis_phenodata.csv", sep="\t", row.names=1))
4.5 检查生成的两个文件的匹配性:
> all(rownames(colData) %in% colnames(countData))
[1] TRUE
> countData <- countData[, rownames(colData)]
> all(rownames(colData) == colnames(countData))
[1] TRUE
4.6 从count matrix和lable创建 DESeqDataSet
> dds <- DESeqDataSetFromMatrix(countData = countData, colData = colData, design = ~ CHOOSE_FEATURE)(ps: “~” 后的CHOOSE_FEATURE 应该换成自己所关注的特征,我所关注的特征为“sex”,则命令为:
> dds <- DESeqDataSetFromMatrix(countData = countData, colData = colData, design = ~ sex))
4.7 运行DEseq2,生成结果的表
> dds <- DESeq(dds)
> res <- results(dds)
4.8 根据p-value进行排序
> (resOrdered <- res[order(res$padj), ])
References:
http://ccb.jhu.edu/software/stringtie/index.shtml?t=manual