Mercurial > repos > yufei-luo > s_mart
comparison commons/core/parsing/AxtParser.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | 769e306b7933 |
children | 0ab839023fe4 |
comparison
equal
deleted
inserted
replaced
17:b0e8584489e6 | 18:94ab73e8a190 |
---|---|
91 if line.strip() == "": | 91 if line.strip() == "": |
92 return None | 92 return None |
93 | 93 |
94 m = re.search(r"^\s*\d+\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+([+-])\s+\d+\s*$", line) | 94 m = re.search(r"^\s*\d+\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+([+-])\s+\d+\s*$", line) |
95 if m != None: | 95 if m != None: |
96 #sys.exit("\nLine %d '%s' does not have an AXT format" % (self.currentLineNb, line)) | |
97 | |
98 mapping = Mapping() | 96 mapping = Mapping() |
99 subMapping = SubMapping() | 97 subMapping = SubMapping() |
100 | 98 |
101 offset = -1 if m.group(7) == "-" else 0 | |
102 subMapping.queryInterval.setName(m.group(4)) | 99 subMapping.queryInterval.setName(m.group(4)) |
103 subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) | 100 subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) |
104 subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) | 101 subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) |
105 subMapping.queryInterval.setDirection(m.group(7)) | 102 subMapping.queryInterval.setDirection(m.group(7)) |
106 | 103 |
107 subMapping.targetInterval.setChromosome(m.group(1)) | 104 subMapping.targetInterval.setChromosome(m.group(1)) |
108 subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) | 105 subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) |
109 subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) | 106 subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) |
110 subMapping.targetInterval.setDirection(1) | 107 subMapping.targetInterval.setDirection(1) |
111 | 108 |
112 subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) | 109 subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) |
113 subMapping.setDirection(m.group(7)) | 110 subMapping.setDirection(m.group(7)) |
114 | 111 |
115 mapping.addSubMapping(subMapping) | 112 mapping.addSubMapping(subMapping) |
116 | 113 |
117 mapping.setDirection(m.group(7)) | 114 mapping.setDirection(m.group(7)) |
118 mapping.targetInterval.setChromosome(m.group(1)) | 115 mapping.targetInterval.setChromosome(m.group(1)) |
119 mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) | 116 mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) |
120 mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) | 117 mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) |
121 | 118 |
122 mapping.queryInterval.setName(m.group(4)) | 119 mapping.queryInterval.setName(m.group(4)) |
123 mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) | 120 mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) |
124 mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) | 121 mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) |
125 | 122 |
126 mapping.setSize(min(mapping.targetInterval.getSize(), mapping.queryInterval.getSize())) | 123 mapping.setSize(min(mapping.targetInterval.getSize(), mapping.queryInterval.getSize())) |
127 | 124 |
128 for line in self.handle: | |
129 string1 = line.strip() | |
130 self.currentLineNb += 1 | |
131 break | |
132 for line in self.handle: | |
133 string2 = line.strip() | |
134 self.currentLineNb += 1 | |
135 break | |
136 mapping.setNbMismatches(Utils.getHammingDistance(string1, string2)) | |
137 mapping.setNbGaps(0) | |
138 | |
139 self.currentMapping = mapping | 125 self.currentMapping = mapping |
140 else: | 126 return None |
141 if self.queryLine == None: | 127 if self.queryLine == None: |
142 self.queryLine = line | 128 self.queryLine = line |
143 else: | 129 return None |
144 self.subjectLine = line | 130 self.subjectLine = line |
145 seqLen = float(len(self.subjectLine)) | 131 seqLen = float(len(self.subjectLine)) |
146 dist = float(getHammingDistance(self.queryLine, self.subjectLine)) | 132 dist = float(getHammingDistance(self.queryLine, self.subjectLine)) |
147 identity = ((seqLen-dist)/seqLen) *100 | 133 self.currentMapping.setNbMismatches(getHammingDistance(self.queryLine, self.subjectLine)) |
148 self.currentMapping.setIdentity(identity) | 134 self.currentMapping.setNbGaps(0) |
149 self.queryLine = None | 135 self.queryLine = None |
150 self.subjectLine = None | 136 self.subjectLine = None |
151 return self.currentMapping | 137 return self.currentMapping |
152 | 138 |
153 | 139 |
154 | 140 |