Search
Question: Difference between DESeq2 package version 1.16.1 and 1.14.1
0
gravatar for jingjiaok
12 months ago by
jingjiaok0
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)

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

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

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 REPLYlink written 12 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 12 months ago by Michael Love18k
Please log in to add an answer.

Help
Access

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