Open benmwebb opened 6 years ago
If I understood @jdwestbrook's proposal here to allow datasets to be combined with boolean operators, I don't think that would work for this example for two reasons:
ihm_geometric_object_distance_restraint.dataset_list_id
is an optional data item, and in this particular case we omitted it as there is no underlying file listing the motifs.
Even if we had such a file it would likely contain something like "motif X is known to be membrane-associated". There is no ambiguity in the underlying experimental data, only in how we interpret it as a restraint. This is similar to how cross links are handled, in that the experimental data links entities, but the restraint has to figure out which asym_ids to act on to best reproduce that information.
Right now I'm thinking one way to handle this might be to assign an ID to each restraint, allowing grouping those in the way John suggests, and have a suitable category (perhaps ihm_modeling_protocol
) refer to restraint groups instead of (or perhaps as well as) dataset groups. But I need to think about it more from my end.
It is quite common in our IMP modeling to apply "conditional" restraints, only some of which need to be satisfied. There is currently only partial support for such restraints in the dictionary, for example
ihm_cross_link_restraint.conditional_crosslink_flag
,ihm_derived_distance_restraint.group_conditionality
orihm_geometric_object_distance_restraint.group_conditionality
.For example, in our NPC modeling we restrained predicted membrane-binding motifs (MBMs) to the membrane. However, for subunit Nup120 two MBMs were predicted, residues 135-152 and 197-216. Rather than trying to restrain both regions to the membrane we allowed for just one of the two restraints to be satisfied.
ihm_geometric_object_distance_restraint.group_conditionality
doesn't adequately describe this though as it allows for onlyALL
orANY
, while we want to say "either all in group 1, or all in group 2".