Ideally we'd have access to GeneCards alias list but for now:
On no match for symbol/id, search aliases on MyGene.info, then refetch gene info for matches
import requests
gene = "ZAK"
url = f"https://mygene.info/v3/query?q={gene}&species=human&fields=symbol,alias,ensembl.gene"
res = requests.get(url).json()
#print(res)
for hit in res["hits"]:
print(hit.get("symbol"), hit.get("alias"))
https://mygene.info/
Ideally we'd have access to GeneCards alias list but for now:
On no match for symbol/id, search aliases on MyGene.info, then refetch gene info for matches
https://mygene.info/