Saturday, June 21, 2014

Preparing for the Second Group Meeting and Project Update

After 4 hours of struggle and toil debugging my code and figuring out why CellDesigner's plugin interface was crashing: the photo below is the result. Without them, I would not have been able to work through the myriad of errors and obstacles that were appearing. Some of these errors had to do with the fact that one null pointer or any oversight caused no observable error message, but simply a dramatic failure, which is analogous to a missing nail collapsing the Empire State Building. Luckily, my mentors and I cobbled together a class that gives lots of debugging information when a plugin crashes.


As one can see from the image, TextGlyphs, ReactionGlyphs, CompartmentGlyphs, and SpeciesGlyphs have now been added to the JSBML Layout Package. This is a great first step to completing my project's aims.

The Second Group Meeting and my second presentation is on Wednesday the 25th. My first presentation went well, and I have plenty to talk about for the second presentation. I will post my presentation here soon.

Sunday, June 15, 2014

At the Cusp of Great Progress

Hello everyone,

I just committed a revision to the JSBML project, most likely the biggest since I began committing JUnit tests in early May. I:

  1. Added two more JUnit Tests to the Render Package
  2. Added UserMessages.xml in the examples/resource folder to the CellDesigner build.xml file
  3. Moved SwingWorker to its' own file
  4. AbstractCellDesignerPlugin now implements PropertyChangeListener
I did run into problems with the Ant Script in regards to adding UserMessages.xml to the CellDesigner build file. I will be asking my mentors about how to fix this issue.

I have also been developing schematics for my main project, the mapping of CellDesigner data structures to JSBML data structures. They are shown below in their (probably) final form.

1. SpeciesGlyph
 2. ReactionGlyph

3. CompartmentGlyph

Current To-Do List
  1. Suggest additions to user guide setting up JSBML development in Eclipse.  
  2. Fix UserMessages.xml problem.
  3. Begin to convert the CellDesigner plugin data structure to  JSBML data structure via a new class called convertModelLayoutPackage (or something analogous)


Monday, June 2, 2014

Render Package JUnit Tests and Schematics

May 28th was our Group Meeting, and Victor and Leandro did excellent work! :)

The Render Package JUnit tests as of June 2nd, 2014


Over the past week, I have been working on extending the coverage of the JUnit tests in the Render Extension Package. There are now 10 completed unit tests out of the 34 Render Classes. 






I am planning on making schematics of each mapping of the CellDesigner plugin interface. The image below is the first schematic of a series. It was first seen during the May 28th Presentation.


I will be making other schematics for classes in the Layout Package ReactionGlyph, TextGlyph, CompartmentGlyph, etc.

I have not been running into any problems that I have not been able to solve this week. 

I will continue my JUnit testing, and I will begin to:

Develop CellDesigner plugin.
1.Obtains CellDesigners's plugin structure and export pure Layout/Render  SBML. 
2.Visualization of SBML network changes via JTree.
Synchronize changes between plugin and CellDesigner.

Tuesday, May 27, 2014

Presentation at 17:00 UTC on 28/5/2014. Be there or be Square!

Hello all,

Sorry for not blogging lately. I have been busy with sorting out my project goals and creating my presentation for the group meeting at 17:00 UTC on 28/5/2014.

So, without further ado, here is my presentation!

Saturday, May 17, 2014

Render Package Testing

Over the past week, I have been doing a few things. The main task was to develop JUnit test files for specific classes in the Render Extension package.

The Render Specification was perused and then these classes were tested:

1. ColorDefinition
2. Curve
3. Ellipse
4. LinearGradient
5. Polygon
6. Rectangle
7. Text

I encountered one problem in developing these tests. For some reason, I was getting NullPointerExceptions for the getcx, setcx, or issetcx methods of the Ellipse class, even though the other cy and cz methods were fine. It was inexplicable. So I initialized the cx variable in the Ellipse class to 0d and the methods then worked.

I need to get ready for the next joint meeting on May 28th at 5 PM UTC(12 PM CST). I am already making preliminary preparations.

I still need to read the CellDesigner Extension Tag Specification Document. I will most likely read this on Sunday the 18th.

Sunday, May 11, 2014

Systems Biology Graphical Notation

I have been reading the pertinent literature in regards to two portions of the Systems Biology Graphical Notation specifications:

1. Process Description Language
2. Activity Flow Language

Let us discuss each in turn.

According to the SBGN website, the "Process Description language shows the temporal courses of biochemical interactions in a network. It can be used to show all the molecular interactions taking place in a network of biochemical entities, with the same entity appearing multiple times in the same diagram".

Reference Card for SBGN symbols
Let us examine an example process description map(from page 57 of the specifications PDF) using the above reference card.


Onto the Activity Flow language specification:

The Activity Flow Language "depicts the flow of information between biochemical entities in a network. It omits information about the state transitions of entities and is particularly convenient for representing the effects of perturbations, whether genetic or environmental in nature".


An Activity Flow Description map is annotated below.



Friday, May 9, 2014

On to Week 3!

GSoC has been going on for over 2 weeks, and the JSBML team and I have been getting to know one another through dozens of emails and a handful of Google Hangouts. Since this was my first time working with a highly established project such as JSBML, there was a definite learning curve associated with setting up the project in Eclipse, setting up SVN/Subclipse, and checking out the project using https:// rather than http://. Dr. Dräger and Alex were incredibly patient with me and my workspace is finally up to snuff.

Since my proposal focuses on the CellDesigner module and the Layout/Render extension packages, my first assignment was to test and analyze an example CellDesigner plugin to understand the interplay between JSBML and the CellDesigner program. That being completed, I then was asked to develop two JUnit test classes for the SpeciesReferenceGlyph and TextGlyph classes which tested all get(), set() and isSet() methods. Then, a frankly elegant method for running all JUnit tests was suggested by Dr. Dräger and Dr. Rodriguez which is seen below.

 package org.sbml.jsbml.ext.layout;  
   
 import org.junit.runner.RunWith;  
 import org.junit.runners.Suite;  
 import org.junit.runners.Suite.SuiteClasses;  
   
 @RunWith(value=Suite.class)  
 @SuiteClasses(value={TextGlyphTest.class, SpeciesReferenceGlyphTest.class})  
 public class LayoutJUnitTests {  
 }  

When this class is inserted into the build script, it runs all JUnit tests which are inserted into the @SuiteClasses method.

My current assignment is to read both the Activity Flow Language specification and the Process Description Language specification on the SBGN website.