annotate stack-histogram.py @ 9:df7356989ac1 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 041a4d1618298f540e3917f00781e09ec7d71b75"
author iuc
date Mon, 23 Nov 2020 10:56:29 +0000
parents 4b519282a05b
children c4bde687c846
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
1 #!/usr/bin/env python
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
2 import logging
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
3 import sys
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
4
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
5 import pyBigWig
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
6
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
7 logging.basicConfig(level=logging.INFO)
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
8 log = logging.getLogger()
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
9
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
10 if __name__ == "__main__":
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
11 files = sys.argv[1:]
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
12 bws = [pyBigWig.open(x) for x in files]
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
13
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
14 # obtain some chroms. Hope all sets are identical!
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
15 k = bws[0].chroms().keys()
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
16
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
17 # do magic?
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
18 # nah.
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
19 # just assert that intervals are identical.
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
20 # and crash otherwise.
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
21 # sorry not sorry.
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
22
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
23 for chrom in k:
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
24 for interval_set in zip(*[bw.intervals(chrom) for bw in bws]):
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
25 (start, end) = interval_set[0][0:2]
7
4b519282a05b "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit ef20b4968a6d00c49209de6b723f8b96d8bd128a"
iuc
parents: 6
diff changeset
26 values = ",".join(map(str, [x[2] for x in interval_set]))
6
740057a5126d "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
27 sys.stdout.write("%s\t%s\t%s\t%s\n" % (chrom, start, end, values))