Clover icon

Coverage Report

  1. Project Clover database Mon Nov 11 2024 17:27:16 GMT
  2. Package jalview.analysis.scoremodels

File SmithWatermanModel.java

 

Coverage histogram

../../../img/srcFileCovDistChart0.png
59% of files have more coverage

Code metrics

8
19
7
1
111
70
11
0.58
2.71
7
1.57

Classes

Class Line # Actions
SmithWatermanModel 37 19 11
0.00%
 

Contributing tests

No tests hitting this source file were found.

Source view

1    /*
2    * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3    * Copyright (C) $$Year-Rel$$ The Jalview Authors
4    *
5    * This file is part of Jalview.
6    *
7    * Jalview is free software: you can redistribute it and/or
8    * modify it under the terms of the GNU General Public License
9    * as published by the Free Software Foundation, either version 3
10    * of the License, or (at your option) any later version.
11    *
12    * Jalview is distributed in the hope that it will be useful, but
13    * WITHOUT ANY WARRANTY; without even the implied warranty
14    * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15    * PURPOSE. See the GNU General Public License for more details.
16    *
17    * You should have received a copy of the GNU General Public License
18    * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19    * The Jalview Authors are detailed in the 'AUTHORS' file.
20    */
21    package jalview.analysis.scoremodels;
22   
23    import jalview.analysis.AlignSeq;
24    import jalview.api.AlignmentViewPanel;
25    import jalview.api.analysis.ScoreModelI;
26    import jalview.api.analysis.SimilarityParamsI;
27    import jalview.datamodel.AlignmentView;
28    import jalview.datamodel.SequenceI;
29    import jalview.math.Matrix;
30    import jalview.math.MatrixI;
31    import jalview.util.Comparison;
32   
33    /**
34    * A class that computes pairwise similarity scores using the Smith-Waterman
35    * alignment algorithm
36    */
 
37    public class SmithWatermanModel extends SimilarityScoreModel
38    {
39    private static final String NAME = "Smith Waterman Score";
40   
41    private String description;
42   
43    /**
44    * Constructor
45    */
 
46  0 toggle public SmithWatermanModel()
47    {
48    }
49   
 
50  0 toggle @Override
51    public MatrixI findSimilarities(AlignmentView seqData,
52    SimilarityParamsI options)
53    {
54  0 SequenceI[] sequenceString = seqData
55    .getVisibleAlignment(Comparison.GAP_SPACE).getSequencesArray();
56  0 int noseqs = sequenceString.length;
57  0 double[][] distances = new double[noseqs][noseqs];
58   
59  0 double max = -1;
60   
61  0 for (int i = 0; i < (noseqs - 1); i++)
62    {
63  0 for (int j = i; j < noseqs; j++)
64    {
65  0 AlignSeq as = new AlignSeq(sequenceString[i], sequenceString[j],
66  0 seqData.isNa() ? "dna" : "pep");
67  0 as.calcScoreMatrix();
68  0 as.traceAlignment();
69  0 as.printAlignment(System.out);
70  0 distances[i][j] = as.maxscore;
71   
72  0 if (max < distances[i][j])
73    {
74  0 max = distances[i][j];
75    }
76    }
77    }
78   
79  0 return new Matrix(distances);
80    }
81   
 
82  0 toggle @Override
83    public String getName()
84    {
85  0 return NAME;
86    }
87   
 
88  0 toggle @Override
89    public boolean isDNA()
90    {
91  0 return true;
92    }
93   
 
94  0 toggle @Override
95    public boolean isProtein()
96    {
97  0 return true;
98    }
99   
 
100  0 toggle @Override
101    public String getDescription()
102    {
103  0 return description;
104    }
105   
 
106  0 toggle @Override
107    public ScoreModelI getInstance(AlignmentViewPanel avp)
108    {
109  0 return this;
110    }
111    }