---
title: GenMol
description: >-
  Generate novel molecules using masked discrete diffusion on SAFE
  representations.
tags:
  - genmol
---

GenMol generates novel, drug-like small molecules by working directly on fragment-level SAFE tokens, giving you structurally new candidates when your existing compounds don't fit. Reach for it as the preferred generator when you want de novo molecules, fragment-constrained designs, or goal-directed optimization; where [REINVENT](/docs/reinvent) steers generation with reinforcement learning toward a scoring objective, GenMol samples via masked discrete diffusion. See [what you can achieve](/docs/capabilities#chemistry) for the full set.

## What GenMol does

GenMol is NVIDIA's generative chemistry model that creates novel drug-like molecules using **masked discrete diffusion** on **SAFE (Sequential Attachment-based Fragment Embedding)** representations. Unlike SMILES-based generators, GenMol operates directly on fragment-level tokens, enabling fine-grained control over molecular substructures during generation.

## Citations

> Noutahi E, Gabellini C, Craig M, Lim JSC, Tossou P. Gotta be SAFE: a new framework for molecular design. *Digital Discovery*. 2024;3(4):796-804. doi: [10.1039/D4DD00019F](https://doi.org/10.1039/D4DD00019F)

> Lee S, Kreis K, Veccham SP, Liu M, Reidenbach D, Peng Y, Paliwal S, Nie W, Vahdat A. GenMol: A Drug Discovery Generalist with Discrete Diffusion. 2025. arXiv: [2501.06158](https://arxiv.org/abs/2501.06158)

## Key achievements

- **Fragment-native generation**: Operates on SAFE notation, which decomposes molecules into chemically meaningful fragments with attachment points, rather than character-level SMILES
- **Controllable design**: Supports nine modes from fully unconstrained generation to fragment-constrained and goal-directed optimization
- **High reported validity**: the model's authors report 95.6-100% chemically valid outputs depending on the sampling temperature and randomness settings. On this platform `enforce_validity` is on by default, so unparseable molecules are removed from the returned set while the validity rate still reports what the model generated
- **SAFE fragment auto-ingestion**: Generated molecules are automatically decomposed into fragments and ingested into the project fragment library for reuse

> **Generated molecules are not validated**

> Nothing about a generated molecule has been measured. No published study has synthesized or assayed a GenMol-designed compound, and NVIDIA's own model card notes that "the model may produce molecules that are difficult or impossible in synthesis". Read [how GenMol results compare to the bench](/docs/genmol/translatability) before acting on a result.

## Core capabilities

- **De novo generation**: Generate entirely novel molecules without seed structures
- **Lead optimization**: Create analogs of a starting molecule within a specified Tanimoto similarity threshold
- **Scaffold decoration**: Attach drug-like fragments to a core scaffold using SAFE attachment points
- **Linker design**: Connect two fragments by generating a molecular linker between them
- **Motif extension**: Grow molecules outward from a conserved motif or pharmacophore
- **PMO (Practical Molecular Optimization)**: Goal-directed generation targeting specific oracle scores (QED, GSK3B, JNK3, DRD2, etc.)
- **Fragment-constrained generation**: Fix specific SAFE fragments while allowing the rest of the molecule to be generated freely

## Technical approach

GenMol uses a **masked discrete diffusion** process adapted for molecular generation:

1. **Forward process**: Molecular SAFE tokens are progressively masked with noise, replacing fragment tokens with a [MASK] token
2. **Reverse process**: A trained transformer predicts the original tokens at each masked position, iteratively denoising the sequence
3. **Sampling**: Multiple denoising steps produce candidate molecules, which are decoded from SAFE back to SMILES
4. **Property computation**: each molecule is parsed with RDKit, flagged valid or invalid, and annotated with QED, molecular weight, logP, TPSA, hydrogen-bond donors and acceptors, rotatable bonds and ring count, plus a synthetic-accessibility score from RDKit's SA_Score
5. **Quality filtering**: the requested filters (`enforce_validity` and `enforce_uniqueness` on by default, plus `apply_druglikeness_filter`, `min_qed` and `max_sa_score` when you set them) are applied to the assembled set, so the metrics, the preview and the artifacts all describe the molecules you receive

The model learns the distribution of its training corpus, which lets it generate structurally novel strings that resemble that corpus. Whether a given molecule satisfies medicinal chemistry constraints is a question for your own filters and a chemist, not something generation establishes.

## When to use GenMol

## Primary use cases

### Hit generation campaigns

- **Target-agnostic exploration**: Generate diverse chemical libraries for phenotypic screening
- **Chemical space expansion**: Explore regions of chemical space underrepresented in existing compound libraries
- **Fragment-based drug design**: Start from fragment hits and grow them into drug-like molecules

### Lead optimization

- **Analog generation**: Create structurally similar analogs of a lead compound to explore SAR
- **Property optimization**: Generate molecules targeting specific property profiles (logP, MW, TPSA)
- **Scaffold hopping**: Maintain pharmacophoric features while changing the core scaffold

### Fragment-based workflows

- **Scaffold decoration**: Attach new R-groups to a validated scaffold
- **Linker design**: Connect fragment hits identified by fragment screening
- **Motif extension**: Grow molecules from a pharmacophore motif while maintaining key interactions

### Goal-directed optimization (PMO)

- **Oracle-guided generation**: Optimize molecules toward specific computational endpoints
- **Multi-objective optimization**: Balance multiple property objectives simultaneously
- **Benchmark comparison**: Evaluate generation performance against established PMO benchmarks

## Webapp integration and workflow

### Input methods in .bloom*

**De novo mode (no input required):**
- Select "de novo" mode and set the desired molecule count
- Optionally configure quality filters (drug-likeness, SA score thresholds)
- Submit to generate a diverse set of novel molecules

**Scaffold/fragment modes:**
- Enter a SMILES string for the starting scaffold, fragment, or seed molecule
- For linker design, provide two fragment SMILES separated by the designated delimiter
- For lead optimization, provide a reference SMILES and a similarity threshold (0.0-1.0)

**From previous jobs:**
- Import scaffolds or fragments from fragment library, PubChem lookups, or other GenMol runs
- Chain from fragment extraction or fragment search results
- Provenance tracking maintains connection to the original data source

### Advanced job configuration

**Generation parameters:**
- **num_molecules**: Number of molecules to generate (1-10,000)
- **num_steps**: Diffusion steps per molecule (higher = slower but more diverse)
- **temperature**: Sampling temperature controlling diversity vs. quality tradeoff
- **quality_filter**: Enable/disable automatic drug-likeness and validity filtering

**Mode-specific parameters:**
- **similarity_threshold** (lead optimization): Minimum Tanimoto similarity to seed molecule
- **oracle** (PMO mode): Target scoring function (qed, gsk3b, jnk3, drd2, etc.)
- **fragment_constraints** (fragment modes): SAFE-encoded fixed fragments

## Integration with .bloom* ecosystem

### Upstream data sources

**Fragment libraries:**
- Project fragment library (SAFE fragments from previous jobs)
- PubChem substructure search results
- Fragment extraction from docking hits

**Compound databases:**
- PubChem compound lookup for seed molecules
- ChEMBL activity data for lead optimization starting points
- Previous GenMol runs for iterative optimization

### Downstream applications

**Property prediction:**
- ADMET-AI and ADMETLab3 for ADMET property screening
- DeepChem for custom property prediction models
- ProTox-3 for toxicity estimation

**Synthesis planning:**
- AiZynthFinder for retrosynthetic analysis of generated molecules
- ZINC for purchasability checks
- Compound Passport for comprehensive drug-likeness assessment

**Structural hypotheses:**
- [DiffDock](/docs/diffdock) to propose a binding pose for a generated molecule — a geometric hypothesis, not evidence of binding
- [MM-GBSA](/docs/mmgbsa) to minimize a docked complex and report its energy. It returns no binding free energy on this platform, so it cannot rank affinity

### Workflow chaining

- **Feeds into**: ADMET-AI/ADMETLab3 (screening), AiZynthFinder (synthesis), DiffDock (docking), Compound Passport
- **Accepts from**: Fragment library (scaffolds), PubChem (starting molecules), fragment extraction (fragments)
- **SAFE fragments**: Generated molecules natively emit SAFE notation and are auto-ingested into the fragment library

## Best paired with

- **ADMET prediction**: screen generated molecules for predicted ADMET liabilities before synthesis
- **Retrosynthetic analysis**: check synthetic feasibility with [AiZynthFinder](/docs/aizynthfinder) — the only makeability check available here
- **Molecular docking**: propose a binding pose with [DiffDock](/docs/diffdock). Docking does not establish that a compound binds
- **Property prediction**: score custom endpoints with DeepChem models

## Scope and limitations

## Supported inputs

### Molecule formats
- **SMILES**: Standard single-line notation for all modes requiring seed molecules
- **SAFE**: Native SAFE notation with attachment points for fragment-constrained modes
- **No input** (de novo): Fully unconstrained generation requires no seed

### Size constraints
- **Molecule count**: 1-10,000 per job
- **SMILES length**: Up to ~200 characters for seed molecules
- **Fragment count**: Up to 10 fixed fragments per constrained generation

## Generation limitations

### Quality considerations
- **Chemical validity**: the authors report 95.6-100% of raw outputs valid at their published settings. With `enforce_validity` on (the default) invalid molecules are removed from the returned set, and the validity rate reports the generated figure
- **Drug-likeness**: not all generated molecules satisfy Lipinski's Rule of Five. `apply_druglikeness_filter` is **off** by default and `min_qed` is unset, so set them if you want that bound enforced rather than reported
- **Novelty**: molecules may resemble training data, and `novelty_rate` is not computed on this platform. Check for IP conflicts with prior art searches
- **Synthetic accessibility**: some generated molecules will be difficult or impossible to synthesize. `sa_score` is a structural heuristic that ranks within a series better than across series, so use [AiZynthFinder](/docs/aizynthfinder) for a real retrosynthesis check before you act on it

### Mode-specific constraints
- **Lead optimization**: Very high similarity thresholds (>0.9) reduce diversity significantly
- **Linker design**: Linker length is not directly controllable; results may include short or long linkers
- **PMO mode**: Oracle-guided generation may converge to narrow regions of chemical space
- **Scaffold decoration**: Decoration points must be specified as SAFE attachment points

## Performance characteristics

### Speed and scaling
- **Typical runtime**: 30 seconds to 5 minutes depending on molecule count and diffusion steps
- **Scaling**: Roughly linear with molecule count
- **GPU acceleration**: All generation runs on GPU for fast diffusion sampling

### Reproducibility
- **Seed parameter**: Set a random seed for reproducible generation runs
- **Temperature sensitivity**: Small temperature changes can significantly affect output diversity
- **Stochastic process**: Without a fixed seed, results vary between runs

## Chat usage

### Example prompts

- "Generate 100 molecules using GenMol de novo mode"
- "Use GenMol to decorate this scaffold with drug-like fragments: c1ccc(cc1)N"
- "Run GenMol lead optimization on gefitinib with 0.7 similarity threshold"
- "Generate 50 linkers connecting these two fragments"
- "Run PMO optimization targeting QED &gt; 0.7 with GenMol"

### Workflow chaining

- **Feeds into**: ADMET-AI/ADMETLab3 (screening), AiZynthFinder (synthesis), Compound Passport
- **Accepts from**: Fragment library (scaffolds for decoration), PubChem (starting molecules for lead optimization)
- **SAFE fragments**: Generated molecules natively emit SAFE notation and are auto-ingested into the fragment library

## FAQ

### What generation modes does GenMol support?

  De novo, PMO (goal-directed), lead optimization, linker design, motif extension, scaffold decoration, and fragment-constrained generation.

### What molecular representation does GenMol use?

  SAFE (Sequential Attachment-based Fragment Embedding), which enables native fragment-level control during generation.

### How many molecules can I generate per job?

  Up to 10,000 molecules per job. Validity and uniqueness filtering is on by default; the drug-likeness, QED and synthetic-accessibility bounds apply only when you set them.

## Read next
