Mercurial > repos > yufei-luo > s_mart
diff SMART/Java/Python/test/Test_F_ClusterizeByTags.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMART/Java/Python/test/Test_F_ClusterizeByTags.py Mon Apr 29 03:20:15 2013 -0400 @@ -0,0 +1,144 @@ +import unittest, os, os.path +from SMART.Java.Python.misc import Utils +from SMART.Java.Python.ClusterizeByTags import ClusterizeByTags + +class Test_F_ClusterizeByTags(unittest.TestCase): + + def setUp(self): + self._inputFileName = "inputFileTest.gff3" + self._expOutputFileName = "expOutput.gff3" + self._outputFileName = "output.gff3" + + def tearDown(self): + for file in (self._inputFileName, self._expOutputFileName, self._outputFileName): + if os.path.exists(file): + os.remove(file) + + def test_diff_simple(self): + handle = open(self._inputFileName, "w") + handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1 +chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2 +chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3 +chr1\tS-MART\ttest1.4\t700\t800\t.\t+\t.\tName=test1.4;score=100;ID=test1.4 +chr1\tS-MART\ttest1.5\t900\t1000\t.\t+\t.\tName=test1.5;score=110;ID=test1.5 +chr1\tS-MART\ttest1.6\t1100\t1200\t.\t+\t.\tName=test1.6;score=105;ID=test1.6 +""") + handle.close() + handle = open(self._expOutputFileName, "w") + handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3 +chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1 +chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1 +chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1 +chr1 S-MART test1.4 700 1200 315 + . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6 +chr1 S-MART exon 700 800 100 + . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4 +chr1 S-MART exon 900 1000 110 + . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4 +chr1 S-MART exon 1100 1200 105 + . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4 +""") + handle.close() + cbt = ClusterizeByTags(0) + cbt.setInputFile(self._inputFileName, "gff3") + cbt.setOutputFile(self._outputFileName) + cbt.setTag("score", None) + cbt.setThreshold(20) + cbt.setOperation("diff") + cbt.setMaxDistance(None) + cbt.run() + self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName)) + + def test_diff_two_strands(self): + handle = open(self._inputFileName, "w") + handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1 +chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2 +chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3 +chr1\tS-MART\ttest1.4\t700\t800\t.\t-\t.\tName=test1.4;score=10;ID=test1.4 +chr1\tS-MART\ttest1.5\t900\t1000\t.\t-\t.\tName=test1.5;score=15;ID=test1.5 +chr1\tS-MART\ttest1.6\t1100\t1200\t.\t-\t.\tName=test1.6;score=15;ID=test1.6 +""") + handle.close() + handle = open(self._expOutputFileName, "w") + handle.write("""chr1 S-MART test1.4 700 1200 40 - . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6 +chr1 S-MART exon 700 800 10 - . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4 +chr1 S-MART exon 900 1000 15 - . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4 +chr1 S-MART exon 1100 1200 15 - . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4 +chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3 +chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1 +chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1 +chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1 +""") + handle.close() + cbt = ClusterizeByTags(0) + cbt.setInputFile(self._inputFileName, "gff3") + cbt.setOutputFile(self._outputFileName) + cbt.setTag("score", None) + cbt.setThreshold(20) + cbt.setOperation("diff") + cbt.setMaxDistance(None) + cbt.run() + self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName)) + + def test_diff_one_strands(self): + handle = open(self._inputFileName, "w") + handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1 +chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2 +chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3 +chr1\tS-MART\ttest1.4\t700\t800\t.\t-\t.\tName=test1.4;score=10;ID=test1.4 +chr1\tS-MART\ttest1.5\t900\t1000\t.\t-\t.\tName=test1.5;score=15;ID=test1.5 +chr1\tS-MART\ttest1.6\t1100\t1200\t.\t-\t.\tName=test1.6;score=15;ID=test1.6 +""") + handle.close() + handle = open(self._expOutputFileName, "w") + handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3 +chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1 +chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1 +chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1 +chr1 S-MART test1.4 700 1200 40 - . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6 +chr1 S-MART exon 700 800 10 - . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4 +chr1 S-MART exon 900 1000 15 - . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4 +chr1 S-MART exon 1100 1200 15 - . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4 +""") + handle.close() + cbt = ClusterizeByTags(0) + cbt.setInputFile(self._inputFileName, "gff3") + cbt.setOutputFile(self._outputFileName) + cbt.setTag("score", None) + cbt.setThreshold(20) + cbt.setOperation("diff") + cbt.setMaxDistance(None) + cbt.setOneStrand(True) + cbt.run() + self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName)) + + def test_diff_distance(self): + handle = open(self._inputFileName, "w") + handle.write("""chr1\tS-MART\ttest1.1\t100\t200\t.\t+\t.\tName=test1.1;score=10;ID=test1.1 +chr1\tS-MART\ttest1.2\t300\t400\t.\t+\t.\tName=test1.2;score=15;ID=test1.2 +chr1\tS-MART\ttest1.3\t500\t600\t.\t+\t.\tName=test1.3;score=15;ID=test1.3 +chr1\tS-MART\ttest1.4\t1000\t1100\t.\t+\t.\tName=test1.4;score=10;ID=test1.4 +chr1\tS-MART\ttest1.5\t1200\t1300\t.\t+\t.\tName=test1.5;score=15;ID=test1.5 +chr1\tS-MART\ttest1.6\t1400\t1500\t.\t+\t.\tName=test1.6;score=15;ID=test1.6 +""") + handle.close() + handle = open(self._expOutputFileName, "w") + handle.write("""chr1 S-MART test1.1 100 600 40 + . nbElements=3.000000;ID=test1.1;Name=test1.1--test1.2--test1.3 +chr1 S-MART exon 100 200 10 + . ID=test1.1-exon1;Name=test1.1--test1.2--test1.3-exon1;Parent=test1.1 +chr1 S-MART exon 300 400 15 + . ID=test1.1-exon2;Name=test1.1--test1.2--test1.3-exon2;Parent=test1.1 +chr1 S-MART exon 500 600 15 + . ID=test1.1-exon3;Name=test1.1--test1.2--test1.3-exon3;Parent=test1.1 +chr1 S-MART test1.4 1000 1500 40 + . nbElements=3.000000;ID=test1.4;Name=test1.4--test1.5--test1.6 +chr1 S-MART exon 1000 1100 10 + . ID=test1.4-exon1;Name=test1.4--test1.5--test1.6-exon1;Parent=test1.4 +chr1 S-MART exon 1200 1300 15 + . ID=test1.4-exon2;Name=test1.4--test1.5--test1.6-exon2;Parent=test1.4 +chr1 S-MART exon 1400 1500 15 + . ID=test1.4-exon3;Name=test1.4--test1.5--test1.6-exon3;Parent=test1.4 +""") + handle.close() + cbt = ClusterizeByTags(0) + cbt.setInputFile(self._inputFileName, "gff3") + cbt.setOutputFile(self._outputFileName) + cbt.setTag("score", None) + cbt.setThreshold(20) + cbt.setOperation("diff") + cbt.setMaxDistance(200) + cbt.run() + self.assertTrue(Utils.diff(self._outputFileName, self._expOutputFileName)) + + +if __name__ == "__main__": + unittest.main()