Domino with internal coordinates

If done naively, enumerated solutions for intermediate subsets will include large number of solutions that are rigid transformations of one other. These configurations, even is eliminated in the final solutions by locking down a few of the particles, can greatly increase the time taken and memory usage. Straight forward, partial solutions, include:

  1. Choose a few of the particles and limit where they can go. For example, fix one particle at the origin, one to be on the x-axis and one to be on the x-y plane. This will restrict final solutions to be not include rigid transforms of one another.
  2. Ensure that a subset containing the three locked particles is enumerated first and use cross subset filtering to propagate the locking down of states from this subset. This eliminates translations in many cases, but since it doesn't take into account more than one particle at a time, probably doesn't get all.

A more thorough solution would be to use internal coordinates. One example for this is to solve for the distances between particles instead of their coordinates. To do this, our variables are entries in a distance matrix, sampled at the appropriate resolution. Various properties of this approach are:

Rigid bodies can be handled in such a scheme by associating three marker particles with each one and using them to define a coordinate frame. Fixed restraints such as density maps can be handled by associating them with a rigid body reference frame. This would require minor modifications to the FitRestraint, but these probably should be done anyway to support density maps with unknown location.

IMP: internal_domino (last edited 2011-01-13 01:11:36 by DanielRussel)