6
|
1 import unittest, os
|
|
2 from commons.core.parsing.BedParser import BedParser
|
|
3
|
|
4
|
|
5 class Test_BedParser(unittest.TestCase):
|
|
6
|
|
7 def test_Parser(self):
|
|
8 parser = BedParser("data/testBedParser1.bed")
|
|
9
|
|
10 self.assertEqual(parser.getNbTranscripts(), 1)
|
|
11
|
|
12 for transcript in parser.getIterator():
|
|
13 self.assertEqual(transcript.getChromosome(), "arm_X")
|
|
14 self.assertEqual(transcript.getName(), "test1.1")
|
|
15 self.assertEqual(transcript.getStart(), 1000)
|
|
16 self.assertEqual(transcript.getEnd(), 2999)
|
|
17 self.assertEqual(transcript.getDirection(), 1)
|
|
18 self.assertEqual(transcript.getNbExons(), 2)
|
|
19 exons = transcript.getExons()
|
|
20 self.assertEqual(exons[0].getChromosome(), "arm_X")
|
|
21 self.assertEqual(exons[0].getStart(), 1000)
|
|
22 self.assertEqual(exons[0].getEnd(), 1099)
|
|
23 self.assertEqual(exons[0].getDirection(), 1)
|
|
24 self.assertEqual(exons[1].getChromosome(), "arm_X")
|
|
25 self.assertEqual(exons[1].getStart(), 2000)
|
|
26 self.assertEqual(exons[1].getEnd(), 2999)
|
|
27 self.assertEqual(exons[1].getDirection(), 1)
|
|
28
|
|
29 def test_Parser_short(self):
|
|
30 tmpFileName = "tmpFile.bed"
|
|
31 tmpHandle = open(tmpFileName, "w")
|
|
32 tmpHandle.write("""X\t554748\t554904\texon
|
|
33 X\t554748\t554904\tCDS
|
|
34 X\t554748\t554750\tstart_codon
|
|
35 """)
|
|
36 tmpHandle.close()
|
|
37 parser = BedParser(tmpFileName)
|
|
38 self.assertEqual(parser.getNbTranscripts(), 3)
|
|
39 for cpt, transcript in enumerate(parser.getIterator()):
|
|
40 self.assertEqual(transcript.getNbExons(), 1)
|
|
41 self.assertEqual(transcript.getChromosome(), "X")
|
|
42 self.assertEqual(transcript.getStart(), 554748)
|
|
43 if cpt == 0:
|
|
44 self.assertEqual(transcript.getEnd(), 554903)
|
|
45 self.assertEqual(transcript.getName(), "exon")
|
|
46 elif cpt == 1:
|
|
47 self.assertEqual(transcript.getEnd(), 554903)
|
|
48 self.assertEqual(transcript.getName(), "CDS")
|
|
49 elif cpt == 2:
|
|
50 self.assertEqual(transcript.getEnd(), 554749)
|
|
51 self.assertEqual(transcript.getName(), "start_codon")
|
|
52 os.remove(tmpFileName)
|
|
53
|
|
54
|
|
55
|
|
56 if __name__ == '__main__':
|
|
57 unittest.main()
|
|
58
|