view stack-histogram.py @ 8:e6cbe3190642 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit cc96dd4a8aef7d0b6d3057024af0344ab8a9410f"
author iuc
date Fri, 12 Jun 2020 10:39:58 -0400
parents 4b519282a05b
children c4bde687c846
line wrap: on
line source

#!/usr/bin/env python
import logging
import sys

import pyBigWig

logging.basicConfig(level=logging.INFO)
log = logging.getLogger()

if __name__ == "__main__":
    files = sys.argv[1:]
    bws = [pyBigWig.open(x) for x in files]

    # obtain some chroms. Hope all sets are identical!
    k = bws[0].chroms().keys()

    # do magic?
    # nah.
    # just assert that intervals are identical.
    # and crash otherwise.
    # sorry not sorry.

    for chrom in k:
        for interval_set in zip(*[bw.intervals(chrom) for bw in bws]):
            (start, end) = interval_set[0][0:2]
            values = ",".join(map(str, [x[2] for x in interval_set]))
            sys.stdout.write("%s\t%s\t%s\t%s\n" % (chrom, start, end, values))