meringlab / FlashWeave.jl

Inference of microbial interaction networks from large-scale heterogeneous abundance data
Other
70 stars 8 forks source link

visualisation #39

Closed ereyred closed 1 month ago

ereyred commented 3 months ago

Hello, I managed to run FlashWeave with 9 samples (and 8 metadata environmental factors) and hundreds of OTUs. I exported the network in .edgelist as well as .gml format and am trying to visualise it but I can't find a good tutorial anywhere. I tried opening in Cytoscape and .edgelist doesn't work and .gml just gives me what I think is one node (???), a solid rectangle and that's it. In my FlashWeave output .gml file it says mv 0 or 1 for all nodes (I don't even know what that means?) and different weight edges further down. Can someone please explain how to visualise the FlashWeave network output in Cytoscape or elsewhere? I'm pretty lost. Thanks so much.

---My .gml file looks like this:--- graph [ directed 0 node [ id 1 label "unassigned" mv 0 ] node [ id 2 label "SAR86 cluster bacterium SAR86B [ref_mOTU_v31_07136]" mv 0 (...) ] node [ id 621 label "8" mv 1 ] edge [ source 3 target 8 weight 0.9157193303108215 ] edge [ source 2 target 11 weight 0.9653017520904541 ]

---And my .edgelist file looks like this:---

header unassigned,SAR86 cluster bacterium SAR86B [ref_mOTU_v31_07136],Rhodobacteraceae species incertae sedis [ext_mOTU_v31_15985],alpha proteobacterium HIMB5 [ref_mOTU_v31_11972],Pelagibacteraceae species incertae sedis [meta_mOTU_v31_12642],alpha proteobacterium HIMB59 [ref_mOTU_v31_11871],Candidatus Pelagibacter ubique [ref_mOTU_v31_10655],Rhodobacteraceae bacterium HIMB11 [ref_mOTU_v31_08050],Flavobacteriaceae species incertae sedis [meta_mOTU_v31_13920],Synechococcus sp. [ref_mOTU_v31_01920],Proteobacteria species incertae sedis ext_mOTU_v31_17108

jtackm commented 3 months ago

Is this the full content of your .edgelist file? Because based on that, it looks like there are no edges in your network, which is not unexpected since your sample count is really low - below FlashWeave's default minimal sample thresholds. However, your .gml has edges in it, which is unexpected if both are based on the same network. Also, what does the default julia output show for that network (just typing julia> net assuming your network is stored in variable net)

ereyred commented 3 months ago

julia> netw_results

Mode: FlashWeave - sensitive (conditional)

Network: 563 interactions between 621 variables (613 OTUs and 8 MVs)

Unfinished variables: none

Rejections: not tracked

I'm using the output of mOTUs2 which doesn't give absolute counts but as a percentage of total abundance. Could that be why the counts are so low? Thanks!

jtackm commented 3 months ago

Thanks. So it seems you do get edges. How many lines does your .edgelist file have? Using relative abundances as input is fine, the same normalization can be applied.

ereyred commented 3 months ago

My edgelist file has 565 lines!

jtackm commented 3 months ago

Okay, so that's correct at least. I haven't used cytoscape in a while, but it used to be no problem to import FlashWeave .edgelist files as edge tables. Perhaps it comes down to selecting the right separators and weight column in the options when importing the network?