annotate commons/core/writer/test/Test_Gff3Writer.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 from commons.core.writer.Gff3Writer import Gff3Writer
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 from SMART.Java.Python.structure.Transcript import Transcript
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 from SMART.Java.Python.structure.Interval import Interval
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 from SMART.Java.Python.misc import Utils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 class Test_Gff3Writer(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10 def test_writer(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 obsFileName = "testGffWriter1.gff3"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 writer = Gff3Writer(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 transcript = Transcript()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 transcript.setName("test1.1")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 transcript.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 transcript.setStart(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 transcript.setEnd(4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 transcript.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20 transcript.setTagValue("ID", "test1.1-1")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 transcript.setTagValue("occurrence", 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 transcript.setTagValue("nbOccurrences", 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 exon1 = Interval()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 exon1.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 exon1.setStart(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 exon1.setEnd(2000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 exon1.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 exon2 = Interval()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 exon2.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 exon2.setStart(3000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 exon2.setEnd(4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 exon2.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 transcript.addExon(exon1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 transcript.addExon(exon2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39 writer.addTranscript(transcript)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 writer.write()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 writer.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 expFileName = "expFile.gff3"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 f = open(expFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 f.write("arm_X\tS-MART\ttranscript\t1000\t4000\t.\t+\t.\tnbOccurrences=2;ID=test1.1-1;occurrence=1;Name=test1.1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 f.write("arm_X\tS-MART\texon\t1000\t2000\t.\t+\t.\tID=test1.1-1-exon1;Name=test1.1-exon1;Parent=test1.1-1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 f.write("arm_X\tS-MART\texon\t3000\t4000\t.\t+\t.\tID=test1.1-1-exon2;Name=test1.1-exon2;Parent=test1.1-1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 f.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 self.assertTrue(Utils.diff(expFileName, obsFileName))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 os.remove(expFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 def test_writerAltNames(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 obsFileName = "testGffWriter1.gff3"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 writer = Gff3Writer(obsFileName,title="ALTSOURCE", feature="Match", featurePart="Match-Part")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 transcript = Transcript()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 transcript.setName("test1.1")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 transcript.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62 transcript.setStart(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 transcript.setEnd(4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 transcript.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 transcript.setTagValue("ID", "test1.1-1")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 transcript.setTagValue("occurrence", 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 transcript.setTagValue("nbOccurrences", 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 exon1 = Interval()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 exon1.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 exon1.setStart(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 exon1.setEnd(2000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 exon1.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 exon2 = Interval()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 exon2.setChromosome("arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 exon2.setStart(3000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78 exon2.setEnd(4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 exon2.setDirection("+")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 transcript.addExon(exon1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 transcript.addExon(exon2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 writer.addTranscript(transcript)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 writer.write()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 writer.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 expFileName = "expFile.gff3"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 f = open(expFileName, "w")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 f.write("arm_X\tALTSOURCE\tMatch\t1000\t4000\t.\t+\t.\tnbOccurrences=2;ID=test1.1-1;occurrence=1;Name=test1.1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 f.write("arm_X\tALTSOURCE\tMatch-Part\t1000\t2000\t.\t+\t.\tID=test1.1-1-Match-Part1;Name=test1.1-Match-Part1;Parent=test1.1-1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 f.write("arm_X\tALTSOURCE\tMatch-Part\t3000\t4000\t.\t+\t.\tID=test1.1-1-Match-Part2;Name=test1.1-Match-Part2;Parent=test1.1-1\n")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 f.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 self.assertTrue(Utils.diff(expFileName, obsFileName))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 os.remove(expFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 if __name__ == '__main__':
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 unittest.main()