Clover icon

Coverage Report

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

File ScoreColourScheme.java

 

Coverage histogram

../../img/srcFileCovDistChart9.png
12% of files have more coverage

Code metrics

8
19
5
1
126
59
9
0.47
3.8
5
1.8

Classes

Class Line # Actions
ScoreColourScheme 36 19 9
0.812581.2%
 

Contributing tests

This file is covered by 17 tests. .

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.schemes;
22   
23    import jalview.api.AlignViewportI;
24    import jalview.datamodel.AnnotatedCollectionI;
25    import jalview.datamodel.SequenceI;
26    import jalview.util.Comparison;
27   
28    import java.awt.Color;
29   
30    /**
31    * DOCUMENT ME!
32    *
33    * @author $author$
34    * @version $Revision$
35    */
 
36    public class ScoreColourScheme extends ResidueColourScheme
37    {
38    public double min;
39   
40    public double max;
41   
42    public double[] scores;
43   
44    /**
45    * Creates a new ScoreColourScheme object.
46    *
47    * @param scores
48    * DOCUMENT ME!
49    * @param min
50    * DOCUMENT ME!
51    * @param max
52    * DOCUMENT ME!
53    */
 
54  329 toggle public ScoreColourScheme(int symbolIndex[], double[] scores, double min,
55    double max)
56    {
57  329 super(symbolIndex);
58   
59  329 this.scores = scores;
60  329 this.min = min;
61  329 this.max = max;
62   
63    // Make colours in constructor
64    // Why wasn't this done earlier?
65  329 int iSize = scores.length;
66  329 colors = new Color[scores.length];
67  8215 for (int i = 0; i < iSize; i++)
68    {
69    /*
70    * scale score between min and max to the range 0.0 - 1.0
71    */
72  7886 float score = (float) (scores[i] - (float) min) / (float) (max - min);
73   
74  7886 if (score > 1.0f)
75    {
76  0 score = 1.0f;
77    }
78   
79  7886 if (score < 0.0f)
80    {
81  523 score = 0.0f;
82    }
83  7886 colors[i] = makeColour(score);
84    }
85    }
86   
 
87  13487 toggle @Override
88    public Color findColour(char c, int j, SequenceI seq)
89    {
90  13487 if (Comparison.isGap(c))
91    {
92  3326 return Color.white;
93    }
94  10161 return super.findColour(c);
95    }
96   
97    /**
98    * DOCUMENT ME!
99    *
100    * @param c
101    * DOCUMENT ME!
102    *
103    * @return DOCUMENT ME!
104    */
 
105  0 toggle public Color makeColour(float c)
106    {
107  0 return new Color(c, (float) 0.0, (float) 1.0 - c);
108    }
109   
 
110  1 toggle @Override
111    public String getSchemeName()
112    {
113  1 return "Score";
114    }
115   
116    /**
117    * Returns a new instance of this colour scheme with which the given data may
118    * be coloured
119    */
 
120  0 toggle @Override
121    public ColourSchemeI getInstance(AlignViewportI view,
122    AnnotatedCollectionI coll)
123    {
124  0 return new ScoreColourScheme(symbolIndex, scores, min, max);
125    }
126    }