annotate SMART/Java/Python/test/Test_F_ClusterizeByTags.py @ 31:0ab839023fe4

Uploaded
author m-zytnicki
date Tue, 30 Apr 2013 14:33:21 -0400
parents 94ab73e8a190
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
18
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
1 import unittest, os, os.path
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
2 from SMART.Java.Python.misc import Utils
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
3 from SMART.Java.Python.ClusterizeByTags import ClusterizeByTags
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
5 class Test_F_ClusterizeByTags(unittest.TestCase):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
7 def setUp(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
8 self._inputFileName = "inputFileTest.gff3"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
9 self._expOutputFileName = "expOutput.gff3"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
10 self._outputFileName = "output.gff3"
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
11
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
12 def tearDown(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
13 for file in (self._inputFileName, self._expOutputFileName, self._outputFileName):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
14 if os.path.exists(file):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
15 os.remove(file)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
16
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
17 def test_diff_simple(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
18 handle = open(self._inputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
19 handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
20 chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
21 chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
22 chr1\tS-MART\ttest1.4\t700\t800\t.\t+\t.\tName=test1.4;score=100;ID=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
23 chr1\tS-MART\ttest1.5\t900\t1000\t.\t+\t.\tName=test1.5;score=110;ID=test1.5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
24 chr1\tS-MART\ttest1.6\t1100\t1200\t.\t+\t.\tName=test1.6;score=105;ID=test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
25 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
26 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
27 handle = open(self._expOutputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
28 handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
29 chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
30 chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
31 chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
32 chr1 S-MART test1.4 700 1200 315 + . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
33 chr1 S-MART exon 700 800 100 + . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
34 chr1 S-MART exon 900 1000 110 + . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
35 chr1 S-MART exon 1100 1200 105 + . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
36 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
37 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
38 cbt = ClusterizeByTags(0)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
39 cbt.setInputFile(self._inputFileName, "gff3")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
40 cbt.setOutputFile(self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
41 cbt.setTag("score", None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
42 cbt.setThreshold(20)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
43 cbt.setOperation("diff")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
44 cbt.setMaxDistance(None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
45 cbt.run()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
46 self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
47
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
48 def test_diff_two_strands(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
49 handle = open(self._inputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
50 handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
51 chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
52 chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
53 chr1\tS-MART\ttest1.4\t700\t800\t.\t-\t.\tName=test1.4;score=10;ID=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
54 chr1\tS-MART\ttest1.5\t900\t1000\t.\t-\t.\tName=test1.5;score=15;ID=test1.5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
55 chr1\tS-MART\ttest1.6\t1100\t1200\t.\t-\t.\tName=test1.6;score=15;ID=test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
56 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
57 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
58 handle = open(self._expOutputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
59 handle.write("""chr1 S-MART test1.4 700 1200 40 - . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
60 chr1 S-MART exon 700 800 10 - . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
61 chr1 S-MART exon 900 1000 15 - . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
62 chr1 S-MART exon 1100 1200 15 - . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
63 chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
64 chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
65 chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
66 chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
67 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
68 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
69 cbt = ClusterizeByTags(0)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
70 cbt.setInputFile(self._inputFileName, "gff3")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
71 cbt.setOutputFile(self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
72 cbt.setTag("score", None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
73 cbt.setThreshold(20)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
74 cbt.setOperation("diff")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
75 cbt.setMaxDistance(None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
76 cbt.run()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
77 self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
78
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
79 def test_diff_one_strands(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
80 handle = open(self._inputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
81 handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
82 chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
83 chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
84 chr1\tS-MART\ttest1.4\t700\t800\t.\t-\t.\tName=test1.4;score=10;ID=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
85 chr1\tS-MART\ttest1.5\t900\t1000\t.\t-\t.\tName=test1.5;score=15;ID=test1.5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
86 chr1\tS-MART\ttest1.6\t1100\t1200\t.\t-\t.\tName=test1.6;score=15;ID=test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
87 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
88 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
89 handle = open(self._expOutputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
90 handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
91 chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
92 chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
93 chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
94 chr1 S-MART test1.4 700 1200 40 - . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
95 chr1 S-MART exon 700 800 10 - . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
96 chr1 S-MART exon 900 1000 15 - . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
97 chr1 S-MART exon 1100 1200 15 - . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
98 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
99 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
100 cbt = ClusterizeByTags(0)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
101 cbt.setInputFile(self._inputFileName, "gff3")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
102 cbt.setOutputFile(self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
103 cbt.setTag("score", None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
104 cbt.setThreshold(20)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
105 cbt.setOperation("diff")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
106 cbt.setMaxDistance(None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
107 cbt.setOneStrand(True)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
108 cbt.run()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
109 self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
110
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
111 def test_diff_distance(self):
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
112 handle = open(self._inputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
113 handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
114 chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
115 chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
116 chr1\tS-MART\ttest1.4\t1000\t1100\t.\t+\t.\tName=test1.4;score=10;ID=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
117 chr1\tS-MART\ttest1.5\t1200\t1300\t.\t+\t.\tName=test1.5;score=15;ID=test1.5
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
118 chr1\tS-MART\ttest1.6\t1400\t1500\t.\t+\t.\tName=test1.6;score=15;ID=test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
119 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
120 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
121 handle = open(self._expOutputFileName, "w")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
122 handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
123 chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
124 chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
125 chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
126 chr1 S-MART test1.4 1000 1500 40 + . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
127 chr1 S-MART exon 1000 1100 10 + . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
128 chr1 S-MART exon 1200 1300 15 + . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
129 chr1 S-MART exon 1400 1500 15 + . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
130 """)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
131 handle.close()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
132 cbt = ClusterizeByTags(0)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
133 cbt.setInputFile(self._inputFileName, "gff3")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
134 cbt.setOutputFile(self._outputFileName)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
135 cbt.setTag("score", None)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
136 cbt.setThreshold(20)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
137 cbt.setOperation("diff")
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
138 cbt.setMaxDistance(200)
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
139 cbt.run()
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
140 self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName))
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
141
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
142
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
143 if __name__ == "__main__":
94ab73e8a190 Uploaded
m-zytnicki
parents:
diff changeset
144 unittest.main()