-
Notifications
You must be signed in to change notification settings - Fork 3
Represent reference points #14
Description
We had some questions concerning variables the modelling of variables where the property is in relation to some kind of reference point. Take Root mean square deviation of atomic positions (or RMSD) as an example. Here, you have two variants of a molecule (e.g., some protein) and compare the positions of atoms within those molecules. One of the molecules is considered the reference molecule wheras the second one is considered the variant. The observation is then made for the variant to "measure" its deviation from the reference molecule.
For modelling, we now have to make a decision how and where to capture this information. Overall I see three options right now as follows:
For all options we start with a modelling like
- Property:
RMSD - OoI:
Protein X
(1) Subclassing Properties
As the number of reference points is rather small, we could subclass those properties for these reference points and mint something like RMSD with respect to Protein A as a subclass of RMSD. This new property would then be used instead of the vanilla RMSD.
That would be rather easy to integrate but the information about the reference point is rather obstructed unless the minted sub-property somehow models it on its own.
(2) New Role for Reference Points
This would require adding a property to I-ADOPT similar to hasMatrix or hasContextObject along the lines of hasReferencePoint. Then we could refer to the reference point as a part the Variable description itself.
So the above model would look like
- Property:
RMSD - OoI:
Protein X - Reference:
Protein A
Part of the modelling could be to create a sub-property for hasContextObject. As a reminder, the description for `hasContextObject`` reads
A Variable has an Entity that provides additional background information regarding the ObjectOfInterest.
To me the reference point is one of such background information but has a very distinct role that can not just be subsumed by the generic ContextObject. This might warrant a new property or we go for option (3).
(3) Use a Constraint on ContextObject
As mentioned under (2), I think that the reference point not just be "yet another ContextObject". Another object might be, to put that information in a Constraint of a ContextObject.
So, the Variable description would become
- Property:
RMSD - OoI:
Protein X - ContextObject:
Protein A- constrainedis reference point
This would not require a change to the I-ADOPT model but still maintain the information.
We could "encourage" this pattern via the Variable Design Patterns which we had started a while back and additionally include this in the "how to model"-tutorial.
As you might have guessed from the description, I'm currently tending towards Option 3.
However, I'd like to hear from others. Do you other ideas how to keep the information about the reference points as mentioned above?