Question: Difference between DESeq2 package version 1.16.1 and 1.14.1
gravatar for jingjiaok
9 months ago by
jingjiaok0 wrote:

I am using DESeq2 for differential expression analysis. But I got big different results between the two versions while using the same set of data as input and the same set of r code for data processing for the two DESeq2 versions. I would like to ask what is the key point changed between the two versions to make the results so different.

I used DESeq2 package version 1.14.1 and pasilla version 1.2.0 two months ago to get 98 and 4200 differential expression transcripts, while I installed a new version of R in another computer and applied the updated DESeq2 package version 1.16.1 and pasilla 1.4.0 recently and I got 1988 and 8313 differential expressed transcripts. And most of the 98 and 4200 are covered by the 1988 and 8313 DE transcripts, respectively. 

pasCts <- system.file( "transcript_count_matrix.csv",package="pasilla", mustWork=TRUE)

pasAnno <- system.file( "phenotypic_data.csv", package="pasilla", mustWork=TRUE)

a = read.csv(pasCts,row.names=1)

countData <- as.matrix(a)

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

all(rownames(colData) %in% colnames(countData))

all(rownames(colData) == colnames(countData))

dds <- DESeqDataSetFromMatrix(countData = countData, colData = colData, design = ~ clone + block + condition)


featureData <- data.frame(transcript=rownames(countData))


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

dds$condition <- factor(dds$condition, levels=c("C","D"))


dds <- DESeq(dds, fitType = c("local"))

res <- results(dds, alpha = 0.05, lfcThreshold = 0.5)

sum(res$padj < 0.05, na.rm=TRUE)

Let me know if you need more information and thanks for any help!


ADD COMMENTlink modified 9 months ago by Michael Love16k • written 9 months ago by jingjiaok0
gravatar for Michael Love
9 months ago by
Michael Love16k
United States
Michael Love16k wrote:
See recent support site posts on this topic.
ADD COMMENTlink written 9 months ago by Michael Love16k

Hi Michael,

Thanks. I have found out from the recent manual posts that the 1.16 version has a separate function in DESeq() and lfcShrink for moderating. That's why I got different results. I will keep using the 1.14 version since the lfcShrink() function is still being prototyped as the manual said.



ADD REPLYlink written 9 months ago by jingjiaok0

Correction: lfcShrink() gives the identical moderated LFCs as DESeq() gave in previous versions. But there are new methods being planned, which are not in version 1.16.

If you want to obtain (nearly) the same results in version 1.16 as in 1.14 you can do:

dds <- DESeq(dds, betaPrior=TRUE)
res <- results(dds)

And this code will also work going forward into future versions if you want to maintain the old behavior: shrinkage done by DESeq() function. I only changed the default value for betaPrior.

ADD REPLYlink written 9 months ago by Michael Love16k
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 2.2.0
Traffic: 201 users visited in the last hour