Comprehensive reference of all ToolUniverse tools for disease information retrieval.
Purpose: Map disease name to EFO ID (primary entry point)
tu.tools.OSL_get_efo_id_by_disease_name(disease="diabetes mellitus")
# Returns: {"efo_id": "EFO:0000400", "name": "diabetes mellitus"}Purpose: Search EFO ontology for disease terms
tu.tools.ols_search_efo_terms(query="diabetes mellitus", rows=10)
# Returns: terms with iri, obo_id, label, descriptionPurpose: Get detailed EFO term information
tu.tools.ols_get_efo_term(obo_id="EFO:0000400")
# Returns: synonyms, description, has_children, is_obsoletePurpose: Get disease subtypes/children
tu.tools.ols_get_efo_term_children(obo_id="EFO:0000400", size=20)
# Returns: child terms (disease subtypes)Purpose: Search OpenTargets for disease by name
tu.tools.OpenTargets_get_disease_id_description_by_name(diseaseName="Diabetes Mellitus")
# Returns: id, name, descriptionPurpose: Search UMLS for medical concepts
tu.tools.umls_search_concepts(query="diabetes", sabs="SNOMEDCT_US", pageSize=25)
# Returns: CUI, name, source
# Note: Requires UMLS_API_KEYPurpose: Get UMLS concept details by CUI
tu.tools.umls_get_concept_details(cui="C0011849")
# Returns: definitions, semantic typesPurpose: Search ICD-10/ICD-11 codes
tu.tools.icd_search_codes(query="diabetes", version="ICD10CM")
# Returns: ICD codes with descriptionsPurpose: Search SNOMED CT concepts
tu.tools.snomed_search_concepts(query="diabetes mellitus")
# Returns: SNOMED concepts with codesPurpose: Get HPO phenotypes for disease
tu.tools.OpenTargets_get_associated_phenotypes_by_disease_efoId(efoId="EFO_0000384")
# Returns: phenotypeHPO (id, name, description), phenotypeEFOPurpose: Convert symptom name to HPO ID
tu.tools.get_HPO_ID_by_phenotype(query="seizure", limit=5)
# Returns: HPO IDs matching the phenotypePurpose: Get phenotype details by HPO ID
tu.tools.get_phenotype_by_HPO_ID(id="HP:0001250")
# Returns: phenotype detailsPurpose: Find diseases from list of phenotypes (differential diagnosis)
tu.tools.get_joint_associated_diseases_by_HPO_ID_list(
HPO_ID_list=["HP:0001250", "HP:0001251"], limit=20
)
# Returns: diseases associated with these phenotypesPurpose: Search consumer health information
tu.tools.MedlinePlus_search_topics_by_keyword(
term="diabetes", db="healthTopics", rettype="topic"
)
# Returns: topics with title, summary, urlPurpose: Get genetic condition information
tu.tools.MedlinePlus_get_genetics_condition_by_name(condition="alzheimer-disease")
# Returns: description, genes, synonymsPurpose: Look up by clinical code (ICD-10, LOINC)
tu.tools.MedlinePlus_connect_lookup_by_code(
cs="2.16.840.1.113883.6.90", # ICD-10 CM OID
c="E11.9" # Type 2 diabetes
)
# Returns: MedlinePlus health informationPurpose: Get disease-gene associations with scores
tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(efoId="EFO_0000384")
# Returns: target.id, target.approvedSymbol, scorePurpose: Find diseases associated with a gene (reverse lookup)
tu.tools.OpenTargets_get_diseases_phenotypes_by_target_ensembl(ensemblId="ENSG00000141510")
# Returns: diseases associated with this genePurpose: Get evidence for target-disease association
tu.tools.OpenTargets_target_disease_evidence(
efoId="EFO_0000384", ensemblId="ENSG00000141510"
)
# Returns: evidence details, mutation dataPurpose: Search ClinVar for variants
tu.tools.clinvar_search_variants(condition="breast cancer", max_results=20)
# OR
tu.tools.clinvar_search_variants(gene="BRCA1", max_results=20)
# Returns: variant IDs, countPurpose: Get variant details by ClinVar ID
tu.tools.clinvar_get_variant_details(variant_id="12345")
# Returns: variant informationPurpose: Get pathogenicity classification
tu.tools.clinvar_get_clinical_significance(variant_id="12345")
# Returns: clinical significance dataPurpose: Search GWAS associations
tu.tools.gwas_search_associations(disease_trait="diabetes", size=20)
# Returns: associations with p_value, snp_allele, mapped_genesPurpose: Get variants for specific trait
tu.tools.gwas_get_variants_for_trait(disease_trait="breast cancer", size=50)
# Returns: variants with rs_id, locations, mapped_genesPurpose: Get associations sorted by significance
tu.tools.gwas_get_associations_for_trait(disease_trait="type 2 diabetes", size=20)
# Returns: associations sorted by p-valuePurpose: Get GWAS studies for trait
tu.tools.gwas_get_studies_for_trait(disease_trait="diabetes", size=20)
# Returns: study details, sample sizesPurpose: Get SNP details by rs ID
tu.tools.gwas_get_snp_by_id(rs_id="rs1234")
# Returns: SNP details, locations, allelesPurpose: Get all associations for a SNP
tu.tools.gwas_get_associations_for_snp(rs_id="rs12345", size=20)
# Returns: traits associated with this SNPPurpose: Get SNPs mapped to a gene
tu.tools.gwas_get_snps_for_gene(mapped_gene="BRCA1", size=20)
# Returns: SNPs in/near this genePurpose: Search GWAS by gene name
tu.tools.GWAS_search_associations_by_gene(gene_name="TP53", size=10)
# Returns: associations for genePurpose: Get population variant frequencies
tu.tools.gnomad_get_variant_frequency(variant="1-55505647-G-T")
# Returns: population frequencies (gnomAD data)Purpose: Get drugs for disease
tu.tools.OpenTargets_get_associated_drugs_by_disease_efoId(efoId="EFO_0000384", size=100)
# Returns: drug info, phase, status, mechanism, targetPurpose: Get ChEMBL ID from drug name
tu.tools.OpenTargets_get_drug_chembId_by_generic_name(drugName="Aspirin")
# Returns: chemblId, name, descriptionPurpose: Get drug mechanism of action
tu.tools.OpenTargets_get_drug_mechanisms_of_action_by_chemblId(chemblId="CHEMBL25")
# Returns: mechanism, actionType, targetsPurpose: Get drug warnings
tu.tools.OpenTargets_get_drug_warnings_by_chemblId(chemblId="CHEMBL25")
# Returns: warningType, description, toxicityClassPurpose: Check withdrawn/blackbox status
tu.tools.OpenTargets_get_drug_blackbox_status_by_chembl_ID(chemblId="CHEMBL25")
# Returns: hasBeenWithdrawn, blackBoxWarningPurpose: Search ClinicalTrials.gov
tu.tools.search_clinical_trials(
condition="lung cancer",
intervention="pembrolizumab",
query_term="Phase III",
pageSize=20
)
# Returns: NCT ID, brief_title, status, phasePurpose: Get trial descriptions
tu.tools.get_clinical_trial_descriptions(
nct_ids=["NCT04852770", "NCT01728545"],
description_type="full"
)
# Returns: detailed trial descriptionsPurpose: Get conditions and interventions
tu.tools.get_clinical_trial_conditions_and_interventions(
nct_ids=["NCT01158625"],
condition_and_intervention=""
)
# Returns: conditions, arm_groups, interventionsPurpose: Get eligibility criteria
tu.tools.get_clinical_trial_eligibility_criteria(
nct_ids=["NCT01158625"],
eligibility_criteria=""
)
# Returns: eligibility_criteria, sex, age rangePurpose: Get outcome measures
tu.tools.get_clinical_trial_outcome_measures(
nct_ids=["NCT01158625"],
outcome_measures="primary"
)
# Returns: primary/secondary outcomesPurpose: Extract efficacy results
tu.tools.extract_clinical_trial_outcomes(
nct_ids=["NCT01158625"],
outcome_measure="overall survival"
)
# Returns: detailed outcome resultsPurpose: Extract safety data
tu.tools.extract_clinical_trial_adverse_events(
nct_ids=["NCT01158625"],
organ_systems=["Cardiac Disorders"],
adverse_event_type="serious"
)
# Returns: adverse event dataPurpose: Get all disease-associated pathways
tu.tools.Reactome_get_diseases()
# Returns: disease pathways with DOID annotationsPurpose: Get pathway details
tu.tools.Reactome_get_pathway(stId="R-HSA-73817")
# Returns: pathway metadata, events, referencesPurpose: Get reactions in pathway
tu.tools.Reactome_get_pathway_reactions(stId="R-HSA-73817")
# Returns: reactions and subpathwaysPurpose: Get pathways for protein
tu.tools.Reactome_map_uniprot_to_pathways(id="P04637")
# Returns: pathways containing this proteinPurpose: Get reactions for protein
tu.tools.Reactome_map_uniprot_to_reactions(id="P04637")
# Returns: reactions involving this proteinPurpose: List top-level pathways
tu.tools.Reactome_list_top_pathways(species="Homo sapiens")
# Returns: top-level pathway hierarchyPurpose: Tissue-specific protein interactions
tu.tools.humanbase_ppi_analysis(
gene_list=["TP53", "MDM2"],
tissue="brain",
max_node=10,
interaction="co-expression",
string_mode=True
)
# Returns: PPI network, GO biological processesPurpose: Get tissue-specific gene expression (GTEx)
tu.tools.gtex_get_expression_by_gene(gene="BRCA1")
# Returns: expression levels across tissuesPurpose: Get protein expression from Human Protein Atlas
tu.tools.HPA_get_protein_expression(gene="TP53")
# Returns: protein expression by tissue, subcellular localizationPurpose: Search GEO for gene expression datasets
tu.tools.geo_search_datasets(query="Alzheimer disease", max_results=20)
# Returns: GEO dataset accessions, descriptionsPurpose: Search biomedical literature
tu.tools.PubMed_search_articles(
query='"Alzheimer disease" AND biomarker',
limit=50
)
# Returns: PMIDsPurpose: Get article metadata
tu.tools.PubMed_get_article(pmid="12345678")
# Returns: title, abstract, authors, journalPurpose: Get related articles
tu.tools.PubMed_get_related(pmid="20210808", limit=20)
# Returns: related PMIDsPurpose: Get citing articles
tu.tools.PubMed_get_cited_by(pmid="20210808", limit=20)
# Returns: PMIDs of citing articlesPurpose: Get publications for disease
tu.tools.OpenTargets_get_publications_by_disease_efoId(efoId="EFO_0000384")
# Returns: disease-related publicationsPurpose: Get publications for target
tu.tools.OpenTargets_get_publications_by_target_ensemblID(ensemblId="ENSG00000141510")
# Returns: target-related publicationsPurpose: Search OpenAlex for works with institutional data
tu.tools.openalex_search_works(query="Alzheimer disease biomarker", limit=50)
# Returns: works with authors, institutions, citations, topicsPurpose: Search Europe PMC literature
tu.tools.europe_pmc_search_abstracts(query="Parkinson disease mechanism", limit=50)
# Returns: abstracts from Europe PMCPurpose: Search Semantic Scholar with citation networks
tu.tools.semantic_scholar_search_papers(query="cancer immunotherapy", limit=50)
# Returns: papers with citation counts, influential citationsPurpose: Find similar diseases, targets, drugs
tu.tools.OpenTargets_get_similar_entities_by_disease_efoId(
efoId="EFO_0000249",
threshold=0.5,
size=20
)
# Returns: similar entities with scoresPurpose: Search cancer diseases
tu.tools.civic_search_diseases(limit=50)
# Returns: cancer diseases in CIViCPurpose: Search cancer genes
tu.tools.civic_search_genes(query="BRAF", limit=10)
# Returns: gene id, name, descriptionPurpose: Get variants for gene
tu.tools.civic_get_variants_by_gene(gene_id=5, limit=50)
# Returns: variants for genePurpose: Get variant details
tu.tools.civic_get_variant(variant_id=4170)
# Returns: variant detailsPurpose: Get clinical evidence
tu.tools.civic_get_evidence_item(evidence_id=116)
# Returns: evidence description, level, typePurpose: Search cancer therapies
tu.tools.civic_search_therapies(limit=50)
# Returns: therapy listPurpose: Search biomarker profiles
tu.tools.civic_search_molecular_profiles(limit=50)
# Returns: molecular profilesPurpose: Search diseases
tu.tools.GtoPdb_list_diseases(name="diabetes", limit=20)
# Returns: diseases with IDs, OMIM, DOIDPurpose: Get disease details
tu.tools.GtoPdb_get_disease(disease_id=652)
# Returns: targets, ligands, descriptionPurpose: Get pharmacological targets
tu.tools.GtoPdb_get_targets(target_type="GPCR", limit=20)
# Returns: targets with drugs, ligandsPurpose: Get target details
tu.tools.GtoPdb_get_target(target_id=290)
# Returns: detailed target infoPurpose: Get target-ligand interactions
tu.tools.GtoPdb_get_target_interactions(
target_id=290,
action_type="Agonist"
)
# Returns: interactions with affinityPurpose: Search drug-target interactions
tu.tools.GtoPdb_search_interactions(
approved_only=True,
limit=100
)
# Returns: interaction dataPurpose: Search ligands/drugs
tu.tools.GtoPdb_list_ligands(ligand_type="Approved", limit=20)
# Returns: ligands with propertiesPurpose: Get ligand details
tu.tools.GtoPdb_get_ligand(ligand_id=1016)
# Returns: SMILES, properties, targetsPurpose: Get disease-associated variants
tu.tools.UniProt_get_disease_variants_by_accession(accession="P05067")
# Returns: disease variants for proteinPurpose: Get protein function
tu.tools.UniProt_get_function_by_accession(accession="P05067")
# Returns: protein function descriptionPurpose: Get protein localization
tu.tools.UniProt_get_subcellular_location_by_accession(accession="P05067")
# Returns: cellular locationPurpose: Generate safety questions
tu.tools.AdverseEventPredictionQuestionGenerator(
disease_name="Alzheimer's disease",
drug_name="Kisunla"
)
# Returns: safety prediction questionsPurpose: Map adverse events to ICD codes
tu.tools.AdverseEventICDMapper(
source_text="Patient experienced headache and nausea"
)
# Returns: ICD-10 codes for adverse eventsPurpose: Get FDA adverse event reports count
tu.tools.FAERS_count_reactions_by_drug_event(drug="metformin", event="nausea")
# Returns: count of adverse event reports from FAERS| From | To | Tool |
|---|---|---|
| Disease name | EFO ID | OSL_get_efo_id_by_disease_name |
| Disease name | EFO ID | OpenTargets_get_disease_id_description_by_name |
| Drug name | ChEMBL ID | OpenTargets_get_drug_chembId_by_generic_name |
| Gene symbol | Ensembl ID | Use OpenTargets search |
| UniProt ID | Pathways | Reactome_map_uniprot_to_pathways |
| Symptom | HPO ID | get_HPO_ID_by_phenotype |
| HPO IDs | Diseases | get_joint_associated_diseases_by_HPO_ID_list |
| Gene | Diseases | OpenTargets_get_diseases_phenotypes_by_target_ensembl |
| SNP rs ID | Diseases | gwas_get_associations_for_snp |
Good query construction:
# Specific disease + topic
query = '"Alzheimer disease" AND mechanism'
# Multiple terms with OR
query = '"Parkinson disease" OR "Parkinson\'s disease" AND therapy'
# Exclude terms
query = '"diabetes" NOT "gestational diabetes" AND treatment'
# Recent papers only
query = '"cancer" AND immunotherapy'
arguments = {'query': query, 'years': 2} # Last 2 yearsField-specific searches:
# Title only
query = 'Alzheimer[Title] AND biomarker[Title]'
# MeSH terms
query = '"Alzheimer Disease"[MeSH] AND "Drug Therapy"[MeSH]'
# Publication types
query = '"diabetes" AND systematic review[Publication Type]'Disease ID formats:
- EFO IDs:
EFO_0000249(Alzheimer's) - Orphanet:
Orphanet_558(rare diseases) - MONDO:
MONDO_0008199
Finding disease IDs:
# Search by name
result = tu.tools.OSL_get_efo_id_by_disease_name(disease='Alzheimer disease')
efo_id = result.get('efo_id') # Get EFO IDEffective search strategies:
# By condition
{'condition': 'Alzheimer Disease'}
# By intervention
{'condition': 'cancer', 'intervention': 'pembrolizumab'}
# By phase
{'condition': 'diabetes', 'query_term': 'Phase 3'}
# By status
{'condition': 'depression', 'status': 'Recruiting'}Solution: Always try to get both
if disease_name and not disease_id:
# Get EFO ID from name
result = tu.tools.OSL_get_efo_id_by_disease_name(disease=disease_name)
disease_id = result.get('efo_id')
elif disease_id and not disease_name:
# Get name from EFO ID
result = tu.tools.OpenTargets_get_disease_id_description_by_name(efoId=disease_id)
disease_name = result.get('name')Solution: Try alternative tools or queries
targets = tu.tools.OpenTargets_get_associated_targets_by_disease_efoId(efoId=disease_id)
if not targets.get('data'):
# Try PubMed text mining as fallback
pmids = tu.tools.PubMed_search_articles(query=f'"{disease_name}" AND gene')Solution: Set appropriate timeouts and handle gracefully
try:
result = future.result(timeout=120) # 2 minutes
except TimeoutError:
result = {'status': 'timeout', 'message': 'Query too slow'}Solution: Add delays or use caching
import time
from functools import lru_cache
@lru_cache(maxsize=100)
def cached_query(tool_name, args_json):
# Cache results to avoid repeated queries
import json
return tu.run({'name': tool_name, 'arguments': json.loads(args_json)})# Good: Independent paths in parallel
with ThreadPoolExecutor(max_workers=5) as executor:
futures = {
'path1': executor.submit(path1_func),
'path2': executor.submit(path2_func),
# All independent
}
# Bad: Dependent queries in parallel
# Don't parallelize if path2 needs path1 results# Limit results to avoid overwhelming output
top_targets = targets['data'][:10] # Top 10 only
top_pathways = pathways['data'][:5] # Top 5 only
top_drugs = drugs['data'][:5] # Top 5 only# Cache expensive queries
cache = {}
def get_gene_info(gene_id):
if gene_id in cache:
return cache[gene_id]
result = tu.tools.UniProt_get_entry_by_accession(accession=gene_id)
cache[gene_id] = result
return resultTrack data quality in your synthesis:
quality_metrics = {
'sources_queried': 15, # How many tools used
'sources_successful': 12, # How many returned data
'completeness_score': 0.80, # 80% of paths succeeded
'data_recency': {
'publications': '2024', # Most recent paper
'trials': '2024', # Most recent trial
'approval': '2023' # Most recent drug approval
}
}Include in report:
Data Quality: ⭐⭐⭐⭐ (80% complete, 12/15 sources)
Most recent data: 2024