Mercurial > repos > yufei-luo > s_mart
comparison SMART/Java/Python/test/Test_F_mapperAnalyzer.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, glob | |
| 3 from SMART.Java.Python.mapperAnalyzer import MapperAnalyzer | |
| 4 from commons.core.parsing.GffParser import GffParser | |
| 5 | |
| 6 class Test_F_mapperAnalyzer(unittest.TestCase): | |
| 7 | |
| 8 def setUp(self): | |
| 9 self.readsFileName = "inputFile.fastq" | |
| 10 self.mappingFileName = "inputFile.sam" | |
| 11 self.outputFileName = "outputFile.gff3" | |
| 12 | |
| 13 def tearDown(self): | |
| 14 for fileRoot in (self.readsFileName, self.mappingFileName, self.outputFileName): | |
| 15 for file in glob.glob("%s*" % (fileRoot)): | |
| 16 os.remove(file) | |
| 17 os.system("rm tmpNames_* tmpSequences_* smartdb*") | |
| 18 | |
| 19 def test_run_simple(self): | |
| 20 handle = open(self.readsFileName, "w") | |
| 21 handle.write("@read1\n") | |
| 22 handle.write("AAAAAAAAAAAAAAAAAAAA\n") | |
| 23 handle.write("+\n") | |
| 24 handle.write("AAAAAAAAAAAAAAAAAAAA\n") | |
| 25 handle.write("@read2\n") | |
| 26 handle.write("CCCCCCCCCCCCCCCCCCCC\n") | |
| 27 handle.write("+\n") | |
| 28 handle.write("AAAAAAAAAAAAAAAAAAAA\n") | |
| 29 handle.close() | |
| 30 handle = open(self.mappingFileName, "w") | |
| 31 handle.write("read1\t0\tchr1\t1\t30\t20M\t*\t0\t0\tAAAAAAAAAAAAAAAAAAAA\tAAAAAAAAAAAAAAAAAAAA\tNM:i:0\n") | |
| 32 handle.write("read2\t0\tchr2\t1\t30\t20M\t*\t0\t0\tCCCCCCCCCCCCCCCCCCCC\tAAAAAAAAAAAAAAAAAAAA\tNM:i:0\n") | |
| 33 handle.write("read2\t0\tchr3\t1\t30\t20M\t*\t0\t0\tCCCCCCCCCCCCCCCCCCCC\tAAAAAAAAAAAAAAAAAAAA\tNM:i:0\n") | |
| 34 handle.close() | |
| 35 analyzer = MapperAnalyzer(0) | |
| 36 analyzer.setMappingFile(self.mappingFileName, "sam") | |
| 37 analyzer.setSequenceFile(self.readsFileName, "fastq") | |
| 38 analyzer.setOutputFile(self.outputFileName, "S-MART") | |
| 39 analyzer.setMaxMappings(1) | |
| 40 analyzer.mergeExons(True) | |
| 41 analyzer.analyze() | |
| 42 | |
| 43 parser = GffParser(self.outputFileName) | |
| 44 self.assertEqual(parser.getNbTranscripts(), 1) | |
| 45 for transcript in parser.getIterator(): | |
| 46 self.assertEqual(transcript.getName(), "read1") | |
| 47 self.assertEqual(transcript.getChromosome(), "chr1") | |
| 48 self.assertEqual(transcript.getStart(), 1) | |
| 49 self.assertEqual(transcript.getEnd(), 20) | |
| 50 self.assertEqual(transcript.getDirection(), 1) | |
| 51 | |
| 52 | |
| 53 if __name__ == "__main__": | |
| 54 unittest.main() | |
| 55 |
