5 from htsworkflow.pipelines import sequences
7 class SequenceFileTests(unittest.TestCase):
9 Make sure the sequence archive class works
12 path = '/root/42BW9AAXX/C1-38'
13 name = 'woldlab_090622_HWI-EAS229_0120_42BW9AAXX_4.srf'
14 pathname = os.path.join(path,name)
15 f = sequences.parse_srf(path, name)
17 self.failUnlessEqual(f.filetype, 'srf')
18 self.failUnlessEqual(f.path, pathname)
19 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
20 self.failUnlessEqual(f.lane, 4)
21 self.failUnlessEqual(f.read, None)
22 self.failUnlessEqual(f.pf, None)
23 self.failUnlessEqual(f.cycle, None)
26 path = '/root/42BW9AAXX/C1-36'
27 name = 'woldlab_090622_HWI-EAS229_0120_42BW9AAXX_l4_r1.tar.bz2'
28 pathname = os.path.join(path,name)
29 f = sequences.parse_qseq(path, name)
31 self.failUnlessEqual(f.filetype, 'qseq')
32 self.failUnlessEqual(f.path, pathname)
33 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
34 self.failUnlessEqual(f.lane, 4)
35 self.failUnlessEqual(f.read, 1)
36 self.failUnlessEqual(f.pf, None)
37 self.failUnlessEqual(f.cycle, None)
40 path = '/root/42BW9AAXX/C1-38'
41 name = 'woldlab_090622_HWI-EAS229_0120_42BW9AAXX_l4_r1_pass.fastq.bz2'
42 pathname = os.path.join(path,name)
43 f = sequences.parse_fastq(path, name)
45 self.failUnlessEqual(f.filetype, 'fastq')
46 self.failUnlessEqual(f.path, pathname)
47 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
48 self.failUnlessEqual(f.lane, 4)
49 self.failUnlessEqual(f.read, 1)
50 self.failUnlessEqual(f.pf, True)
51 self.failUnlessEqual(f.cycle, None)
53 name = 'woldlab_090622_HWI-EAS229_0120_42BW9AAXX_l4_r2_nopass.fastq.bz2'
54 pathname = os.path.join(path,name)
55 f = sequences.parse_fastq(path, name)
57 self.failUnlessEqual(f.filetype, 'fastq')
58 self.failUnlessEqual(f.path, pathname)
59 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
60 self.failUnlessEqual(f.lane, 4)
61 self.failUnlessEqual(f.read, 2)
62 self.failUnlessEqual(f.pf, False)
63 self.failUnlessEqual(f.cycle, None)
66 path = '/root/42BW9AAXX/C1-38'
67 name = 's_4_eland_extended.txt.bz2'
68 pathname = os.path.join(path,name)
69 f = sequences.parse_eland(path, name)
71 self.failUnlessEqual(f.filetype, 'eland')
72 self.failUnlessEqual(f.path, pathname)
73 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
74 self.failUnlessEqual(f.lane, 4)
75 self.failUnlessEqual(f.read, None)
76 self.failUnlessEqual(f.pf, None)
77 self.failUnlessEqual(f.cycle, 'C1-38')
79 path = '/root/42BW9AAXX/C1-152'
80 name = 's_4_1_eland_extended.txt.bz2'
81 pathname = os.path.join(path,name)
82 f = sequences.parse_eland(path, name)
84 self.failUnlessEqual(f.filetype, 'eland')
85 self.failUnlessEqual(f.path, pathname)
86 self.failUnlessEqual(f.flowcell, '42BW9AAXX')
87 self.failUnlessEqual(f.lane, 4)
88 self.failUnlessEqual(f.read, 1)
89 self.failUnlessEqual(f.pf, None)
90 self.failUnlessEqual(f.cycle, 'C1-152')
92 def test_sequence_file_equality(self):
93 path = '/root/42BW9AAXX/C1-38'
94 name = 'woldlab_090622_HWI-EAS229_0120_42BW9AAXX_l4_r1.tar.bz2'
96 f1_qseq = sequences.parse_qseq(path, name)
97 f2_qseq = sequences.parse_qseq(path, name)
99 self.failUnlessEqual(f1_qseq, f2_qseq)
102 return unittest.makeSuite(SequenceFileTests,'test')
104 if __name__ == "__main__":
105 unittest.main(defaultTest="suite")