annotate maf2bed.py @ 136:93fdd696c281 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
author iuc
date Thu, 02 Oct 2025 10:20:29 +0000
parents b1260bca5fdc
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
61
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
1 #!/usr/bin/env python
136
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
2
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
3 # adapted from https://github.com/bgruening/galaxytools/blob/f96142ca5acea989b828d6c92940172355b7f125/tools/jbrowse2/maf2bed.py
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
4 # which was "painfully converted from b0rken perl from:"
61
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
5 # https://unpkg.com/browse/jbrowse-plugin-mafviewer@1.0.6/dist/
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
6
136
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
7 import argparse
61
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
8 import sys
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
9
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
10
136
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
11 def maf2bed(assembly_name, input, output):
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
12 id = 0
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
13 buffer = ''
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
14 start = 0
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
15 end = 0
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
16 score = 0
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
17 chrom = ''
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
18
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
19 db = "%s." % assembly_name
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
20 # Read input from stdin
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
21 for line in input:
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
22 line = line.strip()
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
23 if not line:
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
24 continue
61
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
25
136
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
26 line = line.split()
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
27 if line[0] == 's' and line[1].startswith(db):
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
28 chrom = line[1]
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
29 chrom = chrom.replace(db, '')
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
30 start = int(line[2])
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
31 end = int(line[2]) + int(line[3])
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
32 line = line[1:]
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
33 line = ':'.join(line)
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
34 temp = line
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
35 buffer = temp if buffer == '' else f"{buffer},{temp}"
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
36 elif line[0] == 'a':
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
37 score = int(line[1].split('=')[1])
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
38 if id > 0:
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
39 output.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{assembly_name}_{id}", '%d' % score, buffer]) + '\n')
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
40 id += 1
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
41 buffer = ''
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
42 elif line[0] == 's':
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
43 line = line[1:]
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
44 line = ':'.join(line)
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
45 temp = line
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
46 buffer = temp if buffer == '' else f"{buffer},{temp}"
61
e7a6f7a7148d planemo upload for repository https://github.com/usegalaxy-eu/temporary-tools/tree/master/jbrowse2 commit 6dde5ad41d63730085116ab2c9a9d3e500a760e4-dirty
fubar
parents:
diff changeset
47
136
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
48 output.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{assembly_name}_{id}", '%d' % score, buffer]) + '\n')
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
49
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
50
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
51 if __name__ == "__main__":
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
52 parser = argparse.ArgumentParser(description="", epilog="")
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
53 parser.add_argument("assembly_name", help="Assembly name")
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
54 parser.add_argument('input', nargs='?', type=argparse.FileType('r'), default=sys.stdin)
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
55 parser.add_argument('output', nargs='?', type=argparse.FileType('w'), default=sys.stdout)
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
56 args = parser.parse_args()
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
57
93fdd696c281 planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 4fa86613193c985e0cb9a8fc795c56b8bc7b8532
iuc
parents: 98
diff changeset
58 maf2bed(args.assembly_name, args.input, args.output)