Mercurial > repos > yufei-luo > s_mart
comparison commons/launcher/tests/Test_F_LaunchMummerPlot.py @ 18:94ab73e8a190
Uploaded
| author | m-zytnicki |
|---|---|
| date | Mon, 29 Apr 2013 03:20:15 -0400 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| 17:b0e8584489e6 | 18:94ab73e8a190 |
|---|---|
| 1 import unittest | |
| 2 import os | |
| 3 from commons.core.utils.FileUtils import FileUtils | |
| 4 from commons.launcher.LaunchMummerPlot import LaunchMummerPlot | |
| 5 | |
| 6 class Test_F_LaunchMummerPlot(unittest.TestCase): | |
| 7 | |
| 8 def setUp(self): | |
| 9 self._queryFastaFileName = "query.fa" | |
| 10 self._refFastaFileName = "ref.fa" | |
| 11 self._writeInputFastaFiles() | |
| 12 | |
| 13 self._inputDeltaFileName = "inputNucmer.delta" | |
| 14 self._writeInputDeltaFileName() | |
| 15 | |
| 16 self._expGpFileName = "expMummerPlot.gp" | |
| 17 self._obsGpFileName = "obsMummerPlot.gp" | |
| 18 self._obsPngFileName = "obsMummerPlot.png" | |
| 19 | |
| 20 def tearDown(self): | |
| 21 try: | |
| 22 os.remove(self._queryFastaFileName) | |
| 23 except:pass | |
| 24 try: | |
| 25 os.remove(self._refFastaFileName) | |
| 26 except:pass | |
| 27 try: | |
| 28 os.remove(self._inputDeltaFileName) | |
| 29 except:pass | |
| 30 try: | |
| 31 os.remove(self._expGpFileName) | |
| 32 except:pass | |
| 33 try: | |
| 34 os.remove(self._obsGpFileName) | |
| 35 except:pass | |
| 36 try: | |
| 37 os.remove(self._obsPngFileName) | |
| 38 except:pass | |
| 39 | |
| 40 | |
| 41 def test_run(self): | |
| 42 self._writeExpGpFile() | |
| 43 ilaunchMummerPlot = LaunchMummerPlot(self._inputDeltaFileName, self._refFastaFileName, self._queryFastaFileName,"obsMummerPlot",fat=True, filter=True, clean=True, verbosity=1) | |
| 44 ilaunchMummerPlot.run() | |
| 45 self.assertTrue(FileUtils.are2FilesIdentical(self._expGpFileName, self._obsGpFileName)) | |
| 46 | |
| 47 def test_run_as_script(self): | |
| 48 self._writeExpGpFile() | |
| 49 cmd = 'LaunchMummerPlot.py --input %s --Qfile %s --Rfile %s --prefix %s --fat --filter --clean' % (self._inputDeltaFileName, self._refFastaFileName, self._queryFastaFileName, "obsMummerPlot") | |
| 50 os.system(cmd) | |
| 51 self.assertTrue(FileUtils.are2FilesIdentical(self._expGpFileName, self._obsGpFileName)) | |
| 52 | |
| 53 def _writeInputFastaFiles(self): | |
| 54 InputFile = open(self._queryFastaFileName, 'w') | |
| 55 InputFile.write('>Bovc-tA2:classI:SINE:SINE2/tRNA\n') | |
| 56 InputFile.write('GGGCTTCCCTGGTAGCTCAGCTGGTAAAGAATCCGCCTGCAATGCAGGAGACCCCGGTTC\n') | |
| 57 InputFile.write('GATTCCTGGGTCGGGAAGATCCCCTGGAGAAGGGATAGGCTACCCACTCCAGTATTCTTG\n') | |
| 58 InputFile.write('GGCTTCCCTGGTGGCTCAGACGGTAAAGAATCCGCCTGCAATGCGGGAGACCTGGGTTCG\n') | |
| 59 InputFile.write('ATCCCTGGGTTGGGAAGATCCCCTGGAGGAGGGCATGGCAACCCACTCCAGTATTCTTGC\n') | |
| 60 InputFile.write('CTGGAGAATCCCCATGGACAGAGGAGCCTGGCGGGCTACAGTCCATGGGGTCGCAAAGAG\n') | |
| 61 InputFile.write('TCGGACACGACTGAGCGACTAAGCACAGCACAG\n') | |
| 62 InputFile.write('>SUSINE2:classI:SINE:SINE2/tRNA\n') | |
| 63 InputFile.write('GGGAGTTCTCTGATGGCCTAGCGGGTTGAGGCTCCTGCGTTCTCACCGCTGTGGCTCTGG\n') | |
| 64 InputFile.write('TTGCTGCTGTGCGGCGTAGGTTCAATCCCTGGCCCAGGAATTCCCACATACTGCCTGTGT\n') | |
| 65 InputFile.write('GGCAAAAAAGAAAAAAAAAAAAAATACAAAAAAAAAAAAAACAAGAGAGAACCTGAAATA\n') | |
| 66 InputFile.write('AACGTTGCAACTCTCATTNAAAAAAAAAAA\n') | |
| 67 InputFile.write('>SINE1A_SS:classI:SINE:SINE2/tRNA\n') | |
| 68 InputFile.write('GGGAGTTCTCTTGTGGCACAGCAGGTTAAGGATCCAGCGTTGTCACTGCAGTGGCTTGGG\n') | |
| 69 InputFile.write('TCGCTGCTGTGGCACGGGTTCAATCCCTGGCCCAGGAACTTCCACATGCCACGGGCATGG\n') | |
| 70 InputFile.write('CCAAAAAAAAA\n') | |
| 71 InputFile.write('>SINE2-1_Pca:classI:SINE:SINE2/tRNA\n') | |
| 72 InputFile.write('GGGCAGTGGTGGTTCAGTGGTAGAATTCTTGCCTTCCATGCGGGAGACCCGGGTTCGATT\n') | |
| 73 InputFile.write('CCCGGCCAGTGCACCTCATGCGCAGCCACCACCCGTCTGTCAGTGGAGGCTTGCGTGTTG\n') | |
| 74 InputFile.write('CTGTGATGCTGAACAGGTTTCAGCGGAGCTTCCAGACTAAGACGGACTAGGAAGAAAGGC\n') | |
| 75 InputFile.write('CTGGCGATCTACTTCTGAAAATCAGCCAATGAAAACCCTGTGGATCACAGTGGTCTGATC\n') | |
| 76 InputFile.write('TGCAACTGATCATGGGGATGGCGCAGGACCGGGCAGCGTTTTGTTCTATTGTGCATGGGG\n') | |
| 77 InputFile.write('TCGCCATGAGTCGGGCCGACTCGATGGCAGCTAACAACAA\n') | |
| 78 InputFile.write('>SINE_FR2:classI:SINE:?\n') | |
| 79 InputFile.write('GGGCGGCACGGTGGTGTGGTGGTTAGCACTGTTGCCTCACAGCAAGAAGGCCCCGGGTTC\n') | |
| 80 InputFile.write('GATCCCCGGTTGGGACTGAGGCTGGGGACTTTCTGTGTGGAGTTTGCATGTTCTCCCTGT\n') | |
| 81 InputFile.write('GCCTGCGTGGGTTCTCTCCGGGTACTCCGGCTTCCTCCCACAGTCCAAAGACATGCATGA\n') | |
| 82 InputFile.write('TTGGGGATTAGGCTAATTGGAAACTCTAAAATTGCCCGTAGGTGTGAGTGTGAGAGAGAA\n') | |
| 83 InputFile.write('TGGTTGTTTGTCTATATGTGTTAGCCCTGCGATTGACTGGCGTCCAGTCCAGGGTGTACC\n') | |
| 84 InputFile.write('CTGCCTCCGCCCATTGTGCTGGGATAGGCTCCAGTCCCCCCGCGACCCTCAGTGGAGGAA\n') | |
| 85 InputFile.write('CAAGCGGTAGAAAGTGAGTGAGTGAGTGA\n') | |
| 86 InputFile.write('>SINEC1B2_CF:classI:SINE:?\n') | |
| 87 InputFile.write('GGGCAGCCTGGGTGGCTCAGCGGTTTAGCGCCTGCCTTTGGCCCAGGGCGTGATCCTGGA\n') | |
| 88 InputFile.write('GACCCGGGATCGAGTCCCACATCGGGCTCCCTGCATGGAGCCTGCTTCTCCCTCTGCCTG\n') | |
| 89 InputFile.write('TGTCTCTGCCTCTCTCTCTCTCTGTGTCTCTCATGAATAAATAA\n') | |
| 90 InputFile.write('>ALPINE1:classI:SINE:SINE2/tRNA\n') | |
| 91 InputFile.write('GGGGAGGGTATAGCTCAGTGGTAGAGCGCATGCTTAGCATGCACGAGGTCCTGGGTTCAA\n') | |
| 92 InputFile.write('TCCCCAGTACCTCCATTAAAAATAAATAAATAAATAAACCTAATTACCTCCCCCACCAAA\n') | |
| 93 InputFile.write('AAAAAAA\n') | |
| 94 InputFile.close() | |
| 95 | |
| 96 InputFile = open(self._refFastaFileName, 'w') | |
| 97 InputFile.write('>SINE_FR2:classI:SINE:?\n') | |
| 98 InputFile.write('GGGCGGCACGGTGGTGTGGTGGTTAGCACTGTTGCCTCACAGCAAGAAGGCCCCGGGTTC\n') | |
| 99 InputFile.write('GATCCCCGGTTGGGACTGAGGCTGGGGACTTTCTGTGTGGAGTTTGCATGTTCTCCCTGT\n') | |
| 100 InputFile.write('GCCTGCGTGGGTTCTCTCCGGGTACTCCGGCTTCCTCCCACAGTCCAAAGACATGCATGA\n') | |
| 101 InputFile.write('TTGGGGATTAGGCTAATTGGAAACTCTAAAATTGCCCGTAGGTGTGAGTGTGAGAGAGAA\n') | |
| 102 InputFile.write('TGGTTGTTTGTCTATATGTGTTAGCCCTGCGATTGACTGGCGTCCAGTCCAGGGTGTACC\n') | |
| 103 InputFile.write('CTGCCTCCGCCCATTGTGCTGGGATAGGCTCCAGTCCCCCCG\n') | |
| 104 InputFile.write('CAAGCGGTAGAAAGTGAGTGAGTGAGTGA\n') | |
| 105 InputFile.write('>SINEC1B2_CF:classI:SINE:?\n') | |
| 106 InputFile.write('GGGCAGCCTGGGTGGCTCAGCGGTTTAGCGCCTGCCTTTGGCCCAGGGCGTGATCCTGGA\n') | |
| 107 InputFile.write('GACCCGGGATCGAGTCCCACATCGGGCTCCCTGCATGGAGCCTGCTTCTCCCTCTGCCTG\n') | |
| 108 InputFile.write('TGTCTCTGCCTCTCTCTCTCTCTGTGTCTCTCATGAATAAA\n') | |
| 109 InputFile.close() | |
| 110 | |
| 111 def _writeExpGpFile(self): | |
| 112 f = open(self._expGpFileName, 'w') | |
| 113 f.write('set terminal png tiny size 800,800\n') | |
| 114 f.write('set output "obsMummerPlot.png"\n') | |
| 115 f.write('set xtics rotate ( \\\n') | |
| 116 f.write(' "SINE_FR2:classI:SINE:?" 1, \\\n') | |
| 117 f.write(' "SINEC1B2_CF:classI:SINE:?" 389, \\\n') | |
| 118 f.write(' "SINE1A_SS:classI:SINE:SINE2/tRNA" 552, \\\n') | |
| 119 f.write(' "SUSINE2:classI:SINE:SINE2/tRNA" 682, \\\n') | |
| 120 f.write(' "Bovc-tA2:classI:SINE:SINE2/tRNA" 891, \\\n') | |
| 121 f.write(' "ALPINE1:classI:SINE:SINE2/tRNA" 1223, \\\n') | |
| 122 f.write(' "SINE2-1_Pca:classI:SINE:SINE2/tRNA" 1349, \\\n') | |
| 123 f.write(' "" 1694 \\\n') | |
| 124 f.write(')\n') | |
| 125 f.write('set ytics ( \\\n') | |
| 126 f.write(' "SINE_FR2:classI:SINE:?" 1, \\\n') | |
| 127 f.write(' "SINEC1B2_CF:classI:SINE:?" 371, \\\n') | |
| 128 f.write(' "" 532 \\\n') | |
| 129 f.write(')\n') | |
| 130 f.write('set size 1,1\n') | |
| 131 f.write('set grid\n') | |
| 132 f.write('unset key\n') | |
| 133 f.write('set border 0\n') | |
| 134 f.write('set tics scale 0\n') | |
| 135 f.write('set xlabel "REF"\n') | |
| 136 f.write('set ylabel "QRY"\n') | |
| 137 f.write('set format "%.0f"\n') | |
| 138 f.write('set mouse format "%.0f"\n') | |
| 139 f.write('set mouse mouseformat "[%.0f, %.0f]"\n') | |
| 140 f.write('set mouse clipboardformat "[%.0f, %.0f]"\n') | |
| 141 f.write('set xrange [1:1694]\n') | |
| 142 f.write('set yrange [1:532]\n') | |
| 143 f.write('set style line 1 lt 1 lw 3 pt 6 ps 1\n') | |
| 144 f.write('set style line 2 lt 3 lw 3 pt 6 ps 1\n') | |
| 145 f.write('set style line 3 lt 2 lw 3 pt 6 ps 1\n') | |
| 146 f.write('plot \\\n') | |
| 147 f.write(' "obsMummerPlot.fplot" title "FWD" w lp ls 1, \\\n') | |
| 148 f.write(' "obsMummerPlot.rplot" title "REV" w lp ls 2\n') | |
| 149 f.write('') | |
| 150 f.close() | |
| 151 | |
| 152 def _writeInputDeltaFileName(self): | |
| 153 f = open(self._inputDeltaFileName, 'w') | |
| 154 f.write("%s %s\n" %(os.path.abspath(self._queryFastaFileName), os.path.abspath(self._refFastaFileName))) | |
| 155 f.write('NUCMER\n') | |
| 156 f.write('>SINE_FR2:classI:SINE:? SINE_FR2:classI:SINE:? 389 371\n') | |
| 157 f.write('1 343 1 343 0 0 0\n') | |
| 158 f.write('0\n') | |
| 159 f.write('>SINEC1B2_CF:classI:SINE:? SINEC1B2_CF:classI:SINE:? 164 161\n') | |
| 160 f.write('1 161 1 161 0 0 0\n') | |
| 161 f.write('0\n') | |
| 162 f.close() | |
| 163 | |
| 164 if __name__ == "__main__": | |
| 165 unittest.main() | |
| 166 |
