meshi.energy.solvate.hydrogenBonds
Class HydrogenBondDahiyat
java.lang.Object
meshi.energy.solvate.hydrogenBonds.AbstractHydrogenBond
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.
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
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
HydrogenBondDahiyat
public HydrogenBondDahiyat()
HydrogenBondDahiyat
public HydrogenBondDahiyat(DistanceMatrix dm,
AtomList atomList,
double p1,
double p2,
double end,
double valAtp1,
double valAtp2)
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()