SED-ML / sed-ml

Simulation Experiment Description Markup Language (SED-ML)
http://sed-ml.org
5 stars 2 forks source link

NonUniformTimeCourse #3

Open matthiaskoenig opened 7 years ago

matthiaskoenig commented 7 years ago

Issue

Not possible to have simulations with non-uniform time, i.e. return only the steps the solver is taking.

See also. https://sourceforge.net/p/sed-ml/feature-requests/7/

Examples

Proposals

Add an additional Simulation class for NonUniformTimeCourse https://docs.google.com/drawings/d/1jo5NcXbyka7jHEJOXB5nJaF_-gGlLYCF8wgbmJ_HO5s/edit

If tools tools don't support NonUniformTimeCourse they can convert it to a UniformTimeCourse with some default step with very high sampling.

Related Issues

luciansmith commented 7 years ago

I believe this proposal was made post-l1v3, but is on the list of things to consider for l1v4:

https://docs.google.com/drawings/d/1jo5NcXbyka7jHEJOXB5nJaF_-gGlLYCF8wgbmJ_HO5s/edit

(For the record, I would absolutely support this change.)

fbergmann commented 7 years ago

copasi always used variable steps internally, however user thought it easier to compare output when provided a regular output grid. In newer versions COPASI of course supports also variable output steps.

The issue with those is that it is now highly simulation dependent and we will later have a hard time comparing simulation outputs. I'm fine with having such a class, I'm just not seeing how we would compare the output of it numerically, hopefully visibly there'd be no difference.

matthiaskoenig commented 7 years ago

Yes this will make comparisons difficult. One needs something like an interpolation afterwards to work with such data. Also it would make implementations more difficult. I could imagine that we provide such an option and tools can fall back to the UniformTimecourse if they don't support it. But I have some large models I can only simulate with NonUniform TimeCourses because they have very different timecourses, i.e. some very fast and some very slow components in different domains of the timecourse. It would be great if I could encode this simulation in SED-ML.

luciansmith commented 7 years ago

Comparison is a separate issue, I think, from accurately reporting the details of the experiment itself. If the experiment is inherently difficult to reproduce, that's just a function of the experiment. SED-ML should still be able to describe it as accurately and as completely as the experimenter did originally.

My sense is that people generally think it would be fine to add this to l1v4. When we add it to the test suite, we would simply make a different sort of comparison rubric for tests like this.

jonrkarr commented 3 years ago

There's many other types of simulations that investigators might want to execute. Rather than trying to enumerate them with different SED classes, I propose a simpler, more flexible solution in #99.

luciansmith commented 3 years ago

For the record, this request can be completely solved by simply making the 'numberOfSteps' attribute optional and defining what that means in the spec. Is there any interest in getting this into l1v4, or should we push it to L2?

jonrkarr commented 3 years ago

My preference would be to address this in a more general way rather than carve out specific exceptions. There are other variations such as simulations that terminate at a specific condition, rather than a fixed time. Another variant is steps as in a qualitative simulation.

I'd like to see this treated more like an algorithm parameter where there's a more general class whose behavior is customized through combinations of ontology terms.

luciansmith commented 3 years ago

That's certainly also possible, particularly given that we can do what we like with KiSAO terms. However, I still need to know if we want to make the 'numberOfSteps' attribute optional.

matthiaskoenig commented 3 years ago

For me making the numberOfSteps optional in combination with 1-2 clarification sentences would solve the issue. I could provide implementation for this. This would be an elegant solution for this kind of TimeCourseSimulation without the need for a new Simulation type. We should state that the numberOfSteps returned depend on the tool implementation and the tolerances. Furthermore in the datagenerators using output of such simulations it must be ensured that the math can be evaluated at all timepoints generated e.g. via interpolation.

luciansmith commented 3 years ago

I'm re-tagging this with L1v4: the proposal is to make 'numberOfSteps' optional on the UniformTimeCourse class. Let's vote! @matthiaskoenig @fbergmann @jonrkarr @nickerso, Tomas.

jonrkarr commented 3 years ago

+1. There are use cases for this -- e.g., simulations which terminate at stop conditions, discrete event simulations. I'm in favor of making the simulation classes more generic and using KiSAO terms to define their semantic meaning. This would provide more flexibility, which is key for supporting other types of modeling.

matthiaskoenig commented 3 years ago

I think the main issue is not how to make the simulation work, but how to make the post-processing work. There is an interpolation required to make dimension reductions to give an example. Or how would you calculate the mean over multiple Non-Uniform timecourses which have different time points?

luciansmith commented 3 years ago

Answer: nope! Handle this in other ways. (In L2, create 'TimeCourse', perhaps.)

luciansmith commented 3 years ago

Discussed at the 6/16/21 Editor's Meeting: don't do this right now; potentially create a more generic 'TimeCourse' class for L2.