Search
Question: DESeq2 different versions
0
10 months ago by
minie0
minie0 wrote:

I have analysed the data using three different versions of DESeq2  v.1.10, v.1.14 & v.1.16 values are varying even after using  lfcShrink and betaprior=TRUE while using v.1.16

v.1.10 & v1.14 involves shrinkage and by default while v.1.16 do not. I presumed that shrinkage method in all the versions works in the same manner. However it seems to be not the case,can any one tell me why the values are different in all the three versions. I want to understand the shrinkage method used in all the three versions in detail. In the news feed of DESeq2 I can just see the updates or changes in different versions : https://www.bioconductor.org/packages/release/bioc/news/DESeq2/NEWS

modified 10 months ago by Michael Love19k • written 10 months ago by minie0
0
10 months ago by
Michael Love19k
United States
Michael Love19k wrote:

hi,

Can you be more specific when you say that "why the values are different in all the three versions"?

The shrinkage works similar across all these different version numbers when you use the syntax contrast=c("condition","B","A"). In version 1.16 you can obtain LFC shrinkage by using lfcShrink(), and specifying the contrast as you normally would. This is described in the DESeq2 vignette and in the DESeq2 paper as the use of "expanded model matrices".

We have new approaches to lfcShrink() in version 1.18, but these are not default, you have to change the default shrinkage 'type' to see these, and we have described these in the vignette associated with the latest release.

I am not sure what more specific you want ? please elaborate. I have already stated in the first sentence values obtatined are varying.Offcourse contrasts provided was same while analysing the data using all the three versions. if you read my first post its clearly mentioned I have used lfcshrink and betaprior=TRUE while using v.1.16 . I have encountered that the values obtained after analysis are different  even after using lfcShrink() but the MA plots generated are well versed and clearly showing shrinkage . In my opinion the the shrinkage is working differently in all the three version. So I want to know how shrinkage is working in a simpler way. I haven't explored v.1.18 yet so I am not including it in the discussion.

Can you give an example of a change you saw? Are these substantial changes in the LFC?

The shrinkage method is really the same across these versions, except that it was moved out of DESeq() and into a separate function in 1.16. We do not promise that results will be numerically identical across versions or else this would permit no improvements to the software or estimators. But I’ve tracked performance on a number of test datasets and the results are quite stable since version 1.4.

Thanks for your input. Examples : gene A(v10)= 1.79 , gene A(v14)= 2.23 , gene A(v16)= 6.09

Also, I was thinking might be there are some other additional factors which are adding up to the shrinkage and causing such variations while using different versions? Do you think something like this is possible?

From version 1.10 to 1.14, it's not such a big change, and can be caused by small differences in the dispersion estimates (but not changes to the shrinkage method itself). (We talk about how LFC shrinkage is influenced by the dispersion in the DESeq2 paper.)

For version 1.16, I'm wondering if there is an issue in how you are obtaining the LFC. Can you provide the code that you use, and then print out the results table (including the header) for gene A. You can do:

> res[idx,]

Where idx is the row number for gene A.

Thanks for your input ,I wil get back to you for values later:

Chunk of code  I am using, is following:

dds <- DESeqDataSetFromHTSeqCount(  sampleTable = pdata,  design= (~ group))
dds <- DESeq(dds)
resultsNames(dds)
res = result(dds, contrast=c("group","B","A")
reslfc = lfcshrink(dds, coef=2)

Can you also paste the results table with LFC=6.09 when you print it to R console, with the header included that tells about the LFC?

I have removed the v 1.16 and I am currently wroking with other version of DESeq2 to maintain consistency for some  old stuff.I am not sure how long it will take for me to redo the installation and analysis, in any case without that can you give some inputs if possible no hurry its just that I noticed so thought of discussing. As the code used is provided already.

The differences between 1.10 and 1.14 could be due to changes in dispersion estimation. The example you posted seems like the changes were not so large. My guess is that the LFC for 1.16 above is not after shrinkage.

Oh but I am sure I have used the option, anyways I am planning to perform the analysis with different versions using some more datasets I will write you back with the results. May be not here with huge gene lists and stuff.

You can always check by printing out the results table. It will say either MLE or MAP on the log2 fold change at the top.