# How to select a power for a scale-free topology network

In a weighted gene co-expression network analysis (using WGCNA), the soft-threshold power is recommended as a noise filtering. It consists on raising the correlation to a certain number. To decide this power the scale-free topology is estimated for some powers. The function to estimate this prints:

   Power SFT.R.sq  slope truncated.R.sq mean.k. median.k. max.k.
1      1   0.9300  3.110          0.996  2960.0    3060.0   3970
2      2   0.7510  1.010          0.964  1750.0    1780.0   2900
3      3   0.1730  0.258          0.806  1170.0    1150.0   2280
4      4   0.0942 -0.183          0.713   833.0     782.0   1870
5      5   0.3800 -0.463          0.777   623.0     559.0   1580
6      6   0.5350 -0.656          0.834   481.0     412.0   1360
7      7   0.6270 -0.797          0.872   381.0     312.0   1190
8      8   0.6870 -0.910          0.900   307.0     241.0   1050
9      9   0.7270 -1.000          0.918   252.0     189.0    936
10    10   0.7490 -1.080          0.928   210.0     150.0    841
11    12   0.7850 -1.190          0.948   150.0      98.0    693
12    14   0.8090 -1.280          0.958   111.0      65.9    582
13    16   0.8290 -1.360          0.968    84.0      45.6    497
14    18   0.8410 -1.410          0.973    65.2      32.1    429
15    20   0.8490 -1.450          0.977    51.6      23.0    375


The recommendations of the FAQ indicate that a SFT.R.sq value should be above

0.8 for reasonable powers (less than 15 for unsigned or signed hybrid networks, and less than 30 for signed networks)

and the mean connectivity below the hundreds.

Others have used the power just as noise filtering without caring much about the scale-free topology fit. I would pick the first power even if the mean connectivity is in the order of thousands because the scale-free topology fit is pretty high, however the slope is puzzling me.

How should the soft-threshold power be selected?

Based on an example question

I would be concerned about the input data that produced these numbers. This dataset has a really odd shape with a dip at the start:

data.df <- read.table("soft_threshold.txt", header=TRUE);
png("scale-free-194.png");
plot(data.df\$SFT.R.sq);
dummy <- dev.off();


Here's what I expect this to look like (from the supplementary information in this paper):

It's easier to select the power/threshold when the plot looks like the second situation. With the data as presented, it doesn't look like any value would be suitable. but if I were forced to pick, then I'd choose 12 because it is the first number above the magic threshold (ignoring the weirdness at the start). However, I'll admit that I don't understand the concepts behind the power, and am just following the recommended instructions, so can't explain why it is what it is.

• Yes, I am aware of this particularity, I think it is due to a bug in the WGCNA package, when pickSoftThreshold doesn't use expression data. I probably should have picked a more typical data. But simply cutting at certain threshold leaves outside the consideration about the mean connectivity part. (Also it seems to treat the same that the slope of the power =1 is positive and the others become negative)
– llrs
Jun 8 '17 at 15:37