license: cc-by-4.0
language:
- en
pretty_name: "MinusData Chemistry Negative Samples (Synthetic PoC)"
size_categories: - n<1K
task_categories: - tabular-classification
- reinforcement-learning
tags: - chemistry
- negative-sampling
- failed-reactions
- synthetic-data
- ai4s
- minusdata
configs: - config_name: default
data_files: MinusData_Chem_Negative_PoC.parquet
MinusData: Chemistry Negative Samples (Synthetic PoC)
A schema and QC pipeline for standardizing negative (failed) reaction records into
model-ready tabular data. This PoC release contains synthetic examples only and is
intended for pipeline integration testing, not for training or benchmarking real models.
Version 1.2. Filename note: HuggingFace expects this file to be named
README.mdat the repo root.
1. Data source and synthetic declaration
- Status: all 30 records are synthetic (
data_source_type = synthetic_mock_example,
Parquet metadata keyminusdata_synthetic = true). - Conditions and outcomes are illustrative and were not experimentally verified. Yields are assigned, not measured.
- Purpose: PoC integration, testing of data loaders, and exercising RL reward/penalty plumbing.
2. Success / failure definition
- Successful: assigned yield ≥ 0.05 (
is_successful = true). This includes exactly 0.05 (one boundary case is included). - Failure (negative sample): assigned yield < 0.05.
- The 5% threshold is a configurable convention, not a chemical constant. Re-label for your own task if needed.
3. Penalty score (heuristic)
penalty_score is 0.0 for successful reactions. For failures it is looked up by failure_category.
These weights are human-designed heuristics, not experimentally calibrated; re-tune them for your own objective.
Rules are shipped machine-readably in penalty_config.json.
| failure_category | penalty_score | allowed yield range | design rationale |
|---|---|---|---|
catalyst_decomposition |
1.0 | 0.0 – 0.049 | Most severe: the catalyst itself is destroyed (e.g. Pd black, Cu disproportionation), so the route cannot proceed at all. |
thermal_instability |
0.9 | 0.0 – 0.049 | High severity: substrate, reagent or intermediate degrades under the chosen temperature. |
no_conversion |
0.8 | 0.0 – 0.0 | Moderate-to-high severity: starting materials recovered unchanged; conditions are inert for this transformation. |
byproduct_dominant |
0.7 | 0.001 – 0.049 | Lower severity: trace target formed, but competing side reactions dominate; the route is closer to viable. |
4. Contents
30 records: 6 successful, 24 failed.
| category | count |
|---|---|
none (successful) |
6 |
catalyst_decomposition |
6 |
thermal_instability |
6 |
no_conversion |
6 |
byproduct_dominant |
6 |
Files: MinusData_Chem_Negative_PoC.parquet, penalty_config.json, MinusData_Rejected_Log.csv, build_minusdata_poc.py.
5. Schema
| column | type | description |
|---|---|---|
minusdata_id |
string | Stable content hash ID (SHA-1 of reaction type + SMILES + conditions, 16 hex chars). |
data_source_type |
string | Origin of the record. All rows in this release: synthetic_mock_example. |
source_ref |
string | Generator reference for the synthetic record. |
reaction_smiles |
string | Intended transformation reactants>>intended product. By-products and reagents are omitted. |
reaction_type |
string | Reaction class label. |
solvent |
string | Solvent. Null = not recorded. |
catalyst |
string | Catalyst/promoter. none = explicitly none used; null = not recorded. |
base |
string | Base. none = explicitly none used; null = not recorded. |
temperature_celsius |
double | Reaction temperature in °C. |
time_hours |
double | Reaction time in hours. |
is_successful |
bool | True if product_yield >= success threshold. |
product_yield |
double | Assigned yield as a fraction in [0, 1] (synthetic, not measured). |
penalty_score |
double | 0.0 for successes; failures use the lookup table in this card. |
failure_category |
string | Enumerated failure class; none for successes. |
failure_description |
string | Free-text description; none for successes. |
qc_smiles_validated |
bool | True if every SMILES component was parsed by RDKit. |
qc_atom_check_passed |
bool | True if the element-wise atom availability check passed (see QC section). |
notes |
string | Generation notes (e.g. threshold boundary case). Nullable. |
6. Quality control
Each raw record passes these checks; failures are written to MinusData_Rejected_Log.csv with a reason (nothing is dropped silently):
product_yieldmust be in [0, 1] (catches percentages).- All SMILES components must parse in RDKit (version recorded in file metadata:
2026.09.1). - Element-wise atom availability check: for every element (including H), the intended product may not contain more atoms than the reactants supply. By-products and reagents are omitted from
reaction_smiles, so this is not a full stoichiometric balance, and it does not verify chemistry correctness or mechanism. - Failure category must be a known enum value, consistent with the yield range, and absent for successes.
- Duplicates (same reaction type, SMILES and conditions) are rejected via the content-hash ID.
The release build also includes 6 deliberately flawed test records, all of which are expected to appear in the rejected log.
7. Loading
import pandas as pd
df = pd.read_parquet("MinusData_Chem_Negative_PoC.parquet")
# or
from datasets import load_dataset
ds = load_dataset("parquet", data_files="MinusData_Chem_Negative_PoC.parquet")
8. Intended and out-of-scope use
- Intended: testing ingestion pipelines, schema compatibility, penalty-term wiring in RL setups, demonstrating the format.
- Out of scope: training or evaluating production reaction-prediction models; any claim about real-world failure distributions or false-positive reduction. No such effect has been measured with this data.
9. Limitations
- Synthetic and tiny (30 rows); does not reflect real experimental failure distributions.
- Reaction classes are simple textbook examples; conditions are plausible but unverified.
reaction_smilesencodes the intended reaction; failed runs did not necessarily give that product.- Penalty weights are arbitrary heuristics.
10. License
This synthetic sample is released under CC-BY-4.0. This applies only to this synthetic release.
Any future real-world data would be licensed according to its source and the data providers' authorization.
11. Citation and contact
Please cite as: MinusData Chemistry Negative Samples (Synthetic PoC), v1.2.
Contact: [to be filled in]