annotate wiggle.py @ 0:ef5f8bbf7730 draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
author iuc
date Wed, 09 Aug 2017 09:52:52 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
1 class Wiggle:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
2
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
3 def fixedStepParser(self, line):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
4 value = line.strip()
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
5 start_position = self.stepIdx * self.parserConfig['step'] + self.parserConfig['start']
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
6 stop_position = start_position + self.parserConfig['span'] - 1
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
7 self.stepIdx += 1
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
8
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
9 for position in range(start_position, stop_position):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
10 yield (self.parserConfig['chrom'], position, value)
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
11
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
12 def variableStepParser(self, line):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
13 (start, value) = line.strip().split()
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
14 start = int(start)
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
15 start_position = start
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
16 stop_position = start + self.parserConfig['span']
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
17
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
18 for position in range(start_position, stop_position):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
19 yield (self.parserConfig['chrom'], position, value)
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
20
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
21 def walk(self, handle):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
22
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
23 parser = None
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
24 for line in handle:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
25 if line.startswith('track'):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
26 continue
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
27 elif line.startswith('fixedStep'):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
28 parser = self.fixedStepParser
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
29 lineData = line.split()
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
30 fields = {x.split('=')[0]: x.split('=')[1] for x in lineData[1:]}
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
31 self.parserConfig = fields
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
32
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
33 for numField in ('step', 'start', 'span'):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
34 if numField in self.parserConfig:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
35 self.parserConfig[numField] = int(self.parserConfig[numField])
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
36 self.stepIdx = 0
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
37 elif line.startswith('variableStep'):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
38 parser = self.variableStepParser
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
39 lineData = line.split()
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
40 fields = {x.split('=')[0]: x.split('=')[1] for x in lineData[1:]}
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
41 # Default value
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
42 if 'span' not in fields:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
43 fields['span'] = 1
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
44 self.parserConfig = fields
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
45
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
46 for numField in ('span',):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
47 if numField in self.parserConfig:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
48 self.parserConfig[numField] = int(self.parserConfig[numField])
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
49
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
50 self.stepIdx = 0
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
51 elif len(line.strip()) == 0:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
52 continue
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
53 else:
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
54 for data in parser(line):
ef5f8bbf7730 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit a41493893bdcbe330434db9c5851719012b62fa8
iuc
parents:
diff changeset
55 yield data