To make it clear, the current implementation of RMSD with symmetry does not support objects that consist of several molecules such as dimers or multimers.
Thank you Noel for your advice. I may try it. Igor On 1/9/2014 1:33 AM, Noel O'Boyle wrote: > Sorry - my suggestion was dumb. That's not going to work. > > The only workaround I can think of is to do the alignment (using > OBAlign) using the coordinates (rather than the molecule), and juggle > around the coordinates of the Target yourself based on the 12 * 12 > automorphisms. In other words, get the automorphisms for a benzene > with the atoms in the same order as in your dimer, and use that > information to switch around the coordinates. > > for automorphA in automorphsA: > # move coordinates for first benzene > for automorphB in automorphsB: > #move coordinates for second benzene > SetTarget() > Align() > GetRMSD() > > - Noel > > On 8 January 2014 22:15, Noel O'Boyle <baoille...@gmail.com> wrote: >> Looks like something's up. I'll look into it. In the meanwhile, as a >> workaround, try adding a bond between the two dimers. >> >> - Noel >> >> On 6 January 2014 08:51, Igor Leontyev <ileont...@ucdavis.edu> wrote: >>> Dear OB community, >>> >>> I'm faced with a problem of computing RMSD with symmetry correction. My >>> code (given bellow) uses RMSD for detection of duplicates in ensemble of >>> configurations of molecular dimers. The problem is that computed RMSDs are >>> not always equal to zero (e.g. 0.5 or 2.0) for the same Reference and Target >>> configuration, i.e. when j==i. The problem disappears once I turn off >>> symmetry but the symmetry in necessary for my goal. Watching variables at >>> run time showed that RMSD for "0" permutation has unphysically high value >>> ~10^66 instead of 0. >>> >>> Note, order of atoms is the same for all configurations. I am attaching >>> input files with canonical and noncanonical order of atoms. Canonical order >>> provides more correct RMSDs but not always. I use openbabel-2.3.2 compiled >>> with Eigen3.2.0. >>> >>> >>> Any suggestions? >>> >>> Thank you, >>> Igor >>> >>> >>> RMSD CODE >>> //////////////////////////////////////////////////////// >>> std::vector<OBMol> Conf; >>> OBMol mol; >>> >>> //Read DIMER configurations >>> for (;;) >>> { >>> mol.Clear(); >>> conv.Read(&mol,&ifs); // Read molecule >>> if (mol.Empty()) >>> break; >>> Conf.push_back(mol); >>> } >>> // Compute RMSD >>> OBAlign MyAlign(true,true); >>> for (int i = 0; i<Conf.size(); i++) { >>> MyAlign.SetRefMol(Conf[i]); >>> for (int j=i; j<Conf.size(); j++) { >>> MyAlign.SetTargetMol(Conf[j]); >>> MyAlign.Align(); >>> rmsd = MyAlign.GetRMSD(); // Get rmsd with symmetry >>> printf("%d %d RMSD =%14.8f\n",i,j,rmsd); >>> } >>> } >>> //////////////////////////////////////////////////////// >>> >>> >>> >>> >>> >>> >>> ------------------------------------------------------------------------------ >>> Rapidly troubleshoot problems before they affect your business. Most IT >>> organizations don't have a clear picture of how application performance >>> affects their revenue. With AppDynamics, you get 100% visibility into your >>> Java,.NET, & PHP application. Start your 15-day FREE TRIAL of AppDynamics >>> Pro! >>> http://pubads.g.doubleclick.net/gampad/clk?id=84349831&iu=/4140/ostg.clktrk >>> _______________________________________________ >>> OpenBabel-discuss mailing list >>> OpenBabel-discuss@lists.sourceforge.net >>> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss >>> > ------------------------------------------------------------------------------ CenturyLink Cloud: The Leader in Enterprise Cloud Services. Learn Why More Businesses Are Choosing CenturyLink Cloud For Critical Workloads, Development Environments & Everything In Between. Get a Quote or Start a Free Trial Today. http://pubads.g.doubleclick.net/gampad/clk?id=119420431&iu=/4140/ostg.clktrk _______________________________________________ OpenBabel-discuss mailing list OpenBabel-discuss@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/openbabel-discuss