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