Posts

Showing posts from August, 2020

The Final Report

Image
Greetings everyone, I am glad to write the final report for the project "SBML-JSON converter and SBML scheme". It's been three months now since I am working on this project and about 5-6 months since I am involved in it. And I must say that I have learned quite a lot by now, thanks to Matthias and Andreas for all their help. It had been a very nice journey with both of them, marked by daily chats and weekly meetings.  We have actually covered all that we claimed in the initial proposal , and the complete code has been submitted to COBRApy . Two of our pull requests have got merged, one is under review and will get merged soon, and one may require some time because it contains some functionalities which will be used only after  libsbml (the interfacing library between SBML and COBRApy) incorporate fbc-v3 package.  All the pull requests submitted so far are summarised in this spreadsheet . Here is a summary of the work done in this project: The JSON schema v1 had some i...

The Week 13

 Greetings, Almost towards the end, we didn't have anything new to discuss in the last meeting, except the identifier (id) of COBRA model components. The 'id' of an SBML component is an important attribute and should not be manipulated. COBRApy, however, allows the user to pass a replacement function to manipulate the component ids. It also asks the user to pass a reverse replacement function to modify the ids while writing the model back. We discussed this thing and both of the mentors were having an opinion that ids should not be manipulated at all, it can create problems. Currently, the COBRApy writes the same manipulated ids in the JSON format, and if we apply the defined id pattern properties of SBML to these manipulated ids, these ids may get failed. So at the time of reading/writing the model from JSON, I have used the default replacement functions to fix the ids. Another thing which we discussed was the things which COBRApy communities have listed to port the code f...

The Week 12

Greetings, The last meeting was not too long, it ended in approximately 35 minutes. The mentors first went through the JSON schema-V2 to see the definitions of features added to JSON like group, user defined constraint, annotation etc. They suggested a few modifications like adding pattern properties for datetime and Id. The schema was otherwise all fine. After this, we started discussing the helper function for adding user defined constraints. I had implemented this method by parsing string by my own and extracting information out of it, which lead to various restrictions on defining the constraint. But Matthias suggested that the best way to handle expression inside a string is by using the Abstract Syntax Tree (AST). By using the tree, we can define our constraint expression more freely, with just a few restrictions. So I shall add this support using AST. The other important thing that we discussed was the JSON validation function. Currently, I was using the inbuilt JSON validation ...