Mercurial > repos > iuc > virannot_otu
comparison rps2tsv.py @ 2:735a21808348 draft
planemo upload for repository https://github.com/galaxyproject/tools-iuc/tree/master/tools/virAnnot commit ab5e1189217b6ed5f1c5d7c5ff6b79b6a4c18cff
author | iuc |
---|---|
date | Wed, 21 Aug 2024 13:13:50 +0000 |
parents | c9dac9b2e01c |
children | 40fb54cc6628 |
comparison
equal
deleted
inserted
replaced
1:6838c2fd1228 | 2:735a21808348 |
---|---|
54 hsp["query_length"] = blast_record.query_length # length of the query | 54 hsp["query_length"] = blast_record.query_length # length of the query |
55 hsp["description"] = aln.hit_def | 55 hsp["description"] = aln.hit_def |
56 hsp["accession"] = aln.accession | 56 hsp["accession"] = aln.accession |
57 hsp["pfam_id"] = hsp["description"].split(",")[0].replace("pfam", "PF") | 57 hsp["pfam_id"] = hsp["description"].split(",")[0].replace("pfam", "PF") |
58 log.info("Requeting Interpro for " + hsp["pfam_id"]) | 58 log.info("Requeting Interpro for " + hsp["pfam_id"]) |
59 url = "https://www.ebi.ac.uk/interpro/api/entry/pfam/" + hsp["pfam_id"] + "/taxonomy/uniprot/" | 59 url = "https://www.ebi.ac.uk/interpro/api/taxonomy/uniprot/entry/pfam/" + hsp["pfam_id"] |
60 req = request.Request(url) | 60 req = request.Request(url) |
61 try: | 61 try: |
62 response = request.urlopen(req) | 62 response = request.urlopen(req) |
63 except HTTPError as e: | 63 except HTTPError as e: |
64 log.debug('Http error for interpro: ', e.code) | 64 log.debug('Http error for interpro: ', e.code) |
67 else: | 67 else: |
68 encoded_response = response.read() | 68 encoded_response = response.read() |
69 decoded_response = encoded_response.decode() | 69 decoded_response = encoded_response.decode() |
70 payload = json.loads(decoded_response) | 70 payload = json.loads(decoded_response) |
71 kingdoms = [] | 71 kingdoms = [] |
72 for item in payload["taxonomy_subset"]: | 72 for item in payload["results"][:6]: |
73 lineage_string = item["lineage"] | 73 if item["metadata"]["parent"] is not None: |
74 lineage = [int(i) for i in lineage_string] | 74 lineage_parent = item["metadata"]["parent"] |
75 translation = ncbi.get_taxid_translator(lineage) | 75 translation = ncbi.get_taxid_translator([int(lineage_parent)]) |
76 names = list(translation.values()) | 76 names = list(translation.values()) |
77 taxonomy = names[1:] # remove 'root' at the begining | 77 if len(names) > 0: |
78 kingdoms.append(taxonomy[0]) | 78 if names[0] == "root": |
79 taxonomy = names[1:] # remove 'root' at the begining | |
80 else: | |
81 taxonomy = names | |
82 else: | |
83 taxonomy = names | |
84 if len(taxonomy) != 0: | |
85 kingdoms.append(taxonomy[0]) | |
79 frequency = {kingdom: kingdoms.count(kingdom) for kingdom in kingdoms} # {'Pseudomonadota': 9, 'cellular organisms': 4} | 86 frequency = {kingdom: kingdoms.count(kingdom) for kingdom in kingdoms} # {'Pseudomonadota': 9, 'cellular organisms': 4} |
80 sorted_freq = dict(sorted(frequency.items(), key=lambda x: x[1], reverse=True)) | 87 sorted_freq = dict(sorted(frequency.items(), key=lambda x: x[1], reverse=True)) |
81 concat_freq = ";".join("{}({})".format(k, v) for k, v in sorted_freq.items()) | 88 concat_freq = ";".join("{}({})".format(k, v) for k, v in sorted_freq.items()) |
82 hsp["taxonomy"] = concat_freq | 89 hsp["taxonomy"] = concat_freq |
83 xml_results[hsp["query_id"]] = hsp | 90 xml_results[hsp["query_id"]] = hsp |