meshi.energy.solvate.hydrogenBonds
Class HydrogenBondDahiyat

java.lang.Object
  extended by meshi.energy.solvate.hydrogenBonds.AbstractHydrogenBond
      extended by meshi.energy.solvate.hydrogenBonds.HydrogenBondDahiyat
All Implemented Interfaces:
DahiyatImplementationConstants

public class HydrogenBondDahiyat
extends AbstractHydrogenBond
implements DahiyatImplementationConstants

A specific hydrogen bond description following: Dahiyat et al. Protein Sci. 1996 May;5(5):895-903. The hydrogen bond value has the following dependence: hbVal = sigmoidDis(Rd-a)*sigmoidAng(angle1)*sigmoidAng(angle2) Where Rd-a is the distance between the donnor and acceptor, and sigmoidDis(Rd-a) is the sidmoid function described in meshi.util.mathTools.Sigma.java . The parameters for this sigmoid are given in the constructor (p1,p2,end,valAtp1,valAtp2). The two angles in the HB are made of 4 atoms are defined as follows: a1~~~~~~a2 . . a3~~~~~~a4 ... - the HB ~~~ - covelant bonding Angle 1 - between atoms 1,2,3. Angle 2 - between atoms 2,3,4. There could be two cases: 1) The hydrogen atom in the HB is not known explicitly (NoH). In this case a2 and a3 are the polar atoms, and a1 and a4 are the heavy atoms to which they are attached (base atoms). 2) The hydrogen atom in the HB is known explicitly (WithH). Either a2 or a3 must be a hydrogen. The other atom COVELANTLY bonded to the hydrogen must be the polar atom. The angular score of each angle is a sigmoidAng that equals 0.0 bellow a certain threshold (sigmoidBegins) and 1.0 above a certain threshold (sigmoidEnds). Between the thresholds it raises smoothly. The HB angular score is the product of the two sigmoidAns's of angle 1 and 2. The sigmoid thresholds are obtained as constants from the interface "DahiyatImplementationConstants": sigmoidBeginsWithH,sigmoidEndsWithH - The transition angles (in degrees) for the HB sigmoid when the hydrogen in the HB is defined in MESHI. sigmoidBeginsNoH,sigmoidEndsNoH - The same as above, only for HB sigmoids where the hydrogen in the HB is present. Note: 1) The constructor assume that the atom list it get as a parameter has the donor and acceptor in the first two places (see documentation of mother class). The third place in the list is the atom that is covalently bonded to the first atom. The forth place in the list is the atom that is covalently bonded to the second atom. 2) The sidmoids of angle1 and 2 has the same form.


Field Summary
private  Atom a1
           
private  int a1toAtomList
           
private  Atom a2
           
private  int a2toAtomList
           
private  Atom a3
           
private  int a3toAtomList
           
private  Atom a4
           
private  int a4toAtomList
           
private  double angSigmoidBegins
           
private  double angSigmoidEnds
           
private  boolean derivativeAng1Zero
           
private  boolean derivativeAng2Zero
           
private  double DhbAngScoreDx1
           
private  double DhbAngScoreDx2
           
private  double DhbAngScoreDx3
           
private  double DhbAngScoreDx4
           
private  double DhbAngScoreDy1
           
private  double DhbAngScoreDy2
           
private  double DhbAngScoreDy3
           
private  double DhbAngScoreDy4
           
private  double DhbAngScoreDz1
           
private  double DhbAngScoreDz2
           
private  double DhbAngScoreDz3
           
private  double DhbAngScoreDz4
           
private  double DhbDisScoreDx1
           
private  double DhbDisScoreDx2
           
private  double DhbDisScoreDx3
           
private  double DhbDisScoreDx4
           
private  double DhbDisScoreDy1
           
private  double DhbDisScoreDy2
           
private  double DhbDisScoreDy3
           
private  double DhbDisScoreDy4
           
private  double DhbDisScoreDz1
           
private  double DhbDisScoreDz2
           
private  double DhbDisScoreDz3
           
private  double DhbDisScoreDz4
           
(package private)  Distance disAng1atoms12
           
(package private)  Distance disAng1atoms32
           
(package private)  Distance disAng2atoms23
           
(package private)  Distance disAng2atoms43
           
(package private)  Distance disDonorAcceptor
           
private  double DsigmCosAng1Dx1
           
private  double DsigmCosAng1Dx2
           
private  double DsigmCosAng1Dx3
           
private  double DsigmCosAng1Dy1
           
private  double DsigmCosAng1Dy2
           
private  double DsigmCosAng1Dy3
           
private  double DsigmCosAng1Dz1
           
private  double DsigmCosAng1Dz2
           
private  double DsigmCosAng1Dz3
           
private  double DsigmCosAng2Dx2
           
private  double DsigmCosAng2Dx3
           
private  double DsigmCosAng2Dx4
           
private  double DsigmCosAng2Dy2
           
private  double DsigmCosAng2Dy3
           
private  double DsigmCosAng2Dy4
           
private  double DsigmCosAng2Dz2
           
private  double DsigmCosAng2Dz3
           
private  double DsigmCosAng2Dz4
           
private  double end
           
private  double hbAngScore
           
private  double hbDisScore
           
private  double p1
           
private  double p2
           
private  double sigmCosAng1
           
private  double sigmCosAng2
           
private  double valAtp1
           
private  double valAtp2
           
private  boolean zeroDerivative
           
 
Fields inherited from class meshi.energy.solvate.hydrogenBonds.AbstractHydrogenBond
atomList, derivatives, dm, hbVal
 
Fields inherited from interface meshi.energy.solvate.hydrogenBonds.DahiyatImplementationConstants
sigmoidBeginsNoH, sigmoidBeginsWithH, sigmoidEndsNoH, sigmoidEndsWithH
 
Constructor Summary
HydrogenBondDahiyat()
           
HydrogenBondDahiyat(DistanceMatrix dm, AtomList atomList, double p1, double p2, double end, double valAtp1, double valAtp2)
           
 
Method Summary
private  void atomListTo1_4numbering()
           
private  void updateAng123()
           
private  void updateAng234()
           
private  void updateAngProduct1234()
          This method update the product: sigmoidAng(angle1)*sigmoidAng(angle2) and all the relevent derivatives.
private  void updateDis()
          This method update the distance sigmoid and all the relevent derivatives.
 void updateHBvalueAndDerivatives()
          This method activates all the code for updating the Dahiyat H-bond.
 boolean zeroDerivative()
           
 
Methods inherited from class meshi.energy.solvate.hydrogenBonds.AbstractHydrogenBond
applyForcesToAtoms, atomList, derivatives, derivatives, getFirstPolar, getSecondPolar, hbVal, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

p1

private double p1

p2

private double p2

end

private double end

valAtp1

private double valAtp1

valAtp2

private double valAtp2

angSigmoidBegins

private double angSigmoidBegins

angSigmoidEnds

private double angSigmoidEnds

hbAngScore

private double hbAngScore

zeroDerivative

private boolean zeroDerivative

DhbAngScoreDx1

private double DhbAngScoreDx1

DhbAngScoreDy1

private double DhbAngScoreDy1

DhbAngScoreDz1

private double DhbAngScoreDz1

DhbAngScoreDx2

private double DhbAngScoreDx2

DhbAngScoreDy2

private double DhbAngScoreDy2

DhbAngScoreDz2

private double DhbAngScoreDz2

DhbAngScoreDx3

private double DhbAngScoreDx3

DhbAngScoreDy3

private double DhbAngScoreDy3

DhbAngScoreDz3

private double DhbAngScoreDz3

DhbAngScoreDx4

private double DhbAngScoreDx4

DhbAngScoreDy4

private double DhbAngScoreDy4

DhbAngScoreDz4

private double DhbAngScoreDz4

sigmCosAng1

private double sigmCosAng1

derivativeAng1Zero

private boolean derivativeAng1Zero

DsigmCosAng1Dx1

private double DsigmCosAng1Dx1

DsigmCosAng1Dy1

private double DsigmCosAng1Dy1

DsigmCosAng1Dz1

private double DsigmCosAng1Dz1

DsigmCosAng1Dx2

private double DsigmCosAng1Dx2

DsigmCosAng1Dy2

private double DsigmCosAng1Dy2

DsigmCosAng1Dz2

private double DsigmCosAng1Dz2

DsigmCosAng1Dx3

private double DsigmCosAng1Dx3

DsigmCosAng1Dy3

private double DsigmCosAng1Dy3

DsigmCosAng1Dz3

private double DsigmCosAng1Dz3

sigmCosAng2

private double sigmCosAng2

derivativeAng2Zero

private boolean derivativeAng2Zero

DsigmCosAng2Dx2

private double DsigmCosAng2Dx2

DsigmCosAng2Dy2

private double DsigmCosAng2Dy2

DsigmCosAng2Dz2

private double DsigmCosAng2Dz2

DsigmCosAng2Dx3

private double DsigmCosAng2Dx3

DsigmCosAng2Dy3

private double DsigmCosAng2Dy3

DsigmCosAng2Dz3

private double DsigmCosAng2Dz3

DsigmCosAng2Dx4

private double DsigmCosAng2Dx4

DsigmCosAng2Dy4

private double DsigmCosAng2Dy4

DsigmCosAng2Dz4

private double DsigmCosAng2Dz4

hbDisScore

private double hbDisScore

DhbDisScoreDx1

private double DhbDisScoreDx1

DhbDisScoreDy1

private double DhbDisScoreDy1

DhbDisScoreDz1

private double DhbDisScoreDz1

DhbDisScoreDx2

private double DhbDisScoreDx2

DhbDisScoreDy2

private double DhbDisScoreDy2

DhbDisScoreDz2

private double DhbDisScoreDz2

DhbDisScoreDx3

private double DhbDisScoreDx3

DhbDisScoreDy3

private double DhbDisScoreDy3

DhbDisScoreDz3

private double DhbDisScoreDz3

DhbDisScoreDx4

private double DhbDisScoreDx4

DhbDisScoreDy4

private double DhbDisScoreDy4

DhbDisScoreDz4

private double DhbDisScoreDz4

disAng1atoms12

Distance disAng1atoms12

disAng1atoms32

Distance disAng1atoms32

disAng2atoms23

Distance disAng2atoms23

disAng2atoms43

Distance disAng2atoms43

disDonorAcceptor

Distance disDonorAcceptor

a1

private Atom a1

a2

private Atom a2

a3

private Atom a3

a4

private Atom a4

a1toAtomList

private int a1toAtomList

a2toAtomList

private int a2toAtomList

a3toAtomList

private int a3toAtomList

a4toAtomList

private int a4toAtomList
Constructor Detail

HydrogenBondDahiyat

public HydrogenBondDahiyat()

HydrogenBondDahiyat

public HydrogenBondDahiyat(DistanceMatrix dm,
                           AtomList atomList,
                           double p1,
                           double p2,
                           double end,
                           double valAtp1,
                           double valAtp2)
Method Detail

updateHBvalueAndDerivatives

public void updateHBvalueAndDerivatives()
This method activates all the code for updating the Dahiyat H-bond.

Specified by:
updateHBvalueAndDerivatives in class AbstractHydrogenBond

updateDis

private final void updateDis()
This method update the distance sigmoid and all the relevent derivatives. The numbering of the atoms (1 to 4) is as describe in the top of the class.


updateAngProduct1234

private final void updateAngProduct1234()
This method update the product: sigmoidAng(angle1)*sigmoidAng(angle2) and all the relevent derivatives. The numbering of the atoms (1 to 4) is as describe in the top of the class.


updateAng123

private final void updateAng123()

updateAng234

private final void updateAng234()

atomListTo1_4numbering

private final void atomListTo1_4numbering()

zeroDerivative

public boolean zeroDerivative()