annotate commons/core/parsing/test/Test_FastaParser.py @ 31:0ab839023fe4

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