Hi Ben,
Yes, my group was using this Restrainer module as you mentioned with a very early version of IMP. Thanks for the detailed info about the two IMP modules and how to use them.
Kind regards,
Altair
On 4/16/20 11:22 AM, Altair Hernández wrote:
> I used to work with a Diameter restraint in the past using IMP version
> 2.2 where I specified in a XML file the *max_diameter* and *std_dev*
> between pairs of particles. I would like to know how to use this
> function with the latest version of IMP (2.12).
XML input implies you were using IMP.restrainer, which was removed from
the code a long long time ago. But IMP.core.DiameterRestraint is still
there:
https://integrativemodeling.org/nightly/doc/ref/classIMP_1_1core_1_1DiameterRestraint.html
DiameterRestraint takes an input a UnaryFunction (usually we use
IMP.core.HarmonicUpperBound) and a SingletonContainer. If you just have
a simple list of particles you want to restrain, use
IMP.container.ListSingletonContainer.
You can see how IMP.restrainer set up the restraint (in C++) at
https://github.com/salilab/imp/blob/2.1.1/modules/restrainer/src/simplify_restraint.cpp#L113-L115
> Also I would be grateful to know which is the main difference between
> the DiameterRestraint and the Harmonic Upper Bound
HarmonicUpperBound scores the distance between two particles, keeping
them from exceeding a certain distance. DiameterRestraint scores the
distance between each of a set of particles and the center of mass.
> and how to justify a
> given k value when using the HarmonicUpperBound restraint.
The larger the value of k the less likely particles are to exceed the
diameter.
See also
https://integrativemodeling.org/nightly/doc/ref/classIMP_1_1core_1_1Harmonic.html#a34646455a8a2e301f2895d99a525b914
to convert std_dev to k.
Ben
--
ben@salilab.org https://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
- Sir Arthur Conan Doyle