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 class
static class
-
Field Summary
FieldsModifier and TypeFieldDescription(package private) int
(package private) int[]
(package private) NMRNoeMatrix.NOEAtom[]
(package private) int
first 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 TypeMethodDescriptionvoid
addAtom
(double x, double y, double z) add a proton to the atom listvoid
addEquiv
(double[] xa, double[] ya, double[] za) 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 listprivate void
void
calcNOEs()
calculate the NOESY spectrum at a particular mixing time.private void
private 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 NMRNoeMatrix
createMatrix
(Viewer viewer, javajs.util.BS bsMol, String[] labelArray, NMRNoeMatrix.NOEParams params) 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.private int
private double
private void
private double
getDistance
(int i, int j) double
getJmolDistance
(int a, int b) double
getJmolNoe
(int a, int b) private double
getNoe
(int i, int j) void
initArrays
(int n) create an empty atom list for subsequent population with atomsprivate static double
J
(double w, double tau) static void
private double
private void
readAtomsFromFile
(File file) private void
rotate()
private int
sign
(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)
-