ModellingWebLab / weblab-fc

Functional Curation backend for the Modelling Web Lab
Other
1 stars 0 forks source link

Trac: Make use of ontology terms matching multiple (or no) variables #198

Open MichaelClerx opened 4 years ago

MichaelClerx commented 4 years ago

https://chaste.cs.ox.ac.uk/trac/ticket/2002

e.g. For a lot of the voltage clamp protocols we want to be able to clamp concentrations.

But for models with separate definitions for intracellular concentrations in different sub-compartments (e.g. of the calcium system - dyadic space etc.) we should allow these to be clamped independently if present, but skipped if not present, so that we can still run a protocol on all possible candidate models.

Or discuss whether this might introduce an ambiguity we are trying to avoid?!?

See also https://chaste.cs.ox.ac.uk/trac/ticket/2487 for optional protocol inputs, and https://chaste.cs.ox.ac.uk/trac/ticket/2487#comment:25 for another use case:

It would be nice if we had a version of the Steady state action potential protocol that outputted (and plotted) all of the available ionic currents, and still worked if some were missing. Especially if we also allowed the system to feed through the 'names' (whatever that would mean) for the individual ion currents to form a key for the plot.

See also https://chaste.cs.ox.ac.uk/trac/ticket/1209.

MichaelClerx commented 4 years ago

Quite some discussion in original ticket

MichaelClerx commented 4 years ago

I think this is possible with optional inputs now?

@mirams @jonc125 ?

jonc125 commented 4 years ago

It can be done to some degree, but what you can't yet do is things like clamp oxmeta:ExtracellularConcentration and clamp all variables that match.

MichaelClerx commented 4 years ago

Only difficulty in implementing that I think would be for newly created variables. We'd have to check whether they were also part of some transitively specified input, and would need to be able to check if the variable violated any constraintsduring model modification (e.g. if we create a new variable, set its definition directly, and modify it as part of a vector, we need to be able to detect that and raise an error)

mirams commented 4 years ago

Can we start by making it work for things in the ontology? The clamping of all extracellular / intracellular concs for instance would be very handy for a lot of protocols.

jonc125 commented 4 years ago

I think what we could do is something like:

jonc125 commented 4 years ago

But as a new protocol language feature I think we'll get to this once we have the new back & front ends integrated!