---
title: Dataset Prep & Filters
description: Prepare and filter training datasets for REINVENT 4 generative models.
---

Curating your training data is the single biggest lever on what [REINVENT](/docs/reinvent) generates: this page covers the input formats, cleaning, blocklists, diversity filters, and scaffold-based splits that determine the chemical validity and diversity of the molecules you get back.

## Training Data for REINVENT 4

REINVENT 4 uses RNN and transformer architectures that require properly curated SMILES datasets for training generative models. The quality of training data directly impacts the chemical validity and diversity of generated molecules.

For more information, see the [REINVENT 4 GitHub repository](https://github.com/MolecularAI/REINVENT4).

## Input formats

- CSV with a `smiles` column (UTF-8)
- SDF for richer metadata; export `smiles` if you need fast parsing
- Optional columns: `score`, `label`, `source`

## Cleaning

```python
import pandas as pd
from rdkit import Chem

df = pd.read_csv("library.csv")
df = df.dropna(subset=["smiles"])

valid_rows = []
for _, row in df.iterrows():
    mol = Chem.MolFromSmiles(row["smiles"])
    if mol is None:
        continue
    valid_rows.append(row)

clean = pd.DataFrame(valid_rows)
clean.to_csv("/workspace/outputs/clean.csv", index=False)
```

## Blocklists

- Maintain SMARTS for liabilities (e.g., nitro, sulfur mustards).
- Add an `allowed` column if certain scaffolds must remain even if they match
  alerts.

## Diversity filters

- Precompute Murcko scaffolds to monitor coverage:
  `Chem.Scaffolds.MurckoScaffold.GetScaffoldForMol`.
- Log scaffold frequency; drop overrepresented ones before training.

## Splits

- Train/valid/test: typical 80/10/10 by scaffold.
- For RL-only runs, keep a held-out set to evaluate novelty after training.

## Provenance

- Store dataset version, source URL, and checksum in a small `metadata.json`
  next to the CSV/SDF.
- Record these details in job metadata so downstream tasks can trace results.

## Training considerations for REINVENT 4

REINVENT 4 supports multiple generative modes that may require different dataset preparations:

- **De novo design**: Large, diverse SMILES datasets (e.g., ChEMBL, ZINC) for pre-training prior models
- **Scaffold hopping**: Datasets containing the target scaffold class for focused generation
- **R-group replacement**: Annotated datasets with marked attachment points for substituent optimization
- **Linker design**: Fragment pairs with known linkers for training linker generation models

When fine-tuning models for specific chemical spaces, ensure training data represents the desired molecular properties and structural features.
