Run MatchMiner at your institution

MatchMiner Genomics and MatchMiner-AI are free to deploy. Here is what each one needs.

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 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:

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-ai

What 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