nrnb / GoogleSummerOfCode

Main documentation site for NRNB GSoC project ideas and resources
116 stars 39 forks source link

Implement a Cytoscape app for GraphSpace. #91

Closed adbharadwaj closed 7 years ago

adbharadwaj commented 7 years ago

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.

Goal

This project will create a Cytoscape app 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: First, export a network and its accompanying style in Cytoscape to JSON files. Then upload these JSON files to GraphSpace using its web interface. For the reverse direction, download a graph’s JSON and style JSON files from GraphSpace and then importing these files into Cytoscape.

This app will allow users to upload graphs and their styles directly from Cytoscape to GraphSpace without manual intervention and saving of files. This app will thus enable a Cytoscape user to seamlessly share their networks on the web, thus taking advantage of GraphSpace’s facilities for collaboration. 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.

Skills

This project will require knowledge of the following technologies:

Difficulty level 2

The student will have to learn how to develop a plugin for Cytoscape.

Potential mentors

Aditya Bharadwaj T. M. Murali

Contact

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

anu0012 commented 7 years ago

Hey, I am interested in this project. Can someone guide me?

adbharadwaj commented 7 years ago

@anu0012 Do you have any experience with Cytoscape and Java? We would need you to do the evaluation task given below.

adbharadwaj commented 7 years ago

Hi everyone,

Since an understanding of the Cytoscape Plugin Development is important for this project, we would like to see if you can quickly build a sample Cytoscape plugin. This will be a part of the selection/evaluation task.

The plugin should have following functionality

We would like you to create this sample project with the following documentation:

  1. Setup Instructions.
  2. Tutorial on how to use the sample plugin with screenshots.
  3. Reference links to any blog or StackOverflow page you referred to during this task.

Once you are done, go ahead and share the link to the GitHub repository with us. We will be evaluating on the basis of following metrics:

  1. Working demo.
  2. Tutorial for setting up the demo on a different machine.
  3. Documentation for the code.

Feel free to send me an email at adb@vt.edu if you need any help or clarification.

Reference links:

  1. http://wiki.cytoscape.org/Cytoscape_Plugin_Tutorial
  2. http://graphspace.org/help/programmers#add_graph
khanspers commented 7 years ago

GSOC 2017 selected project