[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [IMP-users] IMP.pmi.restraints.em.GaussianEMRestraint vs IMP.em.EnvelopeFitRestraint



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