package jalview.analysis.scoremodels;
import jalview.analysis.AlignSeq;
-import jalview.api.analysis.DistanceModelI;
+import jalview.api.analysis.DistanceScoreModelI;
import jalview.datamodel.AlignmentView;
import jalview.datamodel.SequenceI;
+import jalview.math.Matrix;
+import jalview.math.MatrixI;
import jalview.util.Comparison;
-public class SWDistanceModel implements DistanceModelI
+public class SWDistanceModel implements DistanceScoreModelI
{
@Override
- public float[][] findDistances(AlignmentView seqData)
+ public MatrixI findDistances(AlignmentView seqData)
{
SequenceI[] sequenceString = seqData.getVisibleAlignment(
Comparison.GAP_SPACE).getSequencesArray();
int noseqs = sequenceString.length;
- float[][] distance = new float[noseqs][noseqs];
+ double[][] distances = new double[noseqs][noseqs];
- float max = -1;
+ double max = -1;
for (int i = 0; i < (noseqs - 1); i++)
{
as.calcScoreMatrix();
as.traceAlignment();
as.printAlignment(System.out);
- distance[i][j] = as.maxscore;
+ distances[i][j] = as.maxscore;
- if (max < distance[i][j])
+ if (max < distances[i][j])
{
- max = distance[i][j];
+ max = distances[i][j];
}
}
}
{
for (int j = i; j < noseqs; j++)
{
- distance[i][j] = max - distance[i][j];
- distance[j][i] = distance[i][j];
+ distances[i][j] = max - distances[i][j];
+ distances[j][i] = distances[i][j];
}
}
- return distance;
+ return new Matrix(distances);
}
@Override