The Week 9
Greetings,
Last week I modified the 'history' class as suggested by the mentors and added a COBRApy's own Datetime class. This class is going to store date and time in the format '%Y-%m-%dT%H:%M:%S%z', as stored inside in the SBML document for storing created and modified dates.
Last week, I also started with the implemention of the 'Group' package inside JSON and other formats. The current COBRApy implementation has a separate Group class (extending the Object class) for storing group data, and members inside this group (referencing other model components) are simply stored in a 'Dictlist'. The document for Group package says that the members of 'Group' should inherit from the basic SBase class (or COBRApy's Object class), so I thought that we would need a separate class for storing 'members' inside the Group. I made a 'GroupMember' class and inherited it from COBRApy's Object class. By inheriting from Object class, we will be able to attach 'notes' and 'annotation' to a member, and will also be able to add 'id' and 'name' of that component. And while writing the member's data in JSON format, we will write its basic data like 'id', 'name', 'notes' and 'annotation', and also the id of the component which is being referenced by this member. It was, however, creating a problem. All the 'listof' components of SBML are using the 'Dictlist' class of COBRApy to store its members, and Dictlist requires that the "id" of the component must be set. So if we want a separate class for our Group members, we have to make sure that the "id" of each member must be set. However, it is not certain for each member to have its "id" set (in the case when Groups are made using Subsystems). So mentors suggested not to make a separate class for members of the group. We will simply make a list for storing members and add each referenced component inside it. And while writing to JSON, we will simply write the 'id' of the referenced component in place of a member of the group (because this is what the real purpose of a member is i.e grouping together different components of the SBML model).
One more thing which we discussed to start working upon was the implementation of the FBC-v3 package inside JSON. However, the COBRApy itself does not have support for it yet, and not only this but even the interfacing libraries, like libSBML and JSBML, are still required to add their support. So we shall start working on this package in COBRApy and ask the libSBML team for its support. This is what we have planned for this week.
That's all this time, see you next week.
Last week I modified the 'history' class as suggested by the mentors and added a COBRApy's own Datetime class. This class is going to store date and time in the format '%Y-%m-%dT%H:%M:%S%z', as stored inside in the SBML document for storing created and modified dates.
Last week, I also started with the implemention of the 'Group' package inside JSON and other formats. The current COBRApy implementation has a separate Group class (extending the Object class) for storing group data, and members inside this group (referencing other model components) are simply stored in a 'Dictlist'. The document for Group package says that the members of 'Group' should inherit from the basic SBase class (or COBRApy's Object class), so I thought that we would need a separate class for storing 'members' inside the Group. I made a 'GroupMember' class and inherited it from COBRApy's Object class. By inheriting from Object class, we will be able to attach 'notes' and 'annotation' to a member, and will also be able to add 'id' and 'name' of that component. And while writing the member's data in JSON format, we will write its basic data like 'id', 'name', 'notes' and 'annotation', and also the id of the component which is being referenced by this member. It was, however, creating a problem. All the 'listof' components of SBML are using the 'Dictlist' class of COBRApy to store its members, and Dictlist requires that the "id" of the component must be set. So if we want a separate class for our Group members, we have to make sure that the "id" of each member must be set. However, it is not certain for each member to have its "id" set (in the case when Groups are made using Subsystems). So mentors suggested not to make a separate class for members of the group. We will simply make a list for storing members and add each referenced component inside it. And while writing to JSON, we will simply write the 'id' of the referenced component in place of a member of the group (because this is what the real purpose of a member is i.e grouping together different components of the SBML model).
One more thing which we discussed to start working upon was the implementation of the FBC-v3 package inside JSON. However, the COBRApy itself does not have support for it yet, and not only this but even the interfacing libraries, like libSBML and JSBML, are still required to add their support. So we shall start working on this package in COBRApy and ask the libSBML team for its support. This is what we have planned for this week.
That's all this time, see you next week.
Comments
Post a Comment