X-Git-Url: http://source.jalview.org/gitweb/?p=jalview.git;a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2Fscoremodels%2FSmithWatermanModel.java;fp=src%2Fjalview%2Fanalysis%2Fscoremodels%2FSWScoreModel.java;h=2428b817915366637b7480b13fd1ba9696ce14bb;hp=d5d998e45670e78b54193c2ff88ebd0d2a0cf173;hb=3c75c089a56859ec8e7f674d7054e82af41e4b77;hpb=e5b2edf3955c50cfd61799ad12cdc9016603ee1c diff --git a/src/jalview/analysis/scoremodels/SWScoreModel.java b/src/jalview/analysis/scoremodels/SmithWatermanModel.java similarity index 65% rename from src/jalview/analysis/scoremodels/SWScoreModel.java rename to src/jalview/analysis/scoremodels/SmithWatermanModel.java index d5d998e..2428b81 100644 --- a/src/jalview/analysis/scoremodels/SWScoreModel.java +++ b/src/jalview/analysis/scoremodels/SmithWatermanModel.java @@ -21,23 +21,40 @@ package jalview.analysis.scoremodels; import jalview.analysis.AlignSeq; -import jalview.api.analysis.ScoreModelI; +import jalview.api.analysis.SimilarityParamsI; import jalview.datamodel.AlignmentView; import jalview.datamodel.SequenceI; +import jalview.math.Matrix; +import jalview.math.MatrixI; import jalview.util.Comparison; -public class SWScoreModel implements ScoreModelI +/** + * A class that computes pairwise similarity scores using the Smith-Waterman + * alignment algorithm + */ +public class SmithWatermanModel extends SimilarityScoreModel { + private static final String NAME = "Smith Waterman Score"; + + private String description; + + /** + * Constructor + */ + public SmithWatermanModel() + { + } @Override - public float[][] findDistances(AlignmentView seqData) + public MatrixI findSimilarities(AlignmentView seqData, + SimilarityParamsI options) { SequenceI[] sequenceString = seqData.getVisibleAlignment( - Comparison.GapChars.charAt(0)).getSequencesArray(); + 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++) { @@ -48,31 +65,22 @@ public class SWScoreModel implements ScoreModelI as.calcScoreMatrix(); as.traceAlignment(); as.printAlignment(System.out); - distance[i][j] = (float) 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 i = 0; i < (noseqs - 1); i++) - { - for (int j = i; j < noseqs; j++) - { - distance[i][j] = max - distance[i][j]; - distance[j][i] = distance[i][j]; - } - } - - return distance; + return new Matrix(distances); } @Override public String getName() { - return "Smith Waterman Score"; + return NAME; } @Override @@ -87,8 +95,9 @@ public class SWScoreModel implements ScoreModelI return true; } - public String toString() + @Override + public String getDescription() { - return "Score between two sequences aligned with Smith Waterman with default Peptide/Nucleotide matrix"; + return description; } }