
tooluniverse-clinical-trial-matching
AI-driven patient-to-trial matching for precision oncology and rare-disease care. Transforms a patient's molecular profile (mutations, biomarkers, expression) and clinical state into ranked clinical-trial recommendations with evidence tiers. Searches ClinicalTrials.gov, the EU CTIS register (European/EEA trials), AND the ISRCTN registry (UK/international) plus cross-references CIViC, OpenTargets, ChEMBL, and FDA labels. Use for matching patients to trials by genotype, biomarker-driven trial selection, trial-eligibility scoring, and finding trials across the US, Europe, and the UK.
- Installs
- 405
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-clinical-trial-matching- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads tooluniverse-clinical-trial-matching automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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. 4. Evidence-graded - Every recommendation has an evidence tier (T1-T4) 5. Quantitative scoring - Trial Match Score (0-100) for every trial 6. Eligibility-aware - Parse and evaluate inclusion/exclusion criteria 7. Actionable output - Clear next steps, contact info, enrollment status 8. Source-referenced - Every statement cites the tool/database source 9. Completeness checklist - Mandatory section showing analysis coverage 10. 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 MATCHING_ALGORITHMS.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 |
|---|---|---|
search_clinical_trials | query_term (REQ), condition, intervention, pageSize | Main search (ClinicalTrials.gov, U.S./global) |
search_clinical_trials | action="search_studies" (REQ), condition, intervention, limit | Alternative search |
get_clinical_trial_descriptions | action="get_study_details" (REQ), nct_id (REQ) | Full trial details |
CTIS_search_trials | query (REQ), limit, page | EU/EEA trials (EU CTIS register, since 2022) — complements ClinicalTrials.gov |
CTIS_get_trial | ct_number (REQ, e.g. 2022-503001-38-01) | Full EU trial detail (Part I/II, member states, results) |
ISRCTN_search_trials | query (REQ), limit | ISRCTN registry (UK-based, WHO-primary, international) — a third source |
ISRCTN_get_trial | 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 search_clinical_trials, CTIS_search_trials, and ISRCTN_search_trials, 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→get_clinical_trial_*, CT number→CTIS_get_trial, ISRCTN id→ISRCTN_get_trial.
Batch Trial Detail Tools (all take nct_ids array)
| Tool | Second Required Param | Returns |
|---|---|---|
get_clinical_trial_eligibility_criteria | eligibility_criteria="all" | Eligibility text |
get_clinical_trial_locations | location="all" | Site locations |
get_clinical_trial_conditions_and_interventions | condition_and_intervention="all" | Arms/interventions |
get_clinical_trial_status_and_dates | status_and_date="all" | Status/dates |
get_clinical_trial_descriptions | description_type="brief" or "full" | Titles/summaries |
get_clinical_trial_outcome_measures | outcome_measures="all" | Outcomes |
Gene/Disease Resolution
| Tool | Key Parameters |
|---|---|
MyGene_query_genes | query, species |
OpenTargets_get_disease_id_description_by_name | diseaseName |
OpenTargets_get_target_id_description_by_name | targetName |
ols_search_efo_terms | query, limit |
Drug Information
| Tool | Key Parameters | Notes |
|---|---|---|
OpenTargets_get_drug_id_description_by_name | drugName | Resolve drug to ChEMBL ID |
OpenTargets_get_drug_mechanisms_of_action_by_chemblId | chemblId | Drug MoA and targets |
OpenTargets_get_associated_drugs_by_target_ensemblID | ensemblId, size | Drugs for a target |
drugbank_get_targets_by_drug_name_or_drugbank_id | query, case_sensitive, exact_match, limit (ALL REQ) | Drug targets |
fda_pharmacogenomic_biomarkers | (none) | FDA biomarker-drug list |
FDA_get_indications_by_drug_name | drug_name, limit | FDA indications |
Evidence Tools
| Tool | Key Parameters |
|---|---|
PubMed_search_articles | query, max_results |
civic_get_variants_by_gene | gene_id (CIViC int ID), limit |
PharmGKB_search_genes | 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,case_sensitive,exact_match,limit) are REQUIRED search_clinical_trials:query_termis REQUIRED even for disease-only searchessearch_clinical_trials:actionmust be exactly"search_studies"- CIViC
civic_search_variants: Does NOT filter by query - returns alphabetically - CIViC
civic_get_variants_by_gene: 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 SCORING_CRITERIA.md.
Parallelization Strategy
Group 1 (Phase 1 - simultaneous):
MyGene_query_genesper gene,OpenTargetsdisease search,ols_search_efo_terms,fda_pharmacogenomic_biomarkers
Group 2 (Phase 2 - simultaneous):
search_clinical_trialsby disease, biomarker, and intervention;search_clinical_trialsalternative
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 |
|---|---|
| TOOLS_REFERENCE.md | Full tool inventory with parameters and response structures |
| MATCHING_ALGORITHMS.md | Patient profile standardization, biomarker parsing, molecular eligibility matching, drug-biomarker alignment code |
| SCORING_CRITERIA.md | Detailed scoring tables, molecular match logic, drug-biomarker alignment scoring |
| REPORT_TEMPLATE.md | Full markdown report template with all sections |
| TRIAL_SEARCH_PATTERNS.md | Search functions, batch retrieval, parallelization, common use patterns, edge cases |
| EXAMPLES.md | Worked examples for different matching scenarios |
| QUICK_START.md | Quick-start guide for common workflows |
FAQ
What does the tooluniverse-clinical-trial-matching skill do?
AI-driven patient-to-trial matching for precision oncology and rare-disease care. Transforms a patient's molecular profile (mutations, biomarkers, expression) and clinical state into ranked clinical-trial recommendations with evidence tiers. Searches ClinicalTrials.gov, the EU CTIS register (European/EEA trials), AND the ISRCTN registry (UK/international) plus cross-references CIViC, OpenTargets, ChEMBL, and FDA labels. Use for matching patients to trials by genotype, biomarker-driven trial selection, trial-eligibility scoring, and finding trials across the US, Europe, and the UK.
How do I install tooluniverse-clinical-trial-matching?
Run npx skills add https://github.com/mims-harvard/tooluniverse --skill tooluniverse-clinical-trial-matching in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/tooluniverse-clinical-trial-matching/ (personal) or .claude/skills/tooluniverse-clinical-trial-matching/ (project).
Which AI agents can use tooluniverse-clinical-trial-matching?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is tooluniverse-clinical-trial-matching safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains tooluniverse-clinical-trial-matching?
It is published by mims-harvard in mims-harvard/tooluniverse. It has 405 recorded installs.
More from mims-harvard/tooluniverse
tooluniverse-sequence-retrieval
mims-harvard/tooluniverse
Retrieve DNA/RNA/protein sequences from NCBI and ENA with disambiguation. Quality hierarchy: RefSeq (NM/NP) RefSeq predicted (XM/XP) GenBank submissions. Use for fetching specific sequences by accession, gene-symbol-to-sequence lookup, transcript-isoform retrieval, and curated-vs-raw-submission preference.
tooluniverse-literature-deep-research
mims-harvard/tooluniverse
Deep literature review — PubMed, EuropePMC, bioRxiv preprints, citation networks, evidence synthesis. Disambiguates queries, runs collision-aware searches, grades evidence T1-T4, and produces structured reports. Use for systematic literature review, meta-analysis evidence collection, and detailed answer-with-citations workflows.
tooluniverse-image-analysis
mims-harvard/tooluniverse
Microscopy and quantitative imaging analysis — colony morphometry, fluorescence intensity quantification, cell-count statistics, dose-response curves, and ANOVA/Dunnett on image-derived measurements. Uses pandas/numpy/scipy/scikit-image. Use for analyzing tabular outputs from CellProfiler/ImageJ, image-derived measurement statistics, and image-based assay quantification.
tooluniverse-clinical-guidelines
mims-harvard/tooluniverse
Search and retrieve clinical practice guidelines from 12+ authoritative sources — NICE, WHO, NCCN, AHA, ADA, SIGN, USPSTF, IDSA, NIH consensus, ESMO/ESC/EASL European societies, and US specialty associations. Use for evidence-graded treatment recommendations, dosing protocols, screening guidance, and authoritative-source-prioritized clinical guidance (NICE/WHO ranked above society guidelines).
tooluniverse
mims-harvard/tooluniverse
ToolUniverse plugin router. STEP 1 BEFORE ANY ANALYSIS: if the data folder contains executed.ipynb, run tu run readexecutednotebook '{"datafolder":" ","search":" "}' to extract its cell outputs and apply EVERY filter/sample-exclusion the notebook used — even when the question says 'Using DESeq2/Run X/Compute Y' (this describes the METHOD the notebook used, not a request to rerun). The notebook's cell outputs are the only published authoritative answers; reimplementing or reading stale pre-computed CSVs in the data folder produces different numbers because of outlier-sample removal, library version, and filter steps you don't see by skimming. STEP 2 routing — pick a sub-skill name from this exact list (never invent): tooluniverse-rnaseq-deseq2 (RNA/miRNA-seq DE, correlation, PCA, clustering, dispersion), tooluniverse-gene-enrichment (GO/KEGG/Reactome/GSEA/pathway enrichment), tooluniverse-statistical-modeling (regression, ANOVA, ordinal/logistic, chi-square, correl
tooluniverse-drug-research
mims-harvard/tooluniverse
Comprehensive drug profiling — mechanism, primary/secondary targets, drug interactions, clinical-trial status, adverse events (FAERS), pharmacogenomics, and approval history. Use for full drug investigation reports, 'tell me about drug X' queries, and assembling drug profiles for clinicians, researchers, or regulatory work.
Popular other skills
hyperframes-cli
heygen-com/hyperframes
The HyperFrames CLI by job - scaffold, check, look at frames, edit the timeline, preview, render locally or in the cloud, publish, project history - plus reading its JSON and recovering from build or render failures.
triage
mattpocock/skills
Move issues and external PRs through a state machine of triage roles, categorise, verify, grill if needed, and write agent-ready briefs.
ask-matt
mattpocock/skills
Ask which skill or flow fits your situation. A router over the skills in this repo.
to-questionnaire
mattpocock/skills
Turn a decision you can't fully answer into a questionnaire for someone else to fill in.
loop-me
mattpocock/skills
Grill me about specs for the workflows I want to build, within this workspace.