Clinical Trial Matching for Precision Medicine
Transform patient molecular profiles and clinical characteristics into prioritized clinical trial recommendations. Searches ClinicalTrials.gov and cross-references with molecular databases (CIViC, OpenTargets, ChEMBL, FDA) to produce evidence-graded, scored trial matches.
KEY PRINCIPLES:
- Report-first approach - Create report file FIRST, then populate progressively
- Patient-centric - Every recommendation considers the individual patient's profile
- Molecular-first matching - Prioritize trials targeting patient's specific biomarkers
Molecular Matching Priority
Match patients to trials by molecular profile FIRST (specific mutations), then by disease stage, then by prior treatments. A patient with EGFR L858R should match to EGFR-targeted trials regardless of other factors.
- Evidence-graded - Every recommendation has an evidence tier (T1-T4)
- Quantitative scoring - Trial Match Score (0-100) for every trial
- Eligibility-aware - Parse and evaluate inclusion/exclusion criteria
- Actionable output - Clear next steps, contact info, enrollment status
- Source-referenced - Every statement cites the tool/database source
- Completeness checklist - Mandatory section showing analysis coverage
- English-first queries - Always use English terms in tool calls. Respond in user's language
LOOK UP, DON'T GUESS
When uncertain about any scientific fact, SEARCH databases first rather than reasoning from memory. A database-verified answer is always more reliable than a guess.
COMPUTE, DON'T DESCRIBE
When analysis requires computation (statistics, data processing, scoring, enrichment), write and run Python code via Bash. Don't describe what you would do — execute it and report actual results. Use ToolUniverse tools to retrieve data, then Python (pandas, scipy, statsmodels, matplotlib) to analyze it.
When to Use
Apply when user asks:
- "What clinical trials are available for my NSCLC with EGFR L858R?"
- "Patient has BRAF V600E melanoma, failed ipilimumab - what trials?"
- "Find basket trials for NTRK fusion"
- "Breast cancer with HER2 amplification, post-CDK4/6 inhibitor trials"
- "KRAS G12C colorectal cancer clinical trials"
- "Immunotherapy trials for TMB-high solid tumors"
- "Clinical trials near Boston for lung cancer"
- "What are my options after failing osimertinib for EGFR+ NSCLC?"
NOT for (use other skills instead):
- Single variant interpretation without trial focus -> Use
tooluniverse-cancer-variant-interpretation
- Drug safety profiling -> Use
tooluniverse-adverse-event-detection
- Target validation -> Use
tooluniverse-drug-target-validation
- General disease research -> Use
tooluniverse-disease-research
Input Parsing
Required Input
- Disease/cancer type: Free-text disease name (e.g., "non-small cell lung cancer", "melanoma")
Strongly Recommended
- Molecular alterations: One or more biomarkers (e.g., "EGFR L858R", "KRAS G12C", "PD-L1 50%", "TMB-high")
- Stage/grade: Disease stage (e.g., "Stage IV", "metastatic", "locally advanced")
- Prior treatments: Previous therapies and outcomes (e.g., "failed platinum chemotherapy", "progressed on osimertinib")
Optional
- Performance status: ECOG or Karnofsky score
- Geographic location: City/state for proximity filtering
- Trial phase preference: I, II, III, IV, or "any"
- Intervention type: drug, biological, device, etc.
- Recruiting status preference: recruiting, not yet recruiting, active
For biomarker parsing rules and gene symbol normalization, see [MATCHINGALGORITHMS.md](./MATCHINGALGORITHMS.md).
Workflow Overview
Input: Patient profile (disease + biomarkers + stage + prior treatments)
Phase 1: Patient Profile Standardization
- Resolve disease to EFO/ontology IDs (OpenTargets, OLS)
- Parse molecular alterations to gene + variant
- Resolve gene symbols to Ensembl/Entrez IDs (MyGene)
- Classify biomarker actionability (FDA-approved vs investigational)
Phase 2: Broad Trial Discovery
- Disease-based trial search (ClinicalTrials.gov)
- Biomarker-specific trial search
- Intervention-based search (for known drugs targeting patient's biomarkers)
- Deduplicate and collect NCT IDs
Phase 3: Trial Characterization (batch, groups of 10)
- Eligibility criteria, conditions/interventions, locations, status, descriptions
Phase 4: Molecular Eligibility Matching
- Parse eligibility text for biomarker requirements
- Match patient's molecular profile to trial requirements
- Score molecular eligibility (0-40 points)
Phase 5: Drug-Biomarker Alignment
- Identify trial intervention drugs and mechanisms (OpenTargets, ChEMBL)
- FDA approval status for biomarker-drug combinations
- Classify drugs (targeted therapy, immunotherapy, chemotherapy)
Phase 6: Evidence Assessment
- FDA-approved biomarker-drug combinations
- Clinical trial results (PubMed), CIViC evidence, PharmGKB
- Evidence tier classification (T1-T4)
Phase 7: Geographic & Feasibility Analysis
- Trial site locations, enrollment status, proximity scoring
Phase 8: Alternative Options
- Basket trials, expanded access, related studies
Phase 9: Scoring & Ranking (0-100 composite score)
- Tier classification: Optimal (80-100) / Good (60-79) / Possible (40-59) / Exploratory (0-39)
Phase 10: Report Synthesis
- Executive summary, ranked trial list, evidence grading, completeness checklist
Critical Tool Parameters
Clinical Trial Search Tools
| Tool |
Key Parameters |
Notes |
searchclinicaltrials |
query_term (REQ), condition, intervention, pageSize |
Main search (ClinicalTrials.gov, U.S./global) |
searchclinicaltrials |
action="search_studies" (REQ), condition, intervention, limit |
Alternative search |
getclinicaltrial_descriptions |
action="getstudydetails" (REQ), nct_id (REQ) |
Full trial details |
CTISsearchtrials |
query (REQ), limit, page |
EU/EEA trials (EU CTIS register, since 2022) — complements ClinicalTrials.gov |
CTISgettrial |
ct_number (REQ, e.g. 2022-503001-38-01) |
Full EU trial detail (Part I/II, member states, results) |
ISRCTNsearchtrials |
query (REQ), limit |
ISRCTN registry (UK-based, WHO-primary, international) — a third source |
ISRCTNgettrial |
isrctn_id (REQ, e.g. ISRCTN12336055) |
Full ISRCTN trial detail + cross-ref ids (DOI/EudraCT/NCT) |
Geographic coverage: ClinicalTrials.gov is U.S.-centric but global; many EU/EEA-only trials appear only in the EU CTIS register, and UK/international trials in ISRCTN. For a comprehensive search — or any patient who could enroll outside the U.S. — query searchclinicaltrials, CTISsearchtrials, and ISRCTNsearchtrials, then merge (the three registers list largely disjoint trials; ISRCTN records carry DOI/EudraCT/NCT cross-refs you can use to dedupe against the others). Each register has its own id namespace and detail tool: NCT→getclinicaltrial*, CT number→CTISgettrial, ISRCTN id→ISRCTNget_trial.
Batch Trial Detail Tools (all take nct_ids array)
| Tool |
Second Required Param |
Returns |
getclinicaltrialeligibilitycriteria |
eligibility_criteria="all" |
Eligibility text |
getclinicaltrial_locations |
location="all" |
Site locations |
getclinicaltrialconditionsand_interventions |
conditionandintervention="all" |
Arms/interventions |
getclinicaltrialstatusand_dates |
statusanddate="all" |
Status/dates |
getclinicaltrial_descriptions |
description_type="brief" or "full" |
Titles/summaries |
getclinicaltrialoutcomemeasures |
outcome_measures="all" |
Outcomes |
Gene/Disease Resolution
| Tool |
Key Parameters |
MyGenequerygenes |
query, species |
OpenTargetsgetdiseaseiddescriptionbyname |
diseaseName |
OpenTargetsgettargetiddescriptionbyname |
targetName |
olssearchefo_terms |
query, limit |
Drug Information
| Tool |
Key Parameters |
Notes |
OpenTargetsgetdrugiddescriptionbyname |
drugName |
Resolve drug to ChEMBL ID |
OpenTargetsgetdrugmechanismsofactionby_chemblId |
chemblId |
Drug MoA and targets |
OpenTargetsgetassociateddrugsbytargetensemblID |
ensemblId, size |
Drugs for a target |
drugbankgettargetsbydrugnameordrugbankid |
query, casesensitive, exactmatch, limit (ALL REQ) |
Drug targets |
fdapharmacogenomicbiomarkers |
(none) |
FDA biomarker-drug list |
FDAgetindicationsbydrug_name |
drug_name, limit |
FDA indications |
Evidence Tools
| Tool |
Key Parameters |
PubMedsearcharticles |
query, max_results |
civicgetvariantsbygene |
gene_id (CIViC int ID), limit |
PharmGKBsearchgenes |
query |
Known CIViC Gene IDs
EGFR=19, BRAF=5, ALK=1, ABL1=4, KRAS=30, TP53=45, ERBB2=20, NTRK1=197, NTRK2=560, NTRK3=561, PIK3CA=37, MET=52, ROS1=118, RET=122, BRCA1=2370, BRCA2=2371
Critical Parameter Notes
- DrugBank tools: ALL 4 parameters (
query, casesensitive, exactmatch, limit) are REQUIRED
searchclinicaltrials: query_term is REQUIRED even for disease-only searches
searchclinicaltrials: action must be exactly "search_studies"
- CIViC
civicsearchvariants: Does NOT filter by query - returns alphabetically
- CIViC
civicgetvariantsbygene: Takes CIViC gene ID (integer), NOT gene symbol
- Batch clinical trial tools: Accept arrays of NCT IDs, process in batches of 10
Scoring Summary
Trial Match Score (0-100):
- Molecular Match: 0-40 pts (exact variant=40, gene-level=30, pathway=20, none=10, excluded=0)
- Clinical Eligibility: 0-25 pts (all met=25, most=18, some=10, ineligible=0)
- Evidence Strength: 0-20 pts (FDA-approved=20, Phase III=15, Phase II=10, Phase I=5)
- Trial Phase: 0-10 pts (III=10, II=8, I/II=6, I=4)
- Geographic: 0-5 pts (local=5, same country=3, international=1)
Recommendation Tiers: Optimal (80-100), Good (60-79), Possible (40-59), Exploratory (0-39)
Evidence Tiers: T1 (FDA/guideline), T2 (Phase III), T3 (Phase I/II), T4 (computational)
For detailed scoring logic, see [SCORINGCRITERIA.md](./SCORINGCRITERIA.md).
Parallelization Strategy
Group 1 (Phase 1 - simultaneous):
MyGenequerygenes per gene, OpenTargets disease search, olssearchefoterms, fdapharmacogenomic_biomarkers
Group 2 (Phase 2 - simultaneous):
searchclinicaltrials by disease, biomarker, and intervention; searchclinicaltrials alternative
Group 3 (Phase 3 - simultaneous):
- All batch detail tools (eligibility, interventions, locations, status, descriptions)
Group 4 (Phases 5-6 - per drug):
- Drug resolution, MoA, FDA indications, PubMed evidence
Error Handling
- Wrap every tool call in try/except
- Check for empty results and string error responses
- Use fallback tools when primary fails (e.g., OLS if OpenTargets fails)
- Document failures in completeness checklist
- Never let one failure block the entire analysis
Reference Files
| File |
Contents |
| [TOOLSREFERENCE.md](./TOOLSREFERENCE.md) |
Full tool inventory with parameters and response structures |
| [MATCHINGALGORITHMS.md](./MATCHINGALGORITHMS.md) |
Patient profile standardization, biomarker parsing, molecular eligibility matching, drug-biomarker alignment code |
| [SCORINGCRITERIA.md](./SCORINGCRITERIA.md) |
Detailed scoring tables, molecular match logic, drug-biomarker alignment scoring |
| [REPORTTEMPLATE.md](./REPORTTEMPLATE.md) |
Full markdown report template with all sections |
| [TRIALSEARCHPATTERNS.md](./TRIALSEARCHPATTERNS.md) |
Search functions, batch retrieval, parallelization, common use patterns, edge cases |
| [EXAMPLES.md](./EXAMPLES.md) |
Worked examples for different matching scenarios |
| [QUICKSTART.md](./QUICKSTART.md) |
Quick-start guide for common workflows |