# Discussion of SED ML on morning of 2008 08 28

**Anika Oellrich**: if there's an algorithm that's not defined, will you be able to define it in SED-ML?

**Nicolas Le Novère**: Yes, but it's not the job of SED-ML, actually, it's the job of KiSAO.

**Anika Oellrich**: Is it done like you would define a rate law equation in SBML?

**Pedro Mendes**: But you should define that in the SBML, right?

**Anika Oellrich**: Not if it's not part of the model. For instance, flux balance analysis is not something that goes into the model. What I mean is [the situation where] you have a model and you want to analyze it using different objective functions.

**Nicolas Le Novère**: There are 2 solutions. Either the algorithm already is defined, so it will be encoded in KiSAO and you should be able to use that to describe the approach when you write down the SED-ML. If it does not exist yet, then when you develop the approach, you need to add it to KiSAO, and then it can be used.

**Anika Oellrich**: Well, I was just wondering if it would be possible for groups that develop flux balance approaches to share their simulation experiments.

**Nicolas Le Novère**: Yes. Why not?

**Anika Oellrich**: How do you do it without a name for each one? For example, you might have many different objective functions....

**Nicolas Le Novère**: I think the problem here at the moment is probably not at the level of SED-ML, but at the level of SBML.

**Frank Bergmann**: It would be a package for SBML Level 3, for flux balance analysis.

**Anika Oellrich**: I was wondering if it would belong in the steady state package, or would it rather go into SED-ML?

**Pedro Mendes**: It depends on what you want to describe. If you want to describe one of the states you calculated, then it can go into SBML already today....

**Anika Oellrich**: No, [I am thinking of] when you want to describe the simulation.

**Pedro Mendes**: That's what I'm saying. If you want to describe the solution you obtain, SBML is good enough for that today. If you want to describe how you obtain the solution, then the approach would be to describe the method [in SED-ML or SBRML].

**Nicolas Le Novère**: It would go here [pointing to a diagram of the SED-ML data structures]. At the moment, it only has a way to describe uniform time course. Actually, in Okinawa, we talked about having something called "steady-state", but we got rid of it because it was, first, too complex, and second, you need at least 2 simulators to exchange simulation experiment descriptions [and we don't even have that much yet]

**Sven Sahle**: The simulation object [in SED-ML] can have different attributes. When you define your flux balance analysis, in the description you put into SED-ML, it would have the attributes necessary to describe what it does.

**Anika Oellrich**: Yes, I was wondering if you could put the simulation algorithms, etc.

**Sven Sahle**: Whatever you need to describe what it needs to do, whatever information you need to describe for the simulator to run, could be put into elements or subelements or attributes of the SED-ML simulation description

**Pedro Mendes**: But there's one argument against that, which is that the objective function and the results depend on the model. The things you encode aren't even the same. It's going to be different for a cell of different volume, for example. So now that's an argument to put that in the model. And so on.

**Nicolas Le Novère**: Yeah, but that's at the level of the model description. We have this construct in SED-ML, "change map", that can from one model, generate ... that will be useful for parameter scan. I suspect all the parameter scans, optimizations, strategy, whatever, will be encoded here. You will have a mapping that generates implicit models, that will not be described. If you have a parameter scan with 1000 values, you don't want to create a model where you have 1000 models inside, each one changing just one value.

**Pedro Mendes**: We cover that in SBRML. That's true in scans, but not true in some other things like random sampling.

**Sven Sahle**: In Copasi, when we do an optimization of an arbitrary target function [of the optimization], we chose to put it not in the model, but in the task description part. It's part of the description of the simulation. We could perhaps also have added the target function as an assignment rule in the SBML model. Then the optimization could refer to a global parameter in the model. Both are possible.

**Pedro Mendes**: You definitely have to do it in the context of the model. There's no way to express the objective function without having the model. So it's not a property of the algorithm. It's a property of what you're using the algorithm for. It's not, for example, like describing an integrator, where you can say you do such-and-such for arbitrary differential equations. In the model case, it's not arbitrary differential equations; it's for that specific function.

**Fedor Kolpakov**: This is a big problem. We have tried to implement what we can support of this exchange XML. For example, when we start to describe changes in the model, how can you show users what has changed in the model? The other problem: how can you generate this. Bigger problem: how can you assure the integrity of the model when you make change?

**Nicolas Le Novère**: The last one is your problem. Also, I don't think the first is a big problem. For example, you want to replace one kinetic law by another.

**Fedor Kolpakov**: generally it's a more complicated case. For example, I wnat to replace one reaction by another reaction. The list of changes may be very complicated.

**Nicolas Le Novère**: well it's up to you to keep a list of the changes

**Stefan Hoops**: This is probably something you would describe using the hierarchical model composition

**Fedor Kolpakov**: How do you describe a change that is the same for each model?

**Stefan Hoops**: Wait, if you want to make a change, how do you make a change in a model that you don't have directly the XML for?

**Nicolas Le Novère**: It's done with XPath

**Stefan Hoops**: No, you don't understand XPointer

**Nicolas Le Novère**: It's right here [pointing to a slide]. The model is right here at the end of this link.

**Stefan Hoops**: No, no, no. You are changing a model in BioModels Database, not a model you have here which you want to simulate, ...

**Pedro Mendes**: Can we say this is a technical problem that needs to be solved anyway?

**Nicolas Le Novère**: OK. Fedor's second problem is more important, about maintaining integrity.

**Fedor Kolpakov**: And there is a third point also. We would like to provide some simple interface for working with this model and SED-ML, and I cannot provide any means for my tool to change XML. There are not functions like in libSBML.

**Nicolas Le Novère**: I agree. In the paper for CMSB'08, we talk about this. [pointing to slide] This [library functionality] is what we're trying to implement, to provide now. This other one is not provided.

**Pedro Mendes**: At this stage, I propose we move on to our presentation, because some of the same problems need to be solved.