Tuesday, May 31, 2016

Week 6

Good news, over the last weekend I got some of the primary parts, mainly all the changes were done in the SetGetFunctions.py and it already generates code. Here are some snippets.

Here are the same functions from QualitativeSpecies.java: official JSBML example  and Deviser generated code.


But there were way more changes and other changes have to be done as well.

  1. Refactoring of the variables and class names has been performed.
  2. In BaseJavaFile.py: It was modified, but the main changes were done to the expand_attributes method, also a new dictionary value was added the "JClassType" for attributes. Since Java has both the primitive and the Class. Example int and Integer.
  3. Major changes in the SetGetFunctions.py, that included modifying write_set,write_get, write_is_set, write_unset and their submodules.
  4. All the changes were pushed to the fork.


Monday, May 23, 2016

Week 5

This week involved understanding the flow of the Deviser package, which included setting up many breakpoints for debugging in PyCharm.

Modules from code_files folder were copied and renamed to java_code_files. The idea is to reuse as much code as possible, also refactoring was performed using PyCharm.

JSBML repository was cloned from GitHub, as well as the fork  was updated to match with the master branch.

Next step will be to modify the SetGetFunctions, which is responsible for the attributes(the package based on the attributes generates the constructors as well as functions)as well as BaseJavaFile.

Monday, May 16, 2016

Week 4

This week was an interesting one.

It involved reading and comparing between the Deviser generated packages with the JSBML examples as well as delving in the references of C++, Java, JSBML.The work was done on the 5 packages(fbc, dyn, distrib,spatial,qual).
The diagrams for the JSBML examples were obtained through ObjectAid in Eclipse.

High resolution PDF links are posted.
Here's the meaning behind the coloured circles:

Green - similar in both LibSBML and JSBML
Blue - similar, but in a different location
Orange - similar, but with some differences
Red - not available in LibSBML

FBC package

dyn package

distrib

spatial

qual

The major differences are observed in the qual package.


After that to have a better understanding of Deviser, which is written in Python, having a  class diagram would be helpful.In the end I installed pylint, which includes pyreverse and here's a PDF diagram,but need to have thorough look at the options.
Deviser classes

On a final note, the fork of the Deviser generates  the JSBML package folder structure as described in the JSBML Manual.


Monday, May 9, 2016

Week 3


Hi everyone!

There were couple of problems, that had to be solved.
Debugging  with Spyder was not as effective, nor comfortable for big project like this, so I set up PyCharm Community Edition, which has very robust debugging tools.
Creating UML diagrams for the SBML and JSBML extensions by hand was not effective and because of that I decided to find programs for the automatic generation of class diagrams and looked through programs such as Umbrello, ArgoUml, SmartUML and others, but in the end I installed ObjectAid for Eclipse, and Oovaide(https://github.com/animatedb/oovaide)
Here's the summary what was done during this weekend.

  1. Migrated from Spyder to PyCharm, Spyders' debugging tools are not as powerful as PyCharm.
  2. Eclipse was set up and all JSBML tests were passed.(Fig.1) 
  3. ObjectAid for Eclipse was set up for the automatic creation of  java class diagrams to aid analysis and comparison between SBML and JSBML extensions. (Fig.2)
  4. Oovaide was set up for the automatic creation of  c++ class diagrams, but it's not as powerful as ObjectAid.
    Fig.1. Passed JSBML tests.



















                                                  
Fig.2 ObjectAid created diagram for FBC extension


Sunday, May 1, 2016

Week 2


Hello all!

GSoC has been going on for a week, and the SBML and JSBML team and I have been getting to know one another through dozens of emails. Since this was my first time working with a highly established project such as Deviser and JSBML, there was a definite learning curve. Dr. Bergmann, Dr. Keating, Dr. Dräger and the rest of the team were incredibly patient with me.

So here's the summary what was done last week:

  1. Forked Deviser
  2. Added placeholder code for the generation of JSBML code.
  3. Created a UML diagramm of the Deviser's SBML code generation to see the interaction between the modules.
     
So next step will include:

  1. Analysis of the modules to see what can be reused
  2. The generation of the filestructure compatible with the JSBML
  3. Creation of the BaseJavaFile

Tuesday, April 26, 2016

Introduction

Hello all!

        My name is Hovakim Grabski. I am Ph.D. student at the department of Medical Biochemistry and Biotechnology at Russian-Armenian (Slavonic) University.I hold a specialist's degree in Bioengineering and Bioinformatics from the Russian-Armenian (Slavonic) University. This summer, I am being mentored by Dr.Frank T, Bergmann and  Dr. Andreas Dräger, both part of the NRNB. My project  focuses on  Deviser,which  is   a   new   code   generation   system   being   developed to facilitate   the   development   of  SBML   L3   packages   by   helping   to   automate   the generation   of   specifications,   UML   diagrams   and   library   code   as   well   as   to   provide   a fast,   efficient   means   of   changing   both   API   code   and   specification   documentation   to facilitate   the   update   of   documentation   and   implementation   necessary   as   the   package itself   evolves.   The   code   generator   currently   targets   ​ libSBML   only and  the   goal   is   to extend   Deviser's   code   generator   to   produce   Java   code   that   can   be   integrated   into JSBML​,   the   pure   Java   API   library   for   SBML.   This   will   allow   Deviser   to   target   both libSBML   and   JSBML​ (​https://github.com/sbmlteam/deviser​)



I am very enthusiastic about the opportunity to work with Dr. Bergmann  and Dr. Dräger and the rest of the NRNB and SBML team. I am sure that it will be a great summer.