Python JavaScript HTML C++ CSS Shell Makefile
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
dependency_licenses
docs
graph_collator
viewer
.gitattributes
.gitignore
COPYING.txt
DEPENDENCY_LICENSES.txt
Makefile
README.md
commit.fish
layout_summary.txt
minify_files.fish
update_dbs.fish
video_tutorial_script.txt

README.md

MetagenomeScope

Screenshot of MetagenomeScope's standard mode, zoomed in on a region of a biofilm assembly graph

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 structural patterns of contigs in the graph, 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 the graph.

MetagenomeScope also contains a bunch of other features intended to simplify exploratory analysis of assembly graphs, including tools for scaffold visualization, path finishing, and SPQR tree decomposition.

MetagenomeScope is composed of two main components:

  1. 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 uses spqr.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.

    • See this page on MetagenomeScope's wiki for information on the system requirements for the preprocessing script.
  2. The viewer interface (contained in the viewer/ directory of this repository), a client-side web application that reads a .db file generated by collate.py and renders the resulting graph using Cytoscape.js. The viewer interface includes a "control panel" supporting various features for interacting with the graph.

    • Since MetagenomeScope's viewer interface is a client-side web application, you can access it from any modern web browser (mobile browsers also work, although using a desktop browser is generally recommended), either locally (if the viewer interface code is downloaded on your computer) or over HTTP/HTTPS (if the viewer interface code is hosted on a server).

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 generated by the preprocessing script and visualize that 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

Demo

A demo of MetagenomeScope's viewer interface is available at mgsc.umiacs.io. You can use the "Demo .db" button to load sample assembly graph files that are already hosted with the demo.

See this page on the wiki for instructions on customizing your own hosted version of MetagenomeScope's viewer interface.

Wiki

Documentation on MetagenomeScope is available at its GitHub wiki, located here.

License

MetagenomeScope is licensed under the GNU GPL, version 3.

License information for MetagenomeScope's dependencies is included in the root directory of this repository, in DEPENDENCY_LICENSES.txt. License copies for dependencies distributed/linked with MetagenomeScope -- when not included with their corresponding source code -- are available in the dependency_licenses/ directory.

A note about copyright years

The copyright years at the top of each of MetagenomeScope's code files are given as a hyphenated range (e.g. 20xx-20yy) with the understanding that each year included in this range represents a "copyrightable year" in which a version of MetagenomeScope's code was publicly released on GitHub. (This note is included per the GPL guidelines here.)

Acknowledgements

See the acknowledgements page on the wiki for a full list of acknowledgements in MetagenomeScope.

Contact

MetagenomeScope was created by members of the Pop Lab in the Center for Bioinformatics and Computational Biology at the University of Maryland, College Park.

Feel free to email mfedarko (at) umd (dot) edu with any questions, suggestions, comments, concerns, etc. regarding the tool. You can also open an issue in this repository, if you'd like.