transferred the storage position of the HMM to annotations
[jalview.git] / test / jalview / io / HMMFileTest.java
index 7350c04..36a2491 100644 (file)
@@ -91,45 +91,28 @@ public class HMMFileTest {
   
     assertEquals(hmm.getSymbols(), symbols);
   
-    assertEquals(getMatchEmission(0, 19, hmm), 3.43274);
-    assertEquals(getMatchEmission(12, 12, hmm), 4.33979);
-    assertEquals(getMatchEmission(23, 7, hmm), 3.65600);
-    assertEquals(getMatchEmission(54, 1, hmm), 4.76187);
-    assertEquals(getMatchEmission(79, 0, hmm), 2.81579);
-    assertEquals(getMatchEmission(100, 0, hmm), 1.86496);
-    assertEquals(getMatchEmission(112, 14, hmm), 2.77179);
-    assertEquals(getMatchEmission(143, 17, hmm), 5.10478);
-    assertEquals(getMatchEmission(156, 4, hmm), 4.69372);
-    assertEquals(getMatchEmission(178, 3, hmm), 2.52594);
-    assertEquals(getMatchEmission(210, 2, hmm), 4.23598);
-    assertEquals(getMatchEmission(260, 19, hmm), 3.81122);
-  
-    assertEquals(getInsertEmission(2, 1, hmm), 4.42225);
-    assertEquals(getInsertEmission(15, 6, hmm), 3.72501);
-    assertEquals(getInsertEmission(22, 9, hmm), 2.69355);
-    assertEquals(getInsertEmission(57, 2, hmm), 2.77519);
-    assertEquals(getInsertEmission(62, 14, hmm), 2.89801);
-    assertEquals(getInsertEmission(95, 17, hmm), 2.98532);
-    assertEquals(getInsertEmission(105, 4, hmm), 3.46354);
-    assertEquals(getInsertEmission(134, 1, hmm), 4.42225);
-    assertEquals(getInsertEmission(143, 0, hmm), 2.68618);
-    assertEquals(getInsertEmission(152, 16, hmm), 2.77519);
-    assertEquals(getInsertEmission(203, 16, hmm), 2.77519);
-    assertEquals(getInsertEmission(255, 12, hmm), 2.73739);
+    assertEquals(getMatchEmission(0, 19, hmm), 0.032298, 0.001d);
+    assertEquals(getMatchEmission(12, 12, hmm), 0.0130, 0.001d);
+    assertEquals(getMatchEmission(23, 7, hmm), 0.02583, 0.001d);
+    assertEquals(getMatchEmission(54, 1, hmm), 0.008549, 0.001d);
+    assertEquals(getMatchEmission(178, 3, hmm), 0.07998, 0.001d);
+    assertEquals(getMatchEmission(210, 2, hmm), 0.014465, 0.001d);
+    assertEquals(getMatchEmission(260, 19, hmm), 0.02213, 0.001d);
+  
+    assertEquals(getInsertEmission(2, 1, hmm), 0.012, 0.001d);
+    assertEquals(getInsertEmission(15, 6, hmm), 0.02411, 0.001d);
+    assertEquals(getInsertEmission(22, 9, hmm), 0.06764, 0.001d);
+    assertEquals(getInsertEmission(57, 2, hmm), 0.0623, 0.001d);
+    assertEquals(getInsertEmission(203, 16, hmm), 0.0623, 0.001d);
+    assertEquals(getInsertEmission(255, 12, hmm), 0.0647, 0.001d);
   
     assertEquals(getStateTransition(0, 6, hmm),
             Double.NEGATIVE_INFINITY);
-    assertEquals(getStateTransition(3, 6, hmm), 0.95510);
-    assertEquals(getStateTransition(29, 3, hmm), 0.61958);
-    assertEquals(getStateTransition(46, 4, hmm), 0.77255);
-    assertEquals(getStateTransition(53, 1, hmm), 5.01631);
-    assertEquals(getStateTransition(79, 2, hmm), 5.73865);
-    assertEquals(getStateTransition(101, 2, hmm), 5.73865);
-    assertEquals(getStateTransition(120, 5, hmm), 0.48576);
-    assertEquals(getStateTransition(146, 5, hmm), 0.70219);
-    assertEquals(getStateTransition(169, 3, hmm), 1.23224);
-    assertEquals(getStateTransition(209, 0, hmm), 0.01003);
-    assertEquals(getStateTransition(243, 1, hmm), 5.01631);
+    assertEquals(getStateTransition(3, 6, hmm), 0.3848, 0.001d);
+    assertEquals(getStateTransition(29, 3, hmm), 0.5382, 0.001d);
+    assertEquals(getStateTransition(169, 3, hmm), 0.2916, 0.001d);
+    assertEquals(getStateTransition(209, 0, hmm), 0.99, 0.001d);
+    assertEquals(getStateTransition(243, 1, hmm), 0.0066, 0.001d);
   
     assertEquals(hmm.getNodeAlignmentColumn(3).intValue(), 3);
     assertEquals(hmm.getReferenceAnnotation(7), '-');
@@ -239,30 +222,41 @@ public class HMMFileTest {
     Scanner scanner1 = new Scanner("1.3 2.4 5.3 3.9 9.8 4.7 4.3 2.3 6.9");
     ArrayList<Double> filledArray = new ArrayList<>();
   
-    filledArray.add(1.3);
-    filledArray.add(2.4);
-    filledArray.add(5.3);
-    filledArray.add(3.9);
-    filledArray.add(9.8);
-    filledArray.add(4.7);
-    filledArray.add(4.3);
-    filledArray.add(2.3);
-    filledArray.add(6.9);
-  
-    assertEquals(HMMFile.fillList(scanner1, 9), filledArray);
+    filledArray.add(0.27253);
+    filledArray.add(0.0907);
+    filledArray.add(0.00499);
+    filledArray.add(0.02024);
+    filledArray.add(0.00005);
+    filledArray.add(0.00909);
+    filledArray.add(0.01357);
+    filledArray.add(0.10026);
+    filledArray.add(0.001);
+  
+    List<Double> testList = HMMFile.fillList(scanner1, 9);
+
+    for (int i = 0; i < 9; i++)
+    {
+      assertEquals(testList.get(i), filledArray.get(i), 0.001d);
+
+    }
+
     filledArray.clear();
     scanner1.close();
   
     Scanner scanner2 = new Scanner(
-            "1.346554 5.58756754 35.3523645 12345.3564 1.4");
-    filledArray.add(1.346554);
-    filledArray.add(5.58756754);
-    filledArray.add(35.3523645);
-    filledArray.add(12345.3564);
-    filledArray.add(1.4);
-  
-    assertEquals(HMMFile.fillList(scanner2, 5), filledArray);
-    scanner2.close();
+            "1.346 5.554 35.345 5.64 1.4");
+    filledArray.add(0.2603);
+    filledArray.add(0.00387);
+    filledArray.add(0d);
+    filledArray.add(0.00355);
+    filledArray.add(0.2466);
+  
+    testList = HMMFile.fillList(scanner2, 5);
+
+    for (int i = 0; i < 5; i++)
+    {
+      assertEquals(testList.get(i), filledArray.get(i), 0.001d);
+    }
   
   }
   
@@ -282,34 +276,23 @@ public class HMMFileTest {
     br.close();
     fr.close();
   
-    assertEquals(getMatchEmission(0, 2, testHMM), 1.62906);
-    assertEquals(getMatchEmission(2, 1, testHMM), 2.37873);
-    assertEquals(getMatchEmission(12, 2, testHMM), 2.61355);
-    assertEquals(getMatchEmission(26, 0, testHMM), 1.86925);
-    assertEquals(getMatchEmission(32, 3, testHMM), 2.58263);
-    assertEquals(getMatchEmission(59, 3, testHMM), 2.20507);
-    assertEquals(getMatchEmission(63, 0, testHMM), 0.41244);
-    assertEquals(getMatchEmission(69, 1, testHMM), 3.17398);
-    assertEquals(getMatchEmission(76, 2, testHMM), 2.65861);
-  
-    assertEquals(getInsertEmission(0, 1, testHMM), 1.38629);
-    assertEquals(getInsertEmission(1, 2, testHMM), 1.38629);
-    assertEquals(getInsertEmission(31, 3, testHMM), 1.28150);
-    assertEquals(getInsertEmission(43, 0, testHMM), 1.32290);
-    assertEquals(getInsertEmission(48, 2, testHMM), 1.52606);
-    assertEquals(getInsertEmission(52, 1, testHMM), 1.62259);
-    assertEquals(getInsertEmission(67, 0, testHMM), 1.38141);
-    assertEquals(getInsertEmission(70, 3, testHMM), 1.38629);
-    assertEquals(getInsertEmission(80, 3, testHMM), 1.38629);
-  
-    assertEquals(getStateTransition(2, 0, testHMM), 0.03725);
-    assertEquals(getStateTransition(6, 1, testHMM), 3.89715);
-    assertEquals(getStateTransition(9, 3, testHMM), 1.38021);
-    assertEquals(getStateTransition(20, 4, testHMM), 0.23815);
-    assertEquals(getStateTransition(34, 6, testHMM), 0.33363);
-    assertEquals(getStateTransition(46, 5, testHMM), 1.05474);
-    assertEquals(getStateTransition(57, 6, testHMM), 0.31164);
-    assertEquals(getStateTransition(68, 2, testHMM), 3.99242);
+    assertEquals(getMatchEmission(0, 2, testHMM), 0.1961, 0.001d);
+    assertEquals(getMatchEmission(2, 1, testHMM), 0.09267, 0.001d);
+    assertEquals(getMatchEmission(12, 2, testHMM), 0.07327, 0.001d);
+    assertEquals(getMatchEmission(69, 1, testHMM), 0.04184, 0.001d);
+    assertEquals(getMatchEmission(76, 2, testHMM), 0.07, 0.001d);
+  
+    assertEquals(getInsertEmission(0, 1, testHMM), 0.25, 0.001d);
+    assertEquals(getInsertEmission(1, 2, testHMM), 0.25, 0.001d);
+    assertEquals(getInsertEmission(31, 3, testHMM), 0.2776, 0.001d);
+    assertEquals(getInsertEmission(70, 3, testHMM), 0.25, 0.001d);
+    assertEquals(getInsertEmission(80, 3, testHMM), 0.25, 0.001d);
+
+    assertEquals(getStateTransition(2, 0, testHMM), 0.9634, 0.001d);
+    assertEquals(getStateTransition(6, 1, testHMM), 0.0203, 0.001d);
+    assertEquals(getStateTransition(9, 3, testHMM), 0.2515, 0.001d);
+    assertEquals(getStateTransition(20, 4, testHMM), 0.78808, 0.001d);
+    assertEquals(getStateTransition(68, 2, testHMM), 0.01845, 0.001d);
     assertEquals(getStateTransition(80, 6, testHMM),
             Double.NEGATIVE_INFINITY);
   
@@ -373,36 +356,36 @@ public class HMMFileTest {
   @Test(priority = 3)
   public void testExportFile() throws IOException
   {
-    fn3.exportFile("test/jalview/io/test_export_hmm.txt");
-    HMMFile fn3Clone = new HMMFile(
+    pKinase.exportFile("test/jalview/io/test_export_hmm.txt");
+    HMMFile pKinaseClone = new HMMFile(
             new FileParse("test/jalview/io/test_export_hmm.txt",
                     DataSourceType.FILE));
-    fn3Clone.parse();
-    HiddenMarkovModel fn3HMM = new HiddenMarkovModel();
-    HiddenMarkovModel fn3CloneHMM = new HiddenMarkovModel();
-    fn3HMM = fn3.getHMM();
-    fn3CloneHMM = fn3Clone.getHMM();
+    pKinaseClone.parse();
+    HiddenMarkovModel pKinaseHMM = new HiddenMarkovModel();
+    HiddenMarkovModel pKinaseCloneHMM = new HiddenMarkovModel();
+    pKinaseHMM = pKinase.getHMM();
+    pKinaseCloneHMM = pKinaseClone.getHMM();
   
-    for (int i = 0; i < fn3HMM.getLength(); i++)
+    for (int i = 0; i < pKinaseHMM.getLength(); i++)
     {
       List<Double> list1;
       List<Double> list2;
       boolean result;
   
-      list1 = fn3HMM.getNode(i).getMatchEmissions();
-      list2 = fn3CloneHMM.getNode(i).getMatchEmissions();
+      list1 = pKinaseHMM.getNode(i).getMatchEmissions();
+      list2 = pKinaseCloneHMM.getNode(i).getMatchEmissions();
   
       result = checkIfListsAreIdentical(list1, list2);
       assertEquals(result, true);
   
-      list1 = fn3HMM.getNode(i).getInsertEmissions();
-      list2 = fn3CloneHMM.getNode(i).getInsertEmissions();
+      list1 = pKinaseHMM.getNode(i).getInsertEmissions();
+      list2 = pKinaseCloneHMM.getNode(i).getInsertEmissions();
   
       result = checkIfListsAreIdentical(list1, list2);
       assertEquals(result, true);
   
-      list1 = fn3HMM.getNode(i).getStateTransitions();
-      list2 = fn3CloneHMM.getNode(i).getStateTransitions();
+      list1 = pKinaseHMM.getNode(i).getStateTransitions();
+      list2 = pKinaseCloneHMM.getNode(i).getStateTransitions();
   
       result = checkIfListsAreIdentical(list1, list2);
       assertEquals(result, true);
@@ -412,21 +395,21 @@ public class HMMFileTest {
         int alignColumn1;
         int alignColumn2;
   
-        alignColumn1 = fn3HMM.getNodeAlignmentColumn(i);
-        alignColumn2 = fn3CloneHMM.getNodeAlignmentColumn(i);
+        alignColumn1 = pKinaseHMM.getNodeAlignmentColumn(i);
+        alignColumn2 = pKinaseCloneHMM.getNodeAlignmentColumn(i);
   
         assertEquals(alignColumn1, alignColumn2);
   
         char annotation1;
         char annotation2;
   
-        annotation1 = fn3HMM.getReferenceAnnotation(i);
-        annotation2 = fn3CloneHMM.getReferenceAnnotation(i);
+        annotation1 = pKinaseHMM.getReferenceAnnotation(i);
+        annotation2 = pKinaseCloneHMM.getReferenceAnnotation(i);
   
         assertEquals(annotation1, annotation2);
   
-        annotation1 = fn3HMM.getConsensusResidue(i);
-        annotation2 = fn3CloneHMM.getConsensusResidue(i);
+        annotation1 = pKinaseHMM.getConsensusResidue(i);
+        annotation2 = pKinaseCloneHMM.getConsensusResidue(i);
   
         assertEquals(annotation1, annotation2);
       }