Package org.jmol.quantum
Class NMRNoeMatrix
java.lang.Object
org.jmol.quantum.NMRNoeMatrix
Class for calculating NOE intensities by full matrix relaxation approach.
create an instance of the class:
NoeMatrix n = new NoeMatrix();
Create the atom list:
n.makeAtomList(x);
where x is the number of atoms (methyls count as 1). add the atoms in turn with:
n.addAtom(x,y,z);
where x y and z are the atom coordinates, or:
n.addMethyl(x,y,z,x1,y1,z1,x2,y2,z2);
which does the same for a methyl. T
hen just call calcNOEs:
double[][] results = n.calcNOEs();
This will need to be in a try statement as this routine throws an exception if the atoms have not been set up properly.
- Author:
- YE91009
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescription(package private) static classstatic class -
Field Summary
FieldsModifier and TypeFieldDescription(package private) int(package private) int[](package private) NMRNoeMatrix.NOEAtom[](package private) intfirst index for this frame(package private) double[][](package private) double[][](package private) double[][](package private) int(package private) int(package private) int(package private) int(package private) int(package private) static NumberFormat(package private) int(package private) double[][](package private) int(package private) final NMRNoeMatrix.NOEParams(package private) int(package private) double[][](package private) static int -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidaddAtom(double x, double y, double z) add a proton to the atom listvoidaddEquiv(double[] xa, double[] ya, double[] za) voidaddMethyl(double x, double y, double z, double x1, double y1, double z1, double x2, double y2, double z2) Add a methyl group to the atom listprivate voidvoidcalcNOEs()calculate the NOESY spectrum at a particular mixing time.private voidprivate static javajs.util.Lst<Object>createHAtomList(Viewer viewer, javajs.util.BS bsMol, javajs.util.BS bsH, Map<Atom, String> labels, Map<String, javajs.util.Lst<Atom>> labelMap) createLabelMapAndIndex(Viewer viewer, javajs.util.BS bsMol, String[] labelArray, javajs.util.BS bsH, Map<Atom, String> labels, Map<Atom, Integer> indexAtomInMol) static NMRNoeMatrixcreateMatrix(Viewer viewer, javajs.util.BS bsMol, String[] labelArray, NMRNoeMatrix.NOEParams params) private static NMRNoeMatrixcreateNOEMatrix(javajs.util.Lst<Object> hAtoms, Map<Atom, Integer> indexAtomInMol, int atomCount, int baseIndex, NMRNoeMatrix.NOEParams params) Create noeMatix and indexAtomInNoeMatrix from hAtoms and indexAtomInMol.private intprivate doubleprivate voidprivate doublegetDistance(int i, int j) doublegetJmolDistance(int a, int b) doublegetJmolNoe(int a, int b) private doublegetNoe(int i, int j) voidinitArrays(int n) create an empty atom list for subsequent population with atomsprivate static doubleJ(double w, double tau) static voidprivate doubleprivate voidreadAtomsFromFile(File file) private voidrotate()private intsign(double x) toString()
-
Field Details
-
staticid
static int staticid -
eigenValues
double[][] eigenValues -
eigenVectors
double[][] eigenVectors -
relaxMatrix
double[][] relaxMatrix -
noeM
double[][] noeM -
distanceMatrix
double[][] distanceMatrix -
atoms
NMRNoeMatrix.NOEAtom[] atoms -
nHAtoms
int nHAtoms -
atomCounter
int atomCounter -
i
int i -
j
int j -
k
int k -
m
int m -
n
int n -
p
int p -
q
int q -
atomMap
int[] atomMap -
baseIndex
int baseIndexfirst index for this frame -
params
-
nf
-
-
Constructor Details
-
NMRNoeMatrix
private NMRNoeMatrix() -
NMRNoeMatrix
-
-
Method Details
-
createMatrix
public static NMRNoeMatrix createMatrix(Viewer viewer, javajs.util.BS bsMol, String[] labelArray, NMRNoeMatrix.NOEParams params) -
getParams
-
createNOEMatrix
private static NMRNoeMatrix createNOEMatrix(javajs.util.Lst<Object> hAtoms, Map<Atom, Integer> indexAtomInMol, int atomCount, int baseIndex, NMRNoeMatrix.NOEParams params) Create noeMatix and indexAtomInNoeMatrix from hAtoms and indexAtomInMol.- Parameters:
hAtoms-indexAtomInMol-atomCount-baseIndex-params-- Returns:
- NoeMatrix object
-
calcNOEs
calculate the NOESY spectrum at a particular mixing time. Onc eyou have created and built the atom list, this is the only function you need to call. -
initArrays
public void initArrays(int n) create an empty atom list for subsequent population with atoms- Parameters:
n- the number of atoms to be added
-
addAtom
public void addAtom(double x, double y, double z) add a proton to the atom list- Parameters:
x- the x position of the atom (in Angstroms)y- the x position of the atom (in Angstroms)z- the z position of the atom (in Angstroms)
-
addMethyl
public void addMethyl(double x, double y, double z, double x1, double y1, double z1, double x2, double y2, double z2) Add a methyl group to the atom list- Parameters:
x- the x position of atom 1 (in Angstroms)y- the y position of atom 1 (in Angstroms)z- the z position of atom 1 (in Angstroms)x1- the x position of atom 2 (in Angstroms)y1- the y position of atom 2 (in Angstroms)z1- the z position of atom 2 (in Angstroms)x2- the x position of atom 3 (in Angstroms)y2- the y position of atom 3 (in Angstroms)z2- the z position of atom 3 (in Angstroms)
-
addEquiv
public void addEquiv(double[] xa, double[] ya, double[] za) -
calcRelaxMatrix
private void calcRelaxMatrix() -
J
private static double J(double w, double tau) -
sign
private int sign(double x) -
calcNoeMatrix
private void calcNoeMatrix() -
Diagonalise
private int Diagonalise() -
maxOffDiag
private double maxOffDiag() -
rotate
private void rotate() -
toString
-
toStringNormRow
-
distanceSqrd
-
doItAll
-
readAtomsFromFile
-
main
-
createLabelMapAndIndex
-
createHAtomList
-
getJmolDistance
public double getJmolDistance(int a, int b) -
getDistance
private double getDistance(int i, int j) -
getJmolNoe
public double getJmolNoe(int a, int b) -
getNoe
private double getNoe(int i, int j)
-