Mercurial > repos > yufei-luo > s_mart
comparison commons/core/parsing/AxtParser.py @ 31:0ab839023fe4
Uploaded
| author | m-zytnicki |
|---|---|
| date | Tue, 30 Apr 2013 14:33:21 -0400 |
| parents | 94ab73e8a190 |
| children |
comparison
equal
deleted
inserted
replaced
| 30:5677346472b5 | 31:0ab839023fe4 |
|---|---|
| 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 | |
| 96 mapping = Mapping() | 98 mapping = Mapping() |
| 97 subMapping = SubMapping() | 99 subMapping = SubMapping() |
| 98 | 100 |
| 101 offset = -1 if m.group(7) == "-" else 0 | |
| 99 subMapping.queryInterval.setName(m.group(4)) | 102 subMapping.queryInterval.setName(m.group(4)) |
| 100 subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) | 103 subMapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) |
| 101 subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) | 104 subMapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) |
| 102 subMapping.queryInterval.setDirection(m.group(7)) | 105 subMapping.queryInterval.setDirection(m.group(7)) |
| 103 | 106 |
| 104 subMapping.targetInterval.setChromosome(m.group(1)) | 107 subMapping.targetInterval.setChromosome(m.group(1)) |
| 105 subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) | 108 subMapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) |
| 106 subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) | 109 subMapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) |
| 107 subMapping.targetInterval.setDirection(1) | 110 subMapping.targetInterval.setDirection(1) |
| 108 | 111 |
| 109 subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) | 112 subMapping.setSize(min(subMapping.targetInterval.getSize(), subMapping.queryInterval.getSize())) |
| 110 subMapping.setDirection(m.group(7)) | 113 subMapping.setDirection(m.group(7)) |
| 111 | 114 |
| 112 mapping.addSubMapping(subMapping) | 115 mapping.addSubMapping(subMapping) |
| 113 | 116 |
| 114 mapping.setDirection(m.group(7)) | 117 mapping.setDirection(m.group(7)) |
| 115 mapping.targetInterval.setChromosome(m.group(1)) | 118 mapping.targetInterval.setChromosome(m.group(1)) |
| 116 mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3)))) | 119 mapping.targetInterval.setStart(min(int(m.group(2)), int(m.group(3))) + offset) |
| 117 mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3)))) | 120 mapping.targetInterval.setEnd(max(int(m.group(2)), int(m.group(3))) + offset) |
| 118 | 121 |
| 119 mapping.queryInterval.setName(m.group(4)) | 122 mapping.queryInterval.setName(m.group(4)) |
| 120 mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))) | 123 mapping.queryInterval.setStart(min(int(m.group(5)), int(m.group(6)))-1) |
| 121 mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))) | 124 mapping.queryInterval.setEnd(max(int(m.group(5)), int(m.group(6)))-1) |
| 122 | 125 |
| 123 mapping.setSize(min(mapping.targetInterval.getSize(), mapping.queryInterval.getSize())) | 126 mapping.setSize(min(mapping.targetInterval.getSize(), mapping.queryInterval.getSize())) |
| 124 | 127 |
| 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 | |
| 125 self.currentMapping = mapping | 139 self.currentMapping = mapping |
| 126 return None | 140 else: |
| 127 if self.queryLine == None: | 141 if self.queryLine == None: |
| 128 self.queryLine = line | 142 self.queryLine = line |
| 129 return None | 143 else: |
| 130 self.subjectLine = line | 144 self.subjectLine = line |
| 131 seqLen = float(len(self.subjectLine)) | 145 seqLen = float(len(self.subjectLine)) |
| 132 dist = float(getHammingDistance(self.queryLine, self.subjectLine)) | 146 dist = float(getHammingDistance(self.queryLine, self.subjectLine)) |
| 133 self.currentMapping.setNbMismatches(getHammingDistance(self.queryLine, self.subjectLine)) | 147 identity = ((seqLen-dist)/seqLen) *100 |
| 134 self.currentMapping.setNbGaps(0) | 148 self.currentMapping.setIdentity(identity) |
| 135 self.queryLine = None | 149 self.queryLine = None |
| 136 self.subjectLine = None | 150 self.subjectLine = None |
| 137 return self.currentMapping | 151 return self.currentMapping |
| 138 | 152 |
| 139 | 153 |
| 140 | 154 |
