Clover icon

Coverage Report

  1. Project Clover database Wed Dec 3 2025 17:03:17 GMT
  2. Package jalview.schemes

File HmmerGlobalBackgroundTest.java

 

Code metrics

0
22
1
1
90
40
1
0.05
22
1
1

Classes

Class Line # Actions
HmmerGlobalBackgroundTest 17 22 1
1.0100%
 

Contributing tests

This file is covered by 1 test. .

Source view

1    package jalview.schemes;
2   
3    import static org.testng.Assert.assertEquals;
4   
5    import jalview.datamodel.Alignment;
6    import jalview.datamodel.AlignmentI;
7    import jalview.datamodel.SequenceI;
8    import jalview.io.DataSourceType;
9    import jalview.io.HMMFile;
10   
11    import java.awt.Color;
12    import java.io.IOException;
13    import java.net.MalformedURLException;
14   
15    import org.testng.annotations.Test;
16   
 
17    public class HmmerGlobalBackgroundTest {
18   
 
19  1 toggle @Test(groups = "Functional")
20    public void testFindColour() throws MalformedURLException, IOException
21    {
22  1 HMMFile file = new HMMFile("test/jalview/io/test_PKinase_hmm.txt",
23    DataSourceType.FILE);
24   
25  1 SequenceI hmmSeq = file.getSeqsAsArray()[0];
26  1 AlignmentI al = new Alignment(new SequenceI[] { hmmSeq });
27  1 ColourSchemeI scheme = new HmmerGlobalBackground(al);
28   
29    /*
30    * 'A' in column 1, node 2, match emission 2.77204
31    * e-2.77204 = 0.0625
32    * background frequency is 0.0826
33    * ratio is 0.757, log is negative, colour is Orange
34    */
35  1 Color actual = scheme.findColour('A', 1, null, null, 0);
36  1 assertEquals(actual, Color.ORANGE);
37   
38    // gap is white
39  1 actual = scheme.findColour('-', 2, null, null, 0);
40  1 assertEquals(actual, Color.WHITE);
41  1 actual = scheme.findColour(' ', 2, null, null, 0);
42  1 assertEquals(actual, Color.WHITE);
43  1 actual = scheme.findColour('.', 2, null, null, 0);
44  1 assertEquals(actual, Color.WHITE);
45   
46    /*
47    * 'Y' in column 4, node 5, match emission 4.41426
48    * e-4.41426 = 0.0121
49    * background frequency is 0.0292
50    * ratio is 0.414, log is negative, colour is Orange
51    */
52  1 actual = scheme.findColour('Y', 4, null, null, 0);
53  1 assertEquals(actual, Color.ORANGE);
54   
55    /*
56    * 'M' in column 109, no matching node, colour is reddish
57    */
58  1 actual = scheme.findColour('M', 109, null, null, 0);
59  1 assertEquals(actual, new Color(230, 0, 0));
60   
61    /*
62    * 'I' in column 6, node 7, match emission 1.33015
63    * e-1.33015 = 0.2644
64    * background frequency is 0.0593
65    * ratio is 4.459, log is 1.495
66    * colour is graduated 1.495/4.52 or 84/255 of the way from
67    * white(255, 255, 255) to blue(0, 0, 255)
68    */
69  1 actual = scheme.findColour('I', 6, null, null, 0);
70  1 assertEquals(actual, new Color(171, 171, 255));
71   
72    /*
73    * 'V' in column 14, node 15, match emission 0.44769
74    * e-0.44769 = 0.6391
75    * background frequency is 0.0686
76    * ratio is 9.316, log is 2.232
77    * colour is graduated 2.232/4.52 or 126/255 of the way from
78    * white(255, 255, 255) to blue(0, 0, 255)
79    */
80  1 actual = scheme.findColour('V', 14, null, null, 0);
81  1 assertEquals(actual, new Color(129, 129, 255));
82   
83    /*
84    * invalid symbol is White
85    */
86  1 actual = scheme.findColour('X', 2, null, null, 0);
87  1 assertEquals(actual, Color.WHITE);
88    }
89   
90    }