Mercurial > repos > iuc > circos
annotate text-from-gff3.py @ 11:0ee66defe58b draft
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit b9ec351920dbc83fa14bd1f8cfdd0a6a19b89473"
| author | iuc | 
|---|---|
| date | Tue, 16 Nov 2021 09:19:09 +0000 | 
| parents | 890ef899a3d7 | 
| children | 
| 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 "value": feature.qualifiers.get("score", [0])[0], | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 26 } | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 27 | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 28 if attr not in feature.qualifiers: | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 29 continue | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 30 | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 31 name = feature.qualifiers[attr][0] | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 32 | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 33 line = [ | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 34 record.id, | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 35 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 | 36 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 | 37 name, | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 38 ",".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 | 39 ] | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 40 | 
| 
890ef899a3d7
"planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/circos commit 076837a2e9c2b6ececcea4aa286ea7a412387a96"
 iuc parents: diff
changeset | 41 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 | 42 sys.stdout.write("\n") | 
