A high-quality experimental dataset for predicting human Pregnane-X Receptor (PXR) induction, comprising over 11,000 compounds screened using a high-fidelity in-house assay. This is the largest publicly available PXR activity dataset, released as part of the OpenADMET PXR Induction Blind Challenge.
Blog post: Announcing the Next OpenADMET Blind Challenge: Predicting PXR Induction
Challenge Space: openadmet/pxr-challenge
Challenge period: April 1 – July 1, 2026
Produced by: OpenADMET
pxr-challenge_DRC_plot_data_TRAIN.parquet / pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet, with real unblinded curves for the train/test set). Only available via pd.read_parquet (see below).pxr-challenge_96-compound-uscale-semi-pure_TRAIN.csv (OCNT-2469084, -2469095, -2469107, -2469108 through -2469114). Regiochemical enumeration errors; all corrections are constitutional isomers (ΔMW = 0) so no activity or yield values changed. Re-pull if you have trained on a previous version of semi_pure_htchem.phase_2_unblinded config.phase_1_unblinded config.| Config | Split | Description |
|---|---|---|
default | train | Primary assay training set (pEC50, Emax) |
default | test | 513-compound blinded test set |
counter_assay | train | PXR-null counter-assay training data |
structure | test | 184 molecules with X-ray crystal structures |
single_concentration | train | Single-concentration screening data (log2 fold change) |
crudes_htchem | train | Direct to biology assays of crudes (see our blog post here) |
phase_1_unblinded | test | Phase 1 unblinded subset of the primary blinded test set with assay labels |
phase_2_unblinded | test | Phase 2 unblinded subset of the primary blinded test set with assay labels |
Two additional downloadable parquet files — pxr-challenge_DRC_plot_data_TRAIN.parquet and pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet, with the raw per-well datapoints reconstructed from the assay's well-level data, i.e. the actual dose-response curves that pEC50/Emax in default were fit from.
datasetsfrom datasets import load_dataset
# Default config (primary assay)
ds = load_dataset("openadmet/pxr-challenge-train-test")
train = ds["train"]
test = ds["test"]
# Counter-assay config
ds_counter = load_dataset("openadmet/pxr-challenge-train-test", "counter_assay")
train_counter = ds_counter["train"]
# Structure config
ds_structure = load_dataset("openadmet/pxr-challenge-train-test", "structure")
test_structure = ds_structure["test"]
# Single-concentration config
ds_single = load_dataset("openadmet/pxr-challenge-train-test", "single_concentration")
train_single = ds_single["train"]
# crudes htchem config
ds_crudes = load_dataset("openadmet/pxr-challenge-train-test", "crudes_htchem")
train_crudes = ds_crudes["train"]
# semi-pures htchem config
ds_semi_pure = load_dataset("openadmet/pxr-challenge-train-test", "semi_pure_htchem")
train_semi_pure = ds_semi_pure["train"]
# Phase 1 unblinded test labels config
ds_phase1 = load_dataset("openadmet/pxr-challenge-train-test", "phase_1_unblinded")
test_phase1 = ds_phase1["test"]
# Phase 2 unblinded test labels config
ds_phase2 = load_dataset("openadmet/pxr-challenge-train-test", "phase_2_unblinded")
test_phase2 = ds_phase2["test"]
import pandas as pd
train = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TRAIN.csv")
test = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_BLINDED.csv")
train_counter = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_counter-assay_TRAIN.csv")
test_structure = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_structure_TEST_BLINDED.csv")
train_single = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_single_concentration_TRAIN.csv")
train_crudes = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_htchem-libraries_TRAIN.csv")
train_semi_pure = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_96-compound-uscale-semi-pure_TRAIN.csv")
test_phase1 = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_PHASE_1_UNBLINDED.csv")
test_phase2 = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_PHASE_2_UNBLINDED.csv")
train_drc = pd.read_parquet("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_DRC_plot_data_TRAIN.parquet")
test_drc = pd.read_parquet("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet")
A high-quality experimental dataset for predicting human Pregnane-X Receptor (PXR) induction, comprising over 11,000 compounds screened using a high-fidelity in-house assay. This is the largest publicly available PXR activity dataset, released as part of the OpenADMET PXR Induction Blind Challenge.
Blog post: Announcing the Next OpenADMET Blind Challenge: Predicting PXR Induction
Challenge Space: openadmet/pxr-challenge
Challenge period: April 1 – July 1, 2026
Produced by: OpenADMET
pxr-challenge_DRC_plot_data_TRAIN.parquet / pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet, with real unblinded curves for the train/test set). Only available via pd.read_parquet (see below).pxr-challenge_96-compound-uscale-semi-pure_TRAIN.csv (OCNT-2469084, -2469095, -2469107, -2469108 through -2469114). Regiochemical enumeration errors; all corrections are constitutional isomers (ΔMW = 0) so no activity or yield values changed. Re-pull if you have trained on a previous version of semi_pure_htchem.phase_2_unblinded config.phase_1_unblinded config.| Config | Split | Description |
|---|---|---|
default | train | Primary assay training set (pEC50, Emax) |
default | test | 513-compound blinded test set |
counter_assay | train | PXR-null counter-assay training data |
structure | test | 184 molecules with X-ray crystal structures |
single_concentration | train | Single-concentration screening data (log2 fold change) |
crudes_htchem | train | Direct to biology assays of crudes (see our blog post here) |
phase_1_unblinded | test | Phase 1 unblinded subset of the primary blinded test set with assay labels |
phase_2_unblinded | test | Phase 2 unblinded subset of the primary blinded test set with assay labels |
Two additional downloadable parquet files — pxr-challenge_DRC_plot_data_TRAIN.parquet and pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet, with the raw per-well datapoints reconstructed from the assay's well-level data, i.e. the actual dose-response curves that pEC50/Emax in default were fit from.
datasetsfrom datasets import load_dataset
# Default config (primary assay)
ds = load_dataset("openadmet/pxr-challenge-train-test")
train = ds["train"]
test = ds["test"]
# Counter-assay config
ds_counter = load_dataset("openadmet/pxr-challenge-train-test", "counter_assay")
train_counter = ds_counter["train"]
# Structure config
ds_structure = load_dataset("openadmet/pxr-challenge-train-test", "structure")
test_structure = ds_structure["test"]
# Single-concentration config
ds_single = load_dataset("openadmet/pxr-challenge-train-test", "single_concentration")
train_single = ds_single["train"]
# crudes htchem config
ds_crudes = load_dataset("openadmet/pxr-challenge-train-test", "crudes_htchem")
train_crudes = ds_crudes["train"]
# semi-pures htchem config
ds_semi_pure = load_dataset("openadmet/pxr-challenge-train-test", "semi_pure_htchem")
train_semi_pure = ds_semi_pure["train"]
# Phase 1 unblinded test labels config
ds_phase1 = load_dataset("openadmet/pxr-challenge-train-test", "phase_1_unblinded")
test_phase1 = ds_phase1["test"]
# Phase 2 unblinded test labels config
ds_phase2 = load_dataset("openadmet/pxr-challenge-train-test", "phase_2_unblinded")
test_phase2 = ds_phase2["test"]
import pandas as pd
train = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TRAIN.csv")
test = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_BLINDED.csv")
train_counter = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_counter-assay_TRAIN.csv")
test_structure = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_structure_TEST_BLINDED.csv")
train_single = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_single_concentration_TRAIN.csv")
train_crudes = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_htchem-libraries_TRAIN.csv")
train_semi_pure = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_96-compound-uscale-semi-pure_TRAIN.csv")
test_phase1 = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_PHASE_1_UNBLINDED.csv")
test_phase2 = pd.read_csv("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_TEST_PHASE_2_UNBLINDED.csv")
train_drc = pd.read_parquet("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_DRC_plot_data_TRAIN.parquet")
test_drc = pd.read_parquet("hf://datasets/openadmet/pxr-challenge-train-test/pxr-challenge_DRC_plot_data_TEST_UNBLINDED.parquet")