Chris, In answer to your question 1: Yes, distance with mode=2 runs the polar contact detection routine between the two selections.
In answer to your question 2, there are two reasons why stick with the term "polar contacts" instead of "hydrogen bonds": 1) 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 beyond the present scope of the software (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. 2) Furthermore, our hydrogen bond detection machinery was originally developed for purposes of mimicking Kabsch and Sander's DSSP secondard 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.). The other angles you listed are not directly considered, however, the 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. In answer to question 3, with respect to menu actions, the underlying API call (from modules/pymol/menu.py) is essentially: cmd.dist(name,selection,selection,quiet=1,mode=2,label=0,reset=1) Cheers, Warren > -----Original Message----- > From: cmfra...@uchicago.edu [mailto:cmfra...@uchicago.edu] > Sent: Monday, February 16, 2009 11:34 AM > To: pymol-users@lists.sourceforge.net > Subject: [PyMOL] Hydrogen Bond Parameters > > Hello, > > Any help with the following would be greatly appreciated: > > The online PyMOL documentation > (http://delsci.info/dsc/dokuwiki/doku.php?id=setting:h_bond&s=hydrogen%2 0b > ond) > > describes the h_bond parameters as follows: > > 1. h_bond_cone (float, default: 180.0) is a hydrogen-bond > geometry parameter. > 2. h_bond_cutoff_center (float, default: 3.6) is the maximum > distance for ideal hydrogen bonds. > 3. h_bond_cutoff_edge (float, default: 3.6) is the maximum > distance for a marginal hydrogen bond. > 4. h_bond_exclusion (integer, default: 3) controls suppression > of hydrogen bonds around adjacent atoms. > 5. h_bond_max_angle (float, default: 63.0) is the maximum > angle for a marginal hydrogen bond. > 6. h_bond_power_a (float, default: 1.6) is a hydrogen-bond > geometry parameter. > 7. h_bond_power_b (float, default: 5.0) is a hydrogen-bond > geometry parameter. > > I was hoping someone (Warren?) might be able to elaborate on > parameters 1-3 and 5-7 (or alternatively provide a reference > and/or thread). Specifically, if a hydrogen bond consists of a > donor (D), hydrogen (H), acceptor (A), and acceptor antecedent > (B) illustrated as: > > D--H--A--B > > or alternatively: > > H--A > / \ > D B > > Then how are parameters 1-3, and 5-7 defined in terms of > distances (HA, DA) and angles (DHA, DAB, HAB)? I would guess > that "h_bond_cutoff_center" and "h_bond_cutoff_edge" both > refer to the donor-acceptor (DA) distance, and I can make > additional guesses about the other parameters, but I would > prefer to proceed with a set of exact definitions if possible. > > Three additional questions: > > 1. Once the hydrogen bond parameters have been set, one uses > the 'dist' command with mode=2 to find all hydrogen bonds, > correct? For instance, if mc_H is the set generated by the > command 'select mc_H, name h' and mc_O is the set generated by > the command 'select mc_O, name o' then will the following > command find all main-chain/main-chain hydrogen bonds for a > given structure (using the previously-defined h_bond > parameters as selection criteria): > > dist mcmc, mc_H, mc_O, mode=2 > ? > > > 2. Are hydrogen bonds considered a subset of "polar contacts" > in PyMOL or are the two sets equivalent ({hydrogen bonds} = > {polar contacts})? > > 3. At the risk of belaboring the point, what set of commands > combined with the distance command would yield the same > results as those generated by following menu selection: > > find > polar contacts > within selection > > assuming that the selection under consideration is an entire > structure? > > Thanks in advance, > > Christopher > > ------------------------------------------------------------------------ -- > ---- > Open Source Business Conference (OSBC), March 24-25, 2009, San Francisco, > CA > -OSBC tackles the biggest issue in open source: Open Sourcing the > Enterprise > -Strategies to boost innovation and cut costs with open source > participation > -Receive a $600 discount off the registration fee with the source code: > SFAD > http://p.sf.net/sfu/XcvMzF8H > _______________________________________________ > PyMOL-users mailing list > PyMOL-users@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/pymol-users > > >