Skip to content

Requirements

Before installing matchminer-ai, check that you have the compute environment and data needed for the workflow you want to run.

Compute

This package requires Python 3.12+.

Steps that use an LLM, such as summarizing patient notes, can run using a model hosted locally or through a remote OpenAI-compatible endpoint. You therefore do not necessarily need a GPU on the computer running matchminer-ai. See our documentation on choosing an inference setup for more information.

Warning

Before sending clinical text to any remote endpoint, make sure the endpoint is approved for your data and institution.

Other parts of the workflow generate embeddings or run classification models locally. These models may be able to run on CPU, but CPU performance has not been formally evaluated and may be impractically slow. We recommend using a GPU for these steps.

See our GPU recommendations documentation for examples of hardware we have used to run the full workflow.

Data

If you are starting from the beginning of the patient-centric workflow, you need two input tables:

  • trial-level data for summarize_trials
  • note-level patient data for summarize_patients

Trial input

Trial summarization expects one row per trial with trial identifiers, title, brief summary, and eligibility criteria.

If you are preparing trial input from ClinicalTrials.gov, first obtain the study records as JSON and then build one row per study by selecting these fields:

summarize_trials column ClinicalTrials.gov JSON field
trial_id protocolSection.identificationModule.nctId
trial_title protocolSection.identificationModule.briefTitle
brief_summary protocolSection.descriptionModule.briefSummary
eligibility_criteria protocolSection.eligibilityModule.eligibilityCriteria

Patient input

Patient summarization expects one row per clinical note. Each row should include a patient identifier, note text, and note date.

Users are responsible for preparing note-level input data approved for their environment.

Detailed input requirements

See the summarize_trials and summarize_patients API docs for current DataFrame column requirements.

The example notebook uses sample input data from examples/data/, which is the best place to inspect the expected input shape when preparing your own data.

You do not always have to start at the beginning. There are entry points later in the workflow if you already have summaries, embeddings, candidate matches, or other intermediate results. The input requirements for those entry points are documented with the corresponding Package API pages.