JAL-2393 code tidy and comments, PIDDistanceModel deprecated
[jalview.git] / src / jalview / analysis / PCA.java
index 1f923b1..b481e89 100755 (executable)
@@ -20,9 +20,9 @@
  */
 package jalview.analysis;
 
-import jalview.analysis.scoremodels.SimilarityParams;
 import jalview.api.analysis.DistanceScoreModelI;
 import jalview.api.analysis.ScoreModelI;
+import jalview.api.analysis.SimilarityParamsI;
 import jalview.api.analysis.SimilarityScoreModelI;
 import jalview.datamodel.AlignmentView;
 import jalview.math.MatrixI;
@@ -47,12 +47,15 @@ public class PCA implements Runnable
   private AlignmentView seqs;
 
   private ScoreModelI scoreModel;
+  
+  private SimilarityParamsI similarityParams;
 
-  public PCA(AlignmentView s, ScoreModelI sm)
+  public PCA(AlignmentView s, ScoreModelI sm, SimilarityParamsI options)
   {
     this.seqs = s;
-
-    scoreModel = sm;
+    this.similarityParams = options;
+    this.scoreModel = sm;
+    
     details.append("PCA calculation using " + sm.getName()
             + " sequence similarity matrix\n========\n\n");
   }
@@ -220,8 +223,7 @@ public class PCA implements Runnable
    * Computes a pairwise similarity matrix for the given sequence regions using
    * the configured score model. If the score model is a similarity model, then
    * it computes the result directly. If it is a distance model, then use it to
-   * compute pairwise distances, and convert these to similarity scores by
-   * substracting from the maximum value.
+   * compute pairwise distances, and convert these to similarity scores.
    * 
    * @param av
    * @return
@@ -229,16 +231,19 @@ public class PCA implements Runnable
   MatrixI computeSimilarity(AlignmentView av)
   {
     MatrixI result = null;
-    // TODO pass choice of params from GUI in constructo
     if (scoreModel instanceof SimilarityScoreModelI)
     {
       result = ((SimilarityScoreModelI) scoreModel).findSimilarities(av,
-              SimilarityParams.SeqSpace);
+              similarityParams);
     }
     else if (scoreModel instanceof DistanceScoreModelI)
     {
+      /*
+       * find distances and convert to similarity scores
+       * reverseRange(false) preserves but reverses the min-max range
+       */
       result = ((DistanceScoreModelI) scoreModel).findDistances(av,
-              SimilarityParams.SeqSpace);
+              similarityParams);
       result.reverseRange(false);
     }
     else