/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4)
- * Copyright (C) 2008 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.4.0.b2)
+ * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
/**
* Performs Principal Component Analysis on given sequences
- *
+ *
* @author $author$
* @version $Revision$
*/
-public class PCA
- implements Runnable
+public class PCA implements Runnable
{
Matrix m;
+
Matrix symm;
+
Matrix m2;
+
double[] eigenvalue;
+
Matrix eigenvector;
+
StringBuffer details = new StringBuffer();
/**
* Creates a new PCA object.
- *
- * @param s Set of sequences to perform PCA on
+ *
+ * @param s
+ * Set of sequences to perform PCA on
*/
public PCA(String[] s)
{
BinarySequence[] bs = new BinarySequence[s.length];
int ii = 0;
- while ( (ii < s.length) && (s[ii] != null))
+ while ((ii < s.length) && (s[ii] != null))
{
bs[ii] = new BinarySequence(s[ii]);
bs[ii].encode();
BinarySequence[] bs2 = new BinarySequence[s.length];
ii = 0;
- while ( (ii < s.length) && (s[ii] != null))
+ while ((ii < s.length) && (s[ii] != null))
{
bs2[ii] = new BinarySequence(s[ii]);
bs2[ii].blosumEncode();
ii++;
}
- //System.out.println("Created binary encoding");
- //printMemory(rt);
+ // System.out.println("Created binary encoding");
+ // printMemory(rt);
int count = 0;
- while ( (count < bs.length) && (bs[count] != null))
+ while ((count < bs.length) && (bs[count] != null))
{
count++;
}
i++;
}
- //System.out.println("Created array");
- //printMemory(rt);
- // System.out.println(" --- Original matrix ---- ");
+ // System.out.println("Created array");
+ // printMemory(rt);
+ // System.out.println(" --- Original matrix ---- ");
m = new Matrix(seqmat, count, bs[0].getDBinary().length);
m2 = new Matrix(seqmat2, count, bs2[0].getDBinary().length);
/**
* Returns the matrix used in PCA calculation
- *
+ *
* @return java.math.Matrix object
*/
/**
* Returns Eigenvalue
- *
- * @param i Index of diagonal within matrix
- *
+ *
+ * @param i
+ * Index of diagonal within matrix
+ *
* @return Returns value of diagonal from matrix
*/
public double getEigenvalue(int i)
/**
* DOCUMENT ME!
- *
- * @param l DOCUMENT ME!
- * @param n DOCUMENT ME!
- * @param mm DOCUMENT ME!
- * @param factor DOCUMENT ME!
- *
+ *
+ * @param l
+ * DOCUMENT ME!
+ * @param n
+ * DOCUMENT ME!
+ * @param mm
+ * DOCUMENT ME!
+ * @param factor
+ * DOCUMENT ME!
+ *
* @return DOCUMENT ME!
*/
public float[][] getComponents(int l, int n, int mm, float factor)
/**
* DOCUMENT ME!
- *
- * @param n DOCUMENT ME!
- *
+ *
+ * @param n
+ * DOCUMENT ME!
+ *
* @return DOCUMENT ME!
*/
public double[] component(int n)
/**
* DOCUMENT ME!
- *
- * @param row DOCUMENT ME!
- * @param n DOCUMENT ME!
- *
+ *
+ * @param row
+ * DOCUMENT ME!
+ * @param n
+ * DOCUMENT ME!
+ *
* @return DOCUMENT ME!
*/
double component(int row, int n)
details.append(" --- Eigenvalues ---\n");
eigenvector.printD(ps);
ps.println();
- // taps.println();
- // taps.println("Transformed sequences = ");
- // Matrix trans = m.preMultiply(eigenvector);
- // trans.print(System.out);
+ // taps.println();
+ // taps.println("Transformed sequences = ");
+ // Matrix trans = m.preMultiply(eigenvector);
+ // trans.print(System.out);
}
}