Google Summer of Code 2013

 

GSoc 2013 logo image00

Google Summer of Code (GSoC) is a global program that offers student developers stipends to write code for various open source projects. Google will be working with several open source, free software, and technology-related groups to identify and fund several projects over a three month period. Since its inception in 2005, the program has brought together nearly 4,500 students and over 3000 mentors from over 100 countries worldwide, all for the love of code.” GSoC has several goals:
  • get more open source code created and released for the benefit of all
  • inspire young developers to begin participating in open source development
  • help open source projects identify and bring in new developers and committers
  • provide students the opportunity to do work related to their academic pursuits during the summer
  • give students more exposure to real-world software development scenarios

This is my application to this years Google summer of code program.

 

 


Application for NRNB Google Summer of Code:

 

Information:

Name:

Sravanthi Rani Sinha

Email:

 kmitsravanthi@gmail.com

LinkedIn profile:

 http://www.linkedin.com/in/sravanthisinha

Brief background: Education and relevant work experience

Bachelors:

Electronics and Communications Engineering (2009-2013) at Keshav Memorial Institute of Technology (http://www.kmit.in/)

Internships:

Internship at National Resource for Network Biology (May 2012 – August 2012) mentored by Martijn van Iersel

 

Title of the Project: To Develop a Stoichiometry Plugin for PathVisio.

 -To create a plugin for PathVisio which is aimed at producing a Stoichiometry Matrix for a standard biological Process Diagram. The plugin makes it easier for the users to analyse pathways adhering to a standard (SBGN-PD). This tool generates a Stoichiometric Matrix for a Process Diagram then the user is provided with  option of exporting the Generated Stoichiometric Matrix generated for particular Process Diagram in .txt Format. http://developers.pathvisio.org/wiki/StoichiometryPluginHelp

Title of the Project: Improving validation through the PathVisio-Validator plug-in and Provide SBGN validation in the Validator-Plugin

 – Extend the functionality of the PathVisio-Validator plugin (which helps in  producing standard biological pathway diagrams in PathVisio) to provide the validation for SBGN files which earlier had the options of validating on MIMML and GPML.

http://sravanthisinha.wordpress.com/2012/07/25/improving-validation-through-the-pathvisio-validator-plug-in/

 

Programming interests and strengths

 

What are your languages of choice?

I am adept in programming in Java, OSGi Framework and .NET Framework. In addition, I have exposure in database development using MySQL, Microsoft SQL Server and front end web development using HTML5, CSS, JavaScript,  Ajax and PHP.

 Recently, I worked as a developer for a real time Library Management System which is completely in .NET FrameWork and published on Windows Azure. This project gave me an opportunity to experience the complete SDLC process. This project was developed for a library which has the books written only in Marathi Script hence the website is developed in Marathi Language http://mgshyderabad.azurewebsites.net (still in the testing stage on a 3 months free trial on Windows Azure)

 

Any prior experience with open source development?

 Since I have previously worked on Stoichiometry Plugin and Validator Plugin during my internship and also started working on the proposal, I have substantial experience in open source programming.

 

What do you want to learn this summer?

I am really enchanted with the concepts of PathVisio (a standalone pathway editor and pathway analysis tool). I do have quite a bit of programming experience but only as a student. I think in the course of programming for the Google Summer of Code I will be provided with opportunity to gain more knowledge in a rapidly evolving field that interfaces computer and biological sciences. I would like to gain further expertise in real-world software development scenarios and learn about software licensing issues.

 

Your interest and background in biology or bioinformatics

 Any prior exposure to biology or bioinformatics?

I possess a little knowledge on biology or bioinformatics. During my Internship at NRNB, I learnt about pathway visualization using the Systems Biology Graphical Notation (SBGN), and also validation of SBGN files using Schematron (A rule-based validation language for making assertions about the presence or absence of patterns in XML trees). Hence I am familiar in the areas of SBGN and schematron. And I expect to gain a prospect to enhance my bioinformatics skills this summer.

Any interest in learning a bit of biology this summer?

I am looking forward to learn a bit of Bioinformatics. I am also fascinated by the way biology and computers have weaved together creating a wonderful platform for developers like us to work on.

 

Project Idea: WikiPathways client plugin for PathVisio

 

PathVisio is a tool for pathway visualization and analysis. The pathways from WikiPathways can be downloaded and opened in PathVisio. WikiPathways provides the functionality of creation, upload, search, browse of pathways.  I would like to develop a PathVisio plugin which enables the user to browse, search and upload pathways in WikiPathways directly from the PathVisio using the web services provided by WikiPathways.

The functionalities that will be supported by this plugin are:

  • search for pathways by name, pathway element labels

  • search for pathways by identifier / pathway element identifiers

  • search for pathways by publication reference

  • search for pathways containing a set of genes/metabolites

  • search for pathways by species

  • search for pathways by ontology term

  • browse pathways by species

  • browse pathways by ontology tag

  • browse pathways by category

  • browse pathways by curation tags

  • upload new pathway to WikiPathways.

 

Goal:  To develop a PathVisio plugin to browse, search and upload pathways in WikiPathways directly from the standalone PathVisio version.

 

Description and implementation section of the project idea

 

  1. To add the “WikiPathways” to the menu of the PathVisio. Register the submenus under the “WikiPathways” menu

 

Implementation:

  • For addition of WikiPathways menu we have to include the Jmenu under the addMenuActions method of MainPanelStandalone (which is in the interior part of PathVisio CORE). The submenus can be registered through the plugin by creating a class which implements Plugin Interface

For achieving all the below goals, I would be using the webservice provided by WikiPathways at http://www.wikipathways.org/wpi/webservice/webservice.php?wsdl.

 

2. Search : For the search implementation part I would like to reuse the code of wikipathways client plugin created by Thomas Kelder (http://developers.pathvisio.org/wiki/PluginDocumentation#WikiPathwaysClientPlugin). Currently some of the search usecases are not provided by the web service which would be required by the wikipathways client plugin. Hence I would be rewriting those part of the functions in the webservice. (For eg: Search pathway based on pathway element identifiers).

 

When the Search Submenu is chosen a Dialog will be displayed as shown below. In which the Search By term could be Name, Label, Pathway Identifier, Element Identifier, Publication Reference, set of genes,Ontology Tag, etc.,  According to the option selected in the Combobox the Search Label(2nd label) will be changed. If Element Identifier is selected as the Search Term then their would be addition of 3rd entry field to select -”Database system” ( which could be Ensembl, EntrezGene, etc.,). On Click of Search button the list of pathways will be displayed in the Search Results panel. User can select the required pathway and the pathway will be loaded into PathVisio.

 

3. Browse: When the Browse Submenu is chosen a Dialog will be displayed as shown below.In which the User has the choice to select the Species or Category or Cuartion tags or Ontology (we have three different ontologies -pathway ontology, disease ontology and cell type ontology). According to the options selected the list of pathways will be displayed in the Pathways panel. User can select the required pathway and the pathway will be loaded into PathVisio.

 

4.Upload: The user can upload a new pathway or update the existing pathway. Upload of pathway requires the authentication. when the user initially tries to upload the pathway, he has to provide the Login Credentials (this will be stored in the session).

Figure(1)

 

  • Upload of new pathway can be done once he has been authenticated. He has to just click the “New pathway‘ in the upload submenu of wikipathways.

    Figure(2)

 

  • Upload of existing pathway would require some more details like Pathway Identifier(which pathway to be update) and the modification summary in the Description field. On click of ‘update’ button the pathway which is existing in WikiPathways, will be updated.

Figure(3)

 

 TimeLine:

Week

Tasks

Jun 17 – Jun 24

GUI implementation: create GUI for PathVisio, such as adding menus

Jun 24 – July 1

Implement the GUI part  for Search Functionality to provide search by Name, Label, Pathway Identifier

Jul 1 –  Jul 8

Fix the WikiPathways web service  to provide the additional functions needed to complete search for remaining terms.

Jul 8 –  Jul 15

Finish the Search funtionality and see that the selected pathway is loaded into pathvisio

Jul 15 – Jul 22

Fix the WikiPathways web service  to provide the additional functions needed to complete Browse functionality.

Jul 22 – Jul 29

Clean up code for mid-term evaluations

Jul 29 –  Aug 9

Implement the GUI part  for Browse Functionality.

Aug 9 –  Aug 16

Fix the WikiPathways web service  to fetch the WSAuth (Container for authentication data for a logged in WikiPathways session)

Aug 16 –  Aug 23

Implement the GUI part  for Upload of Pathway

Aug 23 –  Aug 30

Create Junit Test cases  for the plugin.

Aug 30 –  Sep 6

Create Junit Test cases  for the plugin.

Sep 6 – Sep 13

Debugging and Documentation

Sep 13 – Sep 20

Debugging and Documentation

Sep 20 – Sep 24

Prepare for submission

 

DISSEMINATION

 

I would like to continue discussion and reporting the project progress with the mentors through a weekly hangout and mails. I propose to write a blog as a lab journal with weekly entries to keep the communities (NRNB, PathVisio, WikiPathways) up-to-date.

Identify possible hurdles and questions that will require more research/planning

 I would require little more research in Identifying the functions to fix the web service required to achieve the goals.

 

What can I bring to the team?

 I am a strong believer of working towards achieving a goal set in front of me. I’m also a quick learner and any new technology interests me as it gives me an opportunity to learn a lot. I would like this opportunity, if given to me, to be an enriching and memorable work experience for the organization, my mentor and myself.

 

Are you committed to working hard this summer?

I am determined to work hard this summer to finish coding in time and publish the plugin.

 

Are you enthusiastic?

I am very  enthusiastic and I hope I will get accepted. I am very looking forward to working on this project.

 

Why my project proposal should be chosen?

The proposal will bring in the advantages of the wikipathways (ie) Search for specific pathway based on any search term (Name, Identifier, Species, Ontology,etc., of pathway) from wikipathways and fetch it directly into PathVisio. Browse across the various pathways according to users criteria (species, category, ontology of pathways,curation tag). Upload of the pathway (either new pathway / update existing) can be achieved directly from the PathVisio tool. I have all the skills and knowledge to turn the objectives of the proposal into reality.

Leave a reply

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> 

required