Hi Dave, If you're still searching for a quick way to do this, check out PyMOL's Pair Fitting Wizard (Wizard > Pair Fitting; see Page 20 http://www.doe-mbi.ucla.edu/CHEM125/pymol_tutorial_060418.pdf). The wizard is interactive and quick to use.
This can also be done from the command line or scripted using the pair_fit command (http://www.pymolwiki.org/index.php/Pair_fit). We use the Kabsch algorithm (with the appropriate corrections for reflection) and a faster hand-rolled technique, using if I recall correctly Jacobi rotations, to annihilate off-diagonal values. Cheers, -- Jason -- Jason Vertrees, PhD Director of Core Modeling Product Management Schrödinger, Inc. (e) [email protected] (o) +1 (603) 374-7120 On Fri, Dec 28, 2012 at 5:53 AM, Tom Oldfield <[email protected]> wrote: > Hi > > In you post you say you want to fit a small number of points. Note that > the > original algorithm of Kabsch has a number of maths pathalogical conditions > where points have symmetry or lie in a plane/line - this is common for > a small number of points (fitting residues or your example). > > The maths for an update to this algorithm can be found here > Oldfield St'Fun'Gen (2002) 510-528 (appendix C) where cross terms > are used to generate the eigen vectors. This algorithm is very stable > for fitting a small number of points and might be more suitable for > what you are trying to do. > > If you want I can email you the code in C or maybe Java, though it > has rather a lot of other weighting schemes/masking used in the above > paper. > > Regards > Tom > > >> Lsqkabsch should do the trick. >> Herman >> >> -----Original Message----- >> From: CCP4 bulletin board [mailto:[email protected]] On Behalf Of >> Dale Tronrud >> Sent: Thursday, December 27, 2012 9:10 PM >> To: [email protected] >> Subject: Re: [ccp4bb] 3D alignment of points (atoms) >> >> >> If you just want the mathematics and are willing to roll your own >> code, you can use the method of Wolfgang Kabsch. I see this has been >> enshrined in a Wikipedia page at >> >> http://en.wikipedia.org/wiki/Kabsch_algorithm >> >> This is what I've used when I've wanted to superimpose points where the >> mapping between the points is defined. If the points in your tetramer >> aren't pathological, like lying in a common plane, you shouldn't have to >> worry about SVD and can just perform the matrix inversion. >> >> Dale Tronrud >> >> >> On 12/27/12 11:16, Waugh, David (NIH/NCI) [E] wrote: >>> >>> Greetings, >>> >>> I have what seems like a relatively simple problem to solve, but have >> >> not been able to do so using the software tools I know about. I have two >> sets of 4 points in 3D space (atoms in PDB files). They represent >> equivalent positions in two tetrameric proteins. I would like to align >> these points in one PyMol or Coot file. I don't want a NEW set of points >> representing the LSQ average of the two sets, which is what I get in >> Coot's SuperPose. Instead I am looking for a way to "superimpose" one >> atom from each set and then rotate one set for the best fit. I'm not an >> intuitive expert on symmetry, but I think there is probably only one >> best solution to this problem, right? I also need the atomic distances >> to be on the same scale in the two sets of points. >>> >>> Thanks for any help! >>> >>> Dave Waugh >>> >>> -- >>> David S. Waugh, Ph.D. >>> Macromolecular Crystallography Laboratory Center for Cancer Research >>> National Cancer Institute Bldg. 538, Room 209A Frederick, MD >>> 21702-1201 >>> +1 (301) 846-1842 >>> [email protected] >>> http://mcl1.ncifcrf.gov/waugh.html >>> --
