I have used WGCNA by integrating several datasets which are processed in a similar way. Identified 17 modules, followed by performed pathway analysis with the genes present in those modules.

Among all the protein-coding genes,ncRNAs and other genes, I'm particularly interested in a specific lncRNA MALAT1.

I found that MALAT1 is co-expressed with more than 800 genes in a module named blue. I have few questions, can anyone please help me in this?


  1. I would like to check which are the closest co-expressed genes to MALAT1. How can I know that?

  2. Once I get the closest genes to MALAT1, I would like to make a network with those genes and MALAT1. How to do this network?


1 Answer 1


The simplest way is to re-calculate (or load, if saved) the TOM matrix and find the genes with the highest TOM to MALAT1. If you have enough RAM to carry out WGCNA in a single block, you can use TOMsimilarityFromExpr, make sure you give it the same arguments as the ones you used in network construction, and select the appropriate column from the result. Then order the column and retain top genes, as many as you think is reasonable. You can also use adjacency instead of TOM, though TOM is a more natural quantity to use if you used in your network construction. Once you figure out which genes you want to retain, you can subset the TOM matrix (both rows and columns) to those genes and you have the sub-network among these genes.

  • $\begingroup$ thanks a lot Peter $\endgroup$
    – user9114
    Commented Nov 2, 2022 at 14:28
  • $\begingroup$ small question again...I'm interested in modules blue and brown...So, extracted the expression for the genes in those modules and used this way TOM2 = TOMsimilarityFromExpr(t(expr_of_interest),power = softPower,networkType = "unsigned", TOMType = "unsigned") And this gave me correlation values. I can see all correlation values are above 0 only....there are no negative correlation values....why is it like that? $\endgroup$
    – user9114
    Commented Nov 16, 2022 at 10:34
  • $\begingroup$ As the function name says, it returns a topological overlap matrix (TOM) which is by definition non-negative. If you want correlation, use cor. $\endgroup$ Commented Nov 18, 2022 at 8:23
  • $\begingroup$ thanks peter. how to get the correlation values for the genes in specific interesting modules or genes from a couple of modules? $\endgroup$
    – user9114
    Commented Nov 24, 2022 at 18:27
  • 1
    $\begingroup$ Well, you can select the genes using labels, something like (using the notation from WGCNA tutorials) select = moduleColors %in% c(module1, module2,...) (replace module1, module2, .... with the module labels you want to select), then use cor(datExpr[, select]). $\endgroup$ Commented Nov 28, 2022 at 1:27

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.