# Reproduce the official PXR activity baseline

Re-run the **official OpenADMET tutorial's RDKitDescriptors + LGBMRegressor baseline**, as preserved in `tutorial`, and compare your new 513-compound predictions against `published_predictions`. The target is the full-training inference path in notebook cells 28, 30, 48, 50, 54 and 55 (zero-based notebook cell indices), not a participant's ensemble or a new optimized method. `source_manifest` identifies the exact tutorial and data snapshots; `data_card` supplies dataset provenance.

Fit only on the 4,139 rows of `train` having nonmissing pEC50, following the notebook. Derive descriptors from SMILES and publish their ordered names. Predict every ID in `test` (513 rows). Preserve the tutorial's default LGBMRegressor(verbose=-1) parameters unless a change is required to run it; enumerate every deviation and its likely effect. Fix package versions and threads in the reproducibility environment. Do not use `published_predictions` as training targets or copy them as your own output. Do not train on `phase1_labels` or `phase2_labels`, counter-assay data, primary-screen labels or external data in this bounded reproduction.

Compare new and published predictions joined by Molecule Name: count missing, extra and duplicate IDs; report mean and maximum absolute prediction differences and count within 1e-6. Report pEC50 MAE and RAE separately on the 253 phase-1 and 260 phase-2 public labels, retaining their original split. RAE is sum(abs(pred-true))/sum(abs(true-mean(true))); use null with explanation if undefined. Save both the submitted predictions and the row-level comparison. Check molecular IDs/SMILES align before comparison. These are retrospective diagnostic metrics, not a new blind leaderboard result.

The source environment is unpinned and its random train_test_split loop has no seed, so exact reproduction of historical CV R2 is not required and must not be claimed from matching inference alone. If you repeat CV, seed it, label it a new seeded repeat, and keep it separate. Exact historical predictions are also not an assumed outcome: investigate meaningful discrepancies using versions, descriptor order/defaults and preprocessing evidence. A faithful executed reproduction with a technically supported discrepancy report can pass. An unexecuted plan or copied published predictions cannot.

Submit `document` JSON matching `document_schema`; `predictions` CSV with exactly Molecule Name, SMILES and pEC50 for all test IDs; and a `reproducibility` ZIP containing executable source, environment lock, commands, logs, row-level comparison and short report. The machine check validates only report structure. An independent reviewer checks execution evidence, source fidelity and the explanation of differences. Retain the source attribution and license notices. After starting an Attempt, leave working findings and end with a summary.
