Hi all,

I am very happy to present the SBML Layout. I have implemented the Prefuse algorithms to complete the SBML layout. My friend Christ Leemans has implemented the algorithm for the gpml and I have written the extension for the sbml. Previously the algorithm was unable to recognize the process node, hence it failed to execute the sbml layout. Now I made some changes which made the algorithm work with the process nodes too. Refer commit: link

The following screenshots depicts the functionality of the sbml layout:


Figure1: Before Layout.

rsz_2         Figure2: After clicking on Force directed Layout button.


Figure3: Further clicking on the same button.

rsz_4         Figure4: Demo with different file[before layout]


Figure5: After clicking on Force Directed Layout Button.



Sri Harsha.P

Hi all,

I am overjoyed to present the SBML export feature in this project. Now one can export the gpml file as sbml. Here is a brief summary about the import and export. When ever the SBML file is imported into the Pathvisio editor. It is internally converted into gpml by using SBGN PD as a bridge. Then, while exporting the gpml file should be converted back into the sbml through SBGN PD.

The following screen shots delineate the functionality of the SBML Export:


Figure 1: Importing an SBML file.


Figure 2: After importing the sbml file into the editor and clicking on export button from the file menu.


Figure 3: Saving it in a preferred location. Note:  Should select the sbml extension from the drop down.


Figure 4: Saved SBML file on the disk.



Figure 5: The output file after exporting with all the details like species,reactions,list of reactants, list of species and species references.


Sri Harsha.P


Previously, the annotations of the elements of the sbml model were not shown in the backpage. The Data nodes and the interactions can be annotated as of now and these should be visualized in the back page of the pathvisio editor.

So, this can be achieved by extracting the data source and the id from the annotation tag of the bio model’s xml file and the data source and the gene id should be set. This can be done using the Xref’s.

The annotations for the elements are under the <rdf> tag which is a child of the <annotation> tag. And it is present in the form of an URI.

The URI was something like this rdf:resource=”http://identifiers.org/reactome/REACT_6308”  The annotation id for this element is REACT_6308 and the data source is the reactome from the above URI.

The values after the identifiers.org/ was changing for every URI. Hence I extracted the URI using the annotation.getCVTerms().getResources  and then used the split function to grab the required values.

Then, I have set these two values on the pathway element.

Refer:   annotation commit and PeerModel.java

The following images depicts the functionality of this feature:


Figure 1: Bio model imported. And no element is selected. See Backpage tab.



Figure 2: The annotation for the selected element is shown in the back page tab.



Figure 3 : The annotation of the selected element is shown in the back page tab.


Note: Bio model imported is http://www.ebi.ac.uk/biomodels-main/BIOMD0000000209



Sri Harsha.P

Hello again,

I am very happy to announce that bio models have been integrated into the sbml plugin. This enables the user to search the bio models from the bio models database and import them into the pathvisio editor.

There is a very good web service which is provided by the biomodels website. I used this web service to integrate the bio models into the plugin. In the start, I was hit by many road blocks, but eventually I was successful in completing the feature enhancement.

Now we can search the bio models based upon different terms such as “Bio model Name“, “Person name i.e., the Encoder /Author Name“,”Publication Title/Id“, “CHEBIId” and finally “Uniprot Id“.

Refer: BioModelPanel.java

The following screen shots depicts the functionality of the bio models integration feature:



Figure 1: Bio models Import Button[Highlighted part ].


Figure 2: Bio model Panel.


Figure 3: Tool tips for every search field.


Figure 4: Search by Bio model Name. Here: “Tyson1991 – Cell Cycle 6 var“.



Figure 5: Search result displayed in the table bottom.


Figure 6 : Opening the selected bio model. Here : http://www.ebi.ac.uk/biomodels-main/BIOMD0000000005



Figure 7 : Imported SBML Model.



 Figure 8: Searching by Publication Name/Id . Here: ‘sbml‘.



Figure 9 : Search by CHEBI Id. Here: “24996“.


Figure 10: Search by Person/Encoder/Author name. Here : ‘Rainer‘.


Figure 11 : Search by Uniprot ID. Here :”P04637 “.


Figure 12: Searching with empty strings gives you an error.


Figure 13: Searching with invalid strings will give you a message.

Note: If you search with two search terms i.e., for example Publication Name and Biomodel Name and press search, the two results will be added up and showed in the results table.


Sri Harsha.P


Last week my task was to integrate the bio models into the plugin using its web service. But I could not complete it as I was struck with several bugs in my code. The SBML import was not working which in turn affected the visualization of the components of the sbml file feature because visualization of the components depends on the SBML file import. The other problem I had was the duplication of the buttons which are involved in the plugin. It looks like the following:


As you can see in the image, SBML side pane got repeated twice and the validate,force directed layout buttons too. This was actually affecting the import of the sbml file.

Later, I fixed this issue by clearing the cache. I removed the existing data which was stored in the AppData/Pathvisio which made the magic. This was a new thing which I learned.

Though my import was working fine, the visualization of the components of the sbml file was not working then.

The problem is that the imported file was not getting set to a doc variable which resulted in the bug. This commit fixes it.

I added comments to the code and added licenses. I haven’t finished the integration of the bio models yet. I will be working on it and will complete it in few days.


Sri Harsha.P


I have made pretty good changes in the validation of an SBML task. If you refer my  blog post which I have written earlier, clicking on the validation button displays the errors in an unembellished way if there are any errors in the selected file. There was no user friendly message if the selected file has no errors in it. So my main task was to make the UI look good as well as to display user friendly error messages.

So, I have implemented the SBMLError class to validate the selected sbml file. That was a very easy task. But I had some problems while displaying them in the output pane of the validation dialog box. Earlier, I implemented textArea which has a setText and append functions on it. So, it was very  simple to display the errors using the textArea. But the problem arose when I got to know that textArea doesn’t have support for styling the font with colors and I found that textPane has an awesome support which enables us to style the text in it.

When I was ready to implement the textPane, I found that there was no append function on textPane. Hence I wrote a separate append function to display the data in the textPane. Refer append function in ValidatePanel.java

The following screen shots depicts the working of validation of sbml file.

1st screen- On clicking validate button

Figure 1: Clicking on Validate button on the main panel displays this dialog.

2nd screen -Choosing a sbml file-without errors

Figure 2: Choosing a valid SBML file from the directory. Here, the BIOMD0000000001.xml doesn’t have any errors.

3rd screen-output

Figure 3: Displays the output in the output pane.

4th screen- choosing a file with errors

Figure 4: Choosing a file with errors. Here, I have removed some three lines in the algebraicrules.xml which makes the file an invalid sbml file.

5th screen- errors shown on the pane

Figure 5: Displays all the errors with the severity level, line number and the error message.

6th screen-extension of 5th

Figure 6: Extension of the figure 5.


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

and      http://svn.bigcat.unimaas.nl/pvplugins/SBML/trunk/testdata/level-2/algebraicrules.xml

I have completed this task in the last week. I am very sorry for posting it so late.


Sri Harsha.P



I have been working on this task during this week. The task was to just to display the important nodes of the sbml document tree. Previously, when an sbml document is imported, all the nodes like list of compartments, XML tokens, annotations,list of parameters,list of species and list of reactions are shown. Refer: previous post

The important nodes to be shown in the side pane are the Model Name, Reactions, Compartments and Species. I thought it was a piece of cake but it was not. Because, earlier I simply passed the imported document to a JTree and  added a JScrollpane which made the entire nodes to appear without any customization.Refer: earlier commit

Now to accomplish the task, I tried many workarounds on the JTree but was unsuccessful. Then I wrote a separate java file called NavigationTree.java in which I used DefaultTreeModel and the DefaultMutableTreeNode to retrieve the list of contents[compartments, reactions and species] of the imported document and  added them to the TreeModel. Refer: NavigationTree.java and DocumentPanel.java

Now when an sbml model is imported the elements in the side panel look like the following:


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


Sri Harsha.P


Until the third week of the coding period, I managed to complete all the three tasks in which the validation of the imported sbml file is done partially. Right now, the preliminary validation is completed. If we recall from the previous post regarding the validation, I was showing the results of the validation in the console of eclipse. Now, the output is shown on the gui in the output pane as below.


The outputs shows you the error with all the details such as the missing element in the model, line and column number and the species details. Right now it is a mere error message.

There are several other plans to beautify this validation task by adding more features to it in the later period.


Sri Harsha.P

The third task is adding a side tab to view the elements of the SBML model. This helps us to view all the elements of the imported sbml file in the form of a tree.

This task involves the addition of the side tab pane named SBML and adding the functionality to show the elements under the side tab pane of currently imported sbml file.

Refer: DocumentPanel.java and SBMLPlugin.java

The following images depicts the functionality:




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


Sri Harsha.P