1. Project Clover database Fri Dec 6 2024 13:47:14 GMT
  2. Package jalview.schemes

File Blosum62ColourScheme.java

 

Coverage histogram

../../img/srcFileCovDistChart10.png
0% of files have more coverage

Code metrics

8
20
6
1
118
74
12
0.6
3.33
6
2

Classes

Class
Line #
Actions
Blosum62ColourScheme 32 20 12
0.941176594.1%
 

Contributing tests

This file is covered by 190 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.analysis.scoremodels.ScoreModels;
24    import jalview.api.AlignViewportI;
25    import jalview.api.analysis.PairwiseScoreModelI;
26    import jalview.datamodel.AnnotatedCollectionI;
27    import jalview.datamodel.SequenceI;
28    import jalview.util.Comparison;
29   
30    import java.awt.Color;
31   
 
32    public class Blosum62ColourScheme extends ResidueColourScheme
33    {
34    private static final Color LIGHT_BLUE = new Color(204, 204, 255);
35   
36    private static final Color DARK_BLUE = new Color(154, 154, 255);
37   
 
38  65 toggle public Blosum62ColourScheme()
39    {
40  65 super();
41    }
42   
43    /**
44    * Returns a new instance of this colour scheme with which the given data may
45    * be coloured
46    */
 
47  6 toggle @Override
48    public ColourSchemeI getInstance(AlignViewportI view,
49    AnnotatedCollectionI coll)
50    {
51  6 return new Blosum62ColourScheme();
52    }
53   
 
54  22428 toggle @Override
55    public Color findColour(char res, int j, SequenceI seq,
56    String consensusResidue, float pid)
57    {
58  22428 PairwiseScoreModelI sm = ScoreModels.getInstance().getBlosum62();
59   
60    /*
61    * compare as upper case; note consensusResidue is
62    * always computed as uppercase
63    */
64  22428 if ('a' <= res && res <= 'z')
65    {
66  1 res -= ('a' - 'A');
67    }
68   
69  22428 if (Comparison.isGap(res) || consensusResidue == null)
70    {
71  0 return Color.white;
72    }
73   
74  22428 Color colour;
75   
76  22428 if (consensusResidue.indexOf(res) > -1)
77    {
78  15764 colour = DARK_BLUE;
79    }
80    else
81    {
82  6664 float score = 0;
83   
84  6664 for (char consensus : consensusResidue.toCharArray())
85    {
86  6987 score += sm.getPairwiseScore(consensus, res);
87    }
88   
89  6664 if (score > 0)
90    {
91  2054 colour = LIGHT_BLUE;
92    }
93    else
94    {
95  4610 colour = Color.white;
96    }
97    }
98  22428 return colour;
99    }
100   
 
101  844 toggle @Override
102    public boolean isPeptideSpecific()
103    {
104  844 return true;
105    }
106   
 
107  580 toggle @Override
108    public String getSchemeName()
109    {
110  580 return JalviewColourScheme.Blosum62.toString();
111    }
112   
 
113  47 toggle @Override
114    public boolean isSimple()
115    {
116  47 return false;
117    }
118    }