Deseq2 Variance Stabalizing Transformation -- loss zeros to standard integer
Entering edit mode
chicoin1 • 0
Last seen 2.5 years ago


I used Deseq2's Variance Stabalizing Transformation to normalize 16S amplicon otu table. Unlike other users, I have no negative values in my final dataset. Further, I have no 0s in the dataset and, after comparing the transformed otu table to the raw data, I noticed that all of the otus that were 0 in the raw data now have a consistent integer (1.015063211).

Is there underlying code in the VST function that adds a constant integer to all samples? Would it be appropriate to convert all cells with this integer to 0? I'm interested in determining which otus are shared among my treatments, but right now I can't do this because I have no 0s in my dataframe (e.g. can't compare presence/absence across the samples).

Code for transformation: bact.p.deseq=phyloseqtodeseq2(bact.p, ~X.SampleID) vsd<-varianceStabilizingTransformation(bact.p.deseq)

Thanks for your help!

deseq2 variancestabalizingtransformation vst • 243 views
Entering edit mode
Last seen 4 hours ago
United States

Take a look at our RNAseq workflow, you can see what’s happening across vst(), rlog() and the shifted log. The above behavior is expected.

“I'm interested in determining which otus are shared among my treatments”

I don’t think the VST helps you answer this question. Maybe another package specific to 16S would be more appropriate.


Login before adding your answer.

Traffic: 320 users visited in the last hour
Help About
Access RSS

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

Powered by the version 2.3.6