Skip to content
Aditya Bharadwaj edited this page Dec 16, 2017 · 4 revisions

GraphSpace: "Diffs" for graphs

Background

GraphSpace is an easy-to-use web-based platform collaborating research groups can use for storing, interacting with, and sharing networks. A GraphSpace user can upload graphs through a REST API, import graphs created in Cytoscape, interact with graphs (view them, customize layouts, and save layouts), share graphs (create groups and add collaborators, share graphs among all members of a group or with the world), search graphs, and organize graphs using tags. GraphSpace has a comprehensive REST API that allows users to communicate programmatically with it. Overall, GraphSpace provides a rich set of user-friendly features to store and access graphs online.

Going forward we also want to allow our users to easily compare their graphs (or graphs they have access to) with each other. Here are some example scenarios where allowing for comparisons would be useful:

  • A user runs some algorithm which generates a network, uploads the network to GraphSpace and visually analyses it for a bit. They then perform some small tweaks to the algorithm or input data, run the algorithm again and upload the new graph. How did the network change? Specifically, which nodes and edges are different?

  • A user generates 50 sub-networks based off of the same underlying network, but with a different input or algorithm each time. What do all of the 50 networks have in common with each other? Are there nodes and edges that appear in all the networks, or some percentage (such as 75%) of the networks?

Goal

The overall goal of this project is to implement a Compare View interface which will allow users to easily compare graphs they have created (or have access to) with each other. The Compare View should showcase all information needed to determine what changed over a series of changes onto a single graph or between two or more different graphs. The Compare View interface should support two types of comparisons. - Intersection - The interface should reveal elements which are common in both graphs. - Difference - The interface should reveal elements which are present in one graph but not in other graphs.

This project has three sub-tasks.

  1. Compare two graphs. Facilitate comparing two graphs A and B using a graphical interface in following ways: i) A intersection B, ii) A minus B, and iii) B minus A. This task will require UI updates to choose/select graphs to compare, an implementation of graph intersection and difference and a GUI to visualize the comparisons.

  2. Compare three graphs. Facilitate comparing three graphs A, B, and C using a graphical interface. The interface should allow users to customize the comparison query. For example: A intersection (B minus C) or A minus (B intersection C).

  3. Compare two or more graphs. The aim of this task is to extend the view to more than two graphs in general.

Skills

List skills/technologies that the student should be familiar with.

  • Python, Cytoscape.js, HTML, JS, Jquery, CSS (essential)
  • Django (nice to have)

Public Repository

https://github.com/Murali-group/GraphSpace/

Potential Mentors

Aditya Bharadwaj T. M. Murali

Contact

adb@vt.edu murali@cs.vt.edu

Clone this wiki locally