annotate commons/core/parsing/test/Test_BlatToGffForBesPaired.py @ 6:769e306b7933

Change the repository level.
author yufei-luo
date Fri, 18 Jan 2013 04:54:14 -0500
parents
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 import unittest, os
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
2 from commons.core.parsing.BlatToGffForBesPaired import BlatToGffForBesPaired
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
3
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
4
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
5 class Test_BlatToGffForBesPaired(unittest.TestCase):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
6
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
7
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
8 def test_convertBlatObjectToGffLine(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
9 blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
10 nbLine = 15
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
11 besFastaFileName = '%s/commons/core/parsing/test/besSequences.fasta' % os.environ['REPET_PATH']
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
12 self._writeBesSequences(besFastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
13 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
14 iBlatToGffForBesPaired._methodName = ''
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
15 iBlatToGffForBesPaired._inputFileFasta = besFastaFileName
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
16 obsGffLine, obsBesName, obsBesSeq, obsBesType = iBlatToGffForBesPaired.convertBlatObjectToGffLine(blatLine, nbLine)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
17 expGffLine = 'chr16\tBlatToGffForBesPaired\tBES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
18 expBesName = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
19 expBesSeq = 'AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
20 expBesType = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
21 self.assertEquals(expGffLine, obsGffLine)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
22 self.assertEquals(expBesName, obsBesName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
23 self.assertEquals(expBesSeq, obsBesSeq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
24 self.assertEquals(expBesType, obsBesType)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
25 os.remove(besFastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
26
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
27 def test_convertBlatObjectToGffLine_with_methodName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
28 blatLine = '315\t20\t0\t0\t3\t10\t2\t9\t+\tMRRE1H001H13FM1\t378\t0\t345\tchr16\t22053297\t21686950\t21687294\t4\t76,185,7,67,\t0,77,263,278,\t21686950,21687026,21687213,21687227,\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
29 nbLine = 15
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
30 besFastaFileName = '%s/commons/core/parsing/test/besSequences.fasta' % os.environ['REPET_PATH']
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
31 self._writeBesSequences(besFastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
32 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
33 iBlatToGffForBesPaired._methodName = 'Test'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
34 iBlatToGffForBesPaired._inputFileFasta = besFastaFileName
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
35 obsGffLine, obsBesName, obsBesSeq, obsBesType = iBlatToGffForBesPaired.convertBlatObjectToGffLine(blatLine, nbLine)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
36 expGffLine = 'chr16\tBlatToGffForBesPaired\tTest:BES\t21686950\t21687294\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=21686950;bes_end=21687294;bes_size=22053297;muscadine_seq=AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
37 expBesName = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
38 expBesSeq = 'AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGCCTAGCTAGCTAGCTAGCTAGCTAGC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
39 expBesType = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
40 self.assertEquals(expGffLine, obsGffLine)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
41 self.assertEquals(expBesName, obsBesName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
42 self.assertEquals(expBesSeq, obsBesSeq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
43 self.assertEquals(expBesType, obsBesType)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
44 os.remove(besFastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
45
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
46 def test_getBesName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
47 col9 = 'ID=machin1;Name=machin1;bes_start=21736364;bes_end=21737069;bes_size=22053297\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
48 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
49 obsBesName = iBlatToGffForBesPaired.getBesName(col9)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
50 expBesName = 'machin1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
51 self.assertEquals(expBesName, obsBesName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
52
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
53 def test_checkBesNames_OK(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
54 besName1 = 'MRRE1H001H13FM8'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
55 besName2 = 'MRRE1H001H13RM2'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
56 line = 10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
57 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
58 self.assertTrue(iBlatToGffForBesPaired.checkBesNames(besName1, besName2, line))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
59
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
60 def test_checkBesNames_NOK(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
61 besName1 = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
62 besName2 = 'TOTORM2'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
63 line = 10
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
64 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
65 self.assertFalse(iBlatToGffForBesPaired.checkBesNames(besName1, besName2, line))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
66
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
67 def test_checkBesPositions_OK1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
68 tBes1 = ('chr16', 25, 150)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
69 tBes2 = ('chr16', 300, 350)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
70 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
71 self.assertTrue(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
72
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
73 def test_checkBesPositions_OK2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
74 tBes1 = ('chr16', 300, 350)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
75 tBes2 = ('chr16', 3, 50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
76 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
77 self.assertTrue(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
78
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
79 def test_checkBesPositions_NOK1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
80 tBes1 = ('chr16', 25, 150)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
81 tBes2 = ('chr14', 300, 350)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
82 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
83 self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
84
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
85 def test_checkBesPositions_NOK2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
86 tBes1 = ('chr16', 25, 300)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
87 tBes2 = ('chr16', 150, 350)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
88 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
89 self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
90
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
91 def test_checkBesPositions_NOK3(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
92 tBes1 = ('chr16', 25, 300)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
93 tBes2 = ('chr16', 1, 50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
94 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
95 self.assertFalse(iBlatToGffForBesPaired.checkBesPositions(tBes1, tBes2))
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
96
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
97 def test_getBacName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
98 besName = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
99 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
100 obsBacName = iBlatToGffForBesPaired.getBacName(besName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
101 expBacName = 'MRRE1H001H13'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
102 self.assertEquals(expBacName, obsBacName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
103
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
104 def test_getBacPositions_case1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
105 tBes1 = ('chr16', 25, 300)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
106 tBes2 = ('chr16', 1, 50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
107 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
108 obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
109 expStart = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
110 expEnd = 300
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
111 self.assertEquals(expStart, obsStart)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
112 self.assertEquals(expEnd, obsEnd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
113
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
114 def test_getBacPositions_case2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
115 tBes1 = ('chr16', 1, 300)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
116 tBes2 = ('chr16', 1000, 50000)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
117 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
118 obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
119 expStart = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
120 expEnd = 50000
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
121 self.assertEquals(expStart, obsStart)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
122 self.assertEquals(expEnd, obsEnd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
123
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
124 def test_getBacPositions_case3(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
125 tBes1 = ('chr16', 300, 25)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
126 tBes2 = ('chr16', 1, 50)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
127 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
128 obsStart, obsEnd = iBlatToGffForBesPaired.getBacPositions(tBes1, tBes2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
129 expStart = 1
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
130 expEnd = 300
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
131 self.assertEquals(expStart, obsStart)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
132 self.assertEquals(expEnd, obsEnd)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
133
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
134 def test_createGffLineForBac(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
135 gffLine1 = 'chr16\tBlatToGffForBesPaired\tBES\t10\t1000\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=10;bes_end=1000;bes_size=991;muscadine_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
136 nameBes1 = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
137 seqBes1 = 'ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
138 typeBes1 = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
139 gffLine2 = 'chr16\tBlatToGffForBesPaired\tBES\t2000\t3000\t.\t+\t.\tID=MRRE1H001H13RM2;Name=MRRE1H001H13RM2;bes_start=2000;bes_end=3000;bes_size=1001;muscadine_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
140 nameBes2 = 'MRRE1H001H13RM2'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
141 seqBes2 = 'CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
142 typeBes2 = 'RM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
143 line = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
144 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
145 iBlatToGffForBesPaired._methodName = ''
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
146 obsGffBac = iBlatToGffForBesPaired.createGffLineForBac(gffLine1, nameBes1, seqBes1, typeBes1, gffLine2, nameBes2, seqBes2, typeBes2, line)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
147 expGffBac = 'chr16\tBlatToGffForBesPaired\tBAC\t10\t3000\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=10;bac_end=3000;bac_size=2991;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG;besRM_name=MRRE1H001H13RM2;muscadine_besRM_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
148 self.assertEquals(expGffBac, obsGffBac)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
149
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
150 def test_createGffLineForBac_with_methodName(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
151 gffLine1 = 'chr16\tBlatToGffForBesPaired\tBES\t10\t1000\t.\t+\t.\tID=MRRE1H001H13FM1;Name=MRRE1H001H13FM1;bes_start=10;bes_end=1000;bes_size=991;muscadine_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
152 nameBes1 = 'MRRE1H001H13FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
153 seqBes1 = 'ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
154 typeBes1 = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
155 gffLine2 = 'chr16\tBlatToGffForBesPaired\tBES\t2000\t3000\t.\t+\t.\tID=MRRE1H001H13RM2;Name=MRRE1H001H13RM2;bes_start=2000;bes_end=3000;bes_size=1001;muscadine_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
156 nameBes2 = 'MRRE1H001H13RM2'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
157 seqBes2 = 'CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
158 typeBes2 = 'RM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
159 line = 2
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
160 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
161 iBlatToGffForBesPaired._methodName = 'Test'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
162 obsGffBac = iBlatToGffForBesPaired.createGffLineForBac(gffLine1, nameBes1, seqBes1, typeBes1, gffLine2, nameBes2, seqBes2, typeBes2, line)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
163 expGffBac = 'chr16\tBlatToGffForBesPaired\tTest:BAC\t10\t3000\t.\t.\t.\tID=MRRE1H001H13;Name=MRRE1H001H13;bac_start=10;bac_end=3000;bac_size=2991;besFM_name=MRRE1H001H13FM1;muscadine_besFM_seq=ATCGATCGATCGATCGTACGACTGACTCGATCAGCTAGCTAGCTAGCACATCG;besRM_name=MRRE1H001H13RM2;muscadine_besRM_seq=CAGCTAGCTACGTACGTACGTACGTAGCATCGATCGAT\n'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
164 self.assertEquals(expGffBac, obsGffBac)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
165
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
166 def test_extractBesSequenceFromFastaFileToTmpFile_with_seqInMultipleLines(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
167 fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH']
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
168 fastaFile = open(fastaFileName, 'w')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
169 fastaFile.write('>seq1\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
170 fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
171 fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
172 fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
173 fastaFile.write('ATCGAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
174 fastaFile.write('>seq2\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
175 fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
176 fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
177 fastaFile.write('ACTGACACTGTACGTAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
178 fastaFile.write('>seq3\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
179 fastaFile.write('ACTCGATCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
180 fastaFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
181
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
182 seqName = 'seq1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
183 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
184 iBlatToGffForBesPaired._inputFileFasta = fastaFileName
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
185 obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
186 expSeq = 'ATCGATCGATCGATCGATACGTCAGCGATCGATTACGTACGTACGATCGATCGATCGATCGATCGGTACGTACGTACGATCGACGATCGATGCCGATCGATCGAC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
187 self.assertEquals(expSeq, obsSeq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
188 os.remove(fastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
189
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
190 def test_extractBesSequenceFromFastaFileToTmpFile_with_seqInUniqueLines(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
191 fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH']
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
192 fastaFile = open(fastaFileName, 'w')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
193 fastaFile.write('>seq1\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
194 fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
195 fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
196 fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
197 fastaFile.write('ATCGAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
198 fastaFile.write('>seq2\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
199 fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
200 fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
201 fastaFile.write('ACTGACACTGTACGTAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
202 fastaFile.write('>seq3\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
203 fastaFile.write('ACTCGATCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
204 fastaFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
205
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
206 seqName = 'seq3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
207 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
208 iBlatToGffForBesPaired._inputFileFasta = fastaFileName
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
209 obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
210 expSeq = 'ACTCGATCGATCG'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
211 self.assertEquals(expSeq, obsSeq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
212 os.remove(fastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
213
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
214 def test_extractBesSequenceFromFastaFileToTmpFile_without_seqInThisFastaFile(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
215 fastaFileName = '%s/commons/core/parsing/test/sequence.fasta' % os.environ['REPET_PATH']
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
216 fastaFile = open(fastaFileName, 'w')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
217 fastaFile.write('>seq1\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
218 fastaFile.write('ATCGATCGATCGATCGATACGTCAGCGATCGAT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
219 fastaFile.write('TACGTACGTACGATCGATCGATCGATCGATCGG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
220 fastaFile.write('TACGTACGTACGATCGACGATCGATGCCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
221 fastaFile.write('ATCGAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
222 fastaFile.write('>seq2\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
223 fastaFile.write('GTCTAGCTAGCTATATCTGACTGACGCGACGGT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
224 fastaFile.write('CATGCTAGCTAGCACTGTACAGCTATCGATGCT\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
225 fastaFile.write('ACTGACACTGTACGTAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
226 fastaFile.write('>seq3\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
227 fastaFile.write('ACTCGATCGATCG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
228 fastaFile.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
229
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
230 seqName = 'seq4'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
231 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
232 iBlatToGffForBesPaired._inputFileFasta = fastaFileName
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
233 obsSeq = iBlatToGffForBesPaired.extractBesSequenceFromFastaFile(seqName, 5)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
234 expSeq = 'NA'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
235 self.assertEquals(expSeq, obsSeq)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
236 os.remove(fastaFileName)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
237
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
238 def test_getBesFmAndRmNamesAndSequences_case1(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
239 nameBes1 = 'MRRE1H0072T1FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
240 seqBes1 = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
241 typeBes1 = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
242 nameBes2 = 'MRRE1H0072T1RM3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
243 seqBes2 = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
244 typeBes2 = 'RM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
245 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
246 obsNameBesFM, obsSeqBesFM, obsNameBesRM, obsSeqBesRM = iBlatToGffForBesPaired.getBesFmAndRmNamesAndSequences(nameBes1, seqBes1, typeBes1, nameBes2, seqBes2, typeBes2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
247 expNameBesFM = 'MRRE1H0072T1FM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
248 expNameBesRM = 'MRRE1H0072T1RM3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
249 expSeqBesFM = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
250 expSeqBesRM = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
251 self.assertEquals(expNameBesFM, obsNameBesFM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
252 self.assertEquals(expNameBesRM, obsNameBesRM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
253 self.assertEquals(expSeqBesFM, obsSeqBesFM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
254 self.assertEquals(expSeqBesRM, obsSeqBesRM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
255
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
256 def test_getBesFmAndRmNamesAndSequences_case2(self):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
257 nameBes1 = 'MRRE1H0072T1RM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
258 seqBes1 = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
259 typeBes1 = 'RM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
260 nameBes2 = 'MRRE1H0072T1FM3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
261 seqBes2 = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
262 typeBes2 = 'FM'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
263 iBlatToGffForBesPaired = BlatToGffForBesPaired()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
264 obsNameBesFM, obsSeqBesFM, obsNameBesRM, obsSeqBesRM = iBlatToGffForBesPaired.getBesFmAndRmNamesAndSequences(nameBes1, seqBes1, typeBes1, nameBes2, seqBes2, typeBes2)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
265 expNameBesFM = 'MRRE1H0072T1FM3'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
266 expNameBesRM = 'MRRE1H0072T1RM1'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
267 expSeqBesFM = 'GCGCAGCGCGACTGACTTGACTATCGGCGACGCGACGATCGATCGATCGATC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
268 expSeqBesRM = 'TACGTCAGCTGATCGACATCGATCGATCGATCGATCGATCGTC'
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
269 self.assertEquals(expNameBesFM, obsNameBesFM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
270 self.assertEquals(expNameBesRM, obsNameBesRM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
271 self.assertEquals(expSeqBesFM, obsSeqBesFM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
272 self.assertEquals(expSeqBesRM, obsSeqBesRM)
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
273
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
274 def _writeBesSequences(self, fileName):
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
275 file = open(fileName, 'w')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
276 file.write('>MRRE1H001H13RM1\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
277 file.write('ATACGTACGTACGTCAGTACGACTACGTACGTACGTACGTCGTAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
278 file.write('TACGTCAGCATCGTACGTACGTACGTCGTGCTGGCTAGCTGACGA\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
279 file.write('ATCGATCGATCGATCGACATCGTACG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
280 file.write('>MRRE1H001H13FM1\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
281 file.write('AGACCTACTACGACGTACGATCGATCGACTGCTAGCTAGCTAGGC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
282 file.write('CTAGCTAGCTAGCTAGCTAGCTAGC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
283 file.write('>MRRE2H007A13FM3\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
284 file.write('TCAGCTAGCTGACTGACATCGCTAGCTAGCTAGCTAGCTAGCTAG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
285 file.write('TACGCAGCTACGGGGCATCGACTAAAAAAAAAAACCCACGACTGG\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
286 file.write('CTAGCTAGCTAGCTAGCTAGCTACGTCGATCGATCGACTGTTGCC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
287 file.write('TCAGCTACTGACTGATCGATCGACTACGTACGTACGTAC\n')
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
288 file.close()
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
289
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
290
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
291 if __name__ == "__main__":
769e306b7933 Change the repository level.
yufei-luo
parents:
diff changeset
292 unittest.main()