예제 #1
0
 def test_getBestFrontBackRecord(self):
     """Test function _parseBestFrontBackRecord()."""
     obj = Classifier()
     domFN = op.join(self.testDir, "data/test_parseHmmDom.dom")
     front, back = obj._getBestFrontBackRecord(domFN)
     # In the following, verify the front and back are equivalent
     # to stdout/test_parseHmmDom_dFront/Back.txt
     def prettystr(d):
         """Return Pretty print string for front & back."""
         return "\n".join(
             [key + ":\n" + "\n".join(
                 [k + ":" + str(v) for k, v in val.iteritems()])
              for key, val in d.iteritems()])
     frontFN = op.join(self.testDir, "out/test_parseHmmDom_dFront.txt")
     backFN = op.join(self.testDir, "out/test_parseHmmDom_dBack.txt")
     f = open(frontFN, 'w')
     f.write(prettystr(front))
     f.close()
     f = open(backFN, 'w')
     f.write(prettystr(back))
     f.close()
     stdoutFrontFN = op.join(self.testDir,
                             "stdout/test_parseHmmDom_dFront.txt")
     stdoutBackFN = op.join(self.testDir,
                            "stdout/test_parseHmmDom_dBack.txt")
     self.assertTrue(filecmp.cmp(frontFN, stdoutFrontFN))
     self.assertTrue(filecmp.cmp(backFN, stdoutBackFN))
예제 #2
0
    def test_pickBestPrimerCombo(self):
        """Test funciton _pickBestPrimerCombo()."""
        obj = Classifier()
        domFN = op.join(self.testDir, "data/test_parseHmmDom.dom")
        front, back = obj._getBestFrontBackRecord(domFN)

        # Now pick up the best primer combo
        movie = "m131018_081703_42161_c100585152550000001823088404281404_s1_p0"
        rids = [movie + "/" + str(zmw) + "/ccs" for zmw in [43, 45, 54]]
        res = obj._pickBestPrimerCombo(
            front[rids[0]], back[rids[0]], [0, 1], 10)
        self.assertTrue(res[2] is None)
        self.assertTrue(res[3] is None)

        res = obj._pickBestPrimerCombo(
            front[rids[1]], back[rids[1]], [0, 1], 10)

        fw = DOMRecord("F1", movie + "/45/ccs", 33.0, 0, 30, 31, 0, 30, 100)
        rc = DOMRecord("R1", movie + "/45/ccs", 27.2, 0, 25, 25, 0, 25, 100)
        self.assertEqual(res[0], 1)
        self.assertEqual(res[1], "+")
        self.assertTrue(str(fw) == str(res[2]))
        self.assertTrue(str(rc) == str(res[3]))

        res = obj._pickBestPrimerCombo(
            front[rids[2]], back[rids[2]], [0, 1], 10)
        rc = DOMRecord("R1", movie + "/54/ccs", 22.3, 0, 25, 25, 0, 27, 100)
        self.assertEqual(res[0], 1)
        self.assertEqual(res[1], "+")
        self.assertTrue(res[2] is None)
        self.assertTrue(str(res[3]) == str(rc))