Re: [IMP-users] IMP.pmi.restraints.em.GaussianEMRestraint vs IMP.em.EnvelopeFitRestraint
To: Help and discussion for users of IMP <>
Subject: Re: [IMP-users] IMP.pmi.restraints.em.GaussianEMRestraint vs IMP.em.EnvelopeFitRestraint
From: Ben Webb <>
Date: Thu, 3 Nov 2016 12:58:54 -0700
On 10/14/16 2:00 PM, Julian wrote:
Hi, I was wondering what the difference is between the different EM
restraints. The doc says EnvelopeFitRestraint may be faster for low-res
maps but that's about it.
There have been many ways to score an EM fit in IMP over the years, but
basically they boil down to calculating the cross correlation between
the experimental map and the model map either by a double sum over the
actual voxels, or by comparing some approximate representation (envelope
or Gaussians) of the two maps. GaussianEMRestraint is the most recent
iteration of the latter approach (IMP.em.FitRestraint uses the former)
and is the one I'd recommend. EnvelopeFitRestraint is probably
comparable to GaussianEMRestraint when the latter is used with a very
small number of Gaussians.
The only place I could find using it is the pde6 exampe.
pde6 is an actual published application, so was optimized for results,
not for being an example. We keep it around because we feel that all of
our published work should be reproducible. You're of course welcome to
look through any of these applications, but some of them aren't that
tidy, and use technology of the time, not the latest methods. At the
time GaussianEMRestraint wasn't available, which is why
EnvelopeFitRestraint was used there. I'll update the documentation to
point this out.
I guess I don't really
understand what kind of particles are expected in
IMP.em.EnvelopeFitRestraint(particles, map, 11.0, 5.0)
This is an atomic restraint, so the particles are expected to be atoms
(technically they could be anything with XYZ coordinates, but the
assumption is that they're not diffuse beads).
Would this restraint work with the ReplicaExchange anyway?
I don't see why not, although you'd have to ensure that the restraint is
only applied to your atomic representation, and if you wanted to use it
in conjunction with PMI you'd probably find it more convenient to write
a small PMI wrapper class for it.
Ben
--
https://salilab.org/~ben/
"It is a capital mistake to theorize before one has data."
- Sir Arthur Conan Doyle