Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help
Special pages
SBGrid Resources
SBGrid Consortium
SBGrid Data Bank
Software Webinars
PyMOL Webinar
PyMOL Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
Displaying Biochemical Properties
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== Bonds == PyMOL can deduce bonds from the PDB structure file, even if the '''CONECT''' records are missing. In fact, PyMOL guesses bonding connectivity based on proximity, based on the empirical observation that two atoms of a given radius will not be generally closer than a certain distance unless they are bonded. ===Displaying double bonds=== <gallery widths="300px" heights="300px"> Image:DoubleBonds.png|Image showing double bonds in PyMOL. Double bonds are supported in [[lines]] and [[sticks]]. </gallery> You can go into the [[lines]] mode and turning on the valence display: <source lang="python"> hide as lines set valence, 0.1 </source> A higher value for valence spreads things out more. See the [[Valence]] page for more information on options for changing the appearance of the valence lines. ===Hydrogen bonds and Polar Contacts=== [[Image:Polar_contacts_small.png|thumb|Polar Contacts in PyMol|center|300px]] Using the actions [A] button for an object or selection you can display Hydrogen bonds and Polar Contacts. [A]->find->polar contacts-><select from menu> The command behind the menus is the <b>dist</b>ance command called with the additional argument mode=2. Parameters that control the the identification of H-bonds are defined as set h_bond_cutoff_center, 3.6 with ideal geometry and set h_bond_cutoff_edge, 3.2 with minimally acceptable geometry. These settings can be changed *before* running the detection process (dist command mode=2 or via the menus). Note that the hydrogen bond geometric criteria used in PyMOL was designed to emulate that used by [http://swift.cmbi.kun.nl/gv/dssp/ DSSP]. ==== Hydrogen bonds between specific atoms ==== <source lang="python"> dist name, sele1, sele2, mode=2 </source> ==== Hydrogen bonds where find->polar contacts doesn't do what you need ==== You can show H-bonds between two objects using atom selections so long as hydrogens are present in both molecules. If you don't have hydrogens, you can use [[h_add]] on the proteins, or provide ligands with valence information and then use h_add. Two examples are below. For clarity, they draw dashes between the heavy atoms and hide the hydrogens. <source lang="python"> # EXAMPLE 1: Show hydrogen bonds between protein # and docked ligands (which must have hydrogens) load target.pdb,prot load docked_ligs.sdf,lig # add hydrogens to protein h_add prot select don, (elem n,o and (neighbor hydro)) select acc, (elem o or (elem n and not (neighbor hydro))) dist HBA, (lig and acc),(prot and don), 3.2 dist HBD, (lig and don),(prot and acc), 3.2 delete don delete acc hide (hydro) hide labels,HBA hide labels,HBD </source> <source lang="python"> # EXAMPLE 2 # Show hydrogen bonds between two proteins load prot1.pdb load prot2.pdb h_add prot1 h_add prot2 select don, (elem n,o and (neighbor hydro)) select acc, (elem o or (elem n and not (neighbor hydro))) dist HBA, (prot1 and acc),(prot2 and don), 3.2 dist HBD, (prot1 and don),(prot2 and acc), 3.2 delete don delete acc hide (hydro) hide labels,HBA hide labels,HBD # NOTE: that you could also use this approach between two # non-overlapping selections within a single object. </source> The "polar contacts" mentioned above are probably better at finding hydrogen bonds than these scripts. "Polar contacts" check geometry as well as distance. ==== Details ==== Generally speaking, PyMOL does not have sufficient information to rigorously determine hydrogen bonds, since typical PDB file are ambiguous with respect to charge states, bonds, bond valences, and tautomers. As it stands, all of those things are guessed heuristically. Rigorously determining the location of lone pair electrons and proton coordinates from raw PDB files is a nontrival problem especially when arbitrary small molecule structures are present. In addition, PyMOL would also need to consider the implied coordinate error due to overall structure resolution and local temperature factors before rigorously asserting than any specific hydrogen bond does or does not exist. Furthermore, our hydrogen bond detection machinery was originally developed for purposes of mimicking Kabsch and Sander's DSSP secondary structure assignment algorithm (Biopolymers 22, 2577, 1983) which is based on a rather generous notion of hydrogen bonding (see Kabsch Figure 1). Although this approximate capability can be accessed via the distance command using mode=2, the criteria applied by our implementation may be based on heavy-atom coordinates (only) and does not necessarily correspond to anything rigorous or published. So the bottom line is that PyMOL merely offers up putative polar contacts and leaves it to the user to determine whether or not the interactions present are in fact hydrogen bonds, salt bridges, polar interactions, or merely artifacts of incorrect assignments (i.e. two carbonyls hydrogen bonding because they're being treated like hydroxyls). With respect to the h_bond_* settings, the angle in question for h_bond_cutoff_* and h_bond_max_angle is ADH, assuming H exists. If H does not exist, then PyMOL will guess a hypothetical coordinate which may not actually be valid (in plane, etc.). Tthe hydrogen must also lie within a cone of space with its origin on A (along B->A) and angular width h_bond_cone. Since h_bond_cone in 180 by default, the present behavior is to simply reject any hydrogen bond where the hydrogen would lie behind the plane defined by the acceptor atom (A) in relation to its bonded atom(s) B (if any). In other words, if B is only one atom (e.g. C=O vs. C-O-C), then by default, HAB cannot be less then 90 degrees. The two h_bond_power_* settings are merely fitting parameters which enable PyMOL to reproduce a curve shape reflecting Kabsch Figure 1. The endpoints of the effective cutoff curve is a function of the two h_bond_cutoff_* setting.
Summary:
Please note that all contributions to PyMOL Wiki are considered to be released under the GNU Free Documentation License 1.2 (see
PyMOL Wiki:Copyrights
for details). If you do not want your writing to be edited mercilessly and redistributed at will, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource.
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
Displaying Biochemical Properties
(section)
Add topic