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;
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");
}
MatrixI result = null;
if (scoreModel instanceof SimilarityScoreModelI)
{
- result = ((SimilarityScoreModelI) scoreModel).findSimilarities(av);
+ result = ((SimilarityScoreModelI) scoreModel).findSimilarities(av,
+ similarityParams);
}
else if (scoreModel instanceof DistanceScoreModelI)
{
- result = ((DistanceScoreModelI) scoreModel).findDistances(av);
- double maxDistance = result.getMaxValue();
- result.subtractAllFrom(maxDistance);
+ result = ((DistanceScoreModelI) scoreModel).findDistances(av,
+ similarityParams);
+ result.reverseRange(false);
}
else
{