The second week of coding period is completed and I have successfully completed two tasks in this week.

The task for the second week is Validation of the SBML file:

In simple words, successful completion of this task helps us to validate an imported sbml file and gives us the information such as warnings and errors occurred in that particular sbml file. This validation gives us a detailed analysis as to which particular elements in the model are not diagrammed according to the sbml standard.

The task involves adding an Validate button to the main pane of the PathVisio editor. When ever the validate button is pressed, a validate dialog box containing button pane [open and validate file buttons] and output pane is opened. The open button is equipped with the file chooser action, hence when the open button is pressed the file chooser event is invoked which allows us to select the sbml file. Here the file chooser is written such that it even filters the files which can be chosen (here .sbml and .xml ).

The status bar in the dialog box shows which file is chosen. When the “validate the file” button is clicked ,the validate method is invoked and  the output is showed. Currently the output is shown in the console of the eclipse, but it should be shown in the output pane of the dialog box. Refer: ValidatePanel.java

The following figures depicts the functionality:

validation

validateclick selected file outputonconsole

Note: The sbml file is taken from http://www.ebi.ac.uk/biomodels-main/BIOMD0000000002

The next blog post depicts the third task.

 

Cheers,

Sri Harsha.P

Finally, the official date for the coding period of Google Summer Of Code 2013 arrives. As discussed with my mentor, I am going to start with the initial task.

The task for this first week is to :

Implement the code for Import of SBML models in PathVisio.

I had to pass through few hurdles before I could actually run this sbml plugin. Initially, I found it difficult to build this plugin.But I made it run finally. I made some changes to the code by adding few jar files to the lib folder and also few other small changes which made this import of the models work successfully.

The jar files added to the lib folder are : SBGN.jar and org.sbgn-with-dependencies.jar. The SBGN.jar is used because we are representing SBML in SBGN PD format.Through SBGN PD we are representing SBML layouts and models.The org.sbgn-with-dependencies.jar helps us to use the shapes available in SBGN.

Previously, the labels of the elements of  imported models were not shown. But now, with a small addition to the code, which is pelt.setTextLabel(qs.getName());  the labels of the elements are set and shown.

Note:[Here pelt is the object of the PathwayElement class and qs iterates through the list of the Qualitative species which are retrieved from the object(here qualModel) of the QualitativeModel class. Refer: PeerModel.java(org.pathvisio.sbml.peer)]

Now, I could successfully import the sbml file into the pathvisio editor.

Here is the screen shot which depicts the import of sbml models into the editor:

Importing an sbml file

 after importing

Note: The sbml file is taken from http://www.ebi.ac.uk/biomodels-main/BIOMD0000000001

 

Cheers,

Sri Harsha.P

Application for NRNB Google Summer of Code:

Information:

Name:

Sri Harsha P

Email:

kmitharsha@gmail.com

LinkedIn Profile:

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

 

Brief Background: Education and relevant work experience:

Bachelors:

Electronics and Instrumentation Engineering (2009-2013) at Keshav Memorial Institute Of Technology (http://kmit.in)

Internships:

Google Summer Of Code at OpenMRS.org (May 2013 – August 2013) mentored by Rafal Korytkowski and Glen McCallum

Title of the project: Metadata Repository

Description: The goal of this project is to create a central repository of metadata where OpenMRS installations can publish their metadata. The Metadata Sharing Server will store metadata from different OpenMRS servers and expose them to clients. Clients will be able to search through metadata packages and choose some to import and subscribe. In this model the Metadata Sharing Server will act as a central subscription server for clients.

https://wiki.openmrs.org/display/RES/Metadata+Repository

Your Programming interests and strengths:

What are your languages of choices?

I am adept in Java , jUnit testing, Python. In addition, I have experience in database development using MySQL, front end web development using JavaScript, jQuery, PHP, CSS3, HTML5, Ajax and in developing Android applications.

Previously, I created an HTML5 application, Quick To Do List. This is an easy to use web app for creating quick to-do or shopping lists. A user can add,edit and delete items.The code is at https://github.com/applecool/QuickToDoList

Any prior experience with open source development?

I have been involved in open source development in the past two years. I have fixed few bugs in LimeSurvey.org, wrote an enhancement for K-9Mail Android application. During my GSOC 2012, I created an entire web application in spring mvc for OpenMRS.org, solved several bugs and wrote enhancements.

I tried to solve some of bugs in PathVisio (currently under review)

1 .Ticket #794: Feature suggestion: Rename the option for “Text label” (under Vis Options) to “DataNode label”.

2. Ticket #897: Advanced pathway search.

I have followed the tutorials on the PathVisio website and learnt how to develop a plugin for PathVisio.

I enjoyed testing the WikiPathways editor on Mac platform for its releases.

What do you want to learn this summer?

I am pleased with the entire idea behind PathVisio, which provides functionality to edit and analyze biological pathways. During this summer, I would like to learn about the development of bioinformatics tools and the OSGI framework which are used in the PathVisio application.

Your interest and background in biology or bioinformatics:

Any prior exposure to biology or bioinformatics?

I do possess a bit of knowledge on biology (High School Level). I have studied about Ecology and environment (Organisms and Environment, Ecosystems, Biodiversity and its conservation),  Biology and Human Welfare(Health and Diseases), Unit of Life (Biomolecules, Enzymes, cell membranes) etc.,

Any interest in learning a bit of biology this summer?

I am looking forward to learning a bit of Bioinformatics this summer. Expect to gain more knowledge  to analyze a biological system by understanding the underlying biological processes represented as pathways.

 

Project Idea: SBML Importer Plugin for PathVisio:

SBML is a machine-readable format for representing models. It’s oriented towards describing systems where biological entities are involved in, and modified by, processes that occur over time. An example of this is a network of biochemical reactions. SBML’s framework is suitable for representing models commonly found in research on a number of topics, including cell signaling pathways, metabolic pathways, biochemical reactions, gene regulation, and many others.

I discovered that there is already a plugin developed for SBML and is at http://svn.bigcat.unimaas.nl/pvplugins/SBML/trunk/ . I checked out the code and tried to build it, initially I faced some problems to build it but luckily I could fix them. The present plugin is able to Import the models and layouts from SBML  (though the layouting is not proper) and  is able to provide an option of exporting the imported model or layout as GPML. The conversion from SBML to GPML is using SBGN as a bridge.

Hence I would like to extend the present SBML plugin with a better visualization of the models and layouts (using SBML Libraries) in SBML  and an  export feature which  enables the user  to export the models and layouts in SBML format. I would like to include the feature of validating the SBML model. This validation tool gives a detailed analysis as to which particular elements in the model are not diagrammed according to the standard. Implement an  PathVisioRPC interface for SBML importer and exporter.

Goal: To Develop a SBML plugin for pathvisio which facilitates following things

1) Import of SBML models in PathVisio –  The current SBMLplugin which is available for pathvisio has provides the functionality  to import the models and layouts from SBML  (though the layouting is not proper) The conversion from SBML to GPML is using SBGN as a bridge. Hence i will be reuse this part of existing code and fix anything that needs to be fixed in this part.

2) Layout the pathways created from the SBML models – To improve the better visualization of the  model layout.It is not very easy to implement layout algorithms for a biological pathway, because a pathway unlike a network follows a certain path, as it represents a biological process and not just connections between biological entities. Hence I would like to include the feature of applying a layout using SBML libraries provided here:http://sbmllayout.sourceforge.net/SBMLLayout/Welcome.html  and try out even  Force Directed Layout Algorithm which I assume is suitable for SBML Models. I am researching on this part to get a better way of layouting.

Currently MAPK cascade pathway is visualized as following

 

I expect the model to look like below figure

 

3) Validation of the SBML model –  When the SBML plugin is loaded “validate” button will be visible in the tool bar(as shown in figure 1) . on clicking it a window will pop asking which file to be validates (refer figure2). Then the result of validation is shown in another window (refer figure 3). which consists of detailed result of validation .Validation of SBML models can be achieved using SBML libraries.

Figure (1)

Figure (2)

Figure (3)

 

4) Add a side tab to view the elements of the SBML model: When model is importeted the model (document) information is displayed in the side tab.This can be implemented using SBML library (jSBMLvisualiser class) I have already created a sidetab and embedded this feature. The output will be as shown below.


Figure(4)

5) Export of SBML models as Models with layout information so that these models can also be used in other SBML model viewers and editors (AMIGO,VANTED,Cell Designer, etc.,).

Export of the Model or Layout can be done similar to the way import is realized by using SBGN as a bridge.

 

6) Add a SBML importer and exporter in the PathVisioRPC interface: This will allow users to use this functionality of PathVisio directly from their favourite analytical environment.

Refer :http://projects.bigcat.unimaas.nl/pathvisiorpc/

TimeLine:

Days

Tasks

Before June 17th

Learning more about OSGi Framework and analyse which Layout algorithm fits better here.

Jun 17-Jun 24

Implement the code for Import of SBML models in PathVisio

Jun 24-July 1

Implement the  GUI part of Validation of the SBML model

July 1- July 8

Add a side tab to view the elements of the SBML model

July 8- July 15

Implement the code for applying Layout for the pathway created from the SBML models

July 15- July 22

Finish applying Layout for the pathway created from the SBML models

July 22- July 29

Clean up code for mid-term evaluations

July 29- Aug 9

Implement the code for addition of feature to Export SBML models as Models with layout information

Aug 9- Aug 16

Export of SBML models as Models with layout information

Aug 16- Aug 23

Finish the Export feature of the SBML plugin and implement the code for addition of a SBML importer and exporter in the PathVisioRPC interface

Aug 23- Aug 30

Finish the code for addition of a SBML importer and exporter in the PathVisioRPC interface

Aug 30- Sep 6

Create testing framework and  write Junit tests for the plugin

Sep 6- Sep 13

Debugging & Documentation

Sep 13-Sep 20

Debugging & Documentation

Sep 20- Sep 24

Prepare for submission

DISSEMINATION

I would like to discuss and report the progress with the mentors through mails. Through a blog (which i will update weekly), I plan to communicate with PathVisio, Wikipathways, NRNB and possibly other communities.

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

Hurdles : It is not very easy to implement layout algorithms for a biological pathway, because a pathway unlike a network follows a certain path, as it represents a biological process and not just connections between biological entities. So it might be time taking and difficult to determine the most intuitive way to layout the SBML models as pathways. The algorithm which I would like to try out is:

Force directed –  As their purpose is to position the nodes of a graph in two-dimensional or three-dimensional space so that all the edges are of more or less equal length and there are as few crossing edges as possible, by assigning forces among the set of edges and the set of nodes, based on their relative positions, and then using these forces either to simulate the motion of the edges and nodes or to minimize their energy

What can you bring to the team?

Are you committed to working hard this summer?

I definitely am. This summer job will be interesting as I will gain more knowledge in Bioinformatics and Biology. Apart from that, it will be a very great experience as i will earn the opportunity to enhance my clean coding  skills even more.

Are you enthusiastic?

I am very enthusiastic and I hope I will get accepted. I have been quick enough to grab the motive of the project idea and could discover the presence of existing SBML plugin. I was able to understand the existing code and try out the visualization of the model (figure 4). I expect to complete the project successfully as I have acquired quite a bit of knowledge on SBML. I am very looking forward to working on the Pathvisio project. As the journey (research) so far in the development of the SBML plugin has been a very good learning experience. Realising the proposal will be both challenging and exciting for me.

Cheers,

Sri Harsha.P