6
|
1 import unittest
|
|
2 import time
|
|
3 from SMART.Java.Python.ncList.test.MockFindOverlaps_randomExample import *
|
|
4 from SMART.Java.Python.FindOverlapsOptim import FindOverlapsOptim
|
|
5
|
|
6 class Test_F_FindOverlaps_randomExample(unittest.TestCase):
|
|
7
|
|
8 def setUp(self):
|
|
9 self._output_optim = 'output_optim.gff3'
|
|
10
|
|
11 def test_creatRandomExampleWithMOverlaps(self):
|
|
12 inputRefGff3FileName = 'refMOverlaps.gff3'
|
|
13 inputQueryGff3FileName = 'queryMOverlaps.gff3'
|
|
14 outputDataName = 'timeResult.dat'
|
|
15 fTime = open(outputDataName, 'w')
|
|
16 fTime.write('NbRef\tNbQuery\tNbOverlap\ttime\n')
|
|
17 numberOfRefReads = 1000
|
|
18 chromSize = 100000
|
|
19 while numberOfRefReads <= 1000:
|
|
20 numberOfQReads = 1000
|
|
21 while numberOfQReads <= 1000:
|
|
22 print 'ref size = %d, query size = %d' %(numberOfRefReads, numberOfQReads)
|
|
23 iMFOR_ref = MockFindOverlaps_randomExample(inputRefGff3FileName, 'ref', numberOfRefReads, chromSize)
|
|
24 iMFOR_ref.write()
|
|
25 iMFOR_query = MockFindOverlaps_randomExample(inputQueryGff3FileName,'q', numberOfQReads, chromSize)
|
|
26 iMFOR_query.write()
|
|
27 iFOO = FindOverlapsOptim(0)
|
|
28 iFOO.setRefFileName(inputRefGff3FileName, "gff3")
|
|
29 iFOO.setQueryFileName(inputQueryGff3FileName, "gff3")
|
|
30 iFOO.setOutputFileName(self._output_optim)
|
|
31 iFOO.prepareIntermediateFiles()
|
|
32 iFOO.createNCLists()
|
|
33
|
|
34 startTime_optim = time.time()
|
|
35 iFOO.compare()
|
|
36 endTime_optim = time.time()
|
|
37 totalTime_optim = endTime_optim - startTime_optim
|
|
38 print 'we took %s second.' % (totalTime_optim)
|
|
39 nbOverlap = iFOO._nbOverlaps
|
|
40 iFOO.close()
|
|
41 fTime.write('%d\t%d\t%d\t%.2f\n' % (numberOfRefReads, numberOfQReads, nbOverlap, totalTime_optim))
|
|
42 numberOfQReads *= 10
|
|
43 numberOfRefReads *= 10
|
|
44 fTime.close()
|
|
45 os.remove(inputQueryGff3FileName)
|
|
46 os.remove(inputRefGff3FileName)
|
|
47 os.remove(self._output_optim)
|
|
48
|
|
49
|
|
50 if __name__ == "__main__":
|
|
51 unittest.main()
|