Keren, what is your use case? If it's not "get a list of interacting
pairs" then we'll need to do something different.
Ben - as I wrote in my last reply - it is not all_pairs, since the
optimization tries to find that. We get MSMS data which says a,b,c,d,e
create a complex - but we do not know which interacts with which. so
what DOMINO needs out of the restraint is a-e .
It seems there are four different classes of restraints:
1) simple restraints where all particles in the restraint do
interaction (for example DistanceRestraint)
2) compound restraints where there are a number of different sets of
particles where the particles interactions within the set but there
are no interactions between sets within the restraint:
PairListRestraint or BondedListRestraint or SingletonListRestraint or
most of the other restraints
3) combinatorial restraits where ultimately there will be several
interacting subsets of particles, but the makeup of the subsets are
not known until the end of the optimization (ConnectivityRestraint or
4) and a group without a good name where all of the particles interact
in some sense, but only a few of the interactions directly affect the
final solution (such as NonBondedRestraint).
As far as I can tell, you want:
1) the set of all the particles
2) a list of sets of particles
3) the set of all the particles
4) I don't know what you want for this or perhaps just disallow it
So a get_interacting_sets method which returns a vector of Particles's
(the two s's are intentional :-) would be what you want.