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 DB. Because of this ModelPolisher was not able to find relations used in queries written for AnnotateDB.
Further, on digging into the issue I understood the reason for the issue:
  Class `AnnotateDB` and class `BiGGDB` both have an instance of `SQLConnector` which should respectively provide a connection to respective databases. `SQLConnector` is initialized in constructor directly, but ModelPolisher maintains just one connection for the whole project, that's why once the connection was made to BiGGDB, that connection only was used to run all queries.
  The possible and correct way to solve this issue was to close connections once data is extracted from any particular database and make a new one each time a query needs to run in any other database.
  Thus for solving this issue, I added methods to start and close connections in class AnnotateDB and BiGGDB and added code to add start and close connection after each query.

Further, as completely new functionality was now added to ModelPolisher, I needed to update README to provide proper instructions for users to use this functionality.
I also observed that currently no proper instructions are present in README for a developer as they need to build ModelPolisher multiple times and of course they cannot change jar file downloaded while running ModelPolisher using docker.
So, I added instructions for developers to use ModelPolisher jar built by them but to use the database backend using docker only.

With the addition of multiple database backends in ModelPolisher, the command line arguments increased by a large amount and for a user its difficult to know the ports at which each database is available. Thus, I further updated the default parameters according to parameters required for using ModelPolisher using docker.

I was very busy during week 10, thus was not able to do significant work. I could take time just for reading and understanding my further tasks for the third evaluation which included producing glossary for annotated models and then put all the output files in one Combine Archive. I was also not available for meetings with my mentors, I understand that I should regularly communicate with my mentors and I apologize for this disconnect.

Thank You!

Comments

Popular posts from this blog

Final Report: GSoC 2019

Week 12