Mercurial > repos > iuc > circos
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 |
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 |