plugin/skills/tooluniverse-clinical-trial-matching/SKILL.md
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.
npx skillsauth add mims-harvard/tooluniverse tooluniverse-clinical-trial-matchingInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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:
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
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.
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.
Apply when user asks:
NOT for (use other skills instead):
tooluniverse-cancer-variant-interpretationtooluniverse-adverse-event-detectiontooluniverse-drug-target-validationtooluniverse-disease-researchFor biomarker parsing rules and gene symbol normalization, see MATCHING_ALGORITHMS.md.
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
| 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.
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 |
| 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 |
| 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 |
| Tool | Key Parameters |
|------|---------------|
| PubMed_search_articles | query, max_results |
| civic_get_variants_by_gene | gene_id (CIViC int ID), limit |
| PharmGKB_search_genes | query |
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
query, case_sensitive, exact_match, limit) are REQUIREDsearch_clinical_trials: query_term is REQUIRED even for disease-only searchessearch_clinical_trials: action must be exactly "search_studies"civic_search_variants: Does NOT filter by query - returns alphabeticallycivic_get_variants_by_gene: Takes CIViC gene ID (integer), NOT gene symbolTrial Match Score (0-100):
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.
Group 1 (Phase 1 - simultaneous):
MyGene_query_genes per gene, OpenTargets disease search, ols_search_efo_terms, fda_pharmacogenomic_biomarkersGroup 2 (Phase 2 - simultaneous):
search_clinical_trials by disease, biomarker, and intervention; search_clinical_trials alternativeGroup 3 (Phase 3 - simultaneous):
Group 4 (Phases 5-6 - per drug):
| 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 |
tools
Post-market safety surveillance and recall/adverse-event RETRIEVAL across the full spectrum of FDA-regulated products that are NOT covered by the drug-AE signal skills: medical devices, food / dietary supplements / cosmetics, veterinary drugs, and drug supply (shortages). Orchestrates openFDA endpoints (MAUDE device adverse events + device recalls + 510(k), CAERS food/supplement/ cosmetic adverse events, veterinary adverse events, drug shortages, and cross-product enforcement/recall reports). USE WHEN the user asks: "are there adverse events for [device / pacemaker / infusion pump / insulin pump]", "device recalls for [firm/product]", "supplement / vitamin / cosmetic adverse reactions", "is [drug] in shortage", "what injectables are on shortage", "veterinary / animal adverse events for [drug] in [dog/cat/horse]", "food recall for listeria", "MAUDE report for [device]", "CAERS reactions for [brand]". DO NOT USE for drug adverse-event SIGNAL detection or disproportionality (PRR / ROR / IC) or drug-AE association scoring — that is `tooluniverse-pharmacovigilance` / `tooluniverse-adverse-event-detection`. This skill is multi-product surveillance and retrieval, not drug-AE statistical signal mining.
tools
--- name: tooluniverse-phewas description: Cross-ancestry / cross-biobank phenome-wide association (PheWAS) and replication. Given ONE variant (rsID) or ONE gene, look up every phenotype it associates with across European/UK (UKB-TOPMed), Finnish (FinnGen), Japanese (BioBank Japan), and Taiwanese (TPMI) biobanks, plus exome-wide gene-burden PheWAS (Genebass), then judge whether an association replicates across ancestries or is population-specific. Use whenever the user asks "what else is this va
tools
Dereplicate a putative natural product and assign its chemical taxonomy. Use to answer "is [compound] a known natural product", "what microbe/organism produces [compound]", "what chemical class is [compound]", "dereplicate this metabolite (by formula/exact mass/InChIKey/SMILES)", or "classify this molecule into ChemOnt". Searches NPAtlas for known microbial natural products (producing organism + literature reference), assigns the ChemOnt kingdom→superclass→class→subclass hierarchy via ClassyFire, resolves systematic IUPAC names to structure via OPSIN, and cross-references identity in PubChem. NOT for general drug/compound identity or ADMET (use tooluniverse-chemical-compound-retrieval / tooluniverse-small-molecule-discovery) and NOT for metabolomics pathway/enrichment analysis (use tooluniverse-metabolomics skills).
tools
Genome-ASSEMBLY discovery, QC, and replicon mapping for any organism (bacteria, archaea, fungi, and beyond) using NCBI Datasets. Resolves an organism name or taxid to assemblies, picks the reference/representative or best-quality assembly, pulls assembly QC metrics (total length, contig/scaffold N50, contig count, GC%, assembly level, RefSeq category), enumerates chromosomes and plasmids via per-replicon sequence reports, and compares candidate assemblies on quality. Use for "what genomes are available for [organism]", "assembly stats / N50 / GC content for [GCF_/GCA_ accession]", "how many plasmids does [strain] have", "compare assemblies for [species]", "find the reference genome for [taxon]", "is this assembly Complete Genome or just contigs". NOT for gene-level orthology/synteny (use tooluniverse-comparative-genomics), plant gene structure (use tooluniverse-plant-genomics), de novo assembly from raw reads (no tool exists), or taxonomy-only name/lineage lookups.