annotate stack-histogram.py @ 6:b84d385679e2 draft

"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
author iuc
date Fri, 01 May 2020 11:28:11 +0000
parents
children ecaa0210e62b
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
6
b84d385679e2 "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
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
2 import logging
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
3 import sys
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
4
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
5 import pyBigWig
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
6
b84d385679e2 "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)
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
8 log = logging.getLogger()
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
9
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
10 if __name__ == "__main__":
b84d385679e2 "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:]
b84d385679e2 "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]
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
13
b84d385679e2 "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!
b84d385679e2 "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()
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
16
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
17 # do magic?
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
18 # nah.
b84d385679e2 "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.
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
20 # and crash otherwise.
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
21 # sorry not sorry.
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
22
b84d385679e2 "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:
b84d385679e2 "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]):
b84d385679e2 "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]
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents:
diff changeset
26 values = ','.join(map(str, [x[2] for x in interval_set]))
b84d385679e2 "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))