Mercurial > repos > yufei-luo > s_mart
diff SMART/Java/Python/test/Test_F_getRandomRegions.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_getRandomRegions.py Mon Apr 29 03:20:15 2013 -0400 @@ -0,0 +1,66 @@ +import unittest +import os +from commons.core.parsing.GffParser import GffParser +from SMART.Java.Python.getRandomRegions import RandomRegionsGenerator + +MIN_SIZE = 36 +MAX_SIZE = 100 +CHR = "chr1" +CHR_SIZE = 1000000 +NB_READS = 1000 + +class Test_F_getRandomRegions(unittest.TestCase): + + def setUp(self): + self._outputFileName = 'output.gff3' + + def tearDown(self): + for fileName in [self._outputFileName]: + if os.path.exists(fileName): + os.remove(fileName) + + def test_simple(self): + iRR = RandomRegionsGenerator(0) + iRR.setMinSize(MIN_SIZE) + iRR.setMaxSize(MAX_SIZE) + iRR.setGenomeSize(CHR_SIZE) + iRR.setChromosomeName(CHR) + iRR.setStrands(False) + iRR.setNumber(NB_READS) + iRR.setOutputFile(self._outputFileName) + iRR.run() + parser = GffParser(self._outputFileName, 0) + starts = set() + self.assertTrue(parser.getNbTranscripts(), CHR_SIZE) + for transcript in parser.getIterator(): + start = transcript.getStart() + end = transcript.getEnd() + size = transcript.getSize() + chromosome = transcript.getChromosome() + strand = transcript.getDirection() + self.assertTrue(start not in starts) + self.assertTrue(start >= 1) + self.assertTrue(end <= CHR_SIZE) + self.assertEquals(chromosome, CHR) + self.assertEquals(strand, 1) + starts.add(start) + + def test_both_strands(self): + iRR = RandomRegionsGenerator(0) + iRR.setMinSize(MIN_SIZE) + iRR.setMaxSize(MAX_SIZE) + iRR.setGenomeSize(CHR_SIZE) + iRR.setChromosomeName(CHR) + iRR.setStrands(True) + iRR.setNumber(NB_READS) + iRR.setOutputFile(self._outputFileName) + iRR.run() + parser = GffParser(self._outputFileName, 0) + strands = set() + for transcript in parser.getIterator(): + strands.add(transcript.getDirection()) + self.assertTrue(1 in strands) + self.assertTrue(-1 in strands) + +if __name__ == "__main__": + unittest.main()