# genesis/api_clients/ncbi_api.py import requests import os NCBI_API_KEY = os.getenv("NCBI_API_KEY") BASE_URL = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils" def search_gene(query: str, max_results: int = 10): """Search NCBI Gene database.""" url = f"{BASE_URL}/esearch.fcgi" params = { "db": "gene", "term": query, "retmax": max_results, "retmode": "json", "api_key": NCBI_API_KEY } r = requests.get(url, params=params) r.raise_for_status() return r.json() def fetch_gene_summary(gene_id: str): """Fetch summary for a specific gene.""" url = f"{BASE_URL}/esummary.fcgi" params = { "db": "gene", "id": gene_id, "retmode": "json", "api_key": NCBI_API_KEY } r = requests.get(url, params=params) r.raise_for_status() return r.json()