view maf2bed.py @ 116:b55199c56abd draft

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/jbrowse2 commit 7b9eed035bb929af8907bb9f810b0c201562cdf2
author bgruening
date Wed, 28 Aug 2024 07:34:43 +0000
parents b1260bca5fdc
children
line wrap: on
line source

#!/usr/bin/env python
# painfully converted from b0rken perl from
# https://unpkg.com/browse/jbrowse-plugin-mafviewer@1.0.6/dist/
# license is Apache2_license.txt included here

import sys

id = 0
buffer = ''
start = 0
end = 0
score = 0
chrom = ''

db = "%s." % sys.argv[1]
# Read input from stdin
for line in sys.stdin:
    line = line.strip()
    if not line:
        continue

    line = line.split()
    if line[0] == 's' and line[1].startswith(db):
        chrom = line[1]
        chrom = chrom.replace(db, '')
        start = int(line[2])
        end = int(line[2]) + int(line[3])
        line = line[1:]
        line = ':'.join(line)
        temp = line
        buffer = temp if buffer == '' else f"{buffer},{temp}"
    elif line[0] == 'a':
        score = int(line[1].split('=')[1])
        if id > 0:
            sys.stdout.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{sys.argv[1]}_{id}", '%d' % score, buffer]) + '\n')
        id += 1
        buffer = ''
    elif line[0] == 's':
        line = line[1:]
        line = ':'.join(line)
        temp = line
        buffer = temp if buffer == '' else f"{buffer},{temp}"

sys.stdout.write('\t'.join([chrom, '%d' % start, '%d' % end, f"{sys.argv[1]}_{id}", '%d' % score, buffer]) + '\n')