
Tooluniverse Drug Research
- 414 installs
- 1.6k repo stars
- Updated August 4, 2026
- mims-harvard/tooluniverse
tooluniverse-drug-research is an agent skill that produces comprehensive, citation-backed drug investigation reports by querying 50+ ToolUniverse databases for developers and researchers exploring compound mechanisms, sa
About
tooluniverse-drug-research is a Harvard ToolUniverse agent skill for comprehensive drug profiling using 50+ tools across PubChem, ChEMBL, DailyMed, ClinicalTrials.gov, FAERS, PharmGKB, and FDA Orange Book APIs. The workflow is report-first: create an 11-section `[DRUG]_drug_report.md` file, resolve compound identifiers, then populate chemistry, mechanism, ADMET, clinical trials, safety, pharmacogenomics, regulatory, and literature sections with inline source citations and T1–T4 evidence grading. A 12-step progressive workflow enforces compound disambiguation before research and mandatory fallback chains when primary APIs fail. Developers and computational biologists reach for tooluniverse-drug-research when drafting drug discovery briefs, clinician-facing profiles, safety reviews, or repurposing analyses that require cross-database evidence instead of model guesses.
- Cross-source drug profiling
- Indication and repurposing scans
- Evidence aggregation for briefs
- Reduced manual database switching
- Composable agent research workflow
Tooluniverse Drug Research by the numbers
- 414 all-time installs (skills.sh)
- +6 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #487 of 2,064 Data Science & ML skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-drug-researchAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 414 |
|---|---|
| repo stars | ★ 1.6k |
| Last updated | August 4, 2026 |
| Repository | mims-harvard/tooluniverse ↗ |
How do you build a cited drug profile from public databases?
Consolidate compound, indication, and evidence searches when exploring repurposing opportunities or drafting a drug discovery brief for stakeholders.
Who is it for?
Developers and researchers building pharma intelligence workflows who need reproducible, multi-database drug reports with mandatory citations.
Skip if: Single-property lookups, pure literature reviews, target-only research, or disease-focused investigations better handled by sibling ToolUniverse skills.
When should I use this skill?
The user requests a full drug profile, mechanism report, repurposing brief, or safety review requiring PubChem, ChEMBL, FAERS, or clinical-trial evidence.
What you get
A `[DRUG]_drug_report.md` with 11 mandatory sections, inline citations, evidence grades, and cross-database source audit.
- Drug investigation markdown report
- Cross-database citations
- Evidence-graded findings
By the numbers
- Uses 50+ ToolUniverse tools across chemical, clinical, safety, and regulatory databases
- Produces an 11-section drug report via a 12-step progressive workflow
- Grades evidence claims on a T1–T4 strength scale with mandatory inline citations
Files
Drug Research Strategy
Comprehensive drug investigation using 50+ ToolUniverse tools across chemical databases, clinical trials, adverse events, pharmacogenomics, and literature.
KEY PRINCIPLES: 1. Report-first approach - Create report file FIRST, then populate progressively 2. Compound disambiguation FIRST - Resolve identifiers before research 3. Citation requirements - Every fact must have inline source attribution 4. Evidence grading - Grade claims by evidence strength (T1-T4) 5. Mandatory completeness - All sections must exist, even if "data unavailable" 6. English-first queries - Always use English drug/compound names in tool calls, even if the user writes in another language. Only try original-language terms as a fallback. Respond in the user's language
---
LOOK UP, DON'T GUESS
When asked about a drug, query ChEMBL/PubChem/DailyMed FIRST. Don't guess at mechanism, targets, or side effects — look them up. When you're not sure about a fact, your first instinct should be to SEARCH for it using tools, not to reason harder from memory.
---
Drug Mechanism Reasoning
When investigating a drug's mechanism of action, trace the full causal chain: 1. Target engagement - Which protein(s) does the drug bind, and with what affinity/selectivity? 2. Molecular effect - Does binding inhibit, activate, or modulate the target's function? 3. Pathway consequence - Which signaling or metabolic pathway is altered downstream? 4. Cellular phenotype - What changes occur at the cell level (proliferation, apoptosis, secretion)? 5. Physiological outcome - How does the cellular effect translate to the therapeutic benefit in the patient?
---
Workflow Overview
1. Report-First Approach (MANDATORY)
DO NOT show the search process or tool outputs to the user. Instead:
1. Create the report file FIRST - [DRUG]_drug_report.md with all 11 section headers and [Researching...] placeholders. See REPORT_TEMPLATE.md for the full template. 2. Progressively update the report - Replace placeholders with findings as you query each tool. 3. Use ALL relevant tools - Query multiple databases for each data type; cross-reference across sources.
2. Citation Requirements (MANDATORY)
Every piece of information MUST include its source. Use inline citations:
*Source: PubChem via `PubChem_get_compound_properties_by_CID` (CID: 4091)*3. Progressive Writing Workflow
Step 1: Create report file with all section headers
Step 2: Resolve compound identifiers -> Update Section 1
Step 3: Query PubChem/ADMET-AI/DailyMed SPL -> Update Section 2 (Chemistry)
Step 4: Query FDA Label MOA + ChEMBL + DGIdb -> Update Section 3 (Mechanism)
Step 5: Query ADMET-AI tools -> Update Section 4 (ADMET)
Step 6: Query ClinicalTrials.gov -> Update Section 5 (Clinical)
Step 7: Query FAERS/DailyMed -> Update Section 6 (Safety)
Step 8: Query PharmGKB -> Update Section 7 (Pharmacogenomics)
Step 9: Query DailyMed/Orange Book -> Update Section 8 (Regulatory)
Step 10: Query PubMed/literature -> Update Section 9 (Literature)
Step 11: Synthesize findings -> Update Executive Summary & Section 10
Step 12: Document all sources -> Update Section 11 (Data Sources)---
Compound Disambiguation (Phase 1)
CRITICAL: Establish compound identity before any research.
Identifier Resolution Chain
1. PubChem_get_CID_by_compound_name(compound_name)
-> Extract: CID, canonical SMILES, formula
2. ChEMBL_search_molecules(query=drug_name)
-> Extract: ChEMBL ID, pref_name
3. DailyMed_search_spls(drug_name)
-> Extract: Set ID, NDC codes (if approved)
4. PharmGKB_search_drugs(query=drug_name)
-> Extract: PharmGKB ID (PA...)Handle Naming Ambiguity
| Issue | Example | Resolution |
|---|---|---|
| Salt forms | metformin vs metformin HCl | Note all CIDs; use parent compound |
| Isomers | omeprazole vs esomeprazole | Verify SMILES; separate entries if distinct |
| Prodrugs | enalapril vs enalaprilat | Document both; note conversion |
| Brand confusion | Different products same name | Clarify with user |
---
Research Paths Summary
Each path has detailed tool chains and output examples in REPORT_GUIDELINES.md.
PATH 1: Chemical Properties & CMC
Tools: PubChem properties -> ADMET-AI physicochemical -> ADMET-AI solubility -> DailyMed chemistry/description Output: Physicochemical table, Lipinski assessment, QED score, salt forms, formulation comparison
PATH 2: Mechanism & Targets
Tools: DailyMed MOA -> ChEMBL activities (NOT ChEMBL_get_molecule_targets) -> ChEMBL target details -> DGIdb -> PubChem bioactivity Critical: Derive targets from activities filtered to pChEMBL >= 6.0. Avoid ChEMBL_get_molecule_targets. Output: FDA MOA text, target table with UniProt/potency, selectivity profile
PATH 3: ADMET Properties
Tools: ADMET-AI (bioavailability, BBB, CYP, clearance, toxicity) Fallback: DailyMed clinical_pharmacology + pharmacokinetics + drug_interactions Critical: If ADMET-AI fails, automatically use fallback. Never leave Section 4 empty.
PATH 4: Clinical Trials
Tools: search_clinical_trials -> compute phase counts -> extract outcomes/AEs -> fda_pharmacogenomic_biomarkers Critical: Section 5.2 must show actual counts by phase/status in table format.
PATH 5: Post-Marketing Safety
Tools: FAERS (reactions, seriousness, outcomes, deaths, age) + DailyMed (DDI, dosing, warnings) Critical: Include FAERS date window, seriousness breakdown, and limitations paragraph.
PATH 6: Pharmacogenomics
Tools: PharmGKB (search -> details -> annotations -> guidelines) Fallback: DailyMed pharmacogenomics section + PubMed literature
PATH 7: Regulatory & Patents
Tools: FDA Orange Book (search, approval history, exclusivity, patents, generics) + DailyMed (special populations via LOINC codes) Note: US-only data; document EMA/PMDA limitation.
PATH 8: Real-World Evidence
Tools: ClinicalTrials.gov (OBSERVATIONAL studies) + PubMed (real-world, registry, surveillance)
PATH 9: Comparative Analysis
Tools: Abbreviated tool chains for each comparator + head-to-head trial search + PubMed meta-analyses
---
FDA Label Core Fields
For approved drugs, retrieve these DailyMed sections early (after getting set_id):
| Batch | Sections | Maps to Report |
|---|---|---|
| Phase 1 | mechanism_of_action, pharmacodynamics, chemistry | Sections 2-3 |
| Phase 2 | clinical_pharmacology, pharmacokinetics, drug_interactions | Sections 4, 6.5 |
| Phase 3 | warnings_and_cautions, adverse_reactions, dosage_and_administration | Sections 6, 8.2 |
| Phase 4 | pharmacogenomics, clinical_studies, description, inactive_ingredients | Sections 5, 7 |
---
Fallback Chains
| Primary Tool | Fallback | Use When |
|---|---|---|
PubChem_get_CID_by_compound_name | ChEMBL_search_drugs | Name not in PubChem |
ChEMBL_get_molecule_targets | Use `ChEMBL_search_activities` instead | Always avoid this tool |
ChEMBL_get_activity | PubChemBioAssay_get_assay_summary | No ChEMBL ID |
DailyMed_search_spls | PubChemTox_get_acute_effects | DailyMed timeout |
PharmGKB_search_drugs | DailyMed PGx sections + PubMed | PharmGKB unavailable |
PharmGKB_get_dosing_guidelines | DailyMed pharmacogenomics section | PharmGKB API error |
FAERS_count_reactions_by_drug_event | Document "FAERS unavailable" + use label AEs | API error |
ADMETAI_* (all tools) | DailyMed clinical_pharmacology + pharmacokinetics | Invalid SMILES or API error |
---
Quick Reference: Tools by Use Case
| Use Case | Primary Tool | Fallback | Evidence |
|---|---|---|---|
| Name -> CID | PubChem_get_CID_by_compound_name | ChEMBL_search_drugs | T1 |
| Properties | PubChem_get_compound_properties_by_CID | ADMET-AI physicochemical | T1/T2 |
| FDA MOA | DailyMed_parse_clinical_pharmacology (mechanism_of_action) | - | T1 |
| Targets | ChEMBL_search_activities -> ChEMBL_get_target | DGIdb_get_drug_info | T1 |
| ADMET | ADMETAI_predict_* (5 tools) | DailyMed PK sections | T2/T1 |
| Trials | search_clinical_trials | - | T1 |
| Trial outcomes | extract_clinical_trial_outcomes | - | T1 |
| FAERS | FAERS_count_reactions_by_drug_event | Label adverse_reactions | T1 |
| Dose mods | DailyMed_parse_clinical_pharmacology (dosage, warnings) | - | T1 |
| PGx | PharmGKB_search_drugs | DailyMed PGx + PubMed | T2/T1 |
| Label | DailyMed_search_spls | PubChemTox_get_acute_effects | T1 |
| Literature | PubMed_search_articles | EuropePMC_search_articles | Varies |
| Regulatory | FDA_OrangeBook_* tools | DailyMed label data | T1 |
See TOOLS_REFERENCE.md for the complete tool listing with parameters and input format requirements.
---
Type Normalization
Many tools require string inputs. Always convert IDs before API calls:
- ChEMBL IDs, PubMed IDs, NCT IDs: convert int -> str
- SMILES for ADMET-AI: pass as list
["SMILES_STRING"] - FAERS drug names: use UPPERCASE (e.g.,
"METFORMIN") - ChEMBL IDs: full format
"CHEMBL1431"not"1431" - PharmGKB IDs: PA prefix
"PA450657"not"450657"
---
Common Use Cases
| Use Case | Primary Sections | Light Sections |
|---|---|---|
| Approved Drug Profile | All 11 sections | None |
| Investigational Compound | 1, 2, 3, 4, 9 | 5, 6, 7, 8 |
| Safety Review | 1, 5, 6, 7, 9 | 2, 3, 4, 8 |
| ADMET Assessment | 1, 2, 4 | 3, 5, 6, 7, 8, 9 |
| Clinical Development Landscape | 1, 5, 9 | 2, 3, 4, 6, 7, 8 |
Always maintain all section headers but adjust depth based on query focus and data availability.
---
When NOT to Use This Skill
- Target research -> Use target-intelligence-gatherer skill
- Disease research -> Use disease-research skill
- Literature-only -> Use literature-deep-research skill
- Single property lookup -> Call tool directly
- Structure similarity search -> Use
PubChem_search_compounds_by_similaritydirectly
---
Cross-Skill References
For drug interaction checking, run: python3 skills/tooluniverse-drug-drug-interaction/scripts/pharmacology_ref.py --type interaction --drug1 X --drug2 Y
---
Additional Resources
- Report template: REPORT_TEMPLATE.md - Initial file template, citation format, evidence grading, scorecard, audit template
- Report guidelines: REPORT_GUIDELINES.md - Detailed section-by-section instructions with output examples
- Tool reference: TOOLS_REFERENCE.md - Complete tool listing with parameters and input formats
- Verification checklist: CHECKLIST.md - Section-by-section pre-delivery verification
- Examples: EXAMPLES.md - Detailed workflow examples for different use cases
Drug Research Report Checklist
Complete verification checklist before delivering any drug research report.
---
Pre-Research Setup
Report File Created
- [ ] File named
[DRUG]_drug_report.md - [ ] All 11 section headers present
- [ ]
[Researching...]placeholders in each section - [ ] Header includes: Generated date, Query, Status
Compound Disambiguated
- [ ] PubChem CID established
- [ ] ChEMBL ID cross-referenced (or confirmed N/A)
- [ ] Canonical SMILES captured
- [ ] Naming ambiguity resolved (salt forms, isomers)
- [ ] All relevant identifiers documented
---
Section-by-Section Verification
Executive Summary
- [ ] 2-3 paragraphs synthesizing key findings
- [ ] Covers: What is it? What's it used for? Key characteristics?
- [ ] Bottom Line: One actionable sentence
- [ ] Written LAST (after all data collected)
Section 1: Compound Identity
| Requirement | Status |
|---|---|
| PubChem CID with link | [ ] |
| ChEMBL ID with link | [ ] |
| RxNorm CUI (if approved) | [ ] |
| PharmGKB ID (if exists) | [ ] |
| DailyMed Set ID (if approved) | [ ] |
| Canonical SMILES | [ ] |
| InChI Key | [ ] |
| Molecular formula | [ ] |
| Molecular weight | [ ] |
| IUPAC name | [ ] |
| Brand names (≥3 or "Generic only") | [ ] |
| Salt forms identified | [ ] |
| Data source citations | [ ] |
Section 2: Chemical Properties
| Requirement | Status |
|---|---|
| MW, LogP, TPSA in table | [ ] |
| H-bond donors/acceptors | [ ] |
| Rotatable bonds | [ ] |
| Lipinski assessment (violations) | [ ] |
| QED score with interpretation | [ ] |
| Solubility prediction | [ ] |
| Drug-likeness verdict | [ ] |
| Data source citations | [ ] |
Section 3: Mechanism & Targets
| Requirement | Status |
|---|---|
| Primary mechanism (2-3 sentences) | [ ] |
| Primary target(s) with UniProt | [ ] |
| Activity type (inhibitor/activator/etc.) | [ ] |
| Potency (IC50/EC50/Ki) | [ ] |
| Off-target activity addressed | [ ] |
| ChEMBL bioactivity summary | [ ] |
| Evidence grade on mechanism | [ ] |
| Data source citations | [ ] |
Section 4: ADMET Properties
| Requirement | Status |
|---|---|
| 4.1 Absorption | |
| - Oral bioavailability prediction | [ ] |
| - Caco-2 OR PAMPA | [ ] |
| - P-gp substrate status | [ ] |
| 4.2 Distribution | |
| - BBB penetrance prediction | [ ] |
| - VDss OR PPB | [ ] |
| 4.3 Metabolism | |
| - CYP1A2 status | [ ] |
| - CYP2C9 status | [ ] |
| - CYP2C19 status | [ ] |
| - CYP2D6 status | [ ] |
| - CYP3A4 status | [ ] |
| 4.4 Excretion | |
| - Clearance OR half-life | [ ] |
| 4.5 Toxicity | |
| - AMES mutagenicity | [ ] |
| - hERG inhibition | [ ] |
| - Hepatotoxicity (DILI) | [ ] |
| - At least 1 other endpoint | [ ] |
| All predictions have risk interpretation | [ ] |
| Data source citations | [ ] |
Section 5: Clinical Development
| Requirement | Status |
|---|---|
| Development status (Approved/Investigational/etc.) | [ ] |
| Total trial count | [ ] |
| Trials by phase (table) | [ ] |
| Trials by status (completed/recruiting/etc.) | [ ] |
| Approved indications with year | [ ] |
| Investigational indications | [ ] |
| Key efficacy data with NCT references | [ ] |
| Evidence grades on efficacy claims | [ ] |
| Data source citations | [ ] |
Section 6: Safety Profile
| Requirement | Status |
|---|---|
| 6.1 Clinical AEs | |
| - AEs from trial data (if available) | [ ] |
| 6.2 FAERS | |
| - Total report count | [ ] |
| - Top 5 adverse reactions (table) | [ ] |
| - Serious vs non-serious ratio | [ ] |
| - Outcome distribution (fatal, recovered, etc.) | [ ] |
| OR "Insufficient FAERS data" noted | [ ] |
| 6.3 Black Box Warnings | |
| - Listed with text OR "None" | [ ] |
| 6.4 Contraindications | |
| - At least 3 listed OR "See labeling" | [ ] |
| 6.5 Drug Interactions | |
| - At least 3 major interactions OR "None significant" | [ ] |
| Signal assessment narrative | [ ] |
| Data source citations | [ ] |
Section 7: Pharmacogenomics
| Requirement | Status |
|---|---|
| Pharmacogenes listed (table) OR "None identified" | [ ] |
| Gene roles explained (transporter, metabolizer, etc.) | [ ] |
| PharmGKB evidence levels | [ ] |
| CPIC guideline status | [ ] |
| DPWG guideline status | [ ] |
| Clinical annotations with variants | [ ] |
| Actionable recommendations (if any) | [ ] |
| Data source citations | [ ] |
Section 8: Regulatory & Labeling
| Requirement | Status |
|---|---|
| FDA approval status and year | [ ] |
| EMA approval status (if applicable) | [ ] |
| Other major markets (if applicable) | [ ] |
| Key label sections summarized | [ ] |
| Patent/exclusivity info OR "Not assessed" | [ ] |
| OR "Not approved - investigational" clearly stated | [ ] |
| Data source citations | [ ] |
Section 9: Literature & Research
| Requirement | Status |
|---|---|
| Total publication count | [ ] |
| 5-year and 1-year counts | [ ] |
| Research trend (increasing/stable/declining) | [ ] |
| Key research themes identified | [ ] |
| 3-5 notable recent publications with PMIDs | [ ] |
| Drug-related publication count | [ ] |
| Data source citations | [ ] |
Section 10: Conclusions & Assessment
| Requirement | Status |
|---|---|
| 10.1 Scorecard | |
| - 5 criteria scored 1-5 | [ ] |
| - Rationale for each score | [ ] |
| - Overall score | [ ] |
| 10.2 Key Strengths | |
| - At least 3 listed | [ ] |
| 10.3 Key Concerns | |
| - At least 3 listed | [ ] |
| 10.4 Research Gaps | |
| - At least 2 identified | [ ] |
| Confidence assessment (High/Medium/Low) | [ ] |
Section 11: Data Sources & Methodology
| Requirement | Status |
|---|---|
| All databases queried listed | [ ] |
| All tool names documented | [ ] |
| Query date | [ ] |
| Known limitations noted | [ ] |
| Failed queries documented | [ ] |
---
Quality Checks
Evidence Grading Applied
- [ ] Clinical trial evidence marked ★★★
- [ ] Limited clinical evidence marked ★★☆
- [ ] Preclinical evidence marked ★☆☆
- [ ] Computational/indirect evidence marked ☆☆☆
- [ ] No ungraded claims in mechanism/efficacy sections
Citation Coverage
- [ ] Every table has source citation below
- [ ] Every factual claim has inline or block citation
- [ ] All tool names mentioned with parameters used
- [ ] Database IDs included (CID, ChEMBL ID, NCT, PMID)
Data Completeness Tier
- [ ] ●●● Complete: All 11 sections with substantial data
- [ ] ●●○ Substantial: 8-10 sections substantial, others noted sparse
- [ ] ●○○ Basic: Identity + chemistry + partial pharmacology
- [ ] ○○○ Minimal: Identity only (flag to user)
Formatting
- [ ] All tables render correctly
- [ ] No
[Researching...]placeholders remaining - [ ] Links work (PubChem, ChEMBL, ClinicalTrials.gov)
- [ ] Consistent formatting throughout
- [ ] Section numbers match template
---
Pre-Delivery Final Check
- [ ] Executive summary reflects complete report
- [ ] Bottom line is actionable and specific
- [ ] No search process text visible in report
- [ ] No raw tool outputs in report
- [ ] All 11 sections present
- [ ] Data sources section complete
- [ ] Report file saved
- [ ] Optional:
[drug]_data.jsoncreated with structured data
---
Quick Fixes for Common Issues
| Issue | Fix |
|---|---|
| Missing ChEMBL ID | State "Not found in ChEMBL" in identity section |
| No FAERS data | Add "Insufficient adverse event reports in FAERS (<100 reports)" |
| No clinical trials | State "No registered trials on ClinicalTrials.gov as of [date]" |
| ADMET failed | Note "ADMET predictions unavailable - [reason]" |
| No PGx data | State "No pharmacogenomic associations documented in PharmGKB" |
| No CPIC guideline | State "No CPIC guideline available for this drug" |
| Compound not found | Return to user for clarification before proceeding |
| API timeout | Document failed query, use fallback, note limitation |
Drug Research Examples
Detailed workflow examples demonstrating the drug research skill.
---
Example 1: Approved Drug Profile (Metformin)
User Query
"Tell me about metformin"
Step 1: Create Report File
Create metformin_drug_report.md with all section headers and [Researching...] placeholders.
Step 2: Compound Disambiguation
# Resolve identifiers
cid_result = tu.tools.PubChem_get_CID_by_compound_name(compound_name="metformin")
# → CID: 4091
chembl_result = tu.tools.ChEMBL_search_molecules(query="metformin", limit=1)
# → CHEMBL1431
dailymed_result = tu.tools.DailyMed_search_spls(drug_name="metformin")
# → Set ID: multiple entries (branded/generic)
pharmgkb_result = tu.tools.PharmGKB_search_drugs(query="metformin")
# → PA450657Update Section 1 with:
## 1. Compound Identity
### 1.1 Database Identifiers
| Identifier | Value | Link |
|------------|-------|------|
| **PubChem CID** | 4091 | [Link](https://pubchem.ncbi.nlm.nih.gov/compound/4091) |
| **ChEMBL ID** | CHEMBL1431 | [Link](https://www.ebi.ac.uk/chembl/compound_report_card/CHEMBL1431/) |
| **RxNorm CUI** | 6809 | RxNorm |
| **PharmGKB ID** | PA450657 | [Link](https://www.pharmgkb.org/chemical/PA450657) |
| **DailyMed** | Multiple | FDA approved |
*Source: `PubChem_get_CID_by_compound_name`, `ChEMBL_search_drugs`, `PharmGKB_search_drugs`*Step 3: Chemical Properties
# PubChem properties
props = tu.tools.PubChem_get_compound_properties_by_CID(cid=4091)
# → MW: 129.16, Formula: C4H11N5, XLogP: -2.6
# ADMET-AI predictions
smiles = "CN(C)C(=N)NC(=N)N"
physchem = tu.tools.ADMETAI_predict_physicochemical_properties(smiles=[smiles])
# → logP, TPSA, HBD, HBA, Lipinski, QED
solubility = tu.tools.ADMETAI_predict_solubility_lipophilicity_hydration(smiles=[smiles])
# → Solubility predictionUpdate Section 2 with detailed tables and interpretations.
Step 4: Mechanism & Targets
# ChEMBL bioactivity
bioactivity = tu.tools.ChEMBL_search_activities(chembl_id="CHEMBL1431")
# → Activity data
targets = tu.tools.ChEMBL_get_target(chembl_id="CHEMBL1431")
# → Target list with UniProt
# DGIdb drug-gene interactions
dgidb = tu.tools.DGIdb_get_drug_info(drugs=["metformin"])
# → Gene interactionsUpdate Section 3 with target table, mechanism description, bioactivity summary.
Step 5: ADMET Properties
# Run all ADMET predictions
absorption = tu.tools.ADMETAI_predict_bioavailability(smiles=[smiles])
bbb = tu.tools.ADMETAI_predict_BBB_penetrance(smiles=[smiles])
cyp = tu.tools.ADMETAI_predict_CYP_interactions(smiles=[smiles])
clearance = tu.tools.ADMETAI_predict_clearance_distribution(smiles=[smiles])
toxicity = tu.tools.ADMETAI_predict_toxicity(smiles=[smiles])Update Section 4 with ADMET tables:
### 4.1 Absorption
| Endpoint | Prediction | Interpretation |
|----------|------------|----------------|
| **Oral Bioavailability** | 0.68 | Moderate-Good |
| **HIA** | 0.92 | High absorption |
| **Caco-2** | -5.1 log cm/s | Moderate permeability |
| **P-gp Substrate** | 0.15 | Not a P-gp substrate |
*Source: ADMET-AI via `ADMETAI_predict_bioavailability`*
### 4.3 Metabolism
| CYP Enzyme | Inhibitor | Substrate |
|------------|-----------|-----------|
| CYP1A2 | 0.08 (No) | N/A |
| CYP2C9 | 0.05 (No) | 0.12 (No) |
| CYP2C19 | 0.07 (No) | N/A |
| CYP2D6 | 0.04 (No) | 0.08 (No) |
| CYP3A4 | 0.06 (No) | 0.15 (No) |
**Summary**: Metformin is not significantly metabolized by CYP enzymes. Eliminated unchanged renally.
*Source: ADMET-AI via `ADMETAI_predict_CYP_interactions`*Step 6: Clinical Trials
# Search trials
trials = tu.tools.search_clinical_trials(intervention="metformin", pageSize=100)
# → Total: 500+ trials
# Get trial details for top results
nct_ids = [t['NCT ID'] for t in trials['studies'][:10]]
details = tu.tools.get_clinical_trial_conditions_and_interventions(nct_ids=nct_ids)
# Extract outcomes from completed Phase 3
outcomes = tu.tools.extract_clinical_trial_outcomes(
nct_ids=["NCT00123456", "NCT00234567"],
outcome_measure="primary"
)Update Section 5 with trial landscape table, approved indications, key efficacy data.
Step 7: Safety Profile
# FAERS data
faers_reactions = tu.tools.FAERS_count_reactions_by_drug_event(
medicinalproduct="METFORMIN"
)
# → Top adverse reactions
faers_serious = tu.tools.FAERS_count_seriousness_by_drug_event(
medicinalproduct="METFORMIN"
)
# → Serious vs non-serious
faers_outcomes = tu.tools.FAERS_count_outcomes_by_drug_event(
medicinalproduct="METFORMIN"
)
# → Outcome distribution
faers_deaths = tu.tools.FAERS_count_death_related_by_drug(
medicinalproduct="METFORMIN"
)
# → Fatal outcomesUpdate Section 6 with:
### 6.2 Post-Marketing Safety (FAERS)
**Total Reports**: 45,234 (as of 2026-02-04)
#### Top Adverse Reactions
| Reaction (MedDRA PT) | Count | % of Reports | Expected? |
|----------------------|-------|--------------|-----------|
| Diarrhoea | 8,234 | 18.2% | Yes (known GI effect) |
| Nausea | 6,892 | 15.2% | Yes (known GI effect) |
| Lactic acidosis | 3,456 | 7.6% | Yes (boxed warning) |
| Vomiting | 2,987 | 6.6% | Yes (known GI effect) |
| Hypoglycaemia | 2,543 | 5.6% | Yes (class effect) |
*Source: FDA FAERS via `FAERS_count_reactions_by_drug_event`*
#### Severity Distribution
| Classification | Count | Percentage |
|----------------|-------|------------|
| Serious | 18,456 | 40.8% |
| Non-serious | 26,778 | 59.2% |
*Source: `FAERS_count_seriousness_by_drug_event`*
### 6.3 Black Box Warnings
**Lactic Acidosis Warning**: Metformin can cause lactic acidosis, a rare but serious
metabolic complication. Risk increases with renal impairment, hepatic impairment,
age ≥65, radiologic studies with contrast, surgery, excessive alcohol intake, and
hypoxic states.
*Source: FDA Label via `FDA_get_drug_label`*Step 8: Pharmacogenomics
# PharmGKB data
pgkb_drug = tu.tools.PharmGKB_search_drugs(query="metformin")
pgkb_details = tu.tools.PharmGKB_get_drug_details(drug_id="PA450657")
# Clinical annotations for related genes
annotations = tu.tools.PharmGKB_get_clinical_annotations(gene_id="PA35858") # SLC22A1
# Dosing guidelines
guidelines = tu.tools.PharmGKB_get_dosing_guidelines(gene="SLC22A1")Update Section 7 with pharmacogene table, clinical annotations, guideline status.
Step 9: Literature
# PubMed search
lit_total = tu.tools.PubMed_search_articles(
query='"metformin"',
limit=1
)
# → Total count
lit_recent = tu.tools.PubMed_search_articles(
query='"metformin" AND ("2024"[Date - Publication] OR "2025"[Date - Publication])',
limit=20
)
# → Recent papers
lit_drug = tu.tools.PubMed_search_articles(
query='"metformin" AND (drug OR therapy OR treatment)',
limit=20
)
# → Drug-focused papersUpdate Section 9 with publication metrics and research trends.
Step 10: Synthesize Conclusions
Update Section 10 with scorecard:
### 10.1 Drug Profile Scorecard
| Criterion | Score | Rationale |
|-----------|-------|-----------|
| **Efficacy Evidence** | 5/5 | Decades of clinical use, multiple Phase 3 trials, proven HbA1c reduction |
| **Safety Profile** | 4/5 | Generally well-tolerated; lactic acidosis is rare but serious (boxed warning) |
| **PK/ADMET** | 4/5 | Good oral bioavailability; renal elimination (caution in CKD) |
| **Target Validation** | 4/5 | AMPK activation well-established; some mechanism debate remains |
| **Competitive Position** | 3/5 | First-line for T2DM but many alternatives (SGLT2i, GLP-1) |
| **Overall** | **4.0/5** | **Strong, established drug profile** |
### 10.2 Key Strengths
1. **Proven efficacy**: 60+ years of clinical use with robust trial data
2. **Favorable safety**: Low hypoglycemia risk, potential cardiovascular benefits
3. **Cost-effective**: Generic availability, low cost
4. **Additional benefits**: Weight neutral/loss, potential anti-cancer properties under investigation
### 10.3 Key Concerns/Limitations
1. **Lactic acidosis risk**: Requires monitoring, contraindicated in renal impairment
2. **GI tolerability**: ~25% of patients experience GI side effects
3. **B12 deficiency**: Long-term use associated with vitamin B12 malabsorption
4. **Renal clearance**: Dose adjustment required for eGFR <45
### 10.4 Research Gaps
1. **Cancer prevention**: Clinical trials ongoing but definitive evidence lacking
2. **Aging/longevity**: TAME trial results pendingStep 11: Update Data Sources
Update Section 11 with all tools used and their parameters.
Final Step: Write Executive Summary
## Executive Summary
**Metformin** (PubChem CID: 4091, ChEMBL: CHEMBL1431) is a biguanide antidiabetic
agent and the first-line pharmacological treatment for type 2 diabetes mellitus.
It works primarily through AMPK activation, reducing hepatic glucose production
and improving insulin sensitivity.
The drug has an extensive clinical evidence base spanning 60+ years with 500+
registered clinical trials. Key efficacy data shows HbA1c reductions of 1.0-1.5%
as monotherapy [★★★]. The safety profile is generally favorable, though a boxed
warning exists for lactic acidosis risk in patients with renal impairment. FAERS
data (45,234 reports) shows GI effects as the most common adverse reactions,
consistent with labeling.
Pharmacogenomic data from PharmGKB identifies SLC22A1 (OCT1) as the key
transporter affecting metformin response, though no CPIC dosing guideline
currently exists. The drug shows excellent ADMET properties with good
oral bioavailability and minimal CYP-mediated metabolism.
**Bottom Line**: Metformin remains a well-validated, cost-effective first-line
therapy for T2DM with a favorable benefit-risk profile when renal function is
monitored. Active research continues into potential benefits in cancer prevention
and longevity.---
Example 2: Investigational Compound (ChEMBL ID)
User Query
"What do we know about compound CHEMBL4303291?"
Approach Differences
1. More emphasis on preclinical data - Chemistry, targets, ADMET predictions 2. Clinical section may be sparse - No or few trials 3. No FAERS data - Not yet marketed 4. No PGx data - Not yet characterized 5. Label section: "Not approved - investigational compound"
Key Tool Adjustments
# Start with ChEMBL ID directly
compound = tu.tools.ChEMBL_get_compound_by_chemblid(chembl_id="CHEMBL4303291")
smiles = compound['molecule_structures']['canonical_smiles']
# Get PubChem CID from SMILES
cid_result = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
# Heavy emphasis on ADMET predictions (no clinical data)
# All 8 ADMET-AI tools...
# Search for any trials
trials = tu.tools.search_clinical_trials(intervention="CHEMBL4303291")
# → Likely 0 results
# Literature may be primary data source
lit = tu.tools.PubMed_search_articles(query='"CHEMBL4303291"', limit=20)Report Differences
- Section 5 (Clinical): "No clinical trials registered as of [date]. Compound is in preclinical development."
- Section 6 (Safety): "No post-marketing safety data (not approved). Preclinical toxicity data: [from ChEMBL/literature]"
- Section 7 (PGx): "No pharmacogenomic data available (investigational compound)"
- Section 8 (Regulatory): "Not approved. Development stage: Preclinical"
- Scorecard: Adjust criteria for investigational compound assessment
---
Example 3: Safety-Focused Review
User Query
"What are the safety concerns with fluoroquinolone antibiotics like ciprofloxacin?"
Approach Differences
1. Deep FAERS analysis - Multiple queries, stratified analysis 2. Black box warnings emphasis - Known serious effects 3. Drug interactions detailed - QT prolongation, etc. 4. PGx for safety - Variants affecting toxicity 5. Literature focused on safety - Adverse event publications
Key Tool Sequence
# Full FAERS analysis
reactions = tu.tools.FAERS_count_reactions_by_drug_event(
medicinalproduct="CIPROFLOXACIN"
)
# Filter for serious reactions
serious_cardiac = tu.tools.FAERS_count_reactions_by_drug_event(
medicinalproduct="CIPROFLOXACIN",
serious="Yes",
reactionmeddraverse="cardiac" # Will need specific MedDRA terms
)
# Age stratification
age_dist = tu.tools.FAERS_count_patient_age_distribution(
medicinalproduct="CIPROFLOXACIN"
)
# Death-related
deaths = tu.tools.FAERS_count_death_related_by_drug(
medicinalproduct="CIPROFLOXACIN"
)
# Label for black box warnings
# FDA labels are keyed by drug name, not CID -- resolve the name first
_syn = tu.tools.PubChem_get_compound_synonyms_by_CID(cid=2764)
_name = _syn['data'][0] if isinstance(_syn, dict) and _syn.get('data') else None
label = tu.tools.FDA_get_drug_label(drug_name=_name)
# Literature on safety
safety_lit = tu.tools.PubMed_search_articles(
query='"ciprofloxacin" AND (safety OR "adverse event" OR toxicity OR "side effect")',
limit=50
)Report Emphasis
- Section 6 expanded with multiple subsections for:
- Tendon rupture/tendinitis
- QT prolongation
- CNS effects
- Peripheral neuropathy
- Aortic dissection/aneurysm
- Safety scorecard instead of general scorecard
- Risk mitigation strategies section added
---
Example 4: ADMET Assessment (SMILES Input)
User Query
"Evaluate this compound's drug-likeness: CC(=O)Nc1ccc(O)cc1"
Approach
1. Identify the compound first 2. Heavy chemistry/ADMET focus 3. Minimal clinical sections (unless identified as known drug)
Workflow
smiles = "CC(=O)Nc1ccc(O)cc1" # Paracetamol/Acetaminophen
# Try to identify
cid = tu.tools.PubChem_get_CID_by_SMILES(smiles=smiles)
# → CID: 1983 (Acetaminophen)
# If identified, proceed with full profile
# If not identified, focus on predictions only
# Full ADMET battery
physchem = tu.tools.ADMETAI_predict_physicochemical_properties(smiles=[smiles])
bioavail = tu.tools.ADMETAI_predict_bioavailability(smiles=[smiles])
bbb = tu.tools.ADMETAI_predict_BBB_penetrance(smiles=[smiles])
cyp = tu.tools.ADMETAI_predict_CYP_interactions(smiles=[smiles])
clearance = tu.tools.ADMETAI_predict_clearance_distribution(smiles=[smiles])
toxicity = tu.tools.ADMETAI_predict_toxicity(smiles=[smiles])
nuclear = tu.tools.ADMETAI_predict_nuclear_receptor_activity(smiles=[smiles])
stress = tu.tools.ADMETAI_predict_stress_response(smiles=[smiles])Report Focus
- Sections 2 and 4 are primary - Detailed ADMET analysis
- Drug-likeness verdict prominent - Lead-like, drug-like, or beyond Rule of 5
- Structure-activity insights if related compounds found
- Other sections: Brief if compound identified; "N/A - SMILES query" if unknown
---
Example 5: Clinical Development Landscape
User Query
"What trials are ongoing for KRAS inhibitors?"
Approach
1. ClinicalTrials.gov focused 2. Multiple drugs in class - Not single compound 3. Competitive landscape emphasis 4. Pipeline analysis
Workflow
# Search for KRAS inhibitors
kras_trials = tu.tools.search_clinical_trials(
condition="cancer",
intervention="KRAS",
pageSize=100
)
# Specific drugs
sotorasib_trials = tu.tools.search_clinical_trials(intervention="sotorasib")
adagrasib_trials = tu.tools.search_clinical_trials(intervention="adagrasib")
# Get trial details
nct_ids = [t['NCT ID'] for t in kras_trials['studies'][:20]]
conditions = tu.tools.get_clinical_trial_conditions_and_interventions(nct_ids=nct_ids)
status = tu.tools.get_clinical_trial_status_and_dates(nct_ids=nct_ids)
# Outcomes from completed trials
completed = [nct for nct in nct_ids if "Completed" in status[nct]]
outcomes = tu.tools.extract_clinical_trial_outcomes(nct_ids=completed)Report Differences
- Class-level analysis rather than single drug
- Competitive landscape table - All KRAS inhibitors in development
- Indication mapping - Which cancers, which mutations
- Pipeline by phase chart
- Less emphasis on individual ADMET/chemistry (covered per drug if needed)
---
Summary: Adjusting by Use Case
| Use Case | Primary Sections | Light Sections |
|---|---|---|
| Approved Drug Profile | All 11 sections | None |
| Investigational Compound | 1, 2, 3, 4, 9 | 5, 6, 7, 8 |
| Safety Review | 1, 5, 6, 7, 9 | 2, 3, 4, 8 |
| ADMET Assessment | 1, 2, 4 | 3, 5, 6, 7, 8, 9 |
| Clinical Landscape | 1, 5, 9 | 2, 3, 4, 6, 7, 8 |
Always maintain all section headers but adjust depth based on query focus and data availability.
Drug Research Report Guidelines
Detailed section-by-section instructions with output examples for each research path.
---
Report Detail Requirements
Each section must be comprehensive and detailed:
- Tables: Use tables for structured data (targets, trials, adverse events)
- Lists: Use bullet points for features, findings, key points
- Paragraphs: Include narrative summaries that synthesize findings
- Numbers: Include specific values, counts, percentages (not vague terms)
- Context: Explain what the data means, not just what it is
BAD (too brief):
### Clinical Trials
Multiple trials completed. Approved for diabetes.GOOD (detailed with sources):
### 5.2 Clinical Trial Landscape
| Phase | Total | Completed | Recruiting |
|-------|-------|-----------|------------|
| Phase 4 | 89 | 72 | 12 |
| Phase 3 | 156 | 134 | 15 |
**Total Registered Trials**: 515 (as of 2026-02-04)
*Source: ClinicalTrials.gov via `search_clinical_trials`*---
FDA Label Core Fields Bundle
For approved drugs, ALWAYS retrieve these FDA label sections early (after getting set_id from DailyMed_search_spls).
Call DailyMed_get_spl_by_setid(setid=set_id, sections=[...]) in batches:
Phase 1 (Mechanism & Chemistry):
mechanism_of_action-> Section 3.1pharmacodynamics-> Section 3.1chemistry-> Section 2.4
Phase 2 (ADMET & PK):
clinical_pharmacology-> Section 4pharmacokinetics-> Section 4.1-4.4drug_interactions-> Section 4.3, 6.5
Phase 3 (Safety & Dosing):
warnings_and_cautions-> Section 6.3adverse_reactions-> Section 6.1dosage_and_administration-> Section 6.6, 8.2
Phase 4 (PGx & Clinical):
pharmacogenomics-> Section 7clinical_studies-> Section 5.5description-> Section 2.5 (formulation)inactive_ingredients-> Section 2.5
---
PATH 1: Chemical Properties & CMC
Objective: Full physicochemical profile, salt forms, formulation details.
Tool Chain: 1. PubChem_get_compound_properties_by_CID(cid) -> MW, formula, XLogP, TPSA, HBD, HBA, rotatable bonds 2. ADMETAI_predict_physicochemical_properties(smiles=[smiles]) -> logP, Lipinski, QED, TPSA 3. ADMETAI_predict_solubility_lipophilicity_hydration(smiles=[smiles]) -> Solubility, Lipophilicity 4. DailyMed_get_spl_by_setid(setid, sections=["chemistry"]) -> Salt forms, polymorphs 5. DailyMed_get_spl_by_setid(setid, sections=["description", "inactive_ingredients"]) -> Formulation
Type Normalization: Convert all numeric IDs to strings before API calls.
Output Example (Section 2.1):
| Property | Value | Drug-Likeness | Source |
|----------|-------|---------------|--------|
| **Molecular Weight** | 129.16 g/mol | Pass (< 500) | PubChem |
| **LogP** | -2.64 | Pass (< 5) | ADMET-AI |
| **TPSA** | 91.5 A^2 | Pass (< 140) | PubChem |
| **H-Bond Donors** | 2 | Pass (<= 5) | PubChem |
**Lipinski Rule of Five**: PASS (0 violations)
**QED Score**: 0.74 (Good drug-likeness)
*Sources: PubChem, ADMET-AI*Formulation Comparison (if multiple formulations exist):
| Formulation | Tmax (h) | Cmax (ng/mL) | AUC | Half-life (h) | Dosing |
|-------------|----------|--------------|-----|---------------|--------|
| **IR** | 2.5 | 1200 | 8400 | 6.5 | 500 mg TID |
| **ER** | 7.0 | 950 | 8900 | 6.5 | 1000 mg QD |
*Source: DailyMed clinical pharmacology sections*---
PATH 2: Mechanism & Targets
Objective: FDA label MOA + experimental targets + selectivity.
Tool Chain: 1. DailyMed_get_spl_by_setid(setid, sections=["mechanism_of_action", "pharmacodynamics"]) -> Official FDA MOA [T1] 2. ChEMBL_search_activities(molecule_chembl_id=chembl_id, limit=100) -> Activity records 3. ChEMBL_get_target(target_chembl_id) for each unique target -> Target name, UniProt [T1] 4. DGIdb_get_drug_info(drugs=[drug_name]) -> Target genes, interaction types [T2] 5. PubChem_get_compound_bioactivity(cid) -> Assay summary [T2]
CRITICAL:
- Avoid `ChEMBL_get_molecule_targets` - returns unfiltered/irrelevant targets
- Derive targets from activities: Filter to pChEMBL >= 6.0 or IC50/EC50 <= 1 uM
- Type normalization: Convert all ChEMBL IDs to strings
Output Example (Section 3.2):
| Target | UniProt | Type | Potency | Assays | Evidence | Source |
|--------|---------|------|---------|--------|----------|--------|
| PRKAA1 (AMPK a1) | Q13131 | Activator | EC50 ~10 uM | 12 | T1 | ChEMBL |
| SLC22A1 (OCT1) | O15245 | Substrate | Km ~1.5 mM | 5 | T2 | DGIdb |
*Source: ChEMBL activities filtered to pChEMBL >= 6.0*---
PATH 3: ADMET Properties
Objective: Full ADMET profile - predictions + FDA label PK.
Primary Chain (ADMET-AI): 1. ADMETAI_predict_bioavailability(smiles) -> Bioavailability, HIA, PAMPA, Caco2, Pgp 2. ADMETAI_predict_BBB_penetrance(smiles) -> BBB probability 3. ADMETAI_predict_CYP_interactions(smiles) -> CYP1A2, 2C9, 2C19, 2D6, 3A4 4. ADMETAI_predict_clearance_distribution(smiles) -> Clearance, Half_Life, VDss, PPBR 5. ADMETAI_predict_toxicity(smiles) -> AMES, hERG, DILI, ClinTox, LD50
Fallback Chain (if ADMET-AI fails): 1. DailyMed_get_spl_by_setid(setid, sections=["clinical_pharmacology", "pharmacokinetics"]) [T1] 2. DailyMed_get_spl_by_setid(setid, sections=["drug_interactions"]) [T1] 3. PubMed_search_articles(query="[drug] pharmacokinetics", max_results=10) [T2]
CRITICAL: If ADMET-AI tools fail, automatically switch to fallback. Do NOT leave Section 4 as "predictions unavailable."
---
PATH 4: Clinical Trials
Objective: Complete clinical development picture with accurate phase counts.
Tool Chain: 1. search_clinical_trials(intervention=drug_name, pageSize=100) -> Full result set 2. COMPUTE PHASE COUNTS from results (Phase 1/2/3/4 by status) 3. SELECT REPRESENTATIVE TRIALS (top 5 Phase 3, top 3 recruiting) 4. get_clinical_trial_conditions_and_interventions(nct_ids=selected) -> Details 5. extract_clinical_trial_outcomes(nct_ids=completed_phase3) -> Efficacy 6. extract_clinical_trial_adverse_events(nct_ids=completed) -> Safety 7. fda_pharmacogenomic_biomarkers(drug_name) -> Companion diagnostics [T1] 8. PharmGKB_get_clinical_annotations(drug_id) -> Response predictors [T2]
CRITICAL: Section 5.2 must show actual counts by phase/status in table format, not just a trial list.
Output Example (Section 5.6 - Biomarkers):
#### FDA-Required Testing
| Biomarker | Requirement Level | Approved Test(s) | Evidence |
|-----------|------------------|------------------|----------|
| EGFR T790M | Required (NSCLC) | cobas v2 | T1 |
*Source: `fda_pharmacogenomic_biomarkers`*---
PATH 5: Post-Marketing Safety & Drug Interactions
Objective: Real-world safety signals + DDI guidance + dose modifications.
FAERS Chain: 1. FAERS_count_reactions_by_drug_event(medicinalproduct) -> Top 20 AEs [T1] 2. FAERS_count_seriousness_by_drug_event(medicinalproduct) -> Serious ratio [T1] 3. FAERS_count_outcomes_by_drug_event(medicinalproduct) -> Outcomes [T1] 4. FAERS_count_death_related_by_drug(medicinalproduct) -> Fatal count [T1] 5. FAERS_count_patient_age_distribution(medicinalproduct) -> Age groups [T1]
DDI & Dose Modification Chain: 6. DailyMed_get_spl_by_setid(setid, sections=["drug_interactions"]) -> DDI table [T1] 7. DailyMed_get_spl_by_setid(setid, sections=["dosage_and_administration", "warnings_and_cautions"]) -> Dose mods [T1] 8. DailyMed_get_spl_by_setid(setid) -> Drug-food interactions (search for grapefruit, alcohol, food, meal) [T1] 9. search_clinical_trials(intervention="[drug] AND combination") -> Approved combos [T1]
CRITICAL FAERS Requirements:
- Include date window (e.g., "Reports from 2004-2026")
- Report seriousness breakdown (not just top PTs)
- Add limitations paragraph: Small N, voluntary reporting, causality not established, reporting bias
Output Example (Section 6.6 - Dose Modifications):
#### Renal Impairment
| eGFR (mL/min/1.73m^2) | Dosing |
|----------------------|--------|
| >=60 | No adjustment |
| 45-59 | Max 1000 mg/day |
| 30-44 | Max 500 mg/day |
| <30 | Contraindicated |
*Source: DailyMed SPL*---
PATH 6: Pharmacogenomics
Primary Chain (PharmGKB): 1. PharmGKB_search_drugs(query) -> PharmGKB drug ID 2. PharmGKB_get_drug_details(drug_id) -> Cross-references, related genes 3. PharmGKB_get_clinical_annotations(gene_id) for each gene -> Variant-drug associations 4. PharmGKB_get_dosing_guidelines(gene=gene_symbol) -> CPIC/DPWG recommendations
Fallback Chain: 5. DailyMed_get_spl_by_setid(setid, sections=["pharmacogenomics", "clinical_pharmacology"]) [T1] 6. PubMed_search_articles(query="[drug] pharmacogenomics", max_results=5) [T2]
---
PATH 7: Regulatory Status & Patents
Tool Chain: 1. DailyMed_search_spls(drug_name) -> SetID 2. FDA_OrangeBook_search_drug(brand_name) -> Application number [T1] 3. FDA_OrangeBook_get_approval_history(appl_no) -> Approval dates [T1] 4. FDA_OrangeBook_get_exclusivity(brand_name) -> Exclusivity types/dates [T1] 5. FDA_OrangeBook_get_patent_info(brand_name) -> Patent numbers [T1] 6. FDA_OrangeBook_check_generic_availability(brand_name) -> Generic entries [T1] 7. DailyMed_get_spl_by_setid(setid) -> Special populations (pediatric, geriatric, pregnancy, lactation, renal, hepatic) using LOINC codes [T1]
CRITICAL: Orange Book data is US-only. Document limitation for EMA/PMDA.
---
PATH 8: Real-World Evidence
Tool Chain: 1. search_clinical_trials(study_type="OBSERVATIONAL", intervention=drug_name) -> RWE studies [T1] 2. PubMed_search_articles(query="[drug] (real-world OR observational OR effectiveness)") [T2] 3. PubMed_search_articles(query="[drug] (registry OR post-marketing OR surveillance)") [T2] 4. Compare clinical trial efficacy vs real-world effectiveness
---
PATH 9: Comparative Analysis
Tool Chain: 1. Identify comparator drugs (user-provided or inferred from class) 2. For each comparator: abbreviated tool chain (PubChem, ChEMBL potency, trials, FAERS) 3. search_clinical_trials(intervention="[drug] AND [comparator]") -> Head-to-head trials [T1] 4. PubMed_search_articles(query="[drug] vs [comparator]") -> Meta-analyses [T2] 5. Create comparison tables: potency, selectivity, ADMET, efficacy, safety
---
Type Normalization & Error Prevention
Many ToolUniverse tools require string inputs but may return integers/floats. Always convert IDs:
chembl_ids = [str(id) for id in chembl_ids]
nct_ids = [str(id) for id in nct_ids]
pmids = [str(id) for id in pmids]Pre-call checklist:
- All ID parameters are strings
- Lists contain strings, not ints/floats
- No None/null values in required fields
- Arrays are non-empty if required
Drug Research Report Template
Initial report template to create before any tool calls. File name: [DRUG]_drug_report.md
---
Template
# Drug Research Report: [DRUG NAME]
**Generated**: [Date] | **Query**: [Original query] | **Status**: In Progress
---
## Executive Summary
[Researching...]
---
## 1. Compound Identity
### 1.1 Database Identifiers
[Researching...]
### 1.2 Structural Information
[Researching...]
### 1.3 Names & Synonyms
[Researching...]
---
## 2. Chemical Properties
### 2.1 Physicochemical Profile
[Researching...]
### 2.2 Drug-Likeness Assessment
[Researching...]
### 2.3 Solubility & Permeability
[Researching...]
### 2.4 Salt Forms & Polymorphs
[Researching...]
### 2.5 Structure Visualization
[Researching...]
---
## 3. Mechanism & Targets
### 3.1 Primary Mechanism of Action
[Researching...]
### 3.2 Primary Target(s)
[Researching...]
### 3.3 Target Selectivity & Off-Targets
[Researching...]
### 3.4 Bioactivity Profile (ChEMBL)
[Researching...]
---
## 4. ADMET Properties
### 4.1 Absorption
[Researching...]
### 4.2 Distribution
[Researching...]
### 4.3 Metabolism
[Researching...]
### 4.4 Excretion
[Researching...]
### 4.5 Toxicity Predictions
[Researching...]
---
## 5. Clinical Development
### 5.1 Development Status
[Researching...]
### 5.2 Clinical Trial Landscape
[Researching...]
### 5.3 Approved Indications
[Researching...]
### 5.4 Investigational Indications
[Researching...]
### 5.5 Key Efficacy Data
[Researching...]
### 5.6 Biomarkers & Companion Diagnostics
[Researching...]
---
## 6. Safety Profile
### 6.1 Clinical Adverse Events
[Researching...]
### 6.2 Post-Marketing Safety (FAERS)
[Researching...]
### 6.3 Black Box Warnings
[Researching...]
### 6.4 Contraindications
[Researching...]
### 6.5 Drug-Drug Interactions
[Researching...]
### 6.5.2 Drug-Food Interactions
[Researching...]
### 6.6 Dose Modification Guidance
[Researching...]
### 6.7 Drug Combinations & Regimens
[Researching...]
---
## 7. Pharmacogenomics
### 7.1 Relevant Pharmacogenes
[Researching...]
### 7.2 Clinical Annotations
[Researching...]
### 7.3 Dosing Guidelines (CPIC/DPWG)
[Researching...]
### 7.4 Actionable Variants
[Researching...]
---
## 8. Regulatory & Labeling
### 8.1 Approval Status
[Researching...]
### 8.2 Label Highlights
[Researching...]
### 8.3 Patents & Exclusivity
[Researching...]
### 8.4 Label Changes & Warnings
[Researching...]
### 8.5 Special Populations
[Researching...]
### 8.6 Regulatory Timeline & History
[Researching...]
---
## 9. Literature & Research Landscape
### 9.1 Publication Metrics
[Researching...]
### 9.2 Research Themes
[Researching...]
### 9.3 Recent Key Publications
[Researching...]
### 9.4 Real-World Evidence
[Researching...]
---
## 10. Conclusions & Assessment
### 10.1 Drug Profile Scorecard
[Researching...]
### 10.2 Key Strengths
[Researching...]
### 10.3 Key Concerns/Limitations
[Researching...]
### 10.4 Research Gaps
[Researching...]
### 10.5 Comparative Analysis
[Researching...]
---
## 11. Data Sources & Methodology
### 11.1 Primary Data Sources
[Researching...]
### 11.2 Tool Call Summary
[Researching...]
### 11.3 Quality Control Metrics
[Researching...]Then progressively replace [Researching...] with actual findings as you query each tool.
---
Citation Format
For each data section, include source attribution:
*Source: PubChem via `PubChem_get_compound_properties_by_CID` (CID: 4091)*Block citation at section end:
---
**Data Sources for this section:**
- PubChem: `PubChem_get_compound_properties_by_CID` (CID: 4091)
- ChEMBL: `ChEMBL_get_activity` (CHEMBL1431)
- DGIdb: `DGIdb_get_drug_info` (metformin)
------
Evidence Grading System
| Tier | Symbol | Description | Example |
|---|---|---|---|
| T1 | three stars | Phase 3 RCT, meta-analysis, FDA approval | Pivotal trial, label indication |
| T2 | two stars | Phase 1/2 trial, large case series | Dose-finding study |
| T3 | one star | In vivo animal, in vitro cellular | Mouse PK study |
| T4 | no stars | Review mention, computational prediction | ADMET-AI prediction |
Apply inline: Metformin reduces hepatic glucose output via AMPK activation [T1: FDA Label].
Include per-section quality summary:
**Evidence Quality**: Strong (156 Phase 3 trials)
**Data Confidence**: High - mature clinical program---
Drug Profile Scorecard (Section 10.1)
| Criterion | Score (1-5) | Rationale |
|-----------|-------------|-----------|
| **Efficacy Evidence** | 5 | Multiple Phase 3 trials, decades of use |
| **Safety Profile** | 4 | Well-tolerated; rare but serious risks |
| **PK/ADMET** | 4 | Good bioavailability; known clearance |
| **Target Validation** | 4 | Mechanism well-established |
| **Competitive Position** | 3 | First-line but alternatives exist |
| **Overall** | 4.0 | **Strong drug profile** |
**Interpretation**: 5 = Excellent, 4 = Good, 3 = Moderate, 2 = Concerning, 1 = Poor---
Completeness Audit Template (Section 11)
## Report Completeness Audit
**Overall Completeness**: XX% (N/M minimum requirements met)
### Missing Data Items
| Section | Missing Item | Recommended Action |
|---------|--------------|-------------------|
| 2 | Salt forms | Call DailyMed chemistry section |
### Tool Failures Encountered
| Tool | Error | Fallback Used |
|------|-------|---------------|
| `PharmGKB_search_drugs` | API timeout | DailyMed label PGx sections |
### Data Confidence Assessment
| Section | Confidence | Evidence Tier |
|---------|-----------|---------------|
| 1. Identity | High | T1 |
| 4. ADMET | Medium | T2 |
### Cross-Source Validation
| Property | Source 1 | Source 2 | Agreement |
|----------|---------|---------|-----------|
| MW | 378.88 (PubChem) | 378.88 (ChEMBL) | Exact match |
### Evidence Distribution
| Tier | Count | Percentage |
|------|-------|------------|
| T1 | 45 | 65% |
| T2 | 18 | 26% |
| T3 | 5 | 7% |
| T4 | 1 | 1% |Drug Research Tools Reference
Complete reference for 50+ tools used in drug research, organized by use case.
---
Quick Reference: Tools by Use Case
| Use Case | Primary Tool | Fallback |
|---|---|---|
| Name → CID | PubChem_get_CID_by_compound_name | ChEMBL_search_drugs |
| SMILES → CID | PubChem_get_CID_by_SMILES | - |
| Properties | PubChem_get_compound_properties_by_CID | ADMET-AI |
| 2D Image | PubChem_get_compound_2D_image_by_CID | - |
| Drug-likeness | ADMETAI_predict_physicochemical_properties | PubChem properties |
| Targets | ChEMBL_get_target | DGIdb_get_drug_info |
| Bioactivity | ChEMBL_get_activity | PubChem_get_compound_bioactivity |
| Absorption | ADMETAI_predict_bioavailability | Literature |
| BBB | ADMETAI_predict_BBB_penetrance | Literature |
| CYP | ADMETAI_predict_CYP_interactions | PharmGKB |
| Toxicity | ADMETAI_predict_toxicity | FAERS |
| Trials | search_clinical_trials | - |
| Trial outcomes | extract_clinical_trial_outcomes | - |
| Trial AEs | extract_clinical_trial_adverse_events | - |
| FAERS counts | FAERS_count_reactions_by_drug_event | - |
| 🆕 FAERS stats | `FAERS_calculate_disproportionality` | ROR/PRR/IC |
| 🆕 FAERS stratify | `FAERS_stratify_by_demographics` | Age/sex/country |
| 🆕 FAERS serious | `FAERS_filter_serious_events` | Deaths/hospitalizations |
| 🆕 Label parsing | `DailyMed_parse_adverse_reactions` | Structured AE tables |
| 🆕 Label dosing | `DailyMed_parse_dosing` | Dose tables |
| 🆕 Label DDI | `DailyMed_parse_drug_interactions` | Interaction tables |
| 🆕 FDA approvals | `FDA_OrangeBook_get_approval_history` | Timeline |
| 🆕 FDA patents | `FDA_OrangeBook_get_patent_info` | Patent guidance |
| 🆕 FDA generics | `FDA_OrangeBook_check_generic_availability` | Generic count |
| Label search | DailyMed_search_spls | FDA_get_drug_label |
| PGx Drug | PharmGKB_search_drugs | - |
| CPIC | PharmGKB_get_dosing_guidelines | - |
| Literature | PubMed_search_articles | EuropePMC_search_articles |
| Similar compounds | PubChem_search_compounds_by_similarity | ChEMBL |
| Patents | PubChem_get_associated_patents_by_CID | FDA_OrangeBook_get_patent_info |
---
Compound Identity & Chemistry
PubChem Tools
| Tool | Purpose | Key Output |
|---|---|---|
PubChem_get_CID_by_compound_name | Name → CID | CID, canonical name |
PubChem_get_CID_by_SMILES | Structure → CID | CID |
PubChem_get_compound_properties_by_CID | Molecular properties | MW, formula, XLogP, TPSA, HBD, HBA |
PubChem_get_compound_2D_image_by_CID | Structure image | PNG image |
PubChem_get_compound_bioactivity | Activity overview | Active/inactive counts, assay types |
FDA_get_drug_label | FDA label info | Indications, warnings, dosing |
PubChem_get_associated_patents_by_CID | Patent data | Patent numbers, titles |
PubChem_search_compounds_by_similarity | Find analogs | Similar CIDs with scores |
PubChem_search_compounds_by_substructure | Substructure search | Matching CIDs |
ChEMBL Tools
| Tool | Purpose | Key Output |
|---|---|---|
ChEMBL_search_drugs | Name/structure search | ChEMBL ID, pref_name |
ChEMBL_get_molecule | Compound details | SMILES, properties, synonyms |
ChEMBL_get_activity | Activity data | IC50, Ki, EC50 values |
ChEMBL_get_target | Protein targets | Target ChEMBL IDs, UniProt |
ChEMBL_search_assays | Assay metadata | Assay types, organisms |
ChEMBL_search_targets | Target search | Target ChEMBL IDs |
---
ADMET Predictions
All ADMET-AI tools require SMILES input in list format: smiles=["CC(=O)Oc1ccccc1C(=O)O"]
Physicochemical
| Tool | Endpoints |
|---|---|
ADMETAI_predict_physicochemical_properties | MW, logP, HBD, HBA, Lipinski, QED, stereo_centers, TPSA |
ADMETAI_predict_solubility_lipophilicity_hydration | Solubility_AqSolDB, Lipophilicity_AstraZeneca, HydrationFreeEnergy |
Absorption
| Tool | Endpoints |
|---|---|
ADMETAI_predict_bioavailability | Bioavailability_Ma, HIA_Hou, PAMPA_NCATS, Caco2_Wang, Pgp_Broccatelli |
Distribution
| Tool | Endpoints |
|---|---|
ADMETAI_predict_BBB_penetrance | BBB_Martins (0-1 probability) |
ADMETAI_predict_clearance_distribution | VDss_Lombardo, PPBR_AZ |
Metabolism
| Tool | Endpoints |
|---|---|
ADMETAI_predict_CYP_interactions | CYP1A2_Veith, CYP2C9_Veith/Substrate, CYP2C19_Veith, CYP2D6_Veith/Substrate, CYP3A4_Veith/Substrate |
Excretion
| Tool | Endpoints |
|---|---|
ADMETAI_predict_clearance_distribution | Clearance_Hepatocyte_AZ, Clearance_Microsome_AZ, Half_Life_Obach |
Toxicity
| Tool | Endpoints |
|---|---|
ADMETAI_predict_toxicity | AMES, Carcinogens_Lagunin, ClinTox, DILI, LD50_Zhu, Skin_Reaction, hERG |
ADMETAI_predict_nuclear_receptor_activity | NR-AR, NR-AR-LBD, NR-AhR, NR-Aromatase, NR-ER, NR-ER-LBD, NR-PPAR-gamma |
ADMETAI_predict_stress_response | SR-ARE, SR-ATAD5, SR-HSE, SR-MMP, SR-p53 |
---
Drug-Gene Interactions
DGIdb Tools
| Tool | Purpose | Key Output |
|---|---|---|
DGIdb_get_drug_gene_interactions | Drug → gene interactions | Gene names, interaction types, sources |
DGIdb_get_gene_druggability | Gene druggability categories | Kinase, GPCR, ion channel, etc. |
DGIdb_get_drug_info | Drug targets and details | Target genes, interaction types |
DGIdb_get_gene_info | Gene details | Aliases, categories |
---
Clinical Trials (ClinicalTrials.gov)
Search & Overview
| Tool | Purpose | Key Parameters |
|---|---|---|
search_clinical_trials | Search trials | condition, intervention, query_term, pageSize |
get_clinical_trial_descriptions | Trial titles, summaries | nct_ids, description_type (brief/full) |
get_clinical_trial_status_and_dates | Status, dates | nct_ids |
Details
| Tool | Purpose | Key Parameters |
|---|---|---|
get_clinical_trial_conditions_and_interventions | Conditions, arms | nct_ids |
get_clinical_trial_eligibility_criteria | Inclusion/exclusion | nct_ids |
get_clinical_trial_locations | Trial sites | nct_ids |
get_clinical_trial_outcome_measures | Primary/secondary endpoints | nct_ids, outcome_measures |
get_clinical_trial_references | Related publications | nct_ids |
Results Extraction
| Tool | Purpose | Key Parameters |
|---|---|---|
extract_clinical_trial_outcomes | Efficacy results | nct_ids, outcome_measure |
extract_clinical_trial_adverse_events | Safety data | nct_ids, organ_systems, adverse_event_type |
---
Adverse Events (FDA FAERS)
Single Drug Analysis
| Tool | Purpose | Key Parameters |
|---|---|---|
FAERS_count_reactions_by_drug_event | AEs by MedDRA term | medicinalproduct, filters |
FAERS_count_seriousness_by_drug_event | Serious vs non-serious | medicinalproduct |
FAERS_count_outcomes_by_drug_event | Recovered, fatal, etc. | medicinalproduct |
FAERS_count_death_related_by_drug | Fatal outcomes | medicinalproduct |
FAERS_count_patient_age_distribution | Age groups | medicinalproduct |
FAERS_count_drug_routes_by_event | Administration routes | medicinalproduct |
FAERS_count_country_by_drug_event | Country distribution | medicinalproduct |
Multi-Drug Analysis
| Tool | Purpose |
|---|---|
FAERS_count_additive_adverse_reactions | Combined AEs across drugs |
FAERS_count_additive_seriousness_classification | Combined seriousness |
FAERS_count_additive_reaction_outcomes | Combined outcomes |
Filter Options (FAERS)
| Filter | Values |
|---|---|
| patientsex | "Male", "Female" |
| patientagegroup | "Neonate", "Infant", "Child", "Adolescent", "Adult", "Elderly" |
| occurcountry | ISO2 code (e.g., "US", "GB") |
| serious | "Yes", "No" |
| seriousnessdeath | "Yes", "No" |
---
🆕 FAERS Analytics (Statistical Signal Detection)
NEW: Priority 1 tools for pharmacovigilance with regulatory-grade statistics.
Disproportionality Analysis
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_calculate_disproportionality | Calculate ROR, PRR, IC with 95% CI | Signal strength, contingency table, statistical measures |
Example:
result = tu.tools.FAERS_calculate_disproportionality(
operation="calculate_disproportionality",
drug_name="IBUPROFEN",
adverse_event="Gastrointestinal haemorrhage"
)
# Returns: ROR 2.8 [2.71-2.89], "Moderate signal"Interpretation:
- ROR > 1: Positive association (higher reporting than expected)
- Signal detected: ROR lower CI > 1.0 AND case count ≥ 3
- Signal strength: Strong (ROR ≥4), Moderate (ROR ≥2), Weak (ROR <2)
- ⚠️ Caution: Disproportionality ≠ causation (association only)
Demographic Stratification
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_stratify_by_demographics | Stratify by sex, age, country | Counts and percentages by group |
Example:
result = tu.tools.FAERS_stratify_by_demographics(
operation="stratify_by_demographics",
drug_name="IBUPROFEN",
adverse_event="Gastrointestinal haemorrhage",
stratify_by="sex" # Options: sex, age, country
)
# Returns: Female 60%, Male 40%Serious Events Filtering
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_filter_serious_events | Filter by FDA seriousness criteria | Top serious reactions with counts |
Example:
result = tu.tools.FAERS_filter_serious_events(
operation="filter_serious_events",
drug_name="IBUPROFEN",
seriousness_type="death" # Options: all, death, hospitalization, disability, life_threatening
)
# Returns: Total deaths, top fatal reactionsDrug Comparison
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_compare_drugs | Compare safety signals between drugs | Side-by-side ROR/PRR/IC comparison |
Example:
result = tu.tools.FAERS_compare_drugs(
operation="compare_drugs",
drug1="IBUPROFEN",
drug2="NAPROXEN",
adverse_event="Gastrointestinal haemorrhage"
)
# Returns: Comparative analysis with ROR for both drugsTemporal Trend Analysis
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_analyze_temporal_trends | Analyze reporting trends over time | Yearly counts, trend direction, percent change |
Example:
result = tu.tools.FAERS_analyze_temporal_trends(
operation="analyze_temporal_trends",
drug_name="IBUPROFEN",
adverse_event="Gastrointestinal haemorrhage"
)
# Returns: Increasing/Decreasing/Stable trend with percent changeMedDRA Hierarchy
| Tool | Purpose | Key Output |
|---|---|---|
FAERS_rollup_meddra_hierarchy | Aggregate by Preferred Term level | Top 50 PTs with counts |
Example:
result = tu.tools.FAERS_rollup_meddra_hierarchy(
operation="rollup_meddra_hierarchy",
drug_name="IBUPROFEN"
)
# Returns: List of PTs with case counts---
🆕 DailyMed SPL Parser (Structured Label Extraction)
NEW: Priority 1 tools for extracting structured data from FDA product labels.
Parse Operations
| Tool | Purpose | Key Output |
|---|---|---|
DailyMed_parse_adverse_reactions | Extract AE frequency tables | Tables with headers, rows, and text sections |
DailyMed_parse_dosing | Extract dosing tables | Dosing regimens, administration instructions |
DailyMed_parse_contraindications | Extract contraindication lists | Contraindication items and text |
DailyMed_parse_drug_interactions | Extract interaction tables | Drug-drug interactions with severity |
DailyMed_parse_clinical_pharmacology | Extract PK/PD data | Pharmacokinetic parameters, mechanism |
Requirements: Install lxml with pip install lxml
Example:
# First, get setid from search
search = tu.tools.DailyMed_search_spls(drug_name="ibuprofen")
setid = search['data']['results'][0]['setid']
# Parse adverse reactions
result = tu.tools.DailyMed_parse_adverse_reactions(
operation="parse_adverse_reactions",
setid=setid
)
# Returns: {"tables": [...], "text_sections": [...]}Use Cases:
- Systematic AE frequency extraction (no more manual PDF parsing)
- Structured dose modification rules
- Contraindication screening
- Drug-drug interaction tables for clinical decision support
---
🆕 FDA Orange Book (US Regulatory Intelligence)
NEW: Priority 1 tools for FDA approval data, patents, and generic availability.
Search & Basic Info
| Tool | Purpose | Key Output |
|---|---|---|
FDA_OrangeBook_search_drug | Search by brand/generic name or NDA | Application numbers, drug info |
Example:
result = tu.tools.FDA_OrangeBook_search_drug(
operation="search_drug",
brand_name="ADVIL"
)
# Or search by application number
result = tu.tools.FDA_OrangeBook_search_drug(
operation="search_drug",
application_number="NDA020402"
)Regulatory Timeline
| Tool | Purpose | Key Output |
|---|---|---|
FDA_OrangeBook_get_approval_history | Get approval timeline | Submission history, approval date, milestones |
Example:
result = tu.tools.FDA_OrangeBook_get_approval_history(
operation="get_approval_history",
application_number="NDA020402"
)
# Returns: Approval date, submissions, review documentsPatent & Exclusivity
| Tool | Purpose | Key Output |
|---|---|---|
FDA_OrangeBook_get_patent_info | Get patent information | Patent guidance, download URL |
FDA_OrangeBook_get_exclusivity | Get exclusivity periods | Exclusivity types, expiry dates |
Example:
# Patent info (guidance + download URL)
patents = tu.tools.FDA_OrangeBook_get_patent_info(
operation="get_patent_info",
brand_name="ADVIL"
)
# Exclusivity info
exclusivity = tu.tools.FDA_OrangeBook_get_exclusivity(
operation="get_exclusivity",
brand_name="ADVIL"
)Generic Availability
| Tool | Purpose | Key Output |
|---|---|---|
FDA_OrangeBook_check_generic_availability | Compare reference vs generics | Generic products count, comparison |
FDA_OrangeBook_get_te_code | Get Therapeutic Equivalence codes | TE codes with interpretation |
Example:
# Check generic availability
generics = tu.tools.FDA_OrangeBook_check_generic_availability(
operation="check_generic_availability",
brand_name="ADVIL"
)
# Returns: Reference product, generic count, TE codes
# Get TE code interpretation
te_codes = tu.tools.FDA_OrangeBook_get_te_code(
operation="get_te_code",
brand_name="ADVIL"
)
# Returns: TE codes (e.g., "AB") with interpretationTE Code Guide:
- A: Therapeutically equivalent
- AB: Bioequivalence standards met
- AP: Multi-source with equivalence
- B: NOT therapeutically equivalent
- BC: Extended-release dosage form issues
- BN: Active ingredient issues
Use Cases:
- Market entry planning (patent cliffs, exclusivity expiry)
- Generic competition landscape
- Regulatory submission timelines
- Therapeutic equivalence assessment
---
Drug Labeling (Legacy)
DailyMed Tools
| Tool | Purpose | Key Parameters |
|---|---|---|
DailyMed_search_spls | Search labels | drug_name, ndc, rxcui, setid |
DailyMed_get_spl_by_setid | Full label content | setid, format |
---
Pharmacogenomics (PharmGKB)
| Tool | Purpose | Key Parameters |
|---|---|---|
PharmGKB_search_drugs | Search drugs | query |
PharmGKB_get_drug_details | Drug cross-references | drug_id (PA...) |
PharmGKB_search_genes | Search pharmacogenes | query |
PharmGKB_get_gene_details | Gene details | gene_id |
PharmGKB_get_clinical_annotations | Gene-drug associations | annotation_id or gene_id |
PharmGKB_get_dosing_guidelines | CPIC/DPWG guidelines | guideline_id or gene |
PharmGKB_search_variants | Search by rsID | query |
---
Literature
Search Tools
| Tool | Purpose | Key Parameters |
|---|---|---|
PubMed_search_articles | Primary biomedical | query, limit |
PMC_search_papers | Full-text | query, limit |
EuropePMC_search_articles | European coverage | query, limit |
openalex_literature_search | Broad academic | query, limit |
Crossref_search_works | DOI-based | query, limit |
SemanticScholar_search_papers | AI-ranked | query, limit |
EuropePMC_search_articles | Preprints (use source='PPR') | query, source, pageSize |
BioRxiv_get_preprint | Get by DOI | doi |
MedRxiv_get_preprint | Get by DOI | doi, server |
Citation Tools
| Tool | Purpose |
|---|---|
PubMed_get_cited_by | Forward citations |
PubMed_get_related | Related articles |
EuropePMC_get_citations | Citations (fallback) |
EuropePMC_get_references | Reference list |
---
Tool Chains by Research Path
PATH 1: Identity Resolution
PubChem_get_CID_by_compound_name
↓
ChEMBL_search_molecules
↓
DailyMed_search_spls
↓
PharmGKB_search_drugsPATH 2: Chemistry & Drug-likeness
PubChem_get_compound_properties_by_CID
↓
ADMETAI_predict_physicochemical_properties
↓
ADMETAI_predict_solubility_lipophilicity_hydrationPATH 3: Targets & Bioactivity
ChEMBL_search_activities
↓
ChEMBL_get_target
↓
DGIdb_get_drug_info
↓
PubChem_get_compound_bioactivityPATH 4: ADMET Profile
ADMETAI_predict_bioavailability
↓
ADMETAI_predict_BBB_penetrance
↓
ADMETAI_predict_CYP_interactions
↓
ADMETAI_predict_clearance_distribution
↓
ADMETAI_predict_toxicityPATH 5: Clinical Trials
search_clinical_trials
↓
get_clinical_trial_conditions_and_interventions
↓
extract_clinical_trial_outcomes
↓
extract_clinical_trial_adverse_eventsPATH 6: Post-Marketing Safety
FAERS_count_reactions_by_drug_event
↓
FAERS_count_seriousness_by_drug_event
↓
FAERS_count_outcomes_by_drug_event
↓
FAERS_count_death_related_by_drug
↓
FAERS_count_patient_age_distributionPATH 7: Pharmacogenomics
PharmGKB_search_drugs
↓
PharmGKB_get_drug_details
↓
PharmGKB_get_clinical_annotations (for each gene)
↓
PharmGKB_get_dosing_guidelinesPATH 8: Literature
PubMed_search_articles (total count)
↓
PubMed_search_articles (recent papers)
↓
PubMed_search_articles (drug-focused)
↓
PubMed_get_cited_by (for key papers)---
Fallback Chains
| Primary | Fallback 1 | Fallback 2 |
|---|---|---|
PubChem_get_CID_by_compound_name | ChEMBL_search_drugs | Manual SMILES search |
ChEMBL_get_activity | PubChem_get_compound_bioactivity | Literature search |
DailyMed_search_spls | FDA_get_drug_label | FDA Orange Book |
PharmGKB_get_dosing_guidelines | Note "No guideline" | Literature search |
FAERS_count_reactions_by_drug_event | Note "FAERS unavailable" | Trial AE data |
ADMETAI_* | Note "Predictions unavailable" | Literature values |
PubMed_search_articles | EuropePMC_search_articles | openalex_literature_search |
---
Rate Limiting & Best Practices
| Database | Notes |
|---|---|
| PubChem | Robust, no strict limits; batch when possible |
| ChEMBL | May timeout on large bioactivity queries |
| ClinicalTrials.gov | Paginate for >100 results; use pageToken |
| FAERS | Can be slow; use minimal filters; avoid over-restriction |
| PharmGKB | Generally fast |
| ADMET-AI | Local computation; batch SMILES in single call |
| PubMed | 3 requests/second limit; use limit parameter |
---
Input Format Requirements
SMILES
# ADMET-AI tools require list format
smiles = ["CC(=O)Oc1ccccc1C(=O)O"] # List, not stringDrug Names (FAERS)
# Use uppercase, match FDA labeling
medicinalproduct = "METFORMIN" # Not "metformin"NCT IDs
# List format for batch queries
nct_ids = ["NCT01234567", "NCT02345678"]ChEMBL IDs
# Full ID format
chembl_id = "CHEMBL1431" # Not "1431"PharmGKB IDs
# PA prefix for drugs
drug_id = "PA450657" # Not "450657"Related skills
How it compares
Pick tooluniverse-drug-research for full multi-database drug dossiers rather than single API lookups or literature-only research skills.
FAQ
How many databases does tooluniverse-drug-research use?
tooluniverse-drug-research orchestrates 50+ ToolUniverse tools spanning chemical, clinical-trial, adverse-event, pharmacogenomic, regulatory, and literature sources, writing results into an 11-section markdown report.
What file does tooluniverse-drug-research produce first?
tooluniverse-drug-research creates `[DRUG]_drug_report.md` with all 11 section headers and `[Researching...]` placeholders before querying tools, then replaces placeholders as each research path completes.
When should you avoid tooluniverse-drug-research?
tooluniverse-drug-research is the wrong skill for target-only research, disease-only research, literature-only deep dives, or single-property lookups; sibling ToolUniverse skills or direct tool calls fit those narrower tasks.