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))
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))