annotate SMART/Java/Python/structure/test/Test_TranscriptListsComparator.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 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 from SMART.Java.Python.structure.TranscriptListsComparator import TranscriptListsComparator
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 from SMART.Java.Python.structure.TranscriptContainer import TranscriptContainer
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 from commons.core.writer.Gff3Writer import Gff3Writer
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 from commons.core.parsing.GffParser import GffParser
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 from commons.core.utils.FileUtils import FileUtils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 SMART_PATH = os.environ["REPET_PATH"] + "/SMART"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 class Test_TranscriptListsComparator(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 def test_compareTranscriptList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList1.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptList2.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 outputContainer = "output.gff3"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 comparator.setOutputWriter(Gff3Writer(outputContainer, 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23 comparator.compareTranscriptList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 parser = GffParser("output.gff3", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 self.assertEqual(parser.getNbTranscripts(), 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 cpt = 0
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 if cpt == 0:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 self.assertEqual(transcript.getEnd(), 1999)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 elif cpt == 1:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 self.assertEqual(transcript.getEnd(), 1999)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 self.assertEqual(transcript.getDirection(), -1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 cpt += 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 def test_compareTranscriptListDistanceSimple(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testCompareTranscriptListDistanceSimple2.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 comparator.setMaxDistance(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 distances = comparator.compareTranscriptListDistance()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 self.assertEqual(distances, {0: 1})
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 comparator.setMaxDistance(1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 comparator.setInputTranscriptContainer(comparator.QUERY, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 comparator.setInputTranscriptContainer(comparator.REFERENCE, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 distances = comparator.compareTranscriptListDistance()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 self.assertEqual(distances, {0: 1, -1000: 1})
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 def test_compareTranscriptListDistanceAntisense(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testCompareTranscriptListDistanceAntisense2.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 comparator.setMaxDistance(10000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 comparator.getAntisenseOnly(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 distances = comparator.compareTranscriptListDistance()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 self.assertEqual(distances, {1000: 1})
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 def test_compareTranscriptListMergeSimple(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple1.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSimple2.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 outputContainer = 'output.gff3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 comparator.setOutputWriter(Gff3Writer(outputContainer, 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 comparator.compareTranscriptListMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 parser = GffParser(outputContainer, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96 self.assertEqual(transcript.getEnd(), 3999)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 self.assertEqual(transcript.getSize(), 3000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 def test_compareTranscriptListMergeSenseAntiSenseAway(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway1.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeSenseAntiSenseAway2.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 outputContainer = 'output.gff3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 comparator.restrictToStart(comparator.QUERY, 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106 comparator.restrictToStart(comparator.REFERENCE, 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 comparator.extendFivePrime(comparator.REFERENCE, 150)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 comparator.getAntisenseOnly(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 comparator.setOutputWriter(Gff3Writer(outputContainer, 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113 comparator.compareTranscriptListMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 parser = GffParser(outputContainer, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119 self.assertEqual(transcript.getStart(), 10000048)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 self.assertEqual(transcript.getEnd(), 10000199)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 self.assertEqual(transcript.getSize(), 152)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 def test_compareTranscriptListMergeAggregation(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation1.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListMergeAggregation2.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 outputContainer = 'output.gff3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 comparator.getColinearOnly(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 comparator.aggregate(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 comparator.setOutputWriter(Gff3Writer(outputContainer, 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 comparator.compareTranscriptListMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 parser = GffParser(outputContainer, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142 self.assertEqual(transcript.getStart(), 10000000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 self.assertEqual(transcript.getEnd(), 10000199)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 self.assertEqual(transcript.getSize(), 200)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 def test_compareTranscriptListSelfMerge(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMerge1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 comparator.setOutputWriter(Gff3Writer("output.gff3", 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 comparator.compareTranscriptListSelfMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 parser = GffParser("output.gff3", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 self.assertEqual(transcript.getEnd(), 2000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 self.assertEqual(transcript.getSize(), 1001)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 self.assertEqual(float(transcript.getTagValue("nbElements")), 3)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169 def test_compareTranscriptListSelfMergeSense(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMerge1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173 comparator.getColinearOnly(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 comparator.computeOdds(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176 comparator.setOutputWriter(Gff3Writer("output.gff3", 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 comparator.compareTranscriptListSelfMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 parser = GffParser("%s/SMART/Java/Python/structure/test/output.gff3" % os.environ["REPET_PATH"], 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 self.assertEqual(transcript.getEnd(), 2000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 self.assertEqual(transcript.getSize(), 1001)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 def test_compareTranscriptListSelfMergeDifferentClusters(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListSelfMergeDifferentClusters1.bed" % SMART_PATH, "bed", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193 comparator.setOutputWriter(Gff3Writer("output.gff3", 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 comparator.compareTranscriptListSelfMerge()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 parser = GffParser("output.gff3", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 self.assertEquals(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 self.assertEqual(transcript.getStart(), 100)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201 self.assertEqual(transcript.getEnd(), 100099)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 self.assertEqual(transcript.getSize(), 100000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 def test_compareTranscriptListgetDifferenceTranscriptList(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference2.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214 comparator.setOutputWriter(Gff3Writer("output.gff3", 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215 comparator.getDifferenceTranscriptList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217 parser = GffParser("output.gff3", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 self.assertEqual(parser.getNbTranscripts(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 for transcript in parser.getIterator():
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 self.assertEqual(transcript.getEnd(), 4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 self.assertEqual(transcript.getNbExons(), 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225 exon1, exon2 = transcript.getExons()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 self.assertEqual(exon1.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 self.assertEqual(exon1.getEnd(), 1999)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228 self.assertEqual(exon2.getStart(), 3001)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229 self.assertEqual(exon2.getEnd(), 4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233 def test_compareTranscriptListgetDifferenceTranscriptListSplit(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 container1 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference1.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235 container2 = TranscriptContainer("%s/Java/Python/TestFiles/testTranscriptListsComparatorCompareTranscriptListGetDifference2.gff3" % SMART_PATH, "gff", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237 comparator = TranscriptListsComparator(None, 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 comparator.setInputTranscriptContainer(comparator.QUERY, container1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 comparator.setInputTranscriptContainer(comparator.REFERENCE, container2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 comparator.setSplitDifference(True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 comparator.setOutputWriter(Gff3Writer("output.gff3", 0))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242 comparator.getDifferenceTranscriptList()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 parser = GffParser("output.gff3", 0)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 self.assertEqual(parser.getNbTranscripts(), 2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 for id, transcript in enumerate(parser.getIterator()):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 if id == 0:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249 self.assertEqual(transcript.getStart(), 1000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 self.assertEqual(transcript.getEnd(), 1999)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 else:
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 self.assertEqual(transcript.getChromosome(), "arm_X")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255 self.assertEqual(transcript.getStart(), 3001)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 self.assertEqual(transcript.getEnd(), 4000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 self.assertEqual(transcript.getDirection(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258 self.assertEqual(transcript.getNbExons(), 1)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261 if __name__ == '__main__':
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 unittest.main()