2 Created on Sep 15, 2010
8 from erange.chiapet import markLinkers
11 class TestMarkLinkers(unittest.TestCase):
12 linkerFileName = "/Users/sau/Eclipse/erange/source/Erange/chiapet/linkers.fa"
13 inFileName = "linkerTestIn.txt"
14 outFileName = "linkerTestOut.txt"
17 infile = open(self.inFileName, "w")
23 os.remove(self.inFileName)
28 os.remove(self.outFileName)
33 def testMarkLinkers(self):
34 markLinkers.markLinkers(self.linkerFileName, self.inFileName, self.outFileName)
35 output = open(self.outFileName)
37 self.assertEquals("", line)
40 os.remove(self.outFileName)
42 infile = open(self.inFileName, "w")
44 print >> infile, "@Linker1"
45 print >> infile, "........................GTTGGATAAGATATCGCGG....."
46 print >> infile, "@NoLinker"
47 print >> infile, "GATTACA.GATTACA.GATTACA.GATTACA.GATTACA.GATTACA."
48 print >> infile, "@Linker2"
49 print >> infile, "........................GTTGGAATGTATATCGCGG....."
50 print >> infile, "@Linker1Short"
51 print >> infile, "..............GTTGGAATGTATATCGCGG..............."
52 print >> infile, "@Linker2Short"
53 print >> infile, "..............GTTGGAATGTATATCGCGG..............."
56 markLinkers.markLinkers(self.linkerFileName, self.inFileName, self.outFileName)
57 output = open(self.outFileName)
58 self.assertEquals(">L1_Linker1\n", output.readline())
59 self.assertEquals("....................\n", output.readline())
60 self.assertEquals(">NA_NoLinker\n", output.readline())
61 self.assertEquals("GATTACA.GATTACA.GATT\n", output.readline())
62 self.assertEquals(">NA_NoLinker\n", output.readline())
63 self.assertEquals("GATTACA.GATTACA.GATT\n", output.readline())
64 self.assertEquals(">NA_Linker2\n", output.readline())
65 self.assertEquals("....................\n", output.readline())
66 self.assertEquals(">L2_Linker2\n", output.readline())
67 self.assertEquals("....................\n", output.readline())
68 self.assertEquals(">NA_Linker1Short\n", output.readline())
69 self.assertEquals("..............GTTGGA\n", output.readline())
70 self.assertEquals(">NA_Linker1Short\n", output.readline())
71 self.assertEquals("..............GTTGGA\n", output.readline())
72 self.assertEquals(">NA_Linker2Short\n", output.readline())
73 self.assertEquals("..............GTTGGA\n", output.readline())
74 self.assertEquals(">NA_Linker2Short\n", output.readline())
75 self.assertEquals("..............GTTGGA\n", output.readline())
78 #TODO: Check that we really do want to output the same line
79 #multiple times in the case where neither linker is detected.
80 #See if downstream there is a real reason for doing it this way
81 #or if it was handled as a bug introduced at this stage of the
85 def testGetLinkerInformation(self):
86 linkerDict, linkerList = markLinkers.getLinkerInformation([])
89 self.assertEquals(resultDict, linkerDict)
90 self.assertEquals(resultList, linkerList)
92 linkerData = [">linker_b.1",
93 "GTTGGATAAGATATCGCGG",
97 linkerDict, linkerList = markLinkers.getLinkerInformation(linkerData)
98 resultDict = {"linker_b.1": "GTTGGATAAG",
99 "linker_b.2": "GTTGGAATGT"
101 resultList = ["linker_b.1", "linker_b.2"]
102 self.assertEquals(resultDict, linkerDict)
103 self.assertEquals(resultList, linkerList)
106 def testGetLinkerInformationFromFile(self):
107 linkerDict, linkerList = markLinkers.getLinkerInformationFromFile("bad file name")
110 self.assertEquals(resultDict, linkerDict)
111 self.assertEquals(resultList, linkerList)
113 linkerDict, linkerList = markLinkers.getLinkerInformationFromFile(self.linkerFileName)
114 resultDict = {"linker_b.1": "GTTGGATAAG",
115 "linker_b.2": "GTTGGAATGT"
117 resultList = ["linker_b.1", "linker_b.2"]
118 self.assertEquals(resultDict, linkerDict)
119 self.assertEquals(resultList, linkerList)
123 argv = ["markLinkers", self.linkerFileName, self.inFileName, self.outFileName]
124 markLinkers.main(argv)
125 output = open(self.outFileName)
127 self.assertEquals("", line)
130 os.remove(self.outFileName)
134 suite = unittest.TestSuite()
135 suite.addTest(unittest.makeSuite(TestMarkLinkers))
140 if __name__ == "__main__":
141 #import sys;sys.argv = ['', 'Test.testName']