public class Calc
extends java.lang.Object
Currently the coordinates of an Atom are stored as an array of size 3 (double[3]). It would be more powerful to use Point3D from javax.vecmath. but unfortunately this is not a part of standard java installations, since it comes with java3d . So to keep things simple at the moment biojava does not depend on java3d.
Modifier and Type | Field and Description |
---|---|
static float |
degreesPerRadian
Degrees per radian.
|
static float |
radiansPerDegree
Radians per degree.
|
Constructor and Description |
---|
Calc() |
Modifier and Type | Method and Description |
---|---|
static Atom |
add(Atom a,
Atom b)
add two atoms ( a + b).
|
static double |
amount(Atom a)
amount.
|
static double |
angle(Atom a,
Atom b)
angle.
|
static Atom[] |
centerAtoms(Atom[] atomSet)
Center the atoms at the Centroid.
|
static Atom |
createVirtualCBAtom(AminoAcid amino)
creates a virtual C-beta atom.
|
static Atom |
getCenterVector(Atom[] atomSet)
Returns the Vector that needs to be applied to shift a set of atoms
to the Centroid.
|
static Atom |
getCentroid(Atom[] atomSet)
Returns the center of mass of the set of atoms.
|
static double |
getDistance(Atom a,
Atom b)
calculate distance between two atoms.
|
static double |
getPhi(AminoAcid a,
AminoAcid b)
phi angle.
|
static double |
getPsi(AminoAcid a,
AminoAcid b)
psi angle.
|
static double[] |
getXYZEuler(Matrix m)
Convert a rotation Matrix to Euler angles.
|
static double[] |
getZYZEuler(Matrix m)
Gget euler angles for a matrix given in ZYZ convention.
|
static boolean |
isConnected(AminoAcid a,
AminoAcid b)
test if two amino acids are connected, i.e.
|
static Matrix |
matrixFromEuler(double heading,
double attitude,
double bank)
This conversion uses NASA standard aeroplane conventions as described on page:
http://www.euclideanspace.com/maths/geometry/rotations/euler/index.htm
Coordinate System: right hand
Positive angle: right hand
Order of euler angles: heading first, then attitude, then bank.
|
static void |
plus(Structure s,
Matrix matrix)
calculate structure + Matrix coodinates ...
|
static void |
rotate(Atom atom,
double[][] m)
rotate a single atom aroud a rotation matrix.
|
static void |
rotate(Atom atom,
Matrix m)
Rotate an atom around a Matrix object.
|
static void |
rotate(Group group,
double[][] rotationmatrix)
rotate a structure .
|
static void |
rotate(Group group,
Matrix m)
Rotate a group object.
|
static void |
rotate(Structure structure,
double[][] rotationmatrix)
Rotate a structure.
|
static void |
rotate(Structure structure,
Matrix m)
Rotate a structure object.
|
static void |
shift(Atom a,
Atom b)
Shift a vector.
|
static void |
shift(Group group,
Atom a)
Shift a Group with a vector.
|
static void |
shift(Structure structure,
Atom a)
shift a structure with a vector.
|
static double |
skalarProduct(Atom a,
Atom b)
skalar product.
|
static Atom |
substract(Atom a,
Atom b)
substract two atoms ( a - b).
|
static double |
torsionAngle(Atom a,
Atom b,
Atom c,
Atom d)
torsion angle
= angle between the normal vectors of the
two plains a-b-c and b-c-d.
|
static Atom |
unitVector(Atom a)
return the unit vector of vector a .
|
static Atom |
vectorProduct(Atom a,
Atom b)
Vector product .
|
public static final float radiansPerDegree
public static final float degreesPerRadian
public static double getDistance(Atom a, Atom b) throws StructureException
a
- an Atom objectb
- an Atom objectStructureException
- ...public static Atom add(Atom a, Atom b)
a
- an Atom objectb
- an Atom objectpublic static Atom substract(Atom a, Atom b) throws StructureException
a
- an Atom objectb
- an Atom objectStructureException
- ...public static Atom vectorProduct(Atom a, Atom b)
a
- an Atom objectb
- an Atom objectpublic static double skalarProduct(Atom a, Atom b)
a
- an Atom objectb
- an Atom objectpublic static double amount(Atom a)
a
- an Atom objectpublic static double angle(Atom a, Atom b)
a
- an Atom objectb
- an Atom objectpublic static Atom unitVector(Atom a)
a
- an Atom objectpublic static double torsionAngle(Atom a, Atom b, Atom c, Atom d) throws StructureException
a
- an Atom objectb
- an Atom objectc
- an Atom objectd
- an Atom objectStructureException
- ...public static double getPhi(AminoAcid a, AminoAcid b) throws StructureException
a
- an AminoAcid objectb
- an AminoAcid objectStructureException
- ...public static double getPsi(AminoAcid a, AminoAcid b) throws StructureException
a
- an AminoAcid objectb
- an AminoAcid objectStructureException
- ...public static boolean isConnected(AminoAcid a, AminoAcid b) throws StructureException
a
- an AminoAcid objectb
- an AminoAcid objectStructureException
- ...public static void rotate(Atom atom, double[][] m)
atom
- atom to be rotatedm
- a rotation matrix represented as a double[3][3] arraypublic static void rotate(Structure structure, double[][] rotationmatrix) throws StructureException
structure
- a Structure objectrotationmatrix
- an array (3x3) of double representing the rotation matrix.StructureException
- ...public static void rotate(Group group, double[][] rotationmatrix) throws StructureException
group
- a group objectrotationmatrix
- an array (3x3) of double representing the rotation matrix.StructureException
- ...public static void rotate(Atom atom, Matrix m)
atom
- atom to be rotatedm
- rotation matrix to be applied to the atompublic static void rotate(Group group, Matrix m)
group
- a group to be rotatedm
- a Matrix object representing the translation matrixpublic static void rotate(Structure structure, Matrix m)
structure
- the structure to be rotatedm
- rotation matrix to be appliedpublic static void plus(Structure s, Matrix matrix)
s
- the structure to operate onmatrix
- a Matrix objectpublic static void shift(Structure structure, Atom a)
structure
- a Structure objecta
- an Atom object representing a shift vectorpublic static void shift(Atom a, Atom b)
a
- vector ab
- vector bpublic static void shift(Group group, Atom a)
group
- a group objecta
- an Atom object representing a shift vectorpublic static Atom getCentroid(Atom[] atomSet)
atomSet
- a set of Atomspublic static Atom getCenterVector(Atom[] atomSet)
atomSet
- array of Atomspublic static Atom[] centerAtoms(Atom[] atomSet) throws StructureException
atomSet
- a set of AtomsStructureException
public static Atom createVirtualCBAtom(AminoAcid amino) throws StructureException
amino
- the amino acid for which a "virtual" CB atom should be calculatedStructureException
public static double[] getZYZEuler(Matrix m)
m
- the rotation matrixpublic static double[] getXYZEuler(Matrix m)
m
- the rotation matrixpublic static Matrix matrixFromEuler(double heading, double attitude, double bank)
heading
- in radiansattitude
- in radiansbank
- in radians