On 8/6/10 8:16 AM, Benjamin SCHWARZ wrote:
Sometimes I load particles in a model that won't be used in the restraints (e.g. molecules loaded twice in order to have a reference for RMSD computations between an initial and an optimized state). I am wondering about the incidence of inserting such "non-useful" particles, is there any overhead ?
Each particle uses memory, but otherwise I wouldn't worry about inserting such particles - every particle is useful. ;)
Also, sometimes the Optimizer appears to need one to provide explicit movements for the particles (RigidBodyMover in the case of Monte Carlo optimizer), and sometimes it appears to know which particles are to be moved (CG). In this latter case, I guess particles that are involved in a Restraint are somehow tagged as such, and the optimizer do not bother with particles that are not tagged as "restraint involved". Am I correct ?
Not exactly. It is not the particles that are optimized, but their attributes. For example, an atom particle may have x,y,z attributes as well as a radius and charge, but typically only the x,y,z attributes are optimized. See the set_is_optimized() Particle method (decorators such as XYZ provide wrappers around this method). CG simply optimizes every attribute that has been marked for optimization. Monte Carlo, by construction, requires an explicit move set.
Ben -- http://salilab.org/~ben/ "It is a capital mistake to theorize before one has data." - Sir Arthur Conan Doyle