MatchMiner’s two trial matching tools, MatchMiner Genomics and MatchMiner-AI, both run inside your institution’s network, so patient data stays there. You can run one or both, depending on your needs.
- MatchMiner Genomics matches patients whose tumors have been sequenced to precision medicine trials.
- MatchMiner-AI matches patients to all open trials using their clinical notes.
MatchMiner Dashboard, our trial management tool, isn’t available outside Dana-Farber yet. Its code is due for release in winter 2026–27.
MatchMiner Genomics
MatchMiner Genomics runs entirely inside your institution’s network, so patient data stays under your own security and HIPAA controls. The documentation walks through a demo setup you can run on a laptop, with example CTML and example patient data.
Try the demo
You need bash, cURL, git, Docker, and docker-compose. This command downloads and runs the setup script, then serves the demo at http://localhost:1952:
/bin/bash -c "$(curl -fsSL https://matchminer.org/setup.sh)"You can read the script before running it.
What you need
| Small instance | Dana-Farber’s deployment (2026) | |
|---|---|---|
| Compute | 4 CPUs, 4 GB memory (a laptop) | 45 CPU cores, 128 GB memory |
| Scale | Demo data | ~80,000 clinical samples, ~700 trials, ~600 saved filters, ~500 users |
Data
The MatchEngine and web interface need two inputs:
- Structured patient data. Genomic results and clinical attributes in the patient data format.
- Trial eligibility in CTML. Each trial’s criteria written in Clinical Trial Markup Language.
People
We suggest at least two scientists to curate and review CTML documents, and at least one software engineer to build the data ingestion pipelines and connect MatchMiner to institutional systems such as single sign-on.
Writing trials in CTML
CTML is plain YAML (or JSON), so you can write it in any text editor. Here is one arm of a trial that enrolls adults whose non-small cell lung cancer has an EGFR L858R mutation:
protocol_no: 24-117
nct_id: NCT00000000
treatment_list:
step:
- arm:
- arm_code: A
arm_description: EGFR L858R, non-small cell lung cancer
match:
- and:
- genomic:
hugo_symbol: EGFR
protein_change: p.L858R
variant_category: Mutation
- clinical:
oncotree_primary_diagnosis: Non-Small Cell Lung Cancer
age_numerical: ">=18"Criteria can combine genomic, clinical, and demographic conditions with and / or, and CTML can be extended with new criteria. Prefix a value with ! to exclude it: variant_category: "!Mutation" on a second genomic block, for example, keeps out patients whose tumors have a specific variant. Diagnoses follow OncoTree, so a criterion for non-small cell lung cancer also matches patients with more specific diagnoses underneath it, such as lung adenocarcinoma.
If you’d rather not edit YAML by hand, the CTIMS project at Princess Margaret Cancer Centre built an editor for writing CTML.
MatchMiner-AI
The inference pipeline is a Python package:
pip install matchminer-aiWhat you need
- Python 3.12 or later.
- A GPU for the summarization steps, which run the language model. A GPU is also recommended, but not required, for the embedding and classification steps.
- A language model. The package can run it itself, or connect to a model server you run or choose, through an OpenAI-compatible API.
- Trials. One row per trial, with an ID, title, brief summary, and eligibility criteria. The documentation shows how to build this from ClinicalTrials.gov.
- Patient notes. One row per clinical note, with a patient ID, the note text, and the note date.
The package is currently pre-v1 and under active development. Its documentation covers requirements, GPU recommendations, installation, and a quickstart with an example notebook, and explains how to choose between local and remote model inference. The models and synthetic training data are on Hugging Face, and the training code is public. The code is released for non-commercial use under CC BY-NC-ND 4.0.
Where to go next
- MatchMiner Genomics documentation and demo setup
- MatchMiner-AI documentation
- All code, models, and data
- Frequently asked questions
- Contact the team if you are planning a deployment