at 2.41p EDT on 2003 December 07 Sunday Egon Willighagen said:

> On Friday 28 November 2003 10:30, Miguel Howard wrote:
> > > re:  hbonds algorithm, I will research this, including the url you sent
> > > and current behavior of RasMol & Chime, and get back to you.
> >
> > If you check out the current source code you can try out
> >   hbonds on
> 
> Ok, done that.
> 
> > It works ... but the algorithm is not correct. It builds far too many
> > bonds.
> 
> Indeed. First results look nice, but see below...
> 
very nice start, I agree!


> > The simple algorithm is based upon distance only:
> >  - Any paired combination of oxygen and nitrogen
> 
> One important feature of a hydrogen bond, is that a hydrogen is involved...
> for jmol/samples/1crn.pdb this is difficult, because it does not contain 
> hydrogens, but then indeed oxygen-nitrogen would do...
> 
> But, because one hydrogen is involved in each bond, 1CRN does not work 
> properly, and there are, as you suggest, too many H-bonds...
> 
> Ok, some theory (from my mind, the nice book they once had in the library
got 
> removed recently... ):
> 
> A H bond:    X-H - - - Y
> 
> X is the H-donor, and can be O, N, S (I think) and even C! (the latter
> bonds tend to be rather weak H-bonds...). 
>
I have never heard of a carbon involved in an hbond - can you give an
example?


> *But*, Y needs to have a H
> attached... so hydroxyl (OH) would work, but not a carbonyl (C=O)...
> 
I think you mean X, not Y, has to have an H attached...


> Y is the H-acceptor, and can be O and N. Important now, is that the
> acceptor needs to have a lone pair (LP) available. N can have one LP, O
> can have one (hydroxyl, OH, has two) or two (carbonyl, C=O, has two)...
> N has normally one, but not always... e.g. a N in a ring system as in
> C-N(H)=C, does *not* have a free LP...
> 
> Ok, that's the easy stuff, that works for most biochemistry... But
> things can be much more complicated, bifurcated H-bonds... and other
> weird stuff... I don't think we need to care about that right now... at
> least, not for a first implementation...
> 
<shudder>  I agree.


> >  - less than 3.25 angstroms
> >  - more than 2.5 angstroms
> 
> As I don't have access to the book, I cannot give exact numbers... but
> these look ok... 
>
this is an accurate range for the distance between donor (X) and acceptor (Y)
atoms.  in water, the length of the X-H bond is 0.97A and the XH-Y bond
length is 1.77A, which gives a donor to acceptor distance of 2.7A.

in a more advanced version, the algorithm could vary this range based on the
angle formed by X-H-Y; in other words, accepted distance varies inversely
with X-H-Y angle.  but that is not necessary for the first shot.



> Another important feature, though, is the angle X-H -
> - - Y, these is 180 degrees, optimally... there are other angles
> involved too, if you take more complicated H-bond systems into
> account...
> 

> > I realize that this is not correct.
> >
> > What I don't know is:
> >  - What are the 'angle' criteria for hbonds
> 
> 180-120 degrees
> 
agreed. (nucleic acids, by the way, are an *excellent* place to see crucial
non-optimal hbond angles; they are extremely common in basepairing.)



> >  - Given that there are no hydrogens in the file ... How do
> >    you calculate the 'angles' from the bonds that are present?
> 
> Don't know that...
> 
calculate the position of the hydrogen on the donor.


> >  - Is there other criteria that can be used to eliminate
> >    candidate oxygen/nitrogen atoms?
> 
> Yes, the most important one is that a N-H in the back bone can only
> have one H-bond... and a C=O in a back bone can have at most two.
> 
what about side chains, bases, and hetero groups?  

here is what I think a generalized hbond algorithm should do:


/* calculating hbonders */

1. can the atom form an hbond? (based solely on electronegativity this would
be F, O, Cl, and N - possibly C and S.) 

2. if true, count up the hbond "potentials" - lone pair(s) and hydrogen(s).
if more than zero, add atom to table of donors and acceptors.

3. are there any hbond partners within correct distance (if acceptor look for
donors; if donor, look for acceptors)?  in the majority of protein and
nucleic acids, the answer here will be yes - there are very few hbond
potentials left unsatisfied.  will have to loop this to account for atoms
with multiple hbond potentials.

4. if true, is the X-H-Y angle acceptable?  I haven't thought about this in
depth yet but it would likely include calculating the position of the
involved H.

5. if true, show hbond.


just a thought:  if processing time is an issue (when isn't it?), steps 1 and
2 might be best accomplished on load; the rest when a show hbonds command is
generated (once a table of all possible donors and acceptors exists).


> Which one you need to select then is guided by the angle... the one
> closest to 180 degrees is the correct one...
> 
do we want the software to decide what is the correct hbond?  this strikes me
as a determination better made by the user.  if we narrow down the hbonds
based on all the other criteria, and there are still multiple possibilities,
I think Jmol should show them all.


regards,

:tim

-- 
timothy driscoll
molvisions - molecular graphics & visualization
<http://www.molvisions.com/>
usa:north carolina:wake forest


-------------------------------------------------------
This SF.net email is sponsored by: IBM Linux Tutorials.
Become an expert in LINUX or just sharpen your skills.  Sign up for IBM's
Free Linux Tutorials.  Learn everything from the bash shell to sys admin.
Click now! http://ads.osdn.com/?ad_id=1278&alloc_id=3371&op=click
_______________________________________________
Jmol-developers mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jmol-developers

Reply via email to