meshi.geometry
Class Torsion
java.lang.Object
meshi.geometry.Torsion
- All Implemented Interfaces:
- Updateable
- Direct Known Subclasses:
- QuickAndDirtyTorsion
public class Torsion
- extends java.lang.Object
- implements Updateable
--------------------------- Torsion -----------------------------------
Addapted from Ron Elber's MOIL (ephi).
Below is the MOIL documentation
calculate dihedral energies and forces according
to T.schlick, J.comput.chem, vol 10, 7 (1989)
with local variant (no delta funcion involved)
V = sum [ k(n)(1 + cos(n*phi + delta)] (1=< n <= 3)
delta is either 0 or pi, so the formula become
less complicated upon expansion.
As of version 1.41 Nir Kalisman changed the derivation of the torsion so now it is
stable also at +-PI
| Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
atom1
public final Atom atom1
atom2
public final Atom atom2
atom3
public final Atom atom3
atom4
public final Atom atom4
atm1
private Atom atm1
atm2
private Atom atm2
atm3
private Atom atm3
atm4
private Atom atm4
ANGLE1
private Angle ANGLE1
ANGLE2
private Angle ANGLE2
torsionName
protected java.lang.String torsionName
torsionCode
protected int torsionCode
torsionResNum
protected int torsionResNum
torsionResName
protected java.lang.String torsionResName
distance1
public final Distance distance1
distance2
public final Distance distance2
distance3
public final Distance distance3
dCosTorsionDx1
protected double dCosTorsionDx1
dCosTorsionDy1
protected double dCosTorsionDy1
dCosTorsionDz1
protected double dCosTorsionDz1
dCosTorsionDx2
protected double dCosTorsionDx2
dCosTorsionDy2
protected double dCosTorsionDy2
dCosTorsionDz2
protected double dCosTorsionDz2
dCosTorsionDx3
protected double dCosTorsionDx3
dCosTorsionDy3
protected double dCosTorsionDy3
dCosTorsionDz3
protected double dCosTorsionDz3
dCosTorsionDx4
protected double dCosTorsionDx4
dCosTorsionDy4
protected double dCosTorsionDy4
dCosTorsionDz4
protected double dCosTorsionDz4
cosTorsion
protected double cosTorsion
dTorsionDx1
protected double dTorsionDx1
dTorsionDy1
protected double dTorsionDy1
dTorsionDz1
protected double dTorsionDz1
dTorsionDx2
protected double dTorsionDx2
dTorsionDy2
protected double dTorsionDy2
dTorsionDz2
protected double dTorsionDz2
dTorsionDx3
protected double dTorsionDx3
dTorsionDy3
protected double dTorsionDy3
dTorsionDz3
protected double dTorsionDz3
dTorsionDx4
protected double dTorsionDx4
dTorsionDy4
protected double dTorsionDy4
dTorsionDz4
protected double dTorsionDz4
torsion
protected double torsion
ax
protected double ax
ay
protected double ay
az
protected double az
bx
protected double bx
by
protected double by
bz
protected double bz
cx
protected double cx
cy
protected double cy
cz
protected double cz
ab
protected double ab
bc
protected double bc
ac
protected double ac
aa
protected double aa
bb
protected double bb
cc
protected double cc
uu
protected double uu
vv
protected double vv
uv
protected double uv
den
protected double den
co1
protected double co1
a0x
protected double a0x
a0y
protected double a0y
a0z
protected double a0z
b0x
protected double b0x
b0y
protected double b0y
b0z
protected double b0z
c0x
protected double c0x
c0y
protected double c0y
c0z
protected double c0z
uu2
protected double uu2
vv2
protected double vv2
a1x
protected double a1x
a1y
protected double a1y
a1z
protected double a1z
b1x
protected double b1x
b1y
protected double b1y
b1z
protected double b1z
a2x
protected double a2x
a2y
protected double a2y
a2z
protected double a2z
b2x
protected double b2x
b2y
protected double b2y
b2z
protected double b2z
ux
protected double ux
uy
protected double uy
uz
protected double uz
vx
protected double vx
vy
protected double vy
vz
protected double vz
dx1
protected double dx1
dy1
protected double dy1
dz1
protected double dz1
sinSign
protected double sinSign
cross123x
protected double cross123x
cross123y
protected double cross123y
cross123z
protected double cross123z
cross234x
protected double cross234x
cross234y
protected double cross234y
cross234z
protected double cross234z
normCross123squared
protected double normCross123squared
normCross234squared
protected double normCross234squared
factor1
protected double factor1
factor4
protected double factor4
tmpSQRT
protected double tmpSQRT
invBB
protected double invBB
aux1
protected double aux1
aux2
protected double aux2
aux3
protected double aux3
aux4
protected double aux4
distanceMatrix
protected DistanceMatrix distanceMatrix
numberOfUpdates
private int numberOfUpdates
torsionNeeded
private boolean torsionNeeded
Torsion
public Torsion(Angle angle1,
Angle angle2,
DistanceMatrix distanceMatrix)
Torsion
protected Torsion(Atom atom1,
Atom atom2,
Atom atom3,
Atom atom4,
Distance distance1,
Distance distance2,
Distance distance3)
- This constructor should be used only by DisposableAngle.
type1
private void type1()
type2
private void type2()
type3
private void type3()
toString
public java.lang.String toString()
- Overrides:
toString in class java.lang.Object
cosTorsion
public double cosTorsion()
dCosTorsionDx1
public double dCosTorsionDx1()
dCosTorsionDy1
public double dCosTorsionDy1()
dCosTorsionDz1
public double dCosTorsionDz1()
dCosTorsionDx2
public double dCosTorsionDx2()
dCosTorsionDy2
public double dCosTorsionDy2()
dCosTorsionDz2
public double dCosTorsionDz2()
dCosTorsionDx3
public double dCosTorsionDx3()
dCosTorsionDy3
public double dCosTorsionDy3()
dCosTorsionDz3
public double dCosTorsionDz3()
dCosTorsionDx4
public double dCosTorsionDx4()
dCosTorsionDy4
public double dCosTorsionDy4()
dCosTorsionDz4
public double dCosTorsionDz4()
torsion
public double torsion()
dTorsionDx1
public double dTorsionDx1()
dTorsionDy1
public double dTorsionDy1()
dTorsionDz1
public double dTorsionDz1()
dTorsionDx2
public double dTorsionDx2()
dTorsionDy2
public double dTorsionDy2()
dTorsionDz2
public double dTorsionDz2()
dTorsionDx3
public double dTorsionDx3()
dTorsionDy3
public double dTorsionDy3()
dTorsionDz3
public double dTorsionDz3()
dTorsionDx4
public double dTorsionDx4()
dTorsionDy4
public double dTorsionDy4()
dTorsionDz4
public double dTorsionDz4()
updateCosine
public void updateCosine()
update
public void update(int numberOfUpdates)
- Specified by:
update in interface Updateable
acos
public double acos(double cos)
- Calculate the arc-cosine function.
This method simply calls Math.acos, extending classes however may
use approximations in order to save time.
update
protected void update()
proper
public boolean proper()
equivalent
public boolean equivalent(Torsion other)
dot
public static double dot(double d1,
double d2,
double d3,
double e1,
double e2,
double e3)
frozen
public boolean frozen()
freeze
public void freeze()
getTorsionName
public java.lang.String getTorsionName()
getTorsionCode
public int getTorsionCode()
getTorsionResNum
public int getTorsionResNum()
getTorsionResName
public java.lang.String getTorsionResName()
assignName
protected void assignName()
- Assigns a meaningful name to a torsion.
This method assigns (if possible):
- name (phi, psi, chi1 etc.) to the torsion object.
- number corresponding to this name.
- the number in the chain of the residue to which this torsion belong
- the name of the residue to which this torsion belong
The names to numbers conversion is:
PHI - 0
PSI - 1
OMG - 2 (Omega - on the C(n)-N(n+1) bond - very close to 180 (trans) or 0 (cis))
CHI1 - 3 (CHI-1 torsion on the CA-CB bond)
CHI2 - 4
CHI3 - 5
CHI4 - 6
CHI5 - 7 (Not used any more)
ALPHA - 8 (torsion made by four consecutive Ca's)
OOP - 9 (Out of plain torsion)
proximal - (-1) - A torsion with no biological name that could also be between two successive
residues. These torsions are mainly relevent ro the plane energies. The residue names and
the residue numbers of the proximal torsions are left undefined, and only the torsion code
and torsion anme are updated.
name
public java.lang.String name()
atoms
public AtomList atoms()