DiffSBDD is one of the most interesting generative models in structure-based drug design right now. Unlike 2D generators that produce SMILES strings and defer the geometry question to a docking program, DiffSBDD produces 3D atoms directly in the binding pocket. The generator sees the pocket at every denoising step, which gives the resulting molecules a structural prior that 2D generators simply do not have.
This post walks through what DiffSBDD is, how equivariant diffusion works, how pocket conditioning enters the training objective, and how it compares to the other diffusion-based generator that gets mentioned alongside it — TargetDiff. At the end we will look at how to use DiffSBDD on SciRouter.
The SBDD problem in one paragraph
Structure-based drug design starts with a protein binding pocket and asks “what molecule would bind here?” Traditional approaches pull candidates from a screening library and dock them, or enumerate fragments and grow them inside the pocket. Generative approaches aim to design new molecules de novo, tailored to the pocket geometry. Until recently these generators worked in 2D — produce a SMILES, then dock — which left the 3D geometry question to someone else. Diffusion changed that.
Why diffusion?
Diffusion models work by learning to reverse a noising process. During training, real 3D molecules in their pockets are gradually corrupted by adding Gaussian noise to the atom positions. The model learns to predict the clean state at each noise level. At inference time you start from pure noise and iteratively denoise it into a clean molecule, conditioned on whatever you have fixed — in this case, the protein pocket.
Two properties of diffusion models matter for SBDD:
- They learn from data, not from hand-crafted scoring functions. The generator picks up on real patterns of how ligands sit in pockets, including geometries that a scoring function might under-reward.
- They scale well with training data. The more pocket-ligand complexes you show the model, the better it gets. This is different from RL-based generators that are bottlenecked by the quality of the reward.
Equivariance, and why it matters
A 3D molecule in a pocket has no natural reference frame. You could rotate the whole thing and it would still be the same molecule in the same pocket. A model that is trained naively on raw coordinates has to relearn the same chemistry in every rotation, which is wasteful and generalizes poorly.
E(3)-equivariant neural networks solve this by building rotation and translation symmetries into the model itself. If you rotate the input, the output rotates the same way. DiffSBDD uses an equivariant graph neural network as its denoising backbone, so it does not waste capacity on reference-frame stuff and it generalizes cleanly across pocket orientations.
Pocket conditioning
The pocket is how DiffSBDD knows what to design against. Mechanically, the pocket is represented as a set of atoms with types (element, residue) and 3D coordinates. These atoms are fixed — the model does not touch them — but they participate in the message-passing steps of the equivariant network alongside the ligand atoms being denoised.
The net effect is that at every step of the denoising process the partially formed ligand “sees” the pocket through the graph neural network. Atoms that would clash with pocket residues are pushed away. Atoms that could form favorable contacts with pocket features are drawn toward them. It is a soft kind of steering that emerges from training data, not from a hand-crafted scoring function.
DiffSBDD vs TargetDiff
TargetDiff is the other widely cited diffusion-based SBDD generator. It was released around the same time and has the same basic idea: an equivariant diffusion model conditioned on a pocket. The two models differ in specific architectural choices, training data preparation, and how they handle atom types during denoising.
- DiffSBDD puts more weight on a structural scoring term at evaluation time and tends to produce molecules that fit the pocket well geometrically.
- TargetDiff emphasizes a slightly different diffusion formulation and has its own benchmark results on standard SBDD datasets.
In practice the two models produce comparable molecules and many pipelines run both. If you want to pick one as a starting point, DiffSBDD has the more discussed structural scoring pipeline and a cleaner story around pocket conditioning. You can always add TargetDiff later.
What the output looks like
DiffSBDD outputs a set of candidate molecules, each with 3D atom positions in the pocket. Each candidate is a full molecule, not a fragment. Typical usage generates tens to hundreds of candidates per pocket, which you then score and filter.
A standard post-processing pipeline looks like this:
- Generate a few hundred candidates with DiffSBDD.
- Filter for drug-likeness (Lipinski, QED, SAS).
- Redock the top candidates with a traditional docking program like AutoDock Vina or Glide to validate the pose.
- Run a binding-score predictor or an ML affinity model to rank surviving candidates.
- Forward the top 5-10 to a chemistry-literate LLM like TxGemma for a final reasoning pass.
Where DiffSBDD is strong and where it is weak
Strong
- Pocket-aware geometry. Because the model sees the pocket at every step, the candidates usually fit geometrically without needing a lot of post-processing.
- Diverse generations. Diffusion samples from a distribution, so repeated runs give you different candidates. You can explore chemical space faster than with a deterministic method.
- No scoring-function bias. The generator learns from training data rather than optimizing a specific score, which can surface chemistries that a score-driven method might miss.
Weak
- Not a property optimizer. DiffSBDD does not know whether its candidates are soluble, synthesizable, or free of toxic motifs. You have to filter for those downstream.
- Sensitive to pocket definition. Garbage pocket in, garbage candidates out. Make sure the pocket is well defined before running the model.
- Synthetic accessibility. Some generated molecules are hard to make. Always run a synthesis-check step after generation.
Using DiffSBDD on SciRouter
SciRouter hosts DiffSBDD as a managed tool. You upload a pocket definition (from a PDB file, a Boltz-2 prediction, or any other source), request a candidate count, and receive a list of generated molecules in 3D coordinates. No GPU provisioning, no model-weight management.
For a hands-on walkthrough of the full pipeline, see From Protein Pocket to Lead Compound. For a comparison of diffusion versus reinforcement learning for molecule design, see Diffusion Models vs RL for Drug Design.
Bottom line
DiffSBDD takes structure-based drug design from 2D-to-3D pipelines into a single 3D generator that is aware of the pocket from the start. Equivariant diffusion is the right tool for this job, and the molecules DiffSBDD produces are consistently more pocket-aware than what you get from a SMILES generator followed by docking. Pair it with a reasoning LLM, a synthesis check, and an ADMET profiler and you have a real drug-discovery pipeline.