import static org.testng.Assert.assertEquals;
import jalview.io.DataSourceType;
-import jalview.io.FileParse;
import jalview.io.HMMFile;
import java.awt.Color;
import org.testng.annotations.Test;
public class HMMERColourSchemeTest {
- HMMERColourScheme scheme = new HMMERColourScheme();
- @Test
+ @Test(groups = "Functional")
public void testFindColour() throws MalformedURLException, IOException
{
+ HMMFile file = new HMMFile("test/jalview/io/test_PKinase_hmm.txt",
+ DataSourceType.FILE);
- HMMFile file = new HMMFile(new FileParse(
- "test/jalview/io/test_PKinase_hmm.txt", DataSourceType.FILE));
-
- scheme.hmm = file.getHMM();
- Color expected;
+ ColourSchemeI scheme = new HMMERColourScheme(file.getHMM());
+ /*
+ * 'A' in column 1, node 2, match emission 2.77204
+ * e-2.77204 = 0.0625
+ * background frequency is 0.0826
+ * ratio is 0.757, log is negative, colour is Orange
+ */
Color actual = scheme.findColour('A', 1, null, null, 0);
assertEquals(actual, Color.ORANGE);
- actual = scheme.findColour('Y', 3, null, null, 0);
+ // gap is white
+ actual = scheme.findColour('-', 2, null, null, 0);
+ assertEquals(actual, Color.WHITE);
+ actual = scheme.findColour(' ', 2, null, null, 0);
+ assertEquals(actual, Color.WHITE);
+ actual = scheme.findColour('.', 2, null, null, 0);
+ assertEquals(actual, Color.WHITE);
+
+ /*
+ * 'Y' in column 4, node 5, match emission 4.41426
+ * e-4.41426 = 0.0121
+ * background frequency is 0.0292
+ * ratio is 0.414, log is negative, colour is Orange
+ */
+ actual = scheme.findColour('Y', 4, null, null, 0);
assertEquals(actual, Color.ORANGE);
+ /*
+ * 'M' in column 109, no matching node, colour is reddish
+ */
actual = scheme.findColour('M', 109, null, null, 0);
- expected = new Color(230, 0, 0);
- assertEquals(actual, expected);
-
+ assertEquals(actual, new Color(230, 0, 0));
+
+ /*
+ * 'I' in column 6, node 7, match emission 1.33015
+ * e-1.33015 = 0.2644
+ * background frequency is 0.0593
+ * ratio is 4.459, log is 1.495
+ * colour is graduated 1.495/4.52 or 84/255 of the way from
+ * white(255, 255, 255) to blue(0, 0, 255)
+ */
actual = scheme.findColour('I', 6, null, null, 0);
- expected = new Color(171, 171, 255);
- assertEquals(actual, expected);
-
+ assertEquals(actual, new Color(171, 171, 255));
+
+ /*
+ * 'V' in column 14, node 15, match emission 0.44769
+ * e-0.44769 = 0.6391
+ * background frequency is 0.0686
+ * ratio is 9.316, log is 2.232
+ * colour is graduated 2.232/4.52 or 126/255 of the way from
+ * white(255, 255, 255) to blue(0, 0, 255)
+ */
actual = scheme.findColour('V', 14, null, null, 0);
- expected = new Color(129, 129, 255);
- assertEquals(actual, expected);
+ assertEquals(actual, new Color(129, 129, 255));
- actual = scheme.findColour('X', 100000000, null, null, 0);
+ /*
+ * invalid symbol is White
+ */
+ actual = scheme.findColour('X', 2, null, null, 0);
assertEquals(actual, Color.WHITE);
-
-
}
}