Difference between DESeq2 package version 1.16.1 and 1.14.1
1
0
Entering edit mode
jingjiaok • 0
@jingjiaok-13240
Last seen 6.9 years ago

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)

dds

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

head(featureData)

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

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

dds$condition

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!

Jingjia

deseq2 pasilla • 2.4k views
ADD COMMENT
0
Entering edit mode
@mikelove
Last seen 6 hours ago
United States
See recent support site posts on this topic.
ADD COMMENT
0
Entering edit mode

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.

Thanks!

Jingjia

ADD REPLY
0
Entering edit mode

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 REPLY

Login before adding your answer.

Traffic: 724 users visited in the last hour
Help About
FAQ
Access RSS
API
Stats

Use of this site constitutes acceptance of our User Agreement and Privacy Policy.

Powered by the version 2.3.6