JAL-1473 refactor score matrices and tree score calculations to interface/api and...
[jalview.git] / src / jalview / analysis / scoremodels / PIDScoreModel.java
1 package jalview.analysis.scoremodels;
2
3 import jalview.api.analysis.ScoreModelI;
4 import jalview.datamodel.AlignmentView;
5 import jalview.util.Comparison;
6
7 public class PIDScoreModel implements ScoreModelI
8 {
9
10   @Override
11   public float[][] findDistances(AlignmentView seqData)
12   {
13     String[] sequenceString = seqData
14             .getSequenceStrings(Comparison.GapChars.charAt(0));
15     int noseqs = sequenceString.length;
16     float[][] distance = new float[noseqs][noseqs];
17     for (int i = 0; i < (noseqs - 1); i++)
18     {
19       for (int j = i; j < noseqs; j++)
20       {
21         if (j == i)
22         {
23           distance[i][i] = 0;
24         }
25         else
26         {
27           distance[i][j] = 100 - Comparison.PID(sequenceString[i],
28                   sequenceString[j]);
29
30           distance[j][i] = distance[i][j];
31         }
32       }
33     }
34     return distance;
35   }
36
37   @Override
38   public String getName()
39   {
40     return "PID";
41   }
42
43   @Override
44   public boolean isDNA()
45   {
46     return true;
47   }
48
49   @Override
50   public boolean isProtein()
51   {
52     return true;
53   }
54
55 }