JAL-2379 'direct' pairwise score calculation for PCA (no encoding)
[jalview.git] / src / jalview / viewmodel / PCAModel.java
index 3b6829e..55e7300 100644 (file)
@@ -69,7 +69,8 @@ public class PCAModel
 
   public void run()
   {
-    pca = new PCA(seqstrings.getSequenceStrings(' '), nucleotide,
+    String[] sequenceStrings = seqstrings.getSequenceStrings(' ');
+    pca = new PCA(sequenceStrings, nucleotide,
             score_matrix);
     pca.setJvCalcMode(jvCalcMode);
     pca.run();
@@ -82,12 +83,14 @@ public class PCAModel
       ii++;
     }
 
-    top = pca.getM().height() - 1;
+    int height = pca.getHeight();
+    // top = pca.getM().height() - 1;
+    top = height - 1;
 
     points = new Vector<SequencePoint>();
     float[][] scores = pca.getComponents(top - 1, top - 2, top - 3, 100);
 
-    for (int i = 0; i < pca.getM().height(); i++)
+    for (int i = 0; i < height; i++)
     {
       SequencePoint sp = new SequencePoint(seqs[i], scores[i]);
       points.addElement(sp);
@@ -96,7 +99,7 @@ public class PCAModel
 
   public void updateRc(RotatableCanvasI rc)
   {
-    rc.setPoints(points, pca.getM().height());
+    rc.setPoints(points, pca.getHeight());
   }
 
   public boolean isNucleotide()
@@ -134,7 +137,7 @@ public class PCAModel
     // note: actual indices for components are dim1-1, etc (patch for JAL-1123)
     float[][] scores = pca.getComponents(dim1 - 1, dim2 - 1, dim3 - 1, 100);
 
-    for (int i = 0; i < pca.getM().height(); i++)
+    for (int i = 0; i < pca.getHeight(); i++)
     {
       points.elementAt(i).coord = scores[i];
     }