Closed jonrkarr closed 3 years ago
The problem is KISAO there is no support for software dealing with it. Something like libKISAO is needed for applications to handle SED-ML properly.
Exporting information about the algorithms and parameters used doesn't require the whole ontology or a library. This just requires information about the terms which correspond to each COPASI method and parameter, which has to be looked up manually.
Where the ontology is needed is to execute SED-ML documents involving similar algorithms (e.g., substitute LSODA for CVODE). There are various libraries for working with OWL files that can be used to query for similar algorithms. I think the standardization around the OWL format and querying OWL files minimizes the need for a specific library for KiSAO. The old Java libKiSAO is just a thin wrapper over an OWL library. We added a Python KiSAO package which is similarly a thin layer over an OWL library.
Exporting the KiSAO terms is no problem. Loading and finding similar/equivalent parameters or method will be. As long as the second is not provided by a dynamic link library we will probably not be able to support it. This means this repository/effort will have to do the mapping and provide COPASI with a feasible final mapping.
@shoops we wrote such code 3 month ago, easy if using OWL converted to OBO; @danv61 made it generic so it literally takes only a few lines to change to adapt for COPASI (or any other simulator); it is Java though
Ion points out another path through a substantially equivalent format which also does not yet require a specific library for KiSAO. Additional formats that OWL files can be converted to include ttl and JSON-LD.
Some potential libraries for working with ontologies files
Some of the points you mentioned could indeed be added to COPASI, but not all of it. Given that the user interface will only work with one model at a time there will always be a need for handling multiple models, and as this is possible using the copasi API, this repository (or an implementation in one of the language bindings or corc/basico) will be needed going forward.
What we will do in the future will be to im/export the new KISAO terms created for the COPASI methods and their parameters. This did not make it into 4.31 but will be in the version afterwards.
As pointed out in #46, it does make sense to provide a utility function that given a plot specification and for that matter report specification, collects the output that would have been plotted / written to a report available to the caller.
Closing because COPASI does not intend to do this.
@shoops @fbergmann @pmendes I'm creating a separate thread for the discussion that @shoops initiated in #46.
I would also greatly prefer to use COPASI directly -- this would be easier to maintain and lead to making COPASI's handling of SED-ML consistent with the SED-ML specs and other tools (in part through using our test suite to check COPASI). In fact, my preference is to internalize this command-line interface and Docker image into the COPASI repository so the COPASI team has control over this and can maintain it, release it, etc. At that point, this repository could be deleted. Ideally all tools would follow this path.
This purpose of this repository was to enable us to prototype handling of SED-ML consistent with the SED-ML specifications more quickly than we could by trying to help build/fix similar functionality in COPASI itself.
Capabilities of the current approach
This library does have capabilities for the other features of SED-ML such as below. This is imported from another library.
Rationale for current approach
We haven't used COPASI due to several points of divergence from the SED-ML specifications and various bugs. I didn't investigate every issue in detail. Some of this may only affect SED-ML export, and some of this may have been resolved since I first evaluated this.
Similarities of the current approach to COPASI to our approaches to tellurium, VCell, and other tools
For similar reasons, we haven't fully used tellurium's SED-ML handling either. We've posted issues about a number of issues and missing features. VCell was also in a similar situation -- multiple points of divergence from SED-ML and other tools, and lack of support for some features which felt were key. We've also posted a variety of issues for VCell. We've had to approach all other tools the same because they either have no, minimal, or divergent support for SED-ML.