| name | tooluniverse-drug-mechanism-research |
| description | Trace drug mechanism of action — primary target → downstream signaling → pathway perturbation → tissue/organ effect → clinical outcome. Uses DrugBank, ChEMBL, KEGG, Reactome, STRING. Use for understanding how a drug works, identifying off-target effects, mechanism-based combination therapy design, and writing mechanism sections of reports. |
| triggers | [{"keywords":["mechanism of action","drug target","pharmacology","pathway","pharmacogenomics","drug interaction","DailyMed","CPIC","MOA","off-target"]},{"patterns":["how does .* work","mechanism of action","drug target","pathway context","clinical pharmacology","drug-drug interaction","pharmacogenomic","off-target effect"]}] |
Drug Mechanism of Action Investigation
Investigation Philosophy
Drug mechanism research follows one core question chain:
Target -> Downstream Effect -> Pathway -> Organ Effect -> Clinical Outcome
Start with the drug's primary target. What receptor, enzyme, or transporter does it bind? Then trace forward: what does inhibiting/activating that target do immediately? What pathway is disrupted? What organ-level change results? What does the patient experience?
The LLM already knows drug pharmacology. This skill teaches HOW TO INVESTIGATE using available tools, not what mechanisms exist.
When to Use
- "What is the mechanism of action of [drug]?"
- "What are the molecular targets of [drug]?"
- "Which pathways are affected by [drug]?"
- "What pharmacogenomic interactions exist for [drug]?"
- "What are the off-targets of [drug]?"
- "Compare mechanisms of [drug A] vs [drug B]"
NOT for (use other skills)
- Drug safety/adverse events profiling ->
tooluniverse-adverse-event-detection
- Drug repurposing/new indications ->
tooluniverse-drug-repurposing
- Target druggability assessment ->
tooluniverse-drug-target-validation
- Network pharmacology/polypharmacology ->
tooluniverse-network-pharmacology
- CPIC dosing guidelines specifically ->
tooluniverse-pharmacogenomics
Step 1: Resolve the Drug
Before investigating mechanism, resolve the drug name to a canonical identifier. You need a ChEMBL ID for most downstream queries.
result = tu.tools.OpenTargets_get_drug_id_description_by_name(drugName="metformin")
result = tu.tools.PharmGKB_search_drugs(query="metformin")
Fallback: If OpenTargets returns no hits, try PharmGKB_search_drugs or ChEMBL_get_drug with a known ChEMBL ID.
Step 2: Identify the Primary Target
The first question: what does this drug bind to, and what does it do to that target?
Two complementary sources give you this:
moa = tu.tools.OpenTargets_get_drug_mechanisms_of_action_by_chemblId(chemblId="CHEMBL1431")
for row in moa["data"]["drug"]["mechanismsOfAction"]["rows"]:
print(f"{row['mechanismOfAction']} ({row['actionType']}) -> {row['targetName']}")
for t in row.get("targets", []):
print(f" Target gene: {t['approvedSymbol']} ({t['id']})")
mechs = tu.tools.ChEMBL_get_drug_mechanisms(drug_chembl_id__exact="CHEMBL1431")
for m in mechs["data"]["mechanisms"]:
print(f"MOA: {m['mechanism_of_action']}, Direct: {m['direct_interaction']}")
print(f" Refs: {[r['ref_id'] for r in m.get('mechanism_refs', [])]}")
Key fields to extract: action_type (INHIBITOR, AGONIST, ANTAGONIST, etc.), target gene symbol, direct_interaction (boolean), and literature references.
Known issue: OpenTargets_get_associated_targets_by_drug_chemblId may fail (GraphQL schema change). Extract targets from the MOA results instead.
Step 3: Assess Off-Target Effects
Most drugs bind more than one target at clinical concentrations. After identifying the primary target, ask: what other proteins does this drug interact with? Off-target binding explains many side effects and drug interactions.
activities = tu.tools.ChEMBL_get_target_activities(target_chembl_id__exact="CHEMBL2364")
partners = tu.tools.STRING_get_interaction_partners(identifiers="PRKAA1", species=9606)
Reasoning strategy: If ChEMBL MOA lists multiple targets, compare their action types. Same action type across related targets suggests on-pathway polypharmacology. Different action types suggest true off-target effects. The binding affinity (IC50/Ki from bioactivity data) tells you which targets matter at clinical doses -- nanomolar affinity is primary, micromolar is likely off-target.
Step 4: Map to Pathway Context
A drug target does not work in isolation. Map it to its pathway to understand the breadth of effect.
Key question: Is the target upstream (affects many downstream genes, broader effects, more side effects) or downstream (narrow, specific effect)?
genes = tu.tools.kegg_find_genes(keyword="PRKAA1", organism="hsa")
pathways = tu.tools.KEGG_get_gene_pathways(gene_id="hsa:5562")
reactome = tu.tools.Reactome_map_uniprot_to_pathways(uniprot_id="Q13131")
wp = tu.tools.WikiPathways_find_pathways_by_gene(gene="PRKAA1")
annot = tu.tools.STRING_get_functional_annotations(identifiers="PRKAA1", species=9606)
For multi-target drugs, run pathway enrichment to find convergent pathways:
enrichment = tu.tools.ReactomeAnalysis_pathway_enrichment(identifiers="PRKAA1 PRKAA2 PRKAB1")
enrichment = tu.tools.STRING_functional_enrichment(identifiers="PRKAA1 PRKAA2", species=9606)
Reasoning strategy: If multiple drug targets converge on the same pathway, that pathway is the drug's true mechanism. If targets are in different pathways, the drug has genuinely multi-pathway effects -- report each separately.
Step 5: Get the Regulatory View (DailyMed)
Drug labels describe WHAT the drug does. This is the FDA-approved mechanism narrative.
DailyMed requires a two-step process: search for the drug to get a setid, then parse specific label sections.
spls = tu.tools.DailyMed_search_spls(drug_name="metformin")
setid = spls["data"][0]["setid"]
pharmacology = tu.tools.DailyMed_parse_clinical_pharmacology(
operation="parse_clinical_pharmacology", setid=setid)
interactions = tu.tools.DailyMed_parse_drug_interactions(
operation="parse_drug_interactions", setid=setid)
contra = tu.tools.DailyMed_parse_contraindications(
operation="parse_contraindications", setid=setid)
Other DailyMed parse tools: DailyMed_parse_adverse_reactions, DailyMed_parse_dosing.
Reasoning strategy: The label's clinical pharmacology section often describes the mechanism differently from database entries. The label emphasizes clinically relevant effects; databases emphasize molecular detail. Both perspectives are needed.
Step 6: Check Pharmacogenomics
Pharmacogenomic variants affect how a patient responds to the drug. This matters for mechanism because PGx genes are often the drug's metabolizing enzymes or targets.
pairs = tu.tools.CPIC_search_gene_drug_pairs(gene_symbol="CYP2C19", cpiclevel="A", limit=20)
drug_info = tu.tools.CPIC_get_drug_info(name="clopidogrel")
fda_pgx = tu.tools.fda_pharmacogenomic_biomarkers(drug_name="clopidogrel", limit=100)
fda_pgx = tu.tools.fda_pharmacogenomic_biomarkers(biomarker="CYP2D6", limit=100)
gene_info = tu.tools.PharmGKB_search_genes(query="CYP2C19")
Reasoning strategy: CPIC Level A/B pairs have strong evidence and actionable guidelines. If a drug has CPIC Level A interactions, those genes are critical to its mechanism (usually metabolizing enzymes or direct targets). FDA PGx biomarkers tell you what's on the approved label.
Step 7: Gather Literature Evidence
Literature describes WHY the mechanism works. Combine with labels (what) for a complete picture.
articles = tu.tools.PubMed_search_articles(
query="metformin mechanism of action AMPK mitochondrial", limit=10)
articles = tu.tools.EuropePMC_search_articles(
query="metformin mechanism action mitochondrial", limit=10)
citations = tu.tools.EuropePMC_get_citations(source="MED", identifier="12345678")
Search strategy: Start with "[drug] mechanism of action [primary target]". If the mechanism is debated, add the competing hypotheses as separate queries. Recent reviews (add "review" to query) give the current consensus.
Step 8: Integrate and Report
Evidence Hierarchy
- Tier 1 (Regulatory): FDA label (DailyMed), CPIC Level A, FDA PGx biomarker
- Tier 2 (Experimental): ChEMBL mechanisms with literature refs, binding data
- Tier 3 (Database): OpenTargets MOA, pathway databases (KEGG/Reactome/WikiPathways)
- Tier 4 (Literature): PubMed/EuropePMC articles
Report Structure
## Drug Mechanism Report: [Drug Name]
### Drug Identity
- ChEMBL ID, PharmGKB ID, approval status
### Primary Mechanism
- Target: [gene symbol], Action: [INHIBITOR/AGONIST/etc.]
- Mechanism narrative (from DailyMed + databases)
- Direct interaction: yes/no
### Off-Target Effects
- Additional targets with action types and binding affinities
- Which off-targets explain known side effects
### Pathway Context
- Key pathways (from KEGG/Reactome/WikiPathways)
- Upstream vs downstream position of target
- Convergent pathways for multi-target drugs
### Pharmacogenomics
- CPIC gene-drug pairs with levels
- FDA PGx biomarkers
### Drug Interactions
- Mechanism-based interactions (enzyme inhibition/induction)
- Key interactions from DailyMed
### Evidence Summary
| Finding | Source | Tier |
|---------|--------|------|
| Primary MOA | ChEMBL + DailyMed | T1/T2 |
| Off-targets | ChEMBL bioactivity | T2 |
| Pathways | KEGG/Reactome | T3 |
| PGx | CPIC/FDA | T1 |
Comparing Two Drugs
When comparing mechanisms, run Steps 2-4 for both drugs, then align:
- Same target, different action? (e.g., agonist vs antagonist at the same receptor)
- Different targets, same pathway? (e.g., both affect insulin signaling but at different nodes)
- Different pathways entirely? (e.g., metformin on AMPK vs pioglitazone on PPAR-gamma)
for drug in [("metformin", "CHEMBL1431"), ("pioglitazone", "CHEMBL595")]:
moa = tu.tools.OpenTargets_get_drug_mechanisms_of_action_by_chemblId(chemblId=drug[1])
clin = tu.tools.DailyMed_parse_clinical_pharmacology(drug_name=drug[0])
Fallback Strategies
| Step | Primary Tool | Fallback |
|---|
| Drug ID | OpenTargets_get_drug_id_description_by_name | PharmGKB_search_drugs |
| MOA | OpenTargets_get_drug_mechanisms_of_action_by_chemblId | ChEMBL_get_drug_mechanisms |
| Pathways | KEGG_get_gene_pathways | WikiPathways_find_pathways_by_gene, Reactome_map_uniprot_to_pathways |
| PGx | CPIC_search_gene_drug_pairs | fda_pharmacogenomic_biomarkers |
| Clinical info | DailyMed_parse_clinical_pharmacology | OpenTargets_get_drug_description_by_chemblId |
| DDI | DailyMed_parse_drug_interactions | PubMed_search_articles (DDI query) |
| Literature | PubMed_search_articles | EuropePMC_search_articles |
MetaCyc note: MetaCyc requires a paid account and is not available. Use KEGG, Reactome, or WikiPathways instead.