Issues with q2-scnic

[email protected]
I used the network.gml file that was generated with SCNIC for visualization in Cytoscape. Unfortunately, I cannot see any edges with negative correlation. Is there a way to also visualize the negative correlations or SCNIC only calculates the positive correlations? In the original paper (Friedman and Alm, 2012), both negative and positive are shown in the figures.


Hey @bsen2018,

Thanks for using q2-SCNIC. Are you visualizing the network.gml file that comes from running make-modules-on-correlations or from build-correlation-network-r? The network that results from make-modules-on-correlations does not include negative edges because it is showing the network that was used to generate modules. Module making does not include negative edges because you do not want negatively correlated features in the same modules as it would mess up summarization of the features in them.

If you want to see your network without modules then you can export the network.gml from the .qza which you create from build-correlation-network-r or build-correlation-network-p. This will not show you your modules though. If you want to see negative correlations and modules then you can use cytoscape to export the module data from the network.gml from make-modules-on-correlations and then add it to the network.gml from build-correlation-network-r or build-correlation-network-p.

Alternatively you could use the summarized feature table .qza from make-modules-on-correlations to run calculate-correlations. Then run build-correlation-network-r or build-correlation-network-p with that correlation .qza to get a correlation network where modules are represented as a single node. This would show you negative correlations but not all the underlying correlations between the features with make up a module.


[email protected]!
Wonderful suggestion. However, when I see the two networks that are generated through qiime SCNIC make-modules-on-correlations and qiime SCNIC build-correlation-network-r, I find that they are completely different. Please note that the same _table-filter-f25-s5.qza (21.0 KB)
_ was used in both the methods. If you need then I can provide more information on the steps I followed. I suppose the two networks should tell the same story. You will also note that the number of nodes and edges are not the same for the two networks. Any thought on this contradiction, pl. share.

So the build-correlation-network-r command will produce a network which includes negative correlations which are not included when make-modules-on-correlations is run. Are the edges which are present in the network from build-correlation-network-r but not make-modules-on-correlations all negative edges? If so then this is the expected behavior. Also are you using the same R value to create both networks?

The build-correlation-network command produces both negative and positive edges while make-modules-on-correlations produces only positive edges. The same R value (0.35) was applied to both the commands. From the q2-SCNIC tutorial, the outcomes of the two methods are not evident, which I believe may put the user in trouble to understand that each method has a different result and interpretation. It would be nice to have the suggestion of q2-SCNIC developers on which method to choose and why, in the tutorial. Otherwise, why not stick to a single method which fits the fundamental concept of a network.

I understand how that could be confusing. I have added a little more explanation in the tutorial. Fundamentally build-correlation-network and make-modules-on-correlations have different goals. build-correlation-network is to build a network which the user can visualize. This can be used for visual analysis to pick out trends in their data. make-modules-on-correlations is trying to find modules in a positive correlation (AKA cooccurence) network to summarize groups of features into a single feature. The network that is given as an output of make-modules-on-correlations exists to show a user how the modules were found and judge the validity of the modules.

Therefore there isn’t really a choice of which to use. Each has a different purpose. If you want to visualize a correlation network then use build-correlation-network. If you want to find cooccurence modules in your feature table and summarize them then use make-modules-on-correlations.