Open pauleve opened 2 years ago
I added the above terms to SED-ML/KiSAO#105. Before I release this as 2.31, I have a few questions/comments. @pauleve please share any thoughts.
"most permissive updating policy". I created this as a characteristic. Is it a property of an algorithm (characteristic) or an option to an algorithm that users can choose (parameter)?
for NEW_ALG2, I'm not sure how to specify that it returns only minimal trap spaces: should we introduce an additional sup-level algorithm "logical model minimal trap space identification method"? or a characteristic of the family of solution, or is it a parameter?
This sounds like a property of the algorithm (characteristic), rather than something the user can control (parameter). I added characteristics of types of solutions -- trap spaces (KISAO_0000695
), minimal trap spaces (KISAO_0000697
), and stable states (KISAO_0000696
) and annotated the algorithms with them.
there is a semantic relationship between attractors and steady states (the latter being a particular case of the former); is it interesting to specify this somehow at the KiSAO level?
I created characteristics for these nested under "type of solution". I added a common parent "attractor". The hierarchy looks like this:
KISAO_0000235
)
KISAO_0000698
)KISAO_0000696
)KISAO_0000695
)
KISAO_0000697
)Great, many thanks!
"most permissive updating policy". I created this as a characteristic. Is it a property of an algorithm (characteristic) or an option to an algorithm that users can choose (parameter)?
It is really a property of an algorithm (it is an update policy different than asynchronous/synchronous)
for NEW_ALG2, I'm not sure how to specify that it returns only minimal trap spaces: should we introduce an additional sup-level algorithm "logical model minimal trap space identification method"? or a characteristic of the family of solution, or is it a parameter?
This sounds like a property of the algorithm (characteristic), rather than something the user can control (parameter). I added characteristics of types of solutions -- trap spaces (
KISAO_0000695
), minimal trap spaces (KISAO_0000697
), and stable states (KISAO_0000696
) and annotated the algorithms with them.
Yes, I agree.
there is a semantic relationship between attractors and steady states (the latter being a particular case of the former); is it interesting to specify this somehow at the KiSAO level?
I created characteristics for these nested under "type of solution". I added a common parent "attractor". The hierarchy looks like this:
* type of solution (`KISAO_0000235`) * Attractor (`KISAO_0000698`) * stable state / steady state (`KISAO_0000696`) * trap space (`KISAO_0000695`) * minimal trap space (`KISAO_0000697`)
At first, I was a bit reluctant with this hierarchy: there is no simple connection between attractors and trap spaces (and even less direct with minimal trap spaces).
But it depends the meaning of being "a subclass": these objects are indeed related in one way or the other (any attractor belongs to a trap space; any minimal trap space contains at least one attractor). That being said, the methods for computing attractors and trap spaces are, in general, very different, as the former depends on the update policy, and not the latter.
So, maybe having trap space (KISAO_0000695
) as a direct subclass of type of solution (KISAO_0000235
) is safer and will be easier for handling substitutions.
Before merging these changes, should we check for the substitutions they lead with libkisao? I can give a try later this week.
meaning of being "a subclass"
We can interpret this however we like. I was thinking about similarity between types of solutions. I didn't intend for this to suggest that the methods for calculating similar solutions are necessarily similar. I suggest annotating algorithms with multiple characteristics to keep track of multiple types of similarity between algorithms (e.g., result and method).
maybe having trap space (KISAO_0000695) as a direct subclass of type of solution (KISAO_0000235) is safer and will be easier for handling substitutions.
I can make this change
substitutions they lead with libkisao
I've written libkisao is use specific relationships. I can extend that to these algorithms. In what scenarios do envision wanted to substitute among the newly curated methods?
meaning of being "a subclass"
We can interpret this however we like. I was thinking about similarity between types of solutions. I didn't intend for this to suggest that the methods for calculating similar solutions are necessarily similar. I suggest annotating algorithms with multiple characteristics to keep track of multiple types of similarity between algorithms (e.g., result and method).
This makes perfect sense to me. Having trap space as a subclass of attractors can definitely be defended, so we can keep it as is.
substitutions they lead with libkisao
I've written libkisao is use specific relationships. I can extend that to these algorithms. In what scenarios do envision wanted to substitute among the newly curated methods?
I'll send you here later that week the substitutions that would be nice to have.
so we can keep it as is.
Will do
substitutions that would be nice to have.
For me, I found it helpful to think of this as a matrix (algorithm x algorithm). For each pair of algorithms, I thought about the degree to which I found them to be similar. Algorithms that produce different types of solutions (e.g., time course vs steady state, I felt to be substantially different, irrespective of whether the method might be similar). Algorithms that produce the same type of solutions (even if using different methods) I thought to be similar. We outlined several qualitative degrees of similarity (see https://docs.biosimulations.org/concepts/conventions/simulator-interfaces/#environment-variables).
In order to produce the substitutions you have in mind, we can add more characteristics as needed.
Here are the links between the algorithms ; the "over-approximation" can be ignored (and trreaded as NO). The second table is just the first one replaced with IDs.
A \ B : A can be substituted by B | Naldi MDD | Pauleve FP | BDD trap space | Klarner trap space | Pauleve trap space |
---|---|---|---|---|---|
Naldi MDD | SAME_MATH (provided characteristics “Locally-monotone Boolean network”) | Over-approximation (will contain ll the fixed points + other things) | Over-approximation | Over-approximation + requires characteristic “Locally-montone BN” | |
Pauleve FP | SAME_MATH | Over-approximation | Over-approximation | Over-approximation | |
BDD trap space | NO | NO | SAME_MATH with matching characteristics on type of solution | SAME_MATH with characteristics “minimal trap space” and “Locally-monotone BN” | |
Klarner trap space | NO | NO | SAME_MATH with matching characteristics on type of solution | SAME_MATH with characteristics “minimal trap space” and “Locally-monotone BN” | |
Pauleve trap space | NO | NO | SAME_MATH | SAME_MATH |
A \ B : A can be substituted by B | KISAO_0000659 | KISAO_000000691 | KISAO_0000663 | KISAO_0000662 | KISAO_000000692 |
---|---|---|---|---|---|
KISAO_0000659 | SAME_MATH (provided characteristics KISAO_000000687) | Over-approximation (will contain ll the fixed points + other things) | Over-approximation | Over-approximation + requires characteristic KISAO_000000687 | |
KISAO_000000691 | SAME_MATH | Over-approximation | Over-approximation | Over-approximation | |
KISAO_0000663 | NO | NO | SAME_MATH with matching characteristics on type of solution | SAME_MATH with characteristics KISAO_0000697 and KISAO_000000687 | |
KISAO_0000662 | NO | NO | SAME_MATH with matching characteristics on type of solution | SAME_MATH with characteristics KISAO_0000697 and KISAO_000000687 | |
KISAO_000000692 | NO | NO | SAME_MATH | SAME_MATH |
This is very interesting and helpful! I hadn't thought about qualifiers to SAME MATH
. I had been thinking of examples such as SSA and NRM which simulate the same statistical distribution (in contrast to, for example, SSA and tau-leaping). Now that I see how you've thought about this, I see where this would make sense. On the flip side, this would increase the complexity of specifying a level of substitutability, and I think there might be value in keeping this simpler for investigators (i.e. coarse-graining substitutability a little bit).
What do you intend something like SAME_MATH
with characteristics KISAO_0000697
to mean? Would this mean that this particular mathematical property of a particular output is the same?
Maybe that "provided characteristics XXX" would be more accurate: the algorithms in mpbn
are designed for locally-monotone BNs only; thus one should ensure that the BN fulfill this condition for substituting for instance KISAO_0000663 with KISAO_000000692. Note that it is not symmetric: KISAO_000000692 can always be substituted with KISAO_0000663, as the latter allow a more general class of models.
As a first stage, one could ignore the characteristics and let mpbn throw an error if the model does not satisfy the requirements: that would be already really useful to demonstrate the tool substitution.
The Biosimulators_mpbn wrapper for mpbn implements algorithms which require new KiSAO terms for algorithms and algorithms characteristics:
New Algorithm Characteristics:
KISAO_000000690
KISAO_000000685
KISAO_000000686
KISAO_000000687
KISAO_000000688
KISAO_000000689
Modify Algorithms:
New Algorithms:
KISAO_000000691
KISAO_000000692
KISAO_000000693
KISAO_000000694
Remarks: