6
|
1 from commons.core.parsing.FastaParser import FastaParser
|
|
2 from SMART.Java.Python.structure.Sequence import Sequence
|
|
3 import unittest
|
|
4
|
|
5 class Test_FastaParser(unittest.TestCase):
|
|
6
|
|
7 def test_getSubsequence(self):
|
|
8 fastaFile = "myFastaInput.fasta"
|
|
9 self._writeInputFastaFile(fastaFile)
|
|
10 parser = FastaParser(fastaFile)
|
|
11 chromosome = "1"
|
|
12 expSeq = Sequence("1:1-20 (1)", "CCTAAGCCATTGCTTGGTGA")
|
|
13 obsSeq = parser.getSubSequence(chromosome, 1, 20, 1)
|
|
14 self.assertEquals(expSeq, obsSeq)
|
|
15
|
|
16 def test_getSubsequence_long_sequence(self):
|
|
17 fastaFile = "myFastaInput.fasta"
|
|
18 self._writeInputFastaFile(fastaFile)
|
|
19 parser = FastaParser(fastaFile)
|
|
20 chromosome = "2"
|
|
21 expSeq = Sequence("subsequence", "TGAAGA")
|
|
22 obsSeq = parser.getSubSequence(chromosome, 55, 60, 1, "subsequence")
|
|
23 self.assertEquals(expSeq, obsSeq)
|
|
24
|
|
25 def test_getSubsequence_long_sequence_inside_and_outside(self):
|
|
26 fastaFile = "myFastaInput.fasta"
|
|
27 self._writeInputFastaFile(fastaFile)
|
|
28 parser = FastaParser(fastaFile)
|
|
29 chromosome = "2"
|
|
30 expSeq = Sequence("subsequence", "TTA")
|
|
31 obsSeq = parser.getSubSequence(chromosome, 137, 151, 1, "subsequence")
|
|
32 self.assertEquals(expSeq, obsSeq)
|
|
33
|
|
34 def test_getSubsequence_long_sequence_last_letter(self):
|
|
35 fastaFile = "myFastaInput.fasta"
|
|
36 self._writeInputFastaFile(fastaFile)
|
|
37 parser = FastaParser(fastaFile)
|
|
38 chromosome = "2"
|
|
39 expSeq = Sequence("subsequence", "A")
|
|
40 obsSeq = parser.getSubSequence(chromosome, 139, 151, 1, "subsequence")
|
|
41 self.assertEquals(expSeq, obsSeq)
|
|
42
|
|
43 def test_getSubsequence_long_sequence_totally_outside(self):
|
|
44 fastaFile = "myFastaInput.fasta"
|
|
45 self._writeInputFastaFile(fastaFile)
|
|
46 parser = FastaParser(fastaFile)
|
|
47 chromosome = "2"
|
|
48 isSysExit = False
|
|
49 try:
|
|
50 parser.getSubSequence(chromosome, 140, 151, 1, "subsequence")
|
|
51 except:
|
|
52 isSysExit = True
|
|
53 self.assertTrue(isSysExit)
|
|
54
|
|
55 def test_setTags(self):
|
|
56 fastaFile = "myFastaInput.fasta"
|
|
57 self._writeInputFastaFile(fastaFile)
|
|
58 parser = FastaParser(fastaFile)
|
|
59 parser.setTags()
|
|
60 expTags = {"1" : 0,
|
|
61 "2" : 54}
|
|
62 obsTags = parser.getTags()
|
|
63 self.assertEquals(expTags, obsTags)
|
|
64
|
|
65 def _writeInputFastaFile(self, fastaFile):
|
|
66 myHandler = open(fastaFile, 'w')
|
|
67 myHandler.write(">1\n")
|
|
68 myHandler.write("CCTAAGCCATTGCTTGGTGATTATGAAGGCAGTAGTCAAACCTCCACAAT\n")
|
|
69 myHandler.write(">2\n")
|
|
70 myHandler.write("TATGAGATCAACAGGGGCTTTGCTAGCCTGAGGGCGATTGGTCAAGGCCG\n")
|
|
71 myHandler.write("GACCTGAAGAAATTCCTGATTGTACGTTCTGGTTACTCTTCAATTTGGGC\n")
|
|
72 myHandler.write("TGCTTAATTATCTCCTCAATTTCAATTTGGCCATGCTTA\n")
|
|
73
|
|
74 if __name__ == "__main__":
|
|
75 unittest.main()
|