How to know which soft threshold to use for blockwise modules in WGCNA?
1
0
Entering edit mode
jol.espinoz ▴ 40
@jolespinoz-11290
Last seen 3.6 years ago

I want to try blockwise modules for WGCNA but I think I'm missing some points in logic.

 

If you have a dataset too large to run WGCNA (e.g. 100k genes) and want to run blockwise modules, how do you know which soft threshold to use to get a good scalefree topology for each of the networks? 

 

If your data split into 10 blocks each with 10000 genes (block_1 - block_10) and block_1 - block_5 required a soft threshold of 6 to get a scalefree topology of 0.88 and block_6 - block_10 required a soft threshold of 11 to get a scalefree topology of 0.93. Would these subnetworks be comparable even though they have different scalefree topologies? 

 

What function could you use to determine a soft threshold for each of the blocks individually?

wgcna coexpression transcriptome • 1.6k views
ADD COMMENT
2
Entering edit mode
@peter-langfelder-4469
Last seen 14 days ago
United States

The usual function to determine a suitable soft threshold, pickSoftThreshold, works on (almost) arbitrarily large data sets. It does not need the entire correlation or similarity matrix at once, so it calculates it in smaller pieces which are not the same as the blocks used in blockwiseModules and related functions. The results of pickSoftThresholds do not depend on what blocks this function uses, they are the same as if the entire data set was processed in one block.

I personally don't see a good reason to ever use different thresholds on different blocks; the networks would certainly not be comparable if they were calculated with different thresholds. Since the blocks are not random subsets of the entire data set, but rather preferentially contain correlated genes, a scale-free topology analysis within each block may not make sense, especially if there are large modules whose size is comparable to block size.

As for a function to determine a soft threshold in each block separately, there is none. If you insist on doing so, run projectiveKMeans first to split data into blocks, then run pickSoftThreshold on each block separately. Don't be surprised if the results don't make much sense though; you were warned.

Peter

ADD COMMENT

Login before adding your answer.

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