Friedrich Foerster wrote: > i discovered the MD optimizer in imp and i am interested in using it. > when studying the input, i am missing something: how is the > temperature equilibrated? there is no parameter for that in the input > (equil in dodgy old modeller). also in the source code i did not > figure out where the temperature is actually used... > is the function safe to be used now? or should i rather not?
As of last night's build, IMP.MolecularDynamics should be usable - it can at least do everything that Modeller's MD does (with the exception of rigid bodies and self-guided or Langevin dynamics[*]). A simple checklist for the Modeller people:
1. Velocities by default are NOT initialized - they are kept from any previous run (or they are zero for the first run). To initialize them to a given temperature, call the assign_velocities method. 2. Atom shifts are NOT capped by default (Modeller's cap_atom_shift parameter). But you can cap the velocity component with the set_velocity_cap method (with the default Modeller shift of 0.2A and timestep of 4.0fs, the equivalent velocity cap would be 0.05A/fs). 3. No equilibration is done (Modeller's equilibrate parameter). But you can get something similar by creating a VelocityScalingOptimizerState and adding it to the optimizer. That has a rescale_velocities method, which you can whenever you like (otherwise it will rescale the velocities every skip_steps). 4. Unlike Modeller, IMP uses 'real' masses in MD. Each particle to be optimized must be given a 'mass' parameter, which is the mass in AMU (g/mol). I suppose if you wanted to be perverse you could emulate the Modeller behavior by giving every particle a mass of 12.011.
[*] Guided Langevin dynamics should be simple, however (just override the virtual step method in a derived class). I need this for my refinement anyway, so it will appear in the near future.
See also https://salilab.org/imp/doc/doxygen/classIMP_1_1MolecularDynamics.html and https://salilab.org/imp/doc/doxygen/classIMP_1_1VelocityScalingOptimizerStat...
Ben