diff commons/core/parsing/WigParser.py @ 18:94ab73e8a190

Uploaded
author m-zytnicki
date Mon, 29 Apr 2013 03:20:15 -0400
parents 769e306b7933
children
line wrap: on
line diff
--- a/commons/core/parsing/WigParser.py	Mon Apr 22 11:11:10 2013 -0400
+++ b/commons/core/parsing/WigParser.py	Mon Apr 29 03:20:15 2013 -0400
@@ -123,7 +123,7 @@
 			m3 = re.search(r"^\s*fixedStep\s+chrom=(\S+)\s+start=(\d+)\s+step=1\s*$", line)
 			m4 = re.search(r"^\s*fixedStep\s+chrom=\S+\s+start=\d+\s+step=\d+\s+span=\d+\s*$", line)
 			m5 = re.search(r"^\s*variableStep\s+chrom=(\S+)\s*$", line)
-			m6 = re.search(r"^\s*variableStep\s+chrom=(\S+)span=(\d+)\s*$", line)
+			m6 = re.search(r"^\s*variableStep\s+chrom=(\S+)\s+span=(\d+)\s*$", line)
 						
 			if m1 != None:
 				outputFile.write(struct.pack("Q", mark))
@@ -156,7 +156,16 @@
 					outputFile.write(self.filler)
 				chromosome = newChromosome
 			elif m6 != None:
-				raise Exception("Error! Cannot parse variable step WIG files with step > 1 or span > 1")
+				if m6.group(2) != "1":
+					raise Exception("Error! Cannot parse variable step WIG files with step > 1 or span > 1")
+				newChromosome = m6.group(1)
+				if newChromosome != chromosome:
+					if outputFile != None:
+						outputFile.close()
+					outputFile = open(self.makeIndexName(newChromosome), "wb")
+					index = 0
+					outputFile.write(self.filler)
+				chromosome = newChromosome
 			elif (len(line) == 0) or line[0] == "#" or line.startswith("track"):
 				pass
 			else: