Submission sub_jewkskw87z (verification run vrn_ffffctq03t, which waits for curation review) has two parts:
dataset: art_ko0itrehco, goetz2025_synferm.pb.gz, 14.2 MB, 39,329 reactions, no IDs.sources: art_ji76crbwxp, a zip with the README, build_dataset.py, products.py, spot_check.py, validation.txt, spot_check.txt and build.log.ord-schema 0.8.3 reports 0 errors and 0 warnings, from both the CLI and a full validate_message.
/bin/ SI links return a bot challenge. The Europe PMC REST endpoint .../PMC12118581/supplementaryFiles?includeInlineImage=false (slow, ~106 MB) delivered the real SI. The main text came from Europe PMC fullTextXML, and Fig. 1 came from the PMC CDN image. GitHub repos (library-generation) were blocked in this session.reaction_metadata.source_table. Data S2 (ML splits) and Data S4 (predictions) are out of scope.binary_X == (scaled_X > 0) everywhere.experiment_id follows the plate layout only in the earliest batches, so I inferred no positions. The authors' experiment_id is kept as a CUSTOM identifier. Real coordinates need the authors' DB (github.com/jugoetz/library-generation db/).ord-curation Skill (skv_k5sivlohu1) could not be read because the client rejected the MCP resources/read response (ttlMs/cacheScope schema error). I followed the Problem statement and ORD validator rules instead. A reviewer should check the record layout against the Skill.record_created, so I used the reserved placeholder curator@example.org. Replace it via --curator-email before ORD submission.If a reviewer wants plate/well positions, get the authors' DB and add setup.vessel row/col per well. If they disagree with any B–H structure, change it in products.py and rerun build_dataset.py, which takes about 8 min.
ORD Dataset for Götz et al., Sci. Adv. 2025, eadw6047 (preprint doi:10.26434/chemrxiv-2024-5328b): 39,329 Synthetic Fermentation HTE wells. Data S1 has 38,586 main-library wells and Data S3 has 743 prospective-validation wells; both are kept in one Dataset and told apart by reaction_metadata.source_table. Data S2 (ML splits) and Data S4 (virtual-library predictions) are left out because they are not experiments.
dataset: goetz2025_synferm.pb.gz (binary Dataset, gzip, 14.2 MB, no dataset or reaction IDs). Each reaction has:
experiment_id as the well id, and provenance DOI 10.26434/chemrxiv-2024-5328b with the published DOI in publication_url.sources: goetz2025_synferm_sources.zip holds README.md (source table for each field, how structures were checked, known gaps), build_dataset.py, products.py and spot_check.py, which rebuild and check the dataset from the SI CSVs (the CSVs are not rehosted because of the CC BY-NC licence), validation.txt (ord-schema 0.8.3: 0 errors, 0 warnings), spot_check.txt (1,000 random reactions vs the source rows: 0 discrepancies, every source row present exactly once) and build.log.
Checks:
Known gaps:
experiment_id is kept.record_created uses the placeholder email curator@example.org, which must be replaced before submitting to ORD.Scripts (build_dataset.py, products.py, spot_check.py) under the job folder; ord-schema 0.8.3 + RDKit 2026.09.1 in a venv.
One ORD reaction per row of Data S1 (38,586) + Data S3 (743) = 39,329, in one Dataset; reaction_metadata.source_table separates the two screens.
initiator 990 nL 55.6 mM in DMSO (55.04 nmol), monomer same, oxalic acid (1 M aq) 220 nL (order 1); terminator 1100 nL 50 mM in 9:1 DMSO/1 M aq oxalic acid (55 nmol; order 2, addition_time 3 h). Salt-form SMILES as in the CSVs; names I1 (2-Pyr003).LC-HRMS (LCMS). Products A (PRODUCT, desired) and B–H (SIDE_PRODUCT), each with an AREA measurement = authors' scaled response (normalized, uses IS, EIC masses [M+H]+/[M+Na]+), plus IDENTITY only when binary = 1.experiment_id.doi = 10.26434/chemrxiv-2024-5328b (as the Problem asks), publication_url = Sci. Adv. DOI link, experimenter J. Götz / ETH Zürich.Snag: ord-schema 0.8.3 requires an email on record_created.person. I don't publish the account owner's address, so it uses the reserved placeholder curator@example.org (--curator-email flag), documented in the README as something to replace before ORD submission.
The validator (python -m ord_schema.scripts.validate_dataset) gives no errors on a 100-reaction test build; the spot check shows 0 discrepancies. Test size 49 KB per 100 reactions, so the full file should be about 19 MB, under the 25 MB limit. The full build is running now.
Data S1/S3 give SMILES only for product A, but binary/scaled LC-HRMS outcomes for A–H. I defined B–H from main-text Fig. 1C (thiohydrazide terminators) and SI fig. S1 (aminobenzenethiol terminators) and wrote products.py (RDKit 2026.09) to build them per well:
reaction_smiles_atom_mapped; maps 1/2 = acyl C/O, 3 = N, 4/5 = monomer C, 6 = keto C): B = C6 sp3 + CO2H in dihydro-thiadiazole/benzothiazoline; C = B − H2O, ring N=C1 amidinium + carboxylate (zwitterion); F = α-keto acid (terminator atoms removed); G = acid; H = loss of acyl-NH, C4=C5 alkene.Checks, all 39,329 wells (Data S1 38,586 + Data S3 743):
product_A_smiles (canonical) in 39,329/39,329.binary_H = 0. This supports the H definition.binary_X == (scaled_X > 0) for every product and row, so detection and the scaled response are consistent.
Detection rates (S1+S3): A 84.7%, B 59.6%, C 29.3%, D 81.1%, E 85.4%, F 95.5%, G 87.5%, H 48.6%.Caveat for reviewers: B–H structures are my enumeration from the figures, not author-supplied SMILES. The authors searched sum formulae (plus deprotection variants for Boc/Cbz/tBu ester/TMS, summed into the parent product), so detection is by formula, not structure.
Methods (main text, "Automated synthesis") give the layout per 1920-reaction batch: 6 × 384-well plates, columns 1, 2, 23, 24 empty; initiator along rows A–P (same in all 6 plates); monomers on half plates (cols 3–12 / 13–22, two per plate); terminators along columns (T_k in cols 2+k and 12+k).
I tested whether experiment_id enumerates wells in that order (script over Data S1, ids exploded on "/"). For the earliest ids (~10578–16000) it does: 20 consecutive ids = one row (10 wells of monomer 1 then 10 of monomer 2, terminator order constant), offset 18 mod 20. But scanning 320-id windows across the whole range, most later windows (offset 5 mod 20, ids ~16k–85k) violate the one-initiator-per-row / one-monomer-per-half rule hundreds of times, so the numbering scheme changed and a global id→well mapping cannot be inferred safely.
Decision: record each well's experiment_id (the authors' unique sample id; slash-joined for the 377 de-duplicated replicate wells) as a CUSTOM reaction identifier and in the reaction notes, describe the batch layout in the dataset description, and state that exact plate/well coordinates live in the authors' database (github.com/jugoetz/library-generation db/), which this session could not access (GitHub repo access not enabled). No guessed well positions are written.
Europe PMC REST GET /europepmc/webservices/rest/PMC12118581/supplementaryFiles?includeInlineImage=false (needs a long timeout; ~106 MB) returned a real zip with sciadv.adw6047_data_s1_to_s4.zip (10.3 MB), sciadv.adw6047_sm.pdf and the movies. This is the legitimate route when PMC's /bin/ links serve a bot challenge.
Inside (per SI "Legends for data S1 to S4", p. 53):
Data S1.csv, 38,586 rows): main HTE data set after ERROR filtering and de-duplication (377 duplicate wells averaged; their experiment_ids joined with "/"). Columns: I/M/T long and paper ids, SMILES of I, M, T (as salts, e.g. KAT [K+], .Cl), product_A_smiles, reaction SMILES (plain and atom-mapped), experiment_id, binary_A..H (LC-MS detection of expected mass), scaled_A..H (LC-MS peak area / internal-standard area, then / 85th percentile of that product type), major_A-C.validation_task (0D/1D).So the experimental scope is 38,586 + 743 = 39,329 reactions. Only product A has SMILES in the data; B–H are defined by product type in Fig. 1 / Fig. S1, so their structures must be enumerated from the reactants. No plate/well coordinates are in the CSVs — only experiment_id; plate maps would be in the github repo, which this session cannot reach.
Started this Attempt from agent job ajb_jxflzw25ku. What I ran outside TfP (cloud session, shell + curl):
ord-curation Skill (skv_k5sivlohu1) could not be read: the client's MCP resource reader rejects the server's resources/read response (schema error: missing ttlMs/cacheScope). Directory listing is not enabled either. Reference card was fetched fine via its signed download_url./articles/instance/12118581/bin/sciadv.adw6047_data_s1_to_s4.zip, ..._sm.pdf. Fetching those returns an HTML reCAPTCHA / "Preparing to download" proof-of-work page, not the files. I did not try to circumvent it.supplementaryFiles endpoint as legitimate programmatic channels.