Skip to content
Rishabh Sethi edited this page Jul 18, 2017 · 6 revisions

Cytoscape app for GraphSpace (CyGraphSpace)

Abstract

The overall goal of the project is to create a Cytoscape app (CyGraphSpace) for syncing networks from Cytoscape to GraphSpace and vice-versa. Conceptually, the app will be similar to the ​CyNDEx app​, which syncs Cytoscape networks with NDEx. Currently, users can sync between Cytoscape and GraphSpace manually by following the given steps:

  • Cytoscape to GraphSpace: First, export a network and its accompanying style file in Cytoscape to JSON files. Then upload these JSON files to GraphSpace using its web interface.

  • GraphSpace to Cytoscape: Download a graph’s JSON and style JSON files from GraphSpace and then import these files into Cytoscape. CyGraphSpace will allow users to upload graphs and their styles directly from Cytoscape to GraphSpace without manual intervention and saving of files thus enabling a Cytoscape user to seamlessly share their networks on the web via GraphSpace. A user can also quickly import GraphSpace graphs into Cytoscape, analyze them with other Cytoscape apps, possibly make modifications, and then re-upload them to GraphSpace. This project will also require creating a well-documented Java library that interfaces with the GraphSpace REST APIs.

Steps involved

  1. Java Library to interface with the GraphSpace REST APIs.

  2. Functionality to authenticate the user in the CyGraphSpace app with their GraphSpace email ID and password.

  3. Functionality to import networks from GraphSpace into Cytoscape.

  4. Functionality to export networks to GraphSpace created or modified using Cytoscape.

  5. User Interface of the CyGraphSpace app

  6. Automatic syncing of graphs between Cytoscape and GraphSpace [optional]


Timeline

May 31 - June 6

  • Implemented GraphSpace Java Client based on python client by adbharadwaj.
  • Added Docs

June 7 - June 15

  • Swing UI for menus
  • Tests for Java Client
  • Added Installation instructions for CyGraphSpace to the docs

June 16 - June 30

  • Added UI for authentication, importing and exporting graphs
  • Implemented search for graphs
  • Implemented importing graph JSON into Cytoscape and exporting graph JSON from cytoscape to GraphSpace

July 1 - July 5

  • Implemented UI changes based on suggestions. Scrapped later

July 6 - July 12

  • Working version of the app with new UI.

July 13 - July 18

  • Added search functionality.
  • Added shared graphs in the app.
  • Open graph in browser functionality implemented.
  • Major bug fixes
  • Updated docs
  • Added graphspace icon in cytoscape toolbar for easy access by the user.
  • Separated UI and request tasks.
  • Added signifiers for users while loading graphs. More work on user experience

July 19 - July 25

  • Complete Documentation for Java Client and CyGraphSpace app.
  • Set up a website for the docs, blog and project source code.
  • Make user authentication persistent across sessions.
  • Restructure and clean code.

July 26 - August 10

  • Complete implementing Tests for java client methods
  • Implement tags and groups support while exporting graphs and updating
  • Add pagination with page numbers
  • Style json to XML conversion and import in cytoscape
  • Style json export to GraphSpace

August 11 - August 29

  • Work on missing functionalities.
  • Update docs
  • Write tutorials
Clone this wiki locally