18
|
1 import unittest
|
|
2 import os, os.path
|
|
3 from SMART.Java.Python.misc import Utils
|
|
4
|
|
5
|
|
6 TestF_PATH = os.environ['REPET_PATH'] + '/SMART/Java/Python/TestFiles'
|
|
7
|
|
8
|
|
9 class Test_F_findTss(unittest.TestCase):
|
|
10
|
|
11 def setUp(self):
|
|
12 self._outputFileName = 'output.gff3'
|
|
13 self._expOutputFileName = 'expOutput.gff3'
|
|
14
|
|
15 def tearDown(self):
|
|
16 os.remove(self._outputFileName)
|
|
17 os.remove(self._expOutputFileName)
|
|
18
|
|
19 def test_run_default_option(self):
|
|
20 cmd = "python ../findTss.py -i %s/mapperAnalyzerExpected.gff3 -f gff3 -o output.gff3 -v 0" % TestF_PATH
|
|
21 os.system(cmd)
|
|
22 self._writeExpDefaultOption(self._expOutputFileName)
|
|
23 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))
|
|
24
|
|
25 def test_run_normalize_option(self):
|
|
26 cmd = "python ../findTss.py -i %s/mapperAnalyzerExpected.gff3 -f gff3 -o output.gff3 -n -v 0" % TestF_PATH
|
|
27 os.system(cmd)
|
|
28 self._writeExpNormalizeOption(self._expOutputFileName)
|
|
29 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))
|
|
30
|
|
31 def test_run_distance_option(self):
|
|
32 cmd = "python ../findTss.py -i %s/mapperAnalyzerExpected.gff3 -f gff3 -o output.gff3 -d 20 -v 0" % TestF_PATH
|
|
33 os.system(cmd)
|
|
34 self._writeExpDistance_option(self._expOutputFileName)
|
|
35 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))
|
|
36
|
|
37 def test_run_colinear_option(self):
|
|
38 cmd = "python ../findTss.py -i %s/mapperAnalyzerExpected.gff3 -f gff3 -o output.gff3 -e -v 0" % TestF_PATH
|
|
39 os.system(cmd)
|
|
40 self._writeExpColinearOption(self._expOutputFileName)
|
|
41 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))
|
|
42
|
|
43 def test_run_excel_option(self):
|
|
44 cmd = "python ../findTss.py -i %s/mapperAnalyzerExpected.gff3 -f gff3 -o output.gff3 -c output.csv -v 0" % TestF_PATH
|
|
45 os.system(cmd)
|
|
46 obsCsv = 'output.csv'
|
|
47 self.assertTrue(os.path.exists(obsCsv))
|
|
48 os.remove(obsCsv)
|
|
49 self._writeExpExcelOption(self._expOutputFileName)
|
|
50 self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName))
|
|
51
|
|
52 def _writeExpDefaultOption(self, fileName):
|
|
53 f = open(fileName, 'w')
|
|
54 f.write("chr1\tS-MART\tmatch\t6155418\t6155418\t24\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100;Name=test1/1\n")
|
|
55 f.write("chr2\tS-MART\tmatch\t26303950\t26303950\t32\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93;Name=test2/1\n")
|
|
56 f.write("chr3\tS-MART\tmatch\t28320540\t28320540\t35\t+\t.\toccurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94;Name=test2/1\n")
|
|
57 f.write("chr4\tS-MART\tmatch\t28565007\t28565007\t35\t+\t.\toccurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88;Name=test2/1\n")
|
|
58 f.close()
|
|
59
|
|
60 def _writeExpNormalizeOption(self, fileName):
|
|
61 f = open(fileName, 'w')
|
|
62 f.write("chr1\tS-MART\tmatch\t6155418\t6155418\t24\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100;Name=test1/1\n")
|
|
63 f.write("chr2\tS-MART\tmatch\t26303950\t26303950\t32\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93;Name=test2/1\n")
|
|
64 f.write("chr3\tS-MART\tmatch\t28320540\t28320540\t35\t+\t.\toccurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94;Name=test2/1\n")
|
|
65 f.write("chr4\tS-MART\tmatch\t28565007\t28565007\t35\t+\t.\toccurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88;Name=test2/1\n")
|
|
66 f.close()
|
|
67
|
|
68 def _writeExpDistance_option(self, fileName):
|
|
69 f = open(fileName, 'w')
|
|
70 f.write("chr1\tS-MART\tmatch\t6155418\t6155418\t24\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100;Name=test1/1\n")
|
|
71 f.write("chr2\tS-MART\tmatch\t26303950\t26303950\t32\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93;Name=test2/1\n")
|
|
72 f.write("chr3\tS-MART\tmatch\t28320540\t28320540\t35\t+\t.\toccurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94;Name=test2/1\n")
|
|
73 f.write("chr4\tS-MART\tmatch\t28565007\t28565007\t35\t+\t.\toccurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88;Name=test2/1\n")
|
|
74 f.close()
|
|
75
|
|
76 def _writeExpColinearOption(self, fileName):
|
|
77 f = open(fileName, 'w')
|
|
78 f.write("chr1\tS-MART\tmatch\t6155418\t6155418\t24\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100;Name=test1/1\n")
|
|
79 f.write("chr2\tS-MART\tmatch\t26303950\t26303950\t32\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93;Name=test2/1\n")
|
|
80 f.write("chr3\tS-MART\tmatch\t28320540\t28320540\t35\t+\t.\toccurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94;Name=test2/1\n")
|
|
81 f.write("chr4\tS-MART\tmatch\t28565007\t28565007\t35\t+\t.\toccurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88;Name=test2/1\n")
|
|
82 f.close()
|
|
83
|
|
84 def _writeExpExcelOption(self, fileName):
|
|
85 f = open(fileName, 'w')
|
|
86 f.write("chr1\tS-MART\tmatch\t6155418\t6155418\t24\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=1;nbMismatches=0;ID=test1/1;identity=100;Name=test1/1\n")
|
|
87 f.write("chr2\tS-MART\tmatch\t26303950\t26303950\t32\t+\t.\toccurrence=1;rank=1;bestRegion=(self);nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-1;identity=93;Name=test2/1\n")
|
|
88 f.write("chr3\tS-MART\tmatch\t28320540\t28320540\t35\t+\t.\toccurrence=2;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=2;ID=test2/1-2;identity=94;Name=test2/1\n")
|
|
89 f.write("chr4\tS-MART\tmatch\t28565007\t28565007\t35\t+\t.\toccurrence=3;rank=3;bestRegion=chr2:26303950-26303981;nbGaps=0;nbOccurrences=3;nbMismatches=4;ID=test2/1-3;identity=88;Name=test2/1\n")
|
|
90 f.close()
|
|
91
|
|
92 if __name__ == "__main__":
|
|
93 unittest.main()
|