meshi.geometry
Class Torsion

java.lang.Object
  extended by 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


Field Summary
protected  double a0x
           
protected  double a0y
           
protected  double a0z
           
protected  double a1x
           
protected  double a1y
           
protected  double a1z
           
protected  double a2x
           
protected  double a2y
           
protected  double a2z
           
protected  double aa
           
protected  double ab
           
protected  double ac
           
private  Angle ANGLE1
           
private  Angle ANGLE2
           
private  Atom atm1
           
private  Atom atm2
           
private  Atom atm3
           
private  Atom atm4
           
 Atom atom1
           
 Atom atom2
           
 Atom atom3
           
 Atom atom4
           
protected  double aux1
           
protected  double aux2
           
protected  double aux3
           
protected  double aux4
           
protected  double ax
           
protected  double ay
           
protected  double az
           
protected  double b0x
           
protected  double b0y
           
protected  double b0z
           
protected  double b1x
           
protected  double b1y
           
protected  double b1z
           
protected  double b2x
           
protected  double b2y
           
protected  double b2z
           
protected  double bb
           
protected  double bc
           
protected  double bx
           
protected  double by
           
protected  double bz
           
protected  double c0x
           
protected  double c0y
           
protected  double c0z
           
protected  double cc
           
protected  double co1
           
protected  double cosTorsion
           
protected  double cross123x
           
protected  double cross123y
           
protected  double cross123z
           
protected  double cross234x
           
protected  double cross234y
           
protected  double cross234z
           
protected  double cx
           
protected  double cy
           
protected  double cz
           
protected  double dCosTorsionDx1
           
protected  double dCosTorsionDx2
           
protected  double dCosTorsionDx3
           
protected  double dCosTorsionDx4
           
protected  double dCosTorsionDy1
           
protected  double dCosTorsionDy2
           
protected  double dCosTorsionDy3
           
protected  double dCosTorsionDy4
           
protected  double dCosTorsionDz1
           
protected  double dCosTorsionDz2
           
protected  double dCosTorsionDz3
           
protected  double dCosTorsionDz4
           
protected  double den
           
 Distance distance1
           
 Distance distance2
           
 Distance distance3
           
protected  DistanceMatrix distanceMatrix
           
protected  double dTorsionDx1
           
protected  double dTorsionDx2
           
protected  double dTorsionDx3
           
protected  double dTorsionDx4
           
protected  double dTorsionDy1
           
protected  double dTorsionDy2
           
protected  double dTorsionDy3
           
protected  double dTorsionDy4
           
protected  double dTorsionDz1
           
protected  double dTorsionDz2
           
protected  double dTorsionDz3
           
protected  double dTorsionDz4
           
protected  double dx1
           
protected  double dy1
           
protected  double dz1
           
protected  double factor1
           
protected  double factor4
           
protected  double invBB
           
protected  double normCross123squared
           
protected  double normCross234squared
           
private  int numberOfUpdates
           
protected  double sinSign
           
protected  double tmpSQRT
           
protected  double torsion
           
protected  int torsionCode
           
protected  java.lang.String torsionName
           
private  boolean torsionNeeded
           
protected  java.lang.String torsionResName
           
protected  int torsionResNum
           
protected  double uu
           
protected  double uu2
           
protected  double uv
           
protected  double ux
           
protected  double uy
           
protected  double uz
           
protected  double vv
           
protected  double vv2
           
protected  double vx
           
protected  double vy
           
protected  double vz
           
 
Constructor Summary
  Torsion(Angle angle1, Angle angle2, DistanceMatrix distanceMatrix)
           
protected Torsion(Atom atom1, Atom atom2, Atom atom3, Atom atom4, Distance distance1, Distance distance2, Distance distance3)
          This constructor should be used only by DisposableAngle.
 
Method Summary
 double acos(double cos)
          Calculate the arc-cosine function.
protected  void assignName()
          Assigns a meaningful name to a torsion.
 AtomList atoms()
           
 double cosTorsion()
           
 double dCosTorsionDx1()
           
 double dCosTorsionDx2()
           
 double dCosTorsionDx3()
           
 double dCosTorsionDx4()
           
 double dCosTorsionDy1()
           
 double dCosTorsionDy2()
           
 double dCosTorsionDy3()
           
 double dCosTorsionDy4()
           
 double dCosTorsionDz1()
           
 double dCosTorsionDz2()
           
 double dCosTorsionDz3()
           
 double dCosTorsionDz4()
           
static double dot(double d1, double d2, double d3, double e1, double e2, double e3)
           
 double dTorsionDx1()
           
 double dTorsionDx2()
           
 double dTorsionDx3()
           
 double dTorsionDx4()
           
 double dTorsionDy1()
           
 double dTorsionDy2()
           
 double dTorsionDy3()
           
 double dTorsionDy4()
           
 double dTorsionDz1()
           
 double dTorsionDz2()
           
 double dTorsionDz3()
           
 double dTorsionDz4()
           
 boolean equivalent(Torsion other)
           
 void freeze()
           
 boolean frozen()
           
 int getTorsionCode()
           
 java.lang.String getTorsionName()
           
 java.lang.String getTorsionResName()
           
 int getTorsionResNum()
           
 java.lang.String name()
           
 boolean proper()
           
 double torsion()
           
 java.lang.String toString()
           
private  void type1()
           
private  void type2()
           
private  void type3()
           
protected  void update()
           
 void update(int numberOfUpdates)
           
 void updateCosine()
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

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
Constructor Detail

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.

Method Detail

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()