Question: How to interpret WGCNA's modulePreservation output when comparing 2 networks?
gravatar for jol.espinoz
19 months ago by
jol.espinoz20 wrote:

I'm trying to compare 2 networks that I've created as a toy dataset from WGCNA's tutorial section I'm not exactly sure how to interpret the resulting data since there is so much content. X_A and X_B are adjacency matrices while modules_A and modules_B are the module assignments (starting at 0 and ascending with the outlier module set as -1).  I want to look at the differences between modules and which modules are significant to the experimental/treatment phenotype network represented here as `Male`. 

Can somebody answer the following questions about this functions output?

Basing these questions off of the [documentation](

(1) What is the meaning of: all network sample 'module' name: 0.1

(2) How is `quality` and `preservation` measured? 

(3) What `accuracy` is this referring to in the output?  

(4) What are `referenceSeparability` and `testSeparability`? 

(5) Does this function calculate significance for modules that are indicative of the test network? 

Here is my code below for running the function with my 2 precomputed adjacency matrices:


# Read DataFrames
read_dataframe = function(path,  sep="\t") {
  df = read.table(path, sep=sep, row.names=1, header = TRUE, check.names=FALSE)

# Data Overview
cat("Similarity", dim(X_A), "\nModule assignment", dim(A_modules), "\nModule Number Range", min(A_modules), max(A_modules))
#Similarity 375 375
#Module assignment 375 1
#Module Number Range 0 8

cat("Similarity", dim(X_B), "\nModule assignment", dim(B_modules), "\nModule Number Range", min(B_modules), max(B_modules))
#Similarity 375 375
#Module assignment 375 1
#Module Number Range 0 21

# Load data
X_A = read_dataframe("./Google/Prototype/Data/FemaleLiver-Data/X_A.corr.abs.tsv")
X_A = data.matrix(X_A)
X_B = read_dataframe("./Google/Prototype/Data/FemaleLiver-Data/X_B.corr.abs.tsv")
X_B = data.matrix(X_B)

A_modules = read_dataframe("./Google/Prototype/Data/FemaleLiver-Data/X_A.corr.abs.modules.tsv")
B_modules = read_dataframe("./Google/Prototype/Data/FemaleLiver-Data/X_B.corr.abs.modules.tsv")

# Format data
multiExpr = list(
  "Female" = list(data=X_A),
  "Male" = list(data=X_B)

multiColor = list(
  "Female" = A_modules[rownames(X_A),],
  "Male" = B_modules[rownames(X_B),]

mp = modulePreservation(multiExpr, multiColor,
                          referenceNetworks = 1,
                          nPermutations = 10,
                          randomSeed = 0,
                          verbose = 3,
                          checkData = FALSE,

..unassigned 'module' name: -1
  ..all network sample 'module' name: 0.1
  ..calculating observed preservation values
  ..calculating permutation Z scores
..Working with set 1 as reference set
....working with set 2 as test set
  ......working on permutation 1
  ......working on permutation 2
  ......working on permutation 3
  ......working on permutation 4
  ......working on permutation 5
  ......working on permutation 6
  ......working on permutation 7
  ......working on permutation 8
  ......working on permutation 9
  ......working on permutation 10
ADD COMMENTlink modified 19 months ago • written 19 months ago by jol.espinoz20
Please log in to add an answer.


Use of this site constitutes acceptance of our User Agreement and Privacy Policy.
Powered by Biostar version 16.09
Traffic: 395 users visited in the last hour