[PyMOL] secondary structure assignment and surface potential calc/mapping

2003-10-31 Thread Neiditch, Matthew
Dear List,

1) Is the secondary structure assignment function in 0.92 more reliable?  Or
does the WARNING: it will make mistakes, so don't publish anything based on
this algorithm! statement still apply?

2) Is there a 0.92 function to calculate and map surface potential?  This
would be useful beyond compare.
  

Regards,

Matthew Neiditch

Postdoc
Hughson Lab
Princeton University
neidi...@molbio.princeton.edu 



RE: [PyMOL] secondary structure assignment and surface potential calc/mapping

2003-10-31 Thread Warren L. DeLano
 1) Is the secondary structure assignment function in 0.92 
 more reliable?  Or does the WARNING: it will make mistakes, 
 so don't publish anything based on this algorithm! statement 
 still apply?

Good question!  I added that warning message to util.ss back when I
believed that there was such as thing as correct secondary structure
assignment and because util.ss had a very primitive H-bonding definition
-- distance only.  dss is something completely new.

In creating the new dss, I took some time to go through the 1983 DSSP
paper (Kabsch  Sander) and discovered much to my surprise that the
H-bond criterion used by DSSP has very little to do with what
crystallographers today think about hydrogen bonds.  Did you know that
DSSP H-bonds can be as long as 5.2 Angstroms between heavy atoms (Fig
1)?  Plus, there is no simple analytic form of their criterion provided
which could be implemented by something like PyMOL.   

Furthermor, and more disturbing, I discovered that DSSP doesn't take
backbone torsion geometry into account at all, which finally explained
to me why so many DSSP-assigned PDB structures have obviously
non-helical regions assigned as HELIX.  It's just a naive algorithm, and
as far as I'm concerned, H-bonds just aren't the whole story when it
comes to secondary structure.

Thus, I had to admit that DSSP itself wasn't correct with repect to my
personal interpretation of secondary structure.  In looking at RasMOL's
code it suffers from some of the same problems, and I don't think it
actually implements DSSP -- just an approximation to it.

So I decided to create my own best-attempt at a secondary structure
assignment algorithm based on the spirit of DSSP, but which also takes
into account backbone geometry as well as hydrogen-bonding .  Like DSSP,
PyMOL's hydrogen-bonding criteria is angle-dependent, but the default
range is more contemporary (within 3.2 A at 63 deg, 3.6 A at 0 deg).  

After validating the algorithm manually on ten structures, I sat down
and visually compared PDB (DSSP) assignments to PyMOL's dss over
several hundreds proteins.  In general, both programs find the same set
of helices and large sheets.  However, they differ on the exact start
and stop points of these elements.  On small sheets or helices, one
program may miss something that the other finds.  However, divergent
regions seemed to involve borderline cases for the most part.  dss and
DSSP seem to do equally well on cut-and-dry idealized systems.  So dss
is reasonably validated, in my view, but I am looking for feedback and
specific problem cases when they're found.

But speaking as an artist rather than as a scientist, I think dss has
better aesthetics than DSSP when it comes to cartoon diagrams -- there
are simply fewer goofy-looking assignments.  Whether it is more
scientifically correct or not is an open question.  Cartoons themselves
are pretty misleading...one might add.

By the way, there are a some new settings in PyMOL 0.92 which cover
h-bond detection and secondary structure assignment.  Here are the most
important ones:

h_bond_max_angle, 63.0
h_bond_cutoff_center, 3.6
h_bond_cutoff_edge, 3.2

ss_helix_psi_target, -48.0
ss_helix_phi_target, -57.0

ss_strand_psi_target, 124.0
ss_strand_phi_target, -129.0

Basically, if helix or sheet hydrogen bonds are present, and backbone
geometries are close to the target values, PyMOL will assign residues as
helix or sheet.  Otherwise, they're considered loops.   The allowable
Phi/Psi inclusion/exclusion boxes are adjustable with settings too.

For the curious, my algorithm is about 1,000 lines of code and consists
of the SelectorAssignSS function found in layer3/Selector.c around line
500.

 2) Is there a 0.92 function to calculate and map surface 
 potential?  This would be useful beyond compare.

I wish.  Your choices for this are Grasp, MEAD, Delphi, or Zap.  Only
MEAD is freely available.

Cheers,
Warren

--
mailto:war...@delanoscientific.com
Warren L. DeLano, Ph.D.
Principal Scientist
DeLano Scientific LLC
Voice (650)-346-1154 
Fax   (650)-593-4020

 -Original Message-
 From: pymol-users-ad...@lists.sourceforge.net 
 [mailto:pymol-users-ad...@lists.sourceforge.net] On Behalf Of 
 Neiditch, Matthew
 Sent: Friday, October 31, 2003 12:46 PM
 To: 'pymol-users@lists.sourceforge.net'
 Subject: [PyMOL] secondary structure assignment and surface 
 potential calc/mapping
 
 
 Dear List,
 
   
 
 Regards,
 
 Matthew Neiditch
 
 Postdoc
 Hughson Lab
 Princeton University
 neidi...@molbio.princeton.edu 
 
 
 ---
 This SF.net email is sponsored by: SF.net Giveback Program. 
 Does SourceForge.net help you be more productive?  Does it
 help you create better code?   SHARE THE LOVE, and help us help
 YOU!  Click Here: http://sourceforge.net/donate/ 
 ___
 PyMOL-users mailing list
 PyMOL-users@lists.sourceforge.net 
 https://lists.sourceforge.net/lists/listinfo/p ymol-users
 




RE: [PyMOL] labeling atoms in GUI

2003-10-31 Thread Warren L. DeLano
Richard,

It's not GUI, but you could simply bind a function key such as F1 to
that command:

cmd.set_key('F1',lambda :cmd.label((lb),'%s %s
%s%(name,resn,resi)'))

You might then want to bind 'F2' to something which hides all labels.

cmd.set_key('F2',cmd.label)

Cheers,
Warren

--
mailto:war...@delanoscientific.com
Warren L. DeLano, Ph.D.
Principal Scientist
DeLano Scientific LLC
Voice (650)-346-1154 
Fax   (650)-593-4020

 -Original Message-
 From: pymol-users-ad...@lists.sourceforge.net 
 [mailto:pymol-users-ad...@lists.sourceforge.net] On Behalf Of 
 rbax...@uchicago.edu
 Sent: Wednesday, October 29, 2003 5:14 PM
 To: pymol-users@lists.sourceforge.net
 Subject: [PyMOL] labeling atoms in GUI
 
 
 Dear All,
 
 I want to look at my structure in PyMOL and, having centered 
 on something defined by my selection script, pick atoms 
 nearby and see what residues they belong to. That is, I want 
 to pick select an atom with the mouse and have its name, 
 residue name and residue number appear on screen, like it does in O.
 
 I figured out that [Ctrl] + Left-Mouse-Button selects the 
 atom as lb, and that the command 'label (lb),%s %s %s % 
 (name,resn,resi)' gives me the label I want. Now how could I 
 get something like that to appear as a menu function in the 
 GUI so I don't have type it in all the time? Can it be a 
 command executed as part of my startup script?
 
 Maybe some function like this already exists, otherwise I 
 think it is a very useful thing.
 
 regards,
 
 Richard Baxter
 
 
 ---
 This SF.net email is sponsored by: SF.net Giveback Program. 
 Does SourceForge.net help you be more productive?  Does it
 help you create better code?   SHARE THE LOVE, and help us help
 YOU!  Click Here: http://sourceforge.net/donate/ 
 ___
 PyMOL-users mailing list
 PyMOL-users@lists.sourceforge.net 
 https://lists.sourceforge.net/lists/listinfo/p ymol-users