ihmwg / IHMCIF

📖 mmCIF support for hybrid/integrative models
https://pdb-dev.wwpdb.org
Creative Commons Zero v1.0 Universal
21 stars 3 forks source link

Allow for "conditional" restraints #66

Open benmwebb opened 6 years ago

benmwebb commented 6 years ago

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 or ihm_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 only ALL or ANY, while we want to say "either all in group 1, or all in group 2".

benmwebb commented 5 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:

  1. 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.

  2. 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.