Question: WGCNA automatic vs manual network creation
0
4.1 years ago by
United States
akridgerunner20 wrote:

Hello,

I've created trees using what I thought were two relatively equivalent approaches, but I'm getting two very different results. Dr. Langfelder, if you're out there could you glance at this?

For the first network I'm manually generating a tree from a single block of some ~17,000 probes. For the second I break it in two using a max block size of 10,000. Both are signed networks using bicorr and a deep split of 3. I made sure to use the same datExpr and datTraits input objects. I've attached figures of the trees. It's also very surprising how poorly module assignment performed in block 2 of the automatically generated network, with most probes being thrown into gray. Now I'm desperately curious as to what separates these two approaches so much?

R script generate "automatic network":

adjacency_sp10_bicor_signed = adjacency(datExpr, power= 10, type="signed", corFnc="bicor")

dissTOM_sp10_bicor_signed = 1-TOM_sp10_bicor_signed

geneTree = hclust(as.dist(dissTOM_sp10_bicor_signed), method = "average");

sizeGrWindow(12,9)

plot(geneTree, xlab="", sub="", main = "GSE10325 Active CD19B Affy GCRMA SP10", labels = FALSE, hang = 0.04);

dynamicMods_hybrid = cutreeDynamic(dendro = geneTree, distM = dissTOM_sp10_bicor_signed, method="hybrid", deepSplit = 3, pamRespectsDendro = TRUE, minClusterSize = 100);

moduleColors = labels2colors(dynamicMods_hybrid)

sizeGrWindow(8,6)

plotDendroAndColors(geneTree, moduleColors, "Dynamic Tree Cut", dendroLabels = FALSE, hang = 0.03, addGuide = TRUE, guideHang = 0.05, main = "GSE10325 GCRMA Affy CDF Signed TOM SP10, Hybrid Cut, DeepSplit=3, minMod=100, 29 modules")

R script to generate "manual network":

net = blockwiseModules(datExpr, power = 10, corType="bicor", deepSplit = 3,
TOMType = "signed", minModuleSize = 100,
numericLabels = TRUE,
pamStage = TRUE, pamRespectsDendro = TRUE,
saveTOMs = TRUE,
saveTOMFileBase = "GSE10325CD19B-Active-SP10-bicor-ds3",
verbose = 5,
maxBlockSize = 10000)

What's going wrong here?

Thanks! - Robert

Manually generated network:

Automatically generated network:

wgcna • 3.7k views
modified 4.1 years ago by Peter Langfelder2.3k • written 4.1 years ago by akridgerunner20
Answer: WGCNA automatic vs manual network creation
1
4.1 years ago by
United States
Peter Langfelder2.3k wrote:

In the call to blockwiseModules, you should include networkType = "signed" (TOMType has a different meaning). But it would also seem to me that there's something wrong with the plotting code for the block-wise dendrograms. The hockey-stick-like branches should correspond between the full and the blockwise analysis, and they don't seem to. Also, if you haven't done so, run goodSamplesGenes(datExpr) to check whether you have any genes with excessive numbers of missing data, although I don't imagine that could be the cause for this.

Thanks Peter I'm currently running:

net = blockwiseModules(datExpr, power = 10, corType="bicor", deepSplit = 3,
networkType = "signed", TOMType = "signed", minModuleSize = 100,
numericLabels = TRUE,
pamStage = TRUE, pamRespectsDendro = TRUE,
saveTOMs = TRUE,
saveTOMFileBase = "GSE10325CD19B-Active-SP10-bicor-ds3",
verbose = 5,
maxBlockSize = 10000)

Do I need to specify both networkType and TOMType? The package documentation is vague on this:

"networkType : Allowed values are (unique abbreviations of) "unsigned", "signed", "signed hybrid". See adjacency.
TOMType: One of "none", "unsigned", "signed". If "none", adjacency will be used for clustering. If "unsigned", the standard TOM will be used (more generally, TOM function will receive the adjacency as input). If "signed", TOM will keep track of the sign of correlations between neighbors."

Answer: WGCNA automatic vs manual network creation
1
4.1 years ago by
United States
Peter Langfelder2.3k wrote:

See this short report on the differences between signed and usigned TOM:

http://labs.genetics.ucla.edu/horvath/CoexpressionNetwork/Rpackages/WGCNA/TechnicalReports/signedTOM.pdf

Great, thanks! I read this some time ago and use signed network analysis. It looks like I confused the TOMtype setting with the networkType setting, and by omitting the latter was generating unsigned networks. My new effort now looks beautiful, with the two blocks from the automatic approach resembling the single block of the manual approach. Thank you, deeply.

I don't understand what's the difference between the role of network type and TOMType here. I noticed that there isn't a "signed hybrid" option for TOMType, so does it make sense to use networkType = "signed hybrid", TOMType = "signed"?