Mercurial > repos > yufei-luo > s_mart
diff commons/core/parsing/AxtParser.py @ 31:0ab839023fe4
Uploaded
author | m-zytnicki |
---|---|
date | Tue, 30 Apr 2013 14:33:21 -0400 |
parents | 94ab73e8a190 |
children |
line wrap: on
line diff
--- a/commons/core/parsing/AxtParser.py Mon Apr 29 03:45:52 2013 -0400 +++ b/commons/core/parsing/AxtParser.py Tue Apr 30 14:33:21 2013 -0400 @@ -93,17 +93,20 @@ 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)))) - subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) + 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.setDirection(m.group(7)) subMapping.targetInterval.setChromosome(m.group(1)) - 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.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.setDirection(1) subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) @@ -113,28 +116,39 @@ mapping.setDirection(m.group(7)) mapping.targetInterval.setChromosome(m.group(1)) - 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.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.queryInterval.setName(m.group(4)) - 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.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.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 - 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 + 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