How to extract the voom normalized value for each observation?
2
1
Entering edit mode
harelarik ▴ 50
@harelarik-13564
Last seen 9 months ago

I want to use the output values of voomWithQualityWeights as an input for further analysis (e.g., input for network).

 

The outputs of voomWithQualityWeights  are:

1. The $E should actually be: logCpm+0.5 for each gene regardless of voom normalization.

That does not include the voom normalization.

2. weights- are "numeric matrix of inverse variance weights" .

These are probably only the weights for each observation (observation= gene X sample).

3. $sample.weights- weight normalization per sample

How do I extract the voom normalized value for each observation? Is it  $E*weight of each observation? (just multiplication?)? How should I combine the sample weight?

 

Thank you.

 

voomWithQualityWeights output • 2.4k views
ADD COMMENT
0
Entering edit mode

The 'weights' output from running voomWithQualityWeights() already combines both the observational and sample-specific weights.

These weights are relative though and only make sense in the context of a linear model (i.e. in a per gene analysis).

I would not recommend just multiplying the logCPM values by them and using them in your network analysis.

ADD REPLY
0
Entering edit mode

Thank you very much.

I. Are the $E values are "logCpm+0.5" transformation of raw counts or the of  TMM values (made by calcNormFactors(y))?

 

II. Considering one found Differentially expressed genes, based on  voom values, and would like to continue to downstream analysis (e.g., network analysis). Which values would you think would be most consistent to use:

* This question was answered by Gordon below.

    a. The $E (logCpm+0.5) values?

    b. Some other form of variance stabilization values.

        For example the out put of the   varianceStabilizingTransformatio() function from DESeq2?

     c. Other option?

 

 

ADD REPLY
1
Entering edit mode
@steve-lianoglou-2771
Last seen 1 day ago
Denali

I doubt you can combine these into a single number in any meaningful way.

You need an algorithm that can take observations and their weights and use them productively together ...

ADD COMMENT
0
Entering edit mode

Thank you!

ADD REPLY
0
Entering edit mode
@gordon-smyth
Last seen 2 hours ago
WEHI, Melbourne, Australia

I always recommend cpm(counts, log=TRUE, prior.count=3) for the purpose of other down-stream analyses, because the voom quantities cannot be summarized in single combined quantity.

This is mentioned briefly in Section 2.15 of the edgeR User's Guide. Section 15.4 of the limma User's Guide is also of interest.

ADD COMMENT
0
Entering edit mode

Thank you!

 

Would you recommend using logCPM on raw counts on or TMM transformed values?

ADD REPLY
0
Entering edit mode

Yes, I usually recommend TMM. Just use cpm(dge, log=TRUE, prior.count=3), where dge is the DGEList, and the normalization factors will be used automatically.

ADD REPLY
0
Entering edit mode

Dear Gordon, Thank you very much!

ADD REPLY

Login before adding your answer.

Traffic: 235 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