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