Guide to GuacaMol Benchmarking Models for De Novo Molecular Design

Designing new drug-like molecules from scratch is a difficult problem. Computational models that generate novel chemical structures need a standard way to measure their performance. The GuacaMol benchmarking framework provides that standard. It is a collection of 20 distribution-learning benchmarks and 11 goal-directed benchmarks that test how well a model can generate valid, novel, and diverse molecules with specific chemical properties. If you are evaluating generative models for drug discovery, the GuacaMol benchmarking models for de novo molecular design give you a reproducible, objective way to compare methods like VAEs, GANs, and language models on the same ground.
What the GuacaMol Benchmarks Actually Test
The framework splits its evaluation into two main categories, each designed to answer a different question about a generative model.
Distribution-Learning Benchmarks
These benchmarks check whether a model can learn the underlying distribution of the ChEMBL dataset. The model is trained on a large set of drug-like molecules and then asked to generate new ones. The evaluation measures four things:
- Validity: The fraction of generated molecules that are chemically valid according to RDKit parsing.
- Uniqueness: The fraction of generated molecules that are not duplicates.
- Novelty: The fraction of generated molecules that were not in the training set.
- KL divergence, Frechet ChemNet Distance (FCD), and similar metrics: How close the distribution of generated molecules is to the training distribution.
A model that scores well here has learned the general “grammar” of drug-like chemistry. The benchmarks include specific tasks like “restore” a known molecule from a partially scrambled version, or “decorate” a core scaffold with appropriate side chains.
Goal-Directed Benchmarks
These 11 benchmarks are more practical. They ask the model to optimize a molecule toward a specific property or set of properties. Examples include:
- Maximizing the similarity to a known drug (like Celecoxib or Aripiprazole).
- Maximizing the drug-likeness score (QED).
- Optimizing the synthetic accessibility score (SA).
- Maximizing the logP value within a defined range.
Each benchmark returns a score from 0 to 1, and the model gets a final “GuacaMol score” by averaging the results across all 11 tasks. This makes it easy to rank models.
How to Run the Benchmarks on Your Own Model
The GuacaMol codebase is open source and available on GitHub GuacaMol GitHub Repository. You do not need to implement the scoring functions yourself.
Installation and Setup
You install the package via pip. It requires Python 3.6 or later, RDKit, and NumPy. The command is straightforward:
pip install guacamol
Once installed, you have access to the guacamol command-line tool and the Python API.
Running a Distribution-Learning Evaluation
You need to provide a file of generated SMILES strings. The tool then compares them to the ChEMBL training set. A typical command looks like:
guacamol distribution-learning --generated_molecules my_generated.smi --reference_molecules chembl_ref.smi
The output is a table showing the validity, uniqueness, novelty, FCD, and other scores.
Running a Goal-Directed Evaluation
This is more involved because your model must be wrapped in a Python class that implements a generate method. The framework calls your model iteratively, giving it a scoring function and asking for optimized molecules. The process is:
- Create a class that inherits from
GoalDirectedGenerator. - Implement the
generate_optimized_moleculesmethod. - Pass an instance of your class to the
assess_goal_directed_generationfunction.
The framework handles the scoring and returns the final benchmark scores. A worked example is provided in the examples/ directory of the repository.
Interpreting the Results and Common Pitfalls
A high score on the distribution-learning benchmarks does not guarantee a high score on the goal-directed benchmarks, and vice versa. A model might generate very realistic-looking molecules (high distribution score) but fail to optimize for a specific property like logP. Conversely, a model that aggressively optimizes for one property might generate molecules that are invalid or not novel.
What a Good Score Looks Like
The original GuacaMol paper, published in the Journal of Cheminformatics Journal of Cheminformatics, reported baseline scores for several models. For the goal-directed benchmarks, scores above 0.90 are generally considered strong. For distribution learning, a validity above 95% and an FCD below 1.0 are reasonable targets.
Common Mistakes
- Leakage: Using molecules that are too similar to the training set in the goal-directed tasks. The framework checks for novelty, but you should ensure your training data does not contain the exact target molecules.
- Overfitting to one benchmark: A model that scores perfectly on “Celecoxib similarity” might do poorly on “Aripiprazole similarity.” The final score is an average, so you need balanced performance.
- Ignoring validity: Some models generate many invalid SMILES. The framework filters these out, but a low validity rate means your model is wasting computation. Always check validity first.
Worked Example: The Celecoxib Rediscovery Benchmark
The scoring function for this benchmark is simple: it computes the Tanimoto similarity between the generated molecule and Celecoxib using Morgan fingerprints (radius 2, 1024 bits). The score is the maximum similarity found across all generated molecules.
If your model generates a molecule that is 80% similar to Celecoxib, the score is 0.80. To get a perfect 1.0, the model must generate Celecoxib itself. This benchmark tests whether the model can navigate chemical space to find a specific known compound. Most models score between 0.70 and 0.95 on this task, depending on whether they use reinforcement learning or simple random sampling.
Limitations of the GuacaMol Framework
The benchmarks are not perfect. They rely on simplified scoring functions that may not correlate with actual biological activity. For example, the QED score is a heuristic that does not guarantee a molecule will be a good drug. Similarly, the SA score is an estimate of synthetic difficulty, not a guarantee of feasibility.
Another limitation is that the benchmarks do not test for toxicity, off-target effects, or pharmacokinetic properties like half-life. A molecule that scores 1.0 on all GuacaMol benchmarks could still be toxic or poorly absorbed. For this reason, GuacaMol is best used as a first-pass filter, not as a final validation.
The framework also assumes that the training set (ChEMBL) is representative of all drug-like chemical space. If your target is a novel chemical class not well represented in ChEMBL, the benchmarks may not be informative. In that case, you might need to create custom benchmarks using your own reference dataset.
Key Takeaways
- GuacaMol provides a standardized, reproducible way to compare generative models for molecular design using 20 distribution-learning and 11 goal-directed benchmarks.
- The framework is open source and easy to install, with both a command-line tool and a Python API for custom model integration.
- Distribution-learning benchmarks measure how well a model captures the general chemistry of drug-like molecules, while goal-directed benchmarks test optimization toward specific properties.
- Strong models typically score above 0.90 on goal-directed tasks and maintain validity above 95% and FCD below 1.0 on distribution tasks.
- Avoid common pitfalls like data leakage, overfitting to a single benchmark, and generating invalid molecules.