The comprehensive structured abstract corpus (23.3M records) is available on the Zenodo StructuredPubMed.
Set up the virtual environment & install the dependencies:
# Recommend Python 3.11+.
python3 -m venv .venv
source .venv/bin/activate
pip install -r requirements.txtUnzip eval_data.zip to the project root for the toy samples and pre-computed results.
Set PROJECT_DATA to a folder with enough disk space, then run:
export PROJECT_DATA=YOUR_DATA_FOLDER_PATH
bash scripts/extract_structured_abstracts_from_pubmed.shThis downloads the latest PubMed baseline and updatefiles from NCBI FTP, parses structured abstracts from the XML, and writes integrated_structured_abstracts.tsv under PROJECT_DATA.
Create .env in the current project folder and configure endpoint and api key there:
# OpenAI-compatible base URL
endpoint=ENDPOINT_URL
api_key=YOUR_API_KEYRun the following command to extract structured abstracts from 10 toy samples:
python src/extract_structured_abstracts_via_GPT.py --input_tsv eval_data/10_toy_samples.tsv --output_tsv eval_data/10_toy_samples_GPT-4.1-mini_predicted_structured_abstract.tsv --deployment_name gpt-4.1-miniPlease note that to handle million-scale data we use Batch API to speed up the extraction process.
Run the evaluation script on the toy samples:
python src/eval.py eval_data/10_toy_samples.tsv eval_data/10_toy_samples_GPT-4.1-mini_predicted_structured_abstract.tsvReproduce raw data for Figure 3 and Table 3 reported in the paper:
bash scripts/reproduce_paper_eval.shIf you use our dataset/code in your research, please cite our preprint:
@article{chang2026pubmed,
title={A PubMed-Scale Dataset of Structured Biomedical Abstracts},
author={Chang, Chia-Hsuan and Song, Haerin and Ondov, Brian and Xu, Hua},
journal={arXiv preprint arXiv:2606.11361},
year={2026}
}