Seon Min Kim
SoloClinical NLP

Clinical Trial Eligibility Extraction

An NLP pipeline that pulls eligibility criteria from ClinicalTrials.gov so protocol benchmarking takes minutes instead of weeks.

200+
Medical entities extracted from 40 trials
18
Unique biomarkers found
When
December 2025
Context
Personal project
Team
Solo
My role
Design and build
Tools
Python, ClinicalTrials.gov API v2, Regex NLP, pandas
Links
GitHub

Problem

Clinical teams spend weeks benchmarking eligibility criteria across competitor trials by hand.

What it does

The pipeline collects trials from the ClinicalTrials.gov API, cleans the criteria text and extracts entities in five categories. Across 40 oncology trials it found more than 200 entities, including 18 biomarkers (EGFR, PD-L1, BRAF V600E, HER2, MSI-high), drugs such as pembrolizumab and nivolumab, and thresholds such as serum creatinine ≤1.5.

What broke and what I changed

SciBERT and spaCy models failed on Python 3.12, so I switched to regex patterns. Extraction became predictable, at the cost of maintaining the patterns.

Limits and next

Rare biomarkers are missed unless a pattern is added, and the set leans toward lung cancer. Next would be entity recognition from gene databases or an LLM, and a larger trial set.