From: David H. <li...@co...> - 2010-09-22 22:52:13
|
In preparing my test for the odd request that I just sent, I came across what seems to be a bug in super. It has to do with this weird nucleic acid thing I was talking about. Here's the script this time: from pymol import cmd cmd.fetch('1acb', async=0) cmd.fetch('1acb', '1acb_2', async=0) cmd.fetch('426d', async=0) print "1acb_2"; print cmd.super('1acb', '1acb_2')[0] print "426d"; print cmd.super('1acb', '426d')[0] print "1acb_2_again"; print cmd.super('1acb', '1acb_2')[0] ~> ~/src/pymol_trunk_20100922/pymol -qrkc script2.py PyMOL>run script2.py,main 1acb_2 0.0 426d 0.0 1acb_2_again 2.80655193329 super should give an rms between 1acb and 1acb_2 of 0.0, which it does at first. But once you super your protein to a nucleic acid that has a calcium ion, when you run exactly the same command, you all of a sudden get 2.8. Very weird... Note, this does not happen if you use 100d, which is a nucleic acid without a calcium ion, does not happen if you use a pdb file with a calcium ion, and does happen with 1d56, which is another nucleic acid with a calcium ion I just pulled out. In pymol 1.2, it also behaved incorrectly: ~> pymol -qrkc script2.py PyMOL>run script2.py,main 1acb_2 0.0 426d nan 1acb_2_again nan -David |
From: Thomas H. <sp...@us...> - 2010-09-23 07:05:55
|
Hi David, this is bug, indeed. I also hit this some time ago but didn't report it so far. The actual problem is that the cmd.super('1acb', '426d') fails completely and only aligns a single atom, resulting in a Null-matrix that collapses all of 1acb into a single point. The RMSD of 2.8 that you get in your last call is just an artefact that arises from aligning the correct protein to the collapsed one. Just run your example with GUI and you see what happens. fetch 1acb fetch 426d copy 1acb_2, 1acb super 1acb, 426d super 1acb, 1acb_2, object=aln zoom aln I think the super command should check if the resulting matrix is orthonormal or at least not a Null-matrix. Cheers, Thomas On Wed, 2010-09-22 at 18:28 -0400, David Hall wrote: > In preparing my test for the odd request that I just sent, I came > across what seems to be a bug in super. It has to do with this weird > nucleic acid thing I was talking about. > > Here's the script this time: > from pymol import cmd > > cmd.fetch('1acb', async=0) > cmd.fetch('1acb', '1acb_2', async=0) > cmd.fetch('426d', async=0) > > > print "1acb_2"; print cmd.super('1acb', '1acb_2')[0] > print "426d"; print cmd.super('1acb', '426d')[0] > print "1acb_2_again"; print cmd.super('1acb', '1acb_2')[0] > > ~> ~/src/pymol_trunk_20100922/pymol -qrkc script2.py > PyMOL>run script2.py,main > 1acb_2 > 0.0 > 426d > 0.0 > 1acb_2_again > 2.80655193329 > > super should give an rms between 1acb and 1acb_2 of 0.0, which it does > at first. But once you super your protein to a nucleic acid that has > a calcium ion, when you run exactly the same command, you all of a > sudden get 2.8. Very weird... > > Note, this does not happen if you use 100d, which is a nucleic acid > without a calcium ion, does not happen if you use a pdb file with a > calcium ion, and does happen with 1d56, which is another nucleic acid > with a calcium ion I just pulled out. > > In pymol 1.2, it also behaved incorrectly: > ~> pymol -qrkc script2.py > PyMOL>run script2.py,main > 1acb_2 > 0.0 > 426d > nan > 1acb_2_again > nan > > > -David -- Thomas Holder Group of Steffen Schmidt Department of Biochemistry MPI for Developmental Biology Spemannstr. 35 D-72076 Tübingen |
From: Jason V. <jas...@sc...> - 2010-09-23 22:27:15
|
Hi Thomas and David, Thanks for bringing this to my attention. PyMOL was indeed trying to fit to a degenerate case. I fixed the bug: PyMOL will now print: ExecutiveAlign: No alignment found. and leave your objects untouched. This fix is mixed in with some other development code, so I'll extract it and check it in soon. Cheers, -- Jason On Thu, Sep 23, 2010 at 3:05 AM, Thomas Holder <sp...@us...> wrote: > Hi David, > > this is bug, indeed. I also hit this some time ago but didn't report it > so far. The actual problem is that the cmd.super('1acb', '426d') fails > completely and only aligns a single atom, resulting in a Null-matrix > that collapses all of 1acb into a single point. The RMSD of 2.8 that you > get in your last call is just an artefact that arises from aligning the > correct protein to the collapsed one. Just run your example with GUI and > you see what happens. > > fetch 1acb > fetch 426d > copy 1acb_2, 1acb > super 1acb, 426d > super 1acb, 1acb_2, object=aln > zoom aln > > I think the super command should check if the resulting matrix is > orthonormal or at least not a Null-matrix. > > Cheers, > Thomas > > On Wed, 2010-09-22 at 18:28 -0400, David Hall wrote: >> In preparing my test for the odd request that I just sent, I came >> across what seems to be a bug in super. It has to do with this weird >> nucleic acid thing I was talking about. >> >> Here's the script this time: >> from pymol import cmd >> >> cmd.fetch('1acb', async=0) >> cmd.fetch('1acb', '1acb_2', async=0) >> cmd.fetch('426d', async=0) >> >> >> print "1acb_2"; print cmd.super('1acb', '1acb_2')[0] >> print "426d"; print cmd.super('1acb', '426d')[0] >> print "1acb_2_again"; print cmd.super('1acb', '1acb_2')[0] >> >> ~> ~/src/pymol_trunk_20100922/pymol -qrkc script2.py >> PyMOL>run script2.py,main >> 1acb_2 >> 0.0 >> 426d >> 0.0 >> 1acb_2_again >> 2.80655193329 >> >> super should give an rms between 1acb and 1acb_2 of 0.0, which it does >> at first. But once you super your protein to a nucleic acid that has >> a calcium ion, when you run exactly the same command, you all of a >> sudden get 2.8. Very weird... >> >> Note, this does not happen if you use 100d, which is a nucleic acid >> without a calcium ion, does not happen if you use a pdb file with a >> calcium ion, and does happen with 1d56, which is another nucleic acid >> with a calcium ion I just pulled out. >> >> In pymol 1.2, it also behaved incorrectly: >> ~> pymol -qrkc script2.py >> PyMOL>run script2.py,main >> 1acb_2 >> 0.0 >> 426d >> nan >> 1acb_2_again >> nan >> >> >> -David > > -- > Thomas Holder > Group of Steffen Schmidt > Department of Biochemistry > MPI for Developmental Biology > Spemannstr. 35 > D-72076 Tübingen > > > ------------------------------------------------------------------------------ > Start uncovering the many advantages of virtual appliances > and start using them to simplify application deployment and > accelerate your shift to cloud computing. > http://p.sf.net/sfu/novell-sfdev2dev > _______________________________________________ > PyMOL-users mailing list (PyM...@li...) > Info Page: https://lists.sourceforge.net/lists/listinfo/pymol-users > Archives: http://www.mail-archive.com/pym...@li... -- Jason Vertrees, PhD PyMOL Product Manager Schrodinger, LLC (e) Jas...@sc... (o) +1 (603) 374-7120 |