0dd761782bda011cf34667c230fd22475d4ac1e5
[jalview.git] / src / jalview / analysis / scoremodels / DistanceScoreModel.java
1 package jalview.analysis.scoremodels;
2
3 import jalview.api.analysis.ScoreModelI;
4 import jalview.api.analysis.SimilarityParamsI;
5 import jalview.datamodel.AlignmentView;
6 import jalview.math.MatrixI;
7
8 public abstract class DistanceScoreModel implements ScoreModelI
9 {
10   /**
11    * A similarity score is calculated by first computing a distance score, and
12    * then reversing the min-max range of the score values
13    */
14   @Override
15   public MatrixI findSimilarities(AlignmentView seqData,
16           SimilarityParamsI options)
17   {
18     MatrixI distances = findDistances(seqData, options);
19
20     MatrixI similarities = distanceToSimilarity(distances);
21
22     return similarities;
23   }
24
25   /**
26    * Converts distance scores to similarity scores, by reversing the range of
27    * score values so that max becomes min and vice versa. The input matrix is
28    * not modified.
29    * 
30    * @param distances
31    */
32   public static MatrixI distanceToSimilarity(MatrixI distances)
33   {
34     MatrixI similarities = distances.copy();
35
36     similarities.reverseRange(false);
37
38     return similarities;
39   }
40 }