-
Notifications
You must be signed in to change notification settings - Fork 8
Home
Welcome to the MetagenomeScope wiki! This wiki is a work in progress, so if you have any questions feel free to get in contact.
MetagenomeScope is an interactive visualization tool designed for metagenomic sequence assembly graphs. The tool aims to display a semi-linearized, hierarchical overview of the input graph while emphasizing the presence of certain structural patterns in the graph.
To this end, MetagenomeScope highlights certain patterns of contigs in the
graph (bubbles, frayed ropes, chains, and "linear" cycles),
splits the graph into its connected components (only displaying one connected
component at a time),
and uses Graphviz' dot
tool to hierarchically
lay out each connected component of a graph.
MetagenomeScope also supports the use of
SPQR tree decompositions
(computed using OGDF) to present an
iteratively expandable hierarchical overview of the biconnected components of
the graph.
MetagenomeScope is composed of two main components:
-
The preprocessing script (contained in the
graph_collator/
directory of this repository), a Python and C++ script that takes as input an assembly graph file and produces a SQLite .db file that can be visualized in the viewer interface.collate.py
is the main script that needs to be run here; it usesspqr.cpp
to interface with OGDF to generate SPQR tree decompositions. This preprocessing step takes care of graph layout, pattern detection, and SPQR tree generation. Currently, this supports LastGraph (Velvet), GML (MetaCarvel), and GFA input files. Support for SPAdes FASTG files should be ready very soon, as well. -
The viewer interface (contained in the
viewer/
directory of this repository), a client-side web application that reads a .db file generated bycollate.py
and renders the resulting graph using Cytoscape.js. This is coupled with an interface and "control panel" supporting various features to help with assembly finishing and exploratory analysis.
The bifurcated nature of the tool lends it a few advantages that have proved beneficial when analyzing large graphs:
- The user can save a .db file and visualize the contents of the file an arbitrary number of later times, without incurring the costs of layout/pattern detection/etc. twice
- The user can host the viewer interface and a number of .db files on a server, allowing many users to view graphs with the only costs incurred being those of rendering the graphs in question
-
Controls
(Work in progress)
-
Viewer Interface Tutorial