matthiaskoenig / sbmlutils

Python utilities for SBML
https://sbmlutils.readthedocs.io/en/stable/
GNU Lesser General Public License v3.0
36 stars 12 forks source link

Ensure sbmlinfo is working on model import #419

Closed matthiaskoenig closed 1 month ago

matthiaskoenig commented 2 years ago

The models created with "SBML -> Model -> SBML -> SBMLInfo" must be valid. Currently issues with the new ModelEquation:

An error occurred. Please report this on
https://github.com/matthiaskoenig/sbmlutils/issues/new
so we can improve the service.

{
 "errors": [
  "Half equation could not be generated: '<SpeciesReference>'",
  "Traceback (most recent call last):\n  File \"/code/src/sbmlutils/report/api.py\", line 122, in report_from_file\n    return json_for_omex(path)\n  File \"/code/src/sbmlutils/report/api.py\", line 192, in json_for_omex\n    content[\"reports\"][entry.location] = json_for_sbml(  # type: ignore\n  File \"/code/src/sbmlutils/report/api.py\", line 209, in json_for_sbml\n    info = SBMLDocumentInfo.from_sbml(source=source)\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 61, in from_sbml\n    return SBMLDocumentInfo(doc=doc)\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 55, in __init__\n    self.info = self.create_info()\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 83, in create_info\n    model = self.model_dict(self.doc.getModel())\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 122, in model_dict\n    \"reactions\": self.reactions(model=model),\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 849, in reactions\n    d[\"equation\"] = self._equation_from_reaction(r)\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 988, in _equation_from_reaction\n    left = SBMLDocumentInfo._half_equation(reaction.getListOfReactants())\n  File \"/code/src/sbmlutils/report/sbmlinfo.py\", line 1036, in _half_equation\n    raise ValueError(f\"Half equation could not be generated: '{sr}'\")\nValueError: Half equation could not be generated: '<SpeciesReference>'\n"
 ],
 "warnings": [],
 "info": {}
}