Mercurial > repos > yufei-luo > s_mart
diff SMART/Java/Python/test/Test_F_compareOverlapping.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 (2013-04-29) |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/SMART/Java/Python/test/Test_F_compareOverlapping.py Mon Apr 29 03:20:15 2013 -0400 @@ -0,0 +1,199 @@ +import unittest +import os, os.path +from SMART.Java.Python.misc import Utils + +SMART_PATH = os.environ["REPET_PATH"] + "/SMART" + +class Test_F_compareOverlapping(unittest.TestCase): + + def setUp(self): + self._inputFileQuery = "inputFileTest1.bed" + self._inputFileReference = "inputFileTest2.bed" + self._inputFileName3 = "inputFileTest3.bed" + self._expOutputFileName = "expOutput.gff3" + self._outputFileName = "output.gff3" + self._writeInputFileQuery() + self._writeInputFileRefence() + self._writeInputFile3() + + def tearDown(self): + for fileName in (self._inputFileQuery, self._inputFileReference, self._inputFileName3, self._expOutputFileName, self._outputFileName): + if os.path.exists(fileName): + os.remove(fileName) + + def test_runAsScript_withoutOption(self): + self._writeOutputFile_withoutOption(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_optionNFirstNucleotide(self): + self._writeOutputFile_NFirstNucleotide(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -S 200 -s 200 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_optionNLastNucleotide(self): + self._writeOutputFile_NLastNucleotide(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -U 200 -u 200 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_option_5PrimeExtension(self): + self._writeOutputFile_5PrimeExtension(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -E 110 -e 110 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_option_3PrimeExtension(self): + self._writeOutputFile_3PrimeExtension(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -N 110 -n 110 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_colinear(self): + self._writeOutputFile_colinear(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -c -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_antisense(self): + self._writeOutputFile_antisense(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -a -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_minOverlap(self): + self._writeOutputFile_minOverlap(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -m 51 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileName3, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_pcOverlap(self): + self._writeOutputFile_pcOverlap(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -p 60 -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileName3, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_included(self): + self._writeOutputFile_included(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -k -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_including(self): + self._writeOutputFile_including(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -K -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_includeNotOverlap(self): + self._writeOutputFile_includeNotOverlap(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -O -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def test_runAsScript_exclude(self): + self._writeOutputFile_exclude(self._expOutputFileName) + os.system("python %s/Java/Python/CompareOverlapping.py -i %s -f bed -j %s -g bed -o %s -x -v 0" % (SMART_PATH, self._inputFileQuery, self._inputFileReference, self._outputFileName)) + self.assertTrue(Utils.diff(self._expOutputFileName, self._outputFileName)) + + def _writeInputFileQuery(self): + f = open(self._inputFileQuery, "w") + f.write("arm_X\t1000\t2000\ttest1.1\t1000\t+\t1000\t2000\t0\t1\t1000,\t0,\n") + f.write("arm_X\t1000\t2000\ttest1.2\t1000\t-\t1000\t2000\t0\t1\t1000,\t0,\n") + f.write("arm_X\t100\t200\ttest1.3\t1000\t+\t100\t200\t0\t1\t100,\t0,\n") + f.write("arm_X\t100\t3200\ttest1.4\t1000\t+\t100\t3200\t0\t1\t3100,\t0,\n") + f.close() + + def _writeInputFileRefence(self): + f = open(self._inputFileReference, "w") + f.write("arm_X\t1000\t2000\ttest2.1\t1000\t+\t1000\t2000\t0\t1\t1000,\t0,\n") + f.close() + + def _writeInputFile3(self): + f = open(self._inputFileName3, "w") + f.write("arm_X\t1000\t2000\ttest2.1\t1000\t+\t1000\t2000\t0\t1\t1000,\t0,\n") + f.write("arm_X\t250\t350\ttest2.2\t1000\t+\t250\t350\t0\t1\t100,\t0,\n") + f.write("arm_X\t150\t250\ttest2.3\t1000\t+\t150\t250\t0\t1\t100,\t0,\n") + f.close() + + def _writeOutputFile_withoutOption(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_NFirstNucleotide(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t1000\t1199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.close() + + def _writeOutputFile_NLastNucleotide(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t1800\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.close() + + def _writeOutputFile_5PrimeExtension(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t0\t3199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t890\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t2109\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_3PrimeExtension(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3309\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t2109\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t890\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_colinear(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.close() + + def _writeOutputFile_antisense(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_minOverlap(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3199\t.\t+\t.\toverlapWith=test2.3,test2.2,test2.1;nbOverlaps=3.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_pcOverlap(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_includeNotOverlap(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t100\t199\t.\t+\t.\tnbOverlaps=0;ID=test1.3;Name=test1.3\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_exclude(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t199\t.\t+\t.\tID=test1.3;Name=test1.3\n") + f.close() + + def _writeOutputFile_included(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeOutputFile_including(self, outputFileName): + f = open(outputFileName, "w") + f.write("arm_X\tS-MART\ttranscript\t100\t3199\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.4;Name=test1.4\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t+\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.1;Name=test1.1\n") + f.write("arm_X\tS-MART\ttranscript\t1000\t1999\t.\t-\t.\toverlapWith=test2.1;nbOverlaps=1.000000;ID=test1.2;Name=test1.2\n") + f.close() + + def _writeInputFileQuery_withExon(self): + f = open(self._inputFileQuery, "w") + f.write("arm_X\t1000\t2000\ttest1.1\t1000\t+\t1000\t2000\t0\t1\t1000,\t0,\n") + f.write("arm_X\t1000\t2000\ttest1.2\t1000\t-\t1000\t2000\t0\t1\t1000,\t0,\n") + f.write("arm_X\t100\t200\ttest1.3\t1000\t+\t100\t200\t0\t1\t100,\t0,\n") + f.write("arm_X\t100\t3200\ttest1.4\t1000\t+\t100\t3200\t0\t2\t100,100,\t0,3000,\n") + f.close() + +if __name__ == "__main__": + unittest.main()