annotate tiles-from-gff3.py @ 13:8b1cf140bbd4 draft default tip

planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 0cfd88d16b0b20a66d4b21b037ddee6a8c440d88
author iuc
date Wed, 12 Apr 2023 15:08:23 +0000
parents b84d385679e2
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
1 #!/usr/bin/env python
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
2 import logging
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
3 import sys
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
4
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
5 from BCBio import GFF
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
6
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
7 logging.basicConfig(level=logging.INFO)
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
8 log = logging.getLogger()
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
9
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
10
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
11 if __name__ == "__main__":
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
12 attr = sys.argv[2]
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
13
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
14 for record in GFF.parse(sys.argv[1]):
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
15 if len(record.features) == 0:
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
16 continue
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
17
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
18 for feature in sorted(record.features, key=lambda x: x.location.start):
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
19 # chrom chromStart chromEnd
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
20 # name score strand
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
21 # thickStart thickEnd itemRgb
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
22
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
23 kv = {
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
24 "strand": 0 if not feature.location.strand else feature.location.strand,
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
25 "name": feature.qualifiers.get(attr, ["None"])[0] or feature.id,
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
26 "value": feature.qualifiers.get("score", [0])[0],
6
b84d385679e2 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 1584882716a1d2c598e8485da9d73bcf80d9b29a"
iuc
parents: 2
diff changeset
27 "type": feature.type,
2
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
28 }
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
29
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
30 line = [
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
31 record.id,
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
32 str(int(feature.location.start)),
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
33 str(int(feature.location.end)),
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
34 ",".join(["%s=%s" % x for x in sorted(kv.items())]),
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
35 ]
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
36
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
37 sys.stdout.write("\t".join(line))
890ef899a3d7 "planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
iuc
parents:
diff changeset
38 sys.stdout.write("\n")