Final Report: GSoC 2019

This is the final report for project  Extending ModelPolisher to a universal model annotation tool  under Google Summer of Code 2019, organization: NRNB . ModelPolisher is a model annotation tool originally developed for the BiGG Models Knowledgebase. Annotations enhance the reusability and interoperability of biological models. During this project, I extended the model annotation capabilities of ModelPolisher, updated the MatlabParser (reading models in the COBRA matlab format), containerized ModelPolisher using Docker, added functionality to use AnnotateDB for model annotation, and added a feature to produce a model annotation glossary and CombineArchives as outputs. As part of this work, the SQLite version of the ModelPolisher database backend could be removed. Link to G ithub Project: The project proceeded according to the goals and timeline of the project  proposal ,  except for one major change: I completed my goal of contain

Week 12

Greetings! After completing the code for the production of the glossary file, my next task for this project was to give the user an option to produce the output in form of a Combine Archive which contains the polished model and the glossary file. This feature may look redundant now, but it is very helpful to keep biological models in differents formats in one Combine Archive which also contains a single glossary file which has all the annotations from the polished model. So, for this task, I first added an option `--output-combine` for users in which they can provide a boolean to produce output as a single Combine Archive. After addition of this option, if the user provides value `true` for this option, I use binfalse/CombineArchive  repository to put in the output polished model and the glossary file in a Combine Archive zip. Note that, in this case, any annotated model or glossary rdf file will not be produced. There were multiple issues during the implementation of this fe

Week 11

Greetings! I hope you are in great health. As my previous week had been very busy due to online tests and interviews during an internship drive in my college, I wanted to complete the next task for this project, that was to produce `glossary` files in `rdf` format takin inspiration from  this  file. To get an idea, please look at this  model  and its respective  glossary file  in  this  folder for non-standardised SBML for  BIOMD0000000176.  Here you can observe that all the annotations from the model are extracted and are put in as children of a single XMLNode. The glossary can be linked to the model by `rdf:about` tag which basically contains the `metaid` for various elements from the model. This glossary file becomes important and purposeful when you consider models which are hard to annotate. Biological models of the same thing can be present in various formats and it can be hard to annotate models in some formats whereas others (like SBML) can be easily annotated (with pre

Week 9, 10

Greetings! The following blog contains my progress in Week 9, 10. In the last days of the previous week, I had already integrated AnnotateDB in ModelPolisher but it was not yet properly checked. So, this week my major goal was to completely check the integration of AnnotateDB and solve bugs (if any). Also, I had to update the README file to provide proper instructions for users to add annotations from AnnotateDB. Testing AnnotateDB Integration:   I had already tested the to query to get the annotations from ADB using BiGG Id of species and reactions, so here only ModelPolisher was tested for successful extraction of annotations from ADB. Issue Observed : After I had added support for ADB in ModelPolisher, I tried to polish some random models (after temporarily removing code to extract annotations from BiGG DB). I observed that ModelPolisher is not making queries to ADB while the extracting annotations from ADB in class `AnnotateDB`, but rather the queries are being made to BiGG D

Week 8

Greetings! As mentioned in the previous blog my targets for this week included: Test containerization completely. Add updates to README about containerization. Solve the  issue  of restructuring ModelPolisher. Open PR for the above tasks. Figure out and test queries for getting annotations from ADB. Complete integration of AnnotateDB . I was able to complete most of these tasks, here are the details: CONTAINERISATION:  The ModelPolisher is successfully containerized, and is available here currently. ModelPolisher has been divided into three containers/services, namely - BiGGDB, ADB, Java. The first two services host the respective databases with Postgres as base images, the third service with OpenJDK-11 as the base, is used to run ModelPolisher jar in a container. The containerization of ModelPolisher has been successfully tested by me. The ModelPolisher can now be run simply in two steps: Run `docker-compose up` Polish models using `docker-compose run` command. Mor