Tuesday, June 28, 2016

First week for converting Layout to CellDesigner Annotation

Hello all,

Last week, I  have mentioned that there are still few attributes in the CellDesigner annotation to be converted. Before working the conversion for the other direction, I have implemented the conversions for links and bezier curves.



As for the conversion of SBML Layout to CellDesigner Annotation,  I have been working on the APIs for SBML objects such as Species and for inputs/outputs. The basic algorithm for the conversions with be as follow.

  1. Read model with JSBML
  2. Downgrade 1. to Level 2 Version 4
  3. Unmarshal 2. as string
  4. From 1. convert the Layout attributes to 3.
So far, I have created the basic algorithms above and have created model with empty CellDesigner annotation. Below are the progress I have made so far. For next week, I will be starting on converting each type of glyphs.




Wednesday, June 22, 2016

Half way through

Hello all,

This week is midterm evaluation week. Which means that I am half way through the GSoC program. This week, I have been working on the conversion of complex species and edit points for branched reactions.



Since it's midterm week, I have created a diagram to show how much of the conversion from CellDesigner Annotation to SBML layout has been completed. All items in blue are the ones that have been covered and are able to convert. Items in red are annotations that have not yet been implemented.  From this diagram, you can tell that I still need to work with reactant / product links, residues, beziers, and boolean. 



For my initial plan, I had my midterm goal set as completing the conversion of CellDesigner Annotation to SBML Layout.  The converter still have some missing features, but I have roughly accomplished my goal.  As for my next goal, I will be working on the conversion from SBML Layout to CellDesigner Annotation and will have a converter that converts both ways.




Tuesday, June 14, 2016

Hello everyone,


Since last week,  I have been working with the conversion of reactions.  This week, I have been mainly working on edit points (reaction with bending lines) and modifiers. Here are some diagrams that I have accomplished .




For next week, I will continue working on the conversion of reaction. Heterodimers, dissociation, and truncation reaction with edit points, species complex,  bezier curves, and residue are the things left to be completed. And since it is midterm evaluation next week, I am hoping to complete the CellDesigner annotation conversion to SBML Layout by then.

Wednesday, June 8, 2016

Hi everyone,

Last week,  I have successfully converted the compartment and species from CellDesigner annotation to SBML Layout.  Since then, I have been working on converting the reaction. So far, I have partial completed converting reaction.

For now, I have completed conversions reactions with straight lines and heterodimer association, dissociation. and truncation. Below are some of the models I have successfully converted.

original model  1                                   converted model 1



original model  2                                   converted model 2


heterodimer original                               heterodimer converted


dissociation original                                  dissocation converted



truncation original                                  truncation converted


combined original                                                      combined converted

For next week, I will be working on reactions with bending lines, reactions with modifiers, bezier lines and complexes.  And I am hoping to complete the conversion from CellDesigner annotation to SBML Layout  before the midterm evaluation.

Tuesday, May 31, 2016

CellDesigner → SBML

Hello all,

Last week, I have created APIs from schemas.  Using the APIs, I have tested if I can get the attributes from XML. With the test, I have figured out that I could not obtain the celldesigner:reactionType attributes (already fixed).

For the past week,  I have been implementing the converter that converts CellDesigner annotation to SBML Layout. The brief outline of the converter is as follow.


  1. Read XML using the generated APIs
  2. Read XML using JSBML
  3. Copy datas from 1. to the wrappers which were implemented last week
  4. From 3. copy the necessary datas into 2. 
So far, I have implemented conversion of compartment and speciesAlias. Figures shown below are the original model created with CellDesigner and the output model visualized with SBML Layout Viewer. As you can see, most diagrams are in the same layout. However the text for each diagram still needs some adjustments. 




For next week, I will be implementing the conversion of reactions (the lines show in the diagram). And I am hoping to  start the conversion from SBML layout to CellDesigner.



Tuesday, May 24, 2016

Coding Period begins

Hello everyone,

This week has been the most productive so far and I was able to start coding on schedule.


Last week,  I had some trouble generating APIs from 3 schemas (CellDesigner.xsd, sbml-level2-v4.xsd, and  sbmlCellDesignerExtension_v4_2.xsd) with JAXB. By removing the annotation definition in sbml-level2-v4.xsd and changing the element in CellDesigner.xsd, my mentor and I have succeeded generating the APIs from schemas.  It still needs testing but I was able to obtain the CellDesigner extension from species. Below are all the classes that have been generated.




For the generated APIs, I have been creating some utility classes for easier use. Since CellDesigner annotates model, compartment, species, reaction,  speciesReference, and modifiedSpeciesReference, I have created wrapper classes to easily access the extended attributes for all of them. And also for speciesAlias.

For next week, I will do mainly two things. First is to test the generated APIs for the CellDesigner extended attributes. Second thing is to create classes that clones from unmarshalled data structure to the wrapper classes. Once I have checked that all datas are stored properly, I will start implementing the actual converter.