Week 4, 5

Greetings!

This blog contains work done in week 4 and 5. It can be noticed that till week 3 I had completed most of the work in the background, updating Matlab Parser was still left, but neither had I pushed my code, nor did I check my code with ample test cases. Not directly working with the codebase is easy, but once the concept is understood and is clear, it is really desirable to check it by adding to the actual codebase and very importantly get suggestions from the mentors.

Week 4 was hectic and was spent on adding all the work to the codebase and solving the Matlab parser issue. Here is a short detail about each issue and its solutions, solved in evaluation 1:

  • Extend ModelPolisher annotation capability (#39, #41):
    • Issue: Add feature in ModelPolisher to add annotations to species, reactions, and geneProducts which do not have Bigg Ids.
    • Solution: For species, reactions, geneProducts already some annotations, we can map the annotation URIs to their BiggIds. 
    • Details: For species and reactions, BiggId is present in bigg_id table of component and reaction table in BiGG database. For geneProducts, BiGG is present in locus_tag table of gene table. See the actual mapping function(class: BiGGDB.java) here.
      For species and reactions whether the Id is BiggId or not could be checked by syntax but for geneProducts the class SMBLPolisher.java adds "G_" to the id. Thus for geneProduct we needed a dedicated function(class: BiGGDB). After checking if the id is not BiGG Id, functions(class: BiGGAnnotation.java)(species, reactions, geneProduct) were implemented to get the BiGG Id from the URI list.
  • Update Matlab Parser (#37):
    • Issue: The current MatlabParser had problems had issues with java update (not compatible with Java 11). Also, the library was no longer maintained.
    • Solution: Update library to HebiRobotics/MFL.
    • Details: Matlab files are parsed in cobra.COBRAparser.java, and the library is used in just this one file. Thus I basically had to update the dependencies and use of library in this file only. A major issue was faced after implementation: some mat files could not be read by the parser library. My mentor, Thomas, helped me by opening this issue(#40) in the library, after it was solved in PR#41.
  • Minor Issues:
    • Error in building: setupDB failed(#36).
    • Improve Documentation(#31).
These were details in short of the work done before 1st evaluation. I would like to thank my mentor a lot for giving me this opportunity to work with them and for helping me throughout the period.

During week 5, I didn't do much work, except for some formatting and finalization of code (yeah that too takes time ;)). Meeting for week 5 was held on June 28 (Friday) in which the following decisions were made:
  • First, solve the issue of containerization of ModelPolisher before the next evaluation. 
  • Add test cases to check the mapping regarding issue #39#41.
  • Update ModelPolisher to be compatible with openjdk-11.
  • Another issue of removal of objective from SBML if listOfObjective is not present was discussed. This will also be solved before evaluation 2. 
  • Except these, in the next meeting we shall discuss how we can use annotateDB in ModelPolisher.
Thanks a lot for your time. 

Thank You.

Comments

Popular posts from this blog

Final Report: GSoC 2019

Week 9, 10

Week 12