annotate commons/core/coord/test/Test_F_ConvCoord.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
1 from commons.core.utils.FileUtils import FileUtils
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 from commons.core.sql.DbFactory import DbFactory
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3 from commons.core.coord.ConvCoord import ConvCoord
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4 import time
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 import subprocess
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6 import os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7 import unittest
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 class Test_F_ConvCoord(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 def setUp( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 self._i = ConvCoord()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13 self._uniqId = "%s_%s" % ( time.strftime("%Y%m%d%H%M%S") , os.getpid() )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 self._inData = "dummyInData_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 self._mapData = "dummyMapData_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 self._expData = "dummyExpData_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 self._obsData = "dummyObsData_%s" % ( self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 self._iDb = DbFactory.createInstance()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 self._i._iDb = self._iDb
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 def tearDown( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 self._iDb.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 def test_run_as_script_alignFile_query( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 configFile = "%s/dummyConfigFile_%s" % ( os.getcwd(), self._uniqId )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26 configF = open( configFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 configF.write( "[repet_env]\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 configF.write( "repet_host: %s\n" % ( os.environ["REPET_HOST"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 configF.write( "repet_user: %s\n" % ( os.environ["REPET_USER"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 configF.write( "repet_pw: %s\n" % ( os.environ["REPET_PW"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 configF.write( "repet_db: %s\n" % ( os.environ["REPET_DB"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 configF.write( "repet_port: %s\n" % ( os.environ["REPET_PORT"] ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 configF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 self._writeMapFile( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 linesToProcess = [ "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39 "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 FileUtils.writeLineListInFile( self._inData, linesToProcess )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 refLines = [ "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45 "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49 FileUtils.writeLineListInFile( self._expData, refLines )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51 cmd = "ConvCoord.py"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52 cmd += " -i %s" % ( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 cmd += " -f %s" % ( "align" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 cmd += " -c %s" % ( "q" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 cmd += " -m %s" % ( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 cmd += " -o %s" % ( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 cmd += " -C %s" % ( configFile )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 process = subprocess.Popen(cmd, shell = True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59 process.communicate()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 os.remove( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 os.remove(configFile)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 os.remove( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66 os.remove( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 os.remove( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 def test_run_as_script_alignFile_queryAndSubject( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 self._writeMapFile( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 linesToProcess = [ "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "chunk3" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72 "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "chunk1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "chunk1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "chunk1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # doublon of previous line
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 FileUtils.writeLineListInFile( self._inData, linesToProcess )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 refLines = [ "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "chromosome2" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "chromosome1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "chromosome1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84 FileUtils.writeLineListInFile( self._expData, refLines )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 cmd = "ConvCoord.py"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 cmd += " -i %s" % ( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 cmd += " -f %s" % ( "align" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 cmd += " -c %s" % ( "qs" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90 cmd += " -m %s" % ( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 cmd += " -o %s" % ( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 process = subprocess.Popen(cmd, shell = True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 process.communicate()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 os.remove( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 self._iDb.dropTable( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 os.remove( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 os.remove( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 os.remove( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103 def test_run_as_script_pathTable_query( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 self._writeMapFile( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 self._iDb.createTable( self._mapData, "map", self._mapData, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106 os.remove( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 linesToProcess = [ "1" + "\t" + "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 "2" + "\t" + "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 "3" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 "4" + "\t" + "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 "5" + "\t" + "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 FileUtils.writeLineListInFile( self._inData, linesToProcess )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 self._iDb.createTable( self._inData, "path", self._inData, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 os.remove( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 refLines = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119 "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 "4" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 "5" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123 FileUtils.writeLineListInFile( self._expData, refLines )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 cmd = "ConvCoord.py"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 cmd += " -i %s" % ( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 cmd += " -f %s" % ( "path" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 cmd += " -c %s" % ( "q" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 cmd += " -m %s" % ( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 cmd += " -o %s" % ( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 process = subprocess.Popen(cmd, shell = True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 process.communicate()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 self._iDb.exportDataToFile( self._obsData, self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137 os.remove( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 os.remove( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 self._iDb.dropTable( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 self._iDb.dropTable( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 self._iDb.dropTable( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142 self._iDb.dropTable( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 def test_run_as_script_pathTable_query_noMergeChunkOverlaps( self ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 self._writeMapFile( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 self._iDb.createTable( self._mapData, "map", self._mapData, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 os.remove( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149 linesToProcess = [ "1" + "\t" + "chunk1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.800000" + "\n", # hit within the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 "2" + "\t" + "chunk1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 1st chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 "3" + "\t" + "chunk2" + "\t" + "2" + "\t" + "9" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit included within the chunk overlap, on the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 "4" + "\t" + "chunk2" + "\t" + "51" + "\t" + "58" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n", # hit inside the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 "5" + "\t" + "chunk2" + "\t" + "51" + "\t" + "70" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.800000" + "\n" # subject on reverse strand
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 FileUtils.writeLineListInFile( self._inData, linesToProcess )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 self._iDb.createTable( self._inData, "path", self._inData, True )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 os.remove( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 refLines = [ "1" + "\t" + "chromosome1" + "\t" + "21" + "\t" + "37" + "\t" + "TE1" + "\t" + "1" + "\t" + "27" + "\t" + "8e-58" + "\t" + "30" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 "2" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 "3" + "\t" + "chromosome1" + "\t" + "92" + "\t" + "99" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n", # hit included within the chunk overlap, on the 2nd chunk
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 "4" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "148" + "\t" + "TE1" + "\t" + "1" + "\t" + "8" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n",
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 "5" + "\t" + "chromosome1" + "\t" + "141" + "\t" + "160" + "\t" + "TE1" + "\t" + "8" + "\t" + "1" + "\t" + "8e-58" + "\t" + "11" + "\t" + "97.8" + "\n"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 ]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165 FileUtils.writeLineListInFile( self._expData, refLines )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 cmd = "ConvCoord.py"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 cmd += " -i %s" % ( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169 cmd += " -f %s" % ( "path" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 cmd += " -c %s" % ( "q" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 cmd += " -m %s" % ( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 cmd += " -M %s" % ( "no" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173 cmd += " -o %s" % ( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 process = subprocess.Popen(cmd, shell = True)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 process.communicate()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 self._iDb.exportDataToFile( self._obsData, self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178 self.assertTrue( FileUtils.are2FilesIdentical( self._expData, self._obsData ) )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 os.remove( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181 os.remove( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 self._iDb.dropTable( self._mapData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 self._iDb.dropTable( self._inData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 self._iDb.dropTable( self._expData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 self._iDb.dropTable( self._obsData )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 def test_run(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 inFileName = "DmelChr4_chk.align.not_over.filtered"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189 expFileName = "%s/Tools/DmelChr4_chr.align.not_over.filtered" % os.environ["REPET_DATA"]
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 obsFileName = "obs.align"
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 os.symlink("%s/Tools/%s" % (os.environ["REPET_DATA"], inFileName), inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 iConvCoord = ConvCoord()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193 iConvCoord.setInputData(inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 iConvCoord.setMapData("%s/Tools/DmelChr4_chunks.map" % os.environ["REPET_DATA"])
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 iConvCoord.setCoordinatesToConvert("qs")
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 iConvCoord.setMergeChunkOverlaps(False)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 iConvCoord.setOutputData(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198 iConvCoord.run()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 self.assertTrue(FileUtils.are2FilesIdentical(expFileName, obsFileName))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 os.remove(inFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 os.remove(obsFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205 def _writeMapFile( self, mapFile ):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 mapF = open( mapFile, "w" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 mapF.write( "chunk1\tchromosome1\t1\t100\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 mapF.write( "chunk2\tchromosome1\t91\t190\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209 mapF.write( "chunk3\tchromosome2\t1\t100\n" )
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 mapF.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213 unittest.main()