https://github.com/cbib/trialmatchai
TrialMatchAI aims to seamlessly match cancer patients to clinical trials based on their unique genomic and clinical profiles using AI
Science Score: 26.0%
This score indicates how likely this project is to be science-related based on various indicators:
-
○CITATION.cff file
-
✓codemeta.json file
Found codemeta.json file -
✓.zenodo.json file
Found .zenodo.json file -
○DOI references
-
○Academic publication links
-
○Academic email domains
-
○Institutional organization owner
-
○JOSS paper metadata
-
○Scientific vocabulary similarity
Low similarity (14.1%) to scientific vocabulary
Keywords
Repository
TrialMatchAI aims to seamlessly match cancer patients to clinical trials based on their unique genomic and clinical profiles using AI
Basic Info
Statistics
- Stars: 14
- Watchers: 5
- Forks: 1
- Open Issues: 0
- Releases: 0
Topics
Metadata Files
README.md
TrialMatchAI
An AI-driven tool designed to match patients with the most relevant clinical trials. Leveraging state-of-the-art Large Language Models (LLMs), Natural Language Processing (NLP), and Explainable AI (XAI), TrialMatchAI structures trial documentation and patient data to provide transparent, personalized recommendations.
⚠️ Disclaimer
At this stage, TrialMatchAI is still under active development and largely a prototype provided for research and informational purposes only. It is NOT medical advice and should not replace consultation with qualified healthcare professionals.
🔍 Key Features
- AI-Powered Matching: Utilizes advanced LLMs to parse complex eligibility criteria and patient records (including unstructured notes and genetic reports).
- Personalized Recommendations: Tailors trial suggestions based on each patient’s unique clinical history and genomic profile.
- Explainable Insights: Provides clear, chain-of-thought explanations for every recommended trial, enhancing trust and interpretability.
- Real-Time Updates: Maintains an up-to-date database of recruiting trials.
- Scalable Architecture: Dockerized components enable easy deployment of Elasticsearch indices and indexing pipelines.
⚙️ System Requirements
- OS: Linux or macOS
- Docker & Docker Compose: For running the Elasticsearch container
- Python: ≥ 3.8
- GPU: NVIDIA (e.g., H100) with ≥ 60 GB VRAM (recommended for large-scale processing)
- Disk Space: ≥ 100 GB free (for data and indices)
🚀 Installation & Setup
Clone the Repository
bash git clone https://github.com/cbib/TrialMatchAI.git cd TrialMatchAIEnsure the Repository Is Up to Date
bash git pull origin mainMake the Setup Script Executable
bash chmod +x setup.sh(Optional) Configure Elasticsearch Password
- Open the
.envfile located in thedocker/folder. - Update the
ELASTIC_PASSWORDvariable to your desired secure password.
dotenv # docker/.env ELASTIC_PASSWORD=YourNewPassword
- Open the
4a. (Optional) Sync config.json Password
If you updated ELASTIC_PASSWORD above, open config.json in the repo root and update the Elasticsearch password field to match:
json
{
"elasticsearch": {
"host": "https://localhost:9200",
"username": "elastic",
"password": "YourNewPassword",
.
.
},
...
}
- Run the Setup Script
bash ./setup.sh
- Installs Python dependencies
- Downloads datasets, resources, and model archives from Zenodo
- Verifies GPU availability
- Builds the Elasticsearch container via Docker Compose
- Launches indexing pipelines in the background
- Estimated Time: ~60–90 minutes (depending on hardware)
- Installs Python dependencies
🎯 Usage Example
Run the matcher on a sample input directory:
bash
python -m src.Matcher.main
Results are saved under results/, with detailed criterion-level explanations for each recommended trial.
🤝 Contributing
We welcome community contributions! To contribute:
- Fork the repository.
- Create a feature branch:
git checkout -b feature/YourFeature. - Commit your changes and push to your branch.
- Open a Pull Request against
main.
Please follow our code style and include tests where applicable.
🙋 Support & Contact
For questions, issues, or feature requests, open an issue on GitHub or reach out to:
- Email: abdallahmajd7@gmail.com
Owner
- Name: Centre de Bioinformatique de Bordeaux
- Login: cbib
- Kind: organization
- Location: Université de Bordeaux (146, rue Léo Saignat 33076 Bordeaux cedex)
- Website: https://www.cbib.u-bordeaux.fr/
- Repositories: 15
- Profile: https://github.com/cbib
GitHub Events
Total
- Watch event: 10
- Delete event: 5
- Member event: 2
- Push event: 23
- Pull request event: 2
- Fork event: 1
- Create event: 3
Last Year
- Watch event: 10
- Delete event: 5
- Member event: 2
- Push event: 23
- Pull request event: 2
- Fork event: 1
- Create event: 3
Dependencies
- FlagEmbedding ==1.3.4
- FlagEmbedding ==1.3.3
- Jinja2 ==3.1.6
- Requests ==2.32.3
- bert_score ==0.3.13
- bioregistry ==0.11.35
- colorcet ==3.1.0
- datasets ==2.19.0
- elasticsearch ==9.0.0
- faiss_cpu ==1.9.0.post1
- falcon ==4.0.2
- filelock ==3.18.0
- gliner ==0.2.16
- joblib ==1.4.2
- langchain ==0.3.23
- langchain_community ==0.3.21
- langchain_core ==0.3.52
- langchain_openai ==0.3.13
- local_gemma ==0.2.0
- matplotlib ==3.10.1
- nltk ==3.9.1
- numpy ==2.2.4
- openpyxl ==3.1.5
- optimum ==1.23.3
- pandas ==2.2.3
- peft ==0.14.0
- pycountry ==24.6.1
- pydantic ==2.11.3
- pymongo ==4.12.0
- python-dotenv ==1.1.0
- python_dateutil ==2.9.0.post0
- rapidfuzz ==3.13.0
- rich ==14.0.0
- scikit_learn ==1.6.1
- scipy ==1.15.2
- seaborn ==0.13.2
- seqeval ==1.2.2
- spacy ==3.7.5
- statsmodels ==0.14.4
- tenacity ==9.0.0
- torch ==2.5.1
- tqdm ==4.67.1
- transformers ==4.49.0
- docker.elastic.co/elasticsearch/elasticsearch ${STACK_VERSION}
- docker.elastic.co/kibana/kibana ${STACK_VERSION}