Closed matthiaskoenig closed 3 years ago
I have been solving FBA with SEDML easily before using the SBML fbc package:
we have a kisao term to distinguish fba from a regular steady state analysis. To retrieve the objective value I used an xpath to the activeObjective.
worked fine for me. deletions and the like could be done by setting the flux bounds of the objects to be deleted to 0. fva .. I don't have a nice example for, rather the explicit tedious thing of fixing one result and minimizing / maximizing the rest.
If you have a CombineArchive with some FBA simulations it would be great to have a look at it and try to reproduce the results.
I agree with both of you --that SED-ML can largely capture FBA simulations, but that there's at least one aspect of FBA simulations which isn't covered well by SED-ML, that multiple predictions can be generated for each model element.
urn:sedml:symbol:time
. I don't think this is a great idea. For one, this would mean that simulations of the same type (steadyState
, oneStep
, uniformTimeCourse
) can produce results with different numbers of dimensions. Second, in the FBA example, the number of predictions is not uniform for different model elements. Even if the sizes were consistent, the meaning wouldn't necessarily be the same./sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction/@minFlux
/sbml:sbml/sbml:model/sbml:listOfReactions/sbml:reaction/@maxFlux
I think implicit targets is the way to go. In my mind, this is fairly similar to URNs for implicit symbols.
For consistency across the community and portability of SED-ML documents between tools, developers need to be able to find patterns for implicit targets that other tools use for the same or similar algorithms. Same for investigators. Basically, there's need to be a forum where these targets can be advertised and discovered.
With BioSimulators, we've created a place for developers to advertise the targets that each of their algorithms supports and for investigators to find these patterns. As we've protoyped containers for multiple tools, we've made sure that the containers we've developed consistently use the same implicit targets for the same predictions.
I'm putting an L2 label on this so we make sure we cover the not-covered bits in that version.
I think this is actually fairly well covered by SteadyState. KiSAO terms already exist. The new combination of targets and symbols addresses the output issue. This is working interchangeably with COBRApy and CBMPy.
I think the only thing needed is examples in the documentation. I could share one. I don't think the specifications need tons of examples. The specifications can point to examples on the SED-ML website.
Is 'fairly well' enough to close the issue? Or is there enough left over that we need to remember it for L2?
I think this can be closed. I think most of Matthias requests can be achieved with one exception, that there isn't a way to easily conduct a knockout study where an iteration is used to knockout one gene at a time. Another example that can't easily be done is an iteration over metabolites where simulations are run to predict the maximum production rate of each metabolite. This topic is discussed in #100.
Sounds good to me...
Issue
SED-ML can currently not perform typical fbc simulations. These would include things like
Typical simulation experiments are things like
It would be necessary to discuss how to best handle this.
Examples
Proposals