Limma-voom sample weights and impact on DEG numbers
1
1
Entering edit mode
A.Barden ▴ 20
@abarden-23487
Last seen 1 day ago
USA

Apologies if addressing the issue of sample weights in the limma-voom pipeline is becoming onerous, but I have another question about the difference between voom and voomWithQualityWeights (or voomLmFit with sample.weights = F and sample.weights = T) and when to use one approach or the other.

I primarily work with large human bulk RNA-Seq datasets (typically in the 100s of samples) and I've found that sample weights often increase the number of DEGs identified, even in situations where there are no apparent outlier samples and the groups of interest separate nicely in PCA.

However, I've found that sometimes sample weights decrease the number of DEGs found (compared to normal voom). How might this be interpreted? Does this suggest that a high proportion of samples in the experiment have been down-weighted, leading to reduced power? In such a situation is it still right to use sample weights?

limma • 79 views
ADD COMMENT
0
Entering edit mode
@gordon-smyth
Last seen 48 minutes ago
WEHI, Melbourne, Australia

I recommend that you always use voomLmFit() instead of the earlier voom() or voomWithQualityWeights() functions. Personally, I would use sampleWeights = TRUE routinely for large human datasets, as well as robust = TRUE when running eBayes().

The number of DE genes is not a quality metric and it doesn't determine whether sample weights should be used or not. Simulations show that there is no real downside to using sample weights. Sample weights accommodate unequal variances between groups as well as outlier samples. One way to determine whether they have improved things, would be to examine the voom mean-variance trend and the prior degrees of freedom. A tighter trend and a higher prior df are good signs. Also you can just plot the sample weights themselves.

Usually, sample weights will increase the number of DE genes, but they can decrease DE as well. Suppose you are comparing two groups, A and B. Suppose that the B sample that is most separated from the A samples is also an outlier. When this sample is downweighted, the logFCs will decrease and possibly decrease significance. The logFCs and the residual variances will both generally decrease, and the t-statistics depend on the ratio of the two, so it is a trade-off as to which decreases fastest.

If you are unsure about sample weights, a half-way house is to allow different weights for different groups rather than for individual samples. You can allow that by setting var.group = group in voomLmFit().

ADD COMMENT

Login before adding your answer.

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