1 package jalview.analysis.scoremodels;
3 import jalview.analysis.AlignSeq;
4 import jalview.api.analysis.ScoreModelI;
5 import jalview.datamodel.AlignmentView;
6 import jalview.datamodel.SequenceI;
7 import jalview.util.Comparison;
9 public class SWScoreModel implements ScoreModelI
13 public float[][] findDistances(AlignmentView seqData)
15 SequenceI[] sequenceString = seqData
16 .getVisibleAlignment(Comparison.GapChars.charAt(0)).getSequencesArray();
17 int noseqs = sequenceString.length;
18 float[][] distance = new float[noseqs][noseqs];
22 for (int i = 0; i < (noseqs - 1); i++) { for (int j = i; j < noseqs; j++)
23 { AlignSeq as = new AlignSeq(sequenceString[i], sequenceString[j], seqData.isNa() ? "dna" : "pep");
24 as.calcScoreMatrix(); as.traceAlignment(); as.printAlignment(System.out);
25 distance[i][j] = (float) as.maxscore;
27 if (max < distance[i][j]) { max = distance[i][j]; } } }
29 for (int i = 0; i < (noseqs - 1); i++) { for (int j = i; j < noseqs; j++)
30 { distance[i][j] = max - distance[i][j]; distance[j][i] = distance[i][j];
37 public String getName()
39 return "Smith Waterman Score";
42 public boolean isDNA()
47 public boolean isProtein()
51 public String toString() {
52 return "Score between two sequences aligned with Smith Waterman with default Peptide/Nucleotide matrix";