Mercurial > repos > yufei-luo > s_mart
diff commons/core/parsing/AxtParser.py @ 18:94ab73e8a190
Uploaded
author | m-zytnicki |
---|---|
date | Mon, 29 Apr 2013 03:20:15 -0400 |
parents | 769e306b7933 |
children | 0ab839023fe4 |
line wrap: on
line diff
--- a/commons/core/parsing/AxtParser.py Mon Apr 22 11:11:10 2013 -0400 +++ b/commons/core/parsing/AxtParser.py Mon Apr 29 03:20:15 2013 -0400 @@ -93,20 +93,17 @@ m = re.search(r"^\s*\d+\s+(\S+)\s+(\d+)\s+(\d+)\s+(\S+)\s+(\d+)\s+(\d+)\s+([+-])\s+\d+\s*$", line) if m != None: - #sys.exit("\nLine %d '%s' does not have an AXT format" % (self.currentLineNb, line)) - mapping = Mapping() subMapping = SubMapping() - offset = -1 if m.group(7) == "-" else 0 subMapping.queryInterval.setName(m.group(4)) - subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) - subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) + subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) + subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) subMapping.queryInterval.setDirection(m.group(7)) subMapping.targetInterval.setChromosome(m.group(1)) - subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) - subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) + subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) + subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) subMapping.targetInterval.setDirection(1) subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) @@ -116,39 +113,28 @@ mapping.setDirection(m.group(7)) mapping.targetInterval.setChromosome(m.group(1)) - mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) - mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) + mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) + mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) mapping.queryInterval.setName(m.group(4)) - mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) - mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) + mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) + mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) mapping.setSize(min(mapping.targetInterval.getSize(), mapping.queryInterval.getSize())) - for line in self.handle: - string1 = line.strip() - self.currentLineNb += 1 - break - for line in self.handle: - string2 = line.strip() - self.currentLineNb += 1 - break - mapping.setNbMismatches(Utils.getHammingDistance(string1, string2)) - mapping.setNbGaps(0) - self.currentMapping = mapping - else: - if self.queryLine == None: - self.queryLine = line - else: - self.subjectLine = line - seqLen = float(len(self.subjectLine)) - dist = float(getHammingDistance(self.queryLine, self.subjectLine)) - identity = ((seqLen-dist)/seqLen) *100 - self.currentMapping.setIdentity(identity) - self.queryLine = None - self.subjectLine = None - return self.currentMapping + return None + if self.queryLine == None: + self.queryLine = line + return None + self.subjectLine = line + seqLen = float(len(self.subjectLine)) + dist = float(getHammingDistance(self.queryLine, self.subjectLine)) + self.currentMapping.setNbMismatches(getHammingDistance(self.queryLine, self.subjectLine)) + self.currentMapping.setNbGaps(0) + self.queryLine = None + self.subjectLine = None + return self.currentMapping