{"id":14046,"date":"2026-03-25T14:19:02","date_gmt":"2026-03-25T14:19:02","guid":{"rendered":"https:\/\/www.blopig.com\/blog\/?p=14046"},"modified":"2026-03-29T13:19:40","modified_gmt":"2026-03-29T12:19:40","slug":"sigmadock-untwisting-molecular-docking-with-fragment-based-se3-diffusion","status":"publish","type":"post","link":"https:\/\/www.blopig.com\/blog\/2026\/03\/sigmadock-untwisting-molecular-docking-with-fragment-based-se3-diffusion\/","title":{"rendered":"SigmaDock: untwisting molecular docking with fragment-based SE(3) diffusion"},"content":{"rendered":"\n<p class=\"\"><em><a href=\"https:\/\/openreview.net\/forum?id=Vgm77U4ojX\">Alvaro Prat, Leo Zhang, Charlotte Deane, Yee Whye Teh, &amp; Garrett M. Morris<br>International Conference On Learning Representations (ICLR 2026)<\/a><\/em><\/p>\n\n\n\n<p class=\"\">Molecular docking sits at the heart of structure-based drug discovery. If we can reliably predict how a small molecule binds in a protein pocket, we can prioritize compounds faster, reason about interactions more clearly, and build better pipelines for hit discovery and lead optimization. But in practice, docking is still a difficult problem: classical methods are often robust but imperfect, while recent deep learning approaches have sometimes looked promising on headline metrics without consistently producing chemically plausible poses.<\/p>\n\n\n\n<p class=\"\">SigmaDock was built to address exactly that gap. Instead of treating docking as a problem of directly diffusing on torsion angles or unconstrained atomic coordinates, SigmaDock represents ligands as collections of rigid fragments and learns how to reassemble them inside the binding pocket using diffusion on <math data-latex=\"\\text{SE}(3)\"><semantics><mrow><mtext>SE<\/mtext><mo form=\"prefix\" stretchy=\"false\">(<\/mo><mn>3<\/mn><mo form=\"postfix\" stretchy=\"false\">)<\/mo><\/mrow><annotation encoding=\"application\/x-tex\">\\text{SE}(3)<\/annotation><\/semantics><\/math>. In plain English: rather than trying to \u201cwiggle\u201d every flexible degree of freedom in a tangled way, SigmaDock breaks the ligand into chemically meaningful rigid pieces and learns where those pieces should go, and how they should reorient, to recover a valid bound pose.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?ssl=1\"><img decoding=\"async\" width=\"2560\" height=\"877\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?fit=625%2C214&amp;ssl=1\" alt=\"\" class=\"wp-image-14052\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=300%2C103&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=1024%2C351&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=768%2C263&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=1536%2C526&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=2048%2C702&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?resize=624%2C214&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-1-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Figure 1:<\/strong> Illustration of SigmaDock&nbsp;using PDB 1V4S and ligand MRK. We create an initial conformation of a query ligand where we define our <math data-latex=\"m\"><semantics><mi>m<\/mi><annotation encoding=\"application\/x-tex\">m<\/annotation><\/semantics><\/math> rigid body fragments (colour coded). The corresponding forward diffusion process operates in <math data-latex=\"\\text{SE}(3)^m\"><semantics><mrow><mtext>SE<\/mtext><mo form=\"prefix\" stretchy=\"false\">(<\/mo><mn>3<\/mn><msup><mo form=\"postfix\" stretchy=\"false\">)<\/mo><mi>m<\/mi><\/msup><\/mrow><annotation encoding=\"application\/x-tex\">\\text{SE}(3)^m<\/annotation><\/semantics><\/math>&nbsp;via independent roto-translations.<\/figcaption><\/figure>\n<\/div>\n\n\n<!--more-->\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why fragment-based diffusion?<\/strong><\/h2>\n\n\n\n<p class=\"\">A central observation behind SigmaDock is that torsional models are elegant in theory, but difficult in practice. Small changes in torsion angles can create large, non-local changes in Cartesian coordinates, which makes the learning problem highly entangled. SigmaDock avoids that by moving to fragment space: each rigid fragment is handled as a body in <math data-latex=\"\\text{SE}(3)\"><semantics><mrow><mtext>SE<\/mtext><mo form=\"prefix\" stretchy=\"false\">(<\/mo><mn>3<\/mn><mo form=\"postfix\" stretchy=\"false\">)<\/mo><\/mrow><annotation encoding=\"application\/x-tex\">\\text{SE}(3)<\/annotation><\/semantics><\/math>, and the model learns rigid-body translations and rotations rather than directly predicting torsional updates. The result is a cleaner geometric parameterization and a more stable generative problem.<\/p>\n\n\n\n<p class=\"\">This is paired with a fragmentation strategy called \u201c<strong>FR3D<\/strong>\u201d, which does more than just cut every rotatable bond. A na\u00efve split would often create too many fragments and inflate the degrees of freedom. FR3D recursively merges adjacent fragments to reach an irreducible representation, reducing the number of independent rigid bodies while preserving the chemistry that matters. On top of that, SigmaDock adds <strong>soft triangulation constraints<\/strong> so the model keeps bond lengths and bond angles consistent across fragment boundaries \u2014 without locking the dihedral degrees of freedom it still needs to explore.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?ssl=1\"><img decoding=\"async\" width=\"2560\" height=\"1340\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?fit=625%2C327&amp;ssl=1\" alt=\"\" class=\"wp-image-14056\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=300%2C157&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=1024%2C536&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=768%2C402&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=1536%2C804&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=2048%2C1072&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?resize=624%2C327&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-3-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Figure 2<\/strong>: (a) Illustration of a dihedral \u03d5<sub>ABCD<\/sub> across torsional bond BC, defined as the angle between planes ABC and BCD, across two adjacent benzene rings in ligand BFL; (b) Bound (red) and aligned (green) poses for BFL in PDB 1Q4G with an optimised alignment RMSD of 0.11 \u00c5; C: Conformational ensembles generated from \u03c0<sub>Mc<\/sub>\u00a0for ligands SKF, CEL, and IH5 respectively. Notably, the most significant structural changes are derived from torsions across the rotatable bonds.<\/figcaption><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?ssl=1\"><img decoding=\"async\" width=\"2560\" height=\"837\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?fit=625%2C204&amp;ssl=1\" alt=\"\" class=\"wp-image-14061\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=300%2C98&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=1024%2C335&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=768%2C251&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=1536%2C502&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=2048%2C669&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?resize=624%2C204&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-5-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Figure 3<\/strong>: Illustrative example of how FR3D reduces the number of fragments (colour coded) required to represent rigid bodies on ligand TNK into irreducible form. (a) Defining fragments by breaking all torsional bonds (ribbons); (b) FR3D recursively attempts to reduce the <math data-latex=\"k\"><semantics><mi>k<\/mi><annotation encoding=\"application\/x-tex\">k<\/annotation><\/semantics><\/math> torsional<br>bonds and removes over-constrained dummies in the process (denoted by the coloured rings), which otherwise define a dihedral across the merged fragment; (c) Over-constrained dummies removed and triangulation edges displayed under a different stochastic reduction (equiprobable to the fragmentation shown in b).<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>What makes SigmaDock different architecturally?<\/strong><\/h2>\n\n\n\n<p class=\"\">At the modelling level, SigmaDock uses an <strong>SE(3)<\/strong> <strong>Riemannian diffusion process<\/strong> over fragment translations and rotations, together with an <strong>SO(3)-equivariant architecture<\/strong> built on top of EquiformerV2-style reasoning for protein\u2013ligand geometry. The model also augments the graph with virtual nodes and edges to improve long-range information flow, and uses pseudo-force predictions to make the score parameterization invariant to arbitrary choices of local fragment coordinate axes.<\/p>\n\n\n\n<p class=\"\">That sounds abstract, but the practical point is simple: SigmaDock was designed so that the geometry, chemistry, and inductive biases all line up with the actual structure of the problem. The paper\u2019s main message is not just that a bigger model can do better docking, but that a better geometric formulation can make the learning task fundamentally easier and more reliable.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How well does it work?<\/strong><\/h2>\n\n\n\n<p class=\"\">In the paper, SigmaDock is evaluated on the standard re-docking setup with a fixed receptor and known pocket. On the PoseBusters split, the reported <strong>Top-1 success rate with both RMSD &lt; 2 \u00c5 and PB-validity is 79.9%<\/strong>, and the paper presents SigmaDock as the <strong>first deep-learning docking method to surpass classical docking under the intended PoseBusters train\/test split<\/strong>. The paper also reports strong generalization to unseen proteins and near-perfect Top-1 performance above 90% on the Astex Diverse Set.<\/p>\n\n\n\n<p class=\"\">Just as importantly, the paper emphasizes that SigmaDock achieves these results <strong>without relying on a separate confidence model<\/strong> to filter poor generations. Instead, it uses lightweight <em>post hoc<\/em> ranking based on pseudo-binding energy and physicochemical checks. The paper also reports that performance is competitive with AF3-level docking performance while using a much smaller training set and substantially faster sampling.<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?ssl=1\"><img decoding=\"async\" width=\"2560\" height=\"892\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?fit=625%2C218&amp;ssl=1\" alt=\"\" class=\"wp-image-14065\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=300%2C104&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=1024%2C357&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=768%2C267&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=1536%2C535&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=2048%2C713&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?resize=624%2C217&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-7-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Figure 4<\/strong>: Performance benchmarks. Left: Comparative performance of SigmaDock\u00a0on the PoseBusters v2 and Astex Diverse Sets against other methods. Extracted from\u00a0Abramson et al.\u00a0(2024);\u00a0Buttenschoen et al. (2024). (*) Denotes classical docking; (**) Are not open-source. Right: Performance breakdown across sequence similarity splits in the PB set.<\/figcaption><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\"><strong>What\u2019s in the codebase?<\/strong><\/h2>\n\n\n\n<p class=\"\">The GitHub repo is the official implementation for <strong>training, sampling, and evaluation<\/strong>. It includes:<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li class=\"\">installation via <code>install.sh<\/code><\/li>\n\n\n\n<li class=\"\">Hydra-based training and sampling scripts<\/li>\n\n\n\n<li class=\"\">experiment configs under <code>conf\/experiments\/<\/code><\/li>\n\n\n\n<li class=\"\">sampling config under <code>conf\/sampling\/base.yaml<\/code><\/li>\n\n\n\n<li class=\"\">SLURM helper scripts<\/li>\n\n\n\n<li class=\"\">notebooks for visualization, pocket inspection, sampling, and metrics<\/li>\n\n\n\n<li class=\"\">optional checkpoint-based inference from the repo\u2019s release flow.<\/li>\n<\/ul>\n\n\n\n<p class=\"\">The repository is currently marked as a <strong>beta release<\/strong>, so APIs and behavior may still evolve.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>How to use SigmaDock<\/strong><\/h2>\n\n\n\n<p class=\"\">Getting started is straightforward.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>1) Install from source<\/strong><\/h3>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">git clone https:\/\/github.com\/alvaroprat97\/sigmadock.git\ncd sigmadock\nconda create -y -n sigmadock python=3.12\nconda activate sigmadock\nbash install.sh<\/pre>\n\n\n\n<p class=\"\">You can also specify a CUDA build and optional extras such as <code>train<\/code>, <code>dev<\/code>, and <code>test<\/code>. The repo documentation lists Python &gt;=3.9, &lt;3.13 and CUDA support for GPU training\/sampling.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>2) Prepare your data<\/strong><\/h3>\n\n\n\n<p class=\"\">SigmaDock expects a data root with one folder per complex. For a simple re-docking case, each complex folder should contain a protein <code>.pdb<\/code> and ligand <code>.sdf<\/code>. The repo also supports workflows where a separate reference ligand defines the pocket and center-of-mass, which is useful for cross-docking-style setups. These patterns are controlled through experiment configs such as <code>pdb_regex<\/code>, <code>sdf_regex<\/code>, and optional <code>ref_sdf_regex<\/code>.<\/p>\n\n\n\n<p class=\"\">A minimal layout looks like this:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"generic\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">&lt;data_root>\/\n\u00a0&lt;experiment_subdir>\/\n\u00a0\u00a0\u00a01abc\/\n\u00a0\u00a0\u00a0\u00a0\u00a0protein.pdb\n\u00a0\u00a0\u00a0\u00a0\u00a0ligand.sdf<\/pre>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>3) Run sampling with a checkpoint<\/strong><\/h3>\n\n\n\n<p class=\"\">The repo documents a released-checkpoint workflow through <code>scripts\/sample.py<\/code>. A typical command looks like this:<\/p>\n\n\n\n<pre class=\"EnlighterJSRAW\" data-enlighter-language=\"bash\" data-enlighter-theme=\"\" data-enlighter-highlight=\"\" data-enlighter-linenumbers=\"\" data-enlighter-lineoffset=\"\" data-enlighter-title=\"\" data-enlighter-group=\"\">python scripts\/sample.py \\\n\u00a0sampling.experiments.name=posebusters \\\n\u00a0sampling.data.data_dir=\/path\/to\/data \\\n sampling.model.ckpt_dir=\/path\/to\/checkpoint.ckpt \\\n\u00a0sampling.data.batch_size=16<\/pre>\n\n\n\n<p class=\"\">Sampling is driven by Hydra configs, so most behavior can be overridden from the command line or via YAML.<\/p>\n\n\n\n<h3 class=\"wp-block-heading\"><strong>4) Optional rescoring and validation<\/strong><\/h3>\n\n\n\n<p class=\"\">SigmaDock can optionally use <strong>GNINA<\/strong> for AutoDock Vina\/Vinardo-style rescoring. If GNINA is not installed, the pipeline still runs and falls back to heuristic physicochemical metrics for pose selection. The repo also supports PoseBusters checks through sampling config options.<\/p>\n\n\n\n<figure class=\"wp-block-image size-large\"><a href=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?ssl=1\"><img decoding=\"async\" width=\"2560\" height=\"1498\" loading=\"lazy\" src=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?fit=625%2C366&amp;ssl=1\" alt=\"\" class=\"wp-image-14071\" srcset=\"https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?w=2560&amp;ssl=1 2560w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=300%2C176&amp;ssl=1 300w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=1024%2C599&amp;ssl=1 1024w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=768%2C449&amp;ssl=1 768w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=1536%2C899&amp;ssl=1 1536w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=2048%2C1199&amp;ssl=1 2048w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?resize=624%2C365&amp;ssl=1 624w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?w=1250&amp;ssl=1 1250w, https:\/\/i0.wp.com\/www.blopig.com\/blog\/wp-content\/uploads\/2026\/03\/image-8-scaled.png?w=1875&amp;ssl=1 1875w\" sizes=\"auto, (max-width: 625px) 100vw, 625px\" \/><\/a><figcaption class=\"wp-element-caption\"><strong>Figure 5<\/strong>: Example notebook from the SigmaDock repository on GitHub: <a href=\"https:\/\/github.com\/alvaroprat97\/sigmadock\/blob\/main\/notebooks\/04_diffusion.ipynb\">https:\/\/github.com\/alvaroprat97\/sigmadock\/blob\/main\/notebooks\/04_diffusion.ipynb<\/a><\/figcaption><\/figure>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Why this matters<\/strong><\/h2>\n\n\n\n<p class=\"\">One of the recurring questions in ML for molecular modelling is whether progress is coming from better ideas or simply from more data and more compute. SigmaDock makes a strong case for the former. The project is built around a geometric reparameterization of docking that is chemically motivated, computationally lighter than co-folding, and empirically much more reliable than many prior generative docking baselines when chemical validity is taken seriously.<\/p>\n\n\n\n<p class=\"\">That is also why I think SigmaDock is interesting beyond a single benchmark result. The fragment-space SE(3) formulation naturally suggests extensions to <strong>flexible docking<\/strong> and even <strong>co-folding<\/strong>, because the same framework can be extended by treating selected side chains or other movable units as additional fragments. The paper explicitly points to those directions as future work.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Current limitations<\/strong><\/h2>\n\n\n\n<p class=\"\">It is worth being clear about what SigmaDock is and is not solving today.<\/p>\n\n\n\n<p class=\"\">First, the paper deliberately focuses on <strong>rigid-receptor re-docking<\/strong> with a specified pocket, because that is still the fairest regime for direct comparison with established docking baselines. Second, the model currently depends on a <strong>user-specified pocket center<\/strong> at inference time, so poor pocket specification can bias the search region. Third, the training setup was intentionally restricted to <strong>PDBBind v.2020<\/strong> to enable fair comparison on the PoseBusters split, which means out-of-distribution robustness can likely improve further with more curated data, augmentation, pretraining, or larger-scale training.<\/p>\n\n\n\n<p class=\"\">That honesty is one of the strengths of the work: the paper does not pretend SigmaDock is the final answer to all docking settings. Instead, it argues that fragment-based SE(3) diffusion is a principled foundation that already performs strongly in the classical docking regime and should scale well into harder settings.<\/p>\n\n\n\n<h2 class=\"wp-block-heading\"><strong>Final thoughts<\/strong><\/h2>\n\n\n\n<p class=\"\">SigmaDock started from a simple but powerful idea: docking becomes easier when the model is allowed to reason in the right space. By operating on rigid fragments in SE(3), rather than directly wrestling with a tangled torsional representation, SigmaDock turns molecular docking into a cleaner geometric generative problem. The result is a method that is not only accurate, but also much more chemically coherent and practically usable.<\/p>\n\n\n\n<p class=\"\">If you are interested in geometric deep learning for chemistry, diffusion models on manifolds, or practical protein\u2013ligand docking, SigmaDock is meant to be both a research contribution and a usable codebase. The repository already provides the pieces needed to install, prepare data, sample from checkpoints, validate outputs, and build on top of the method.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Alvaro Prat, Leo Zhang, Charlotte Deane, Yee Whye Teh, &amp; Garrett M. MorrisInternational Conference On Learning Representations (ICLR 2026) Molecular docking sits at the heart of structure-based drug discovery. If we can reliably predict how a small molecule binds in a protein pocket, we can prioritize compounds faster, reason about interactions more clearly, and build [&hellip;]<\/p>\n","protected":false},"author":130,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"nf_dc_page":"","wikipediapreview_detectlinks":true,"_monsterinsights_skip_tracking":false,"_monsterinsights_sitenote_active":false,"_monsterinsights_sitenote_note":"","_monsterinsights_sitenote_category":0,"ngg_post_thumbnail":0,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[633,920,849,274,291,202,227,201],"tags":[],"ppma_author":[843],"class_list":["post-14046","post","type-post","status-publish","format-standard","hentry","category-ai","category-diffusion","category-drug-discovery","category-molecular-recognition","category-protein-ligand-docking","category-proteins","category-python-code","category-small-molecules"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"authors":[{"term_id":843,"user_id":130,"is_guest":0,"slug":"alvaro","display_name":"Alvaro Prat","avatar_url":"https:\/\/secure.gravatar.com\/avatar\/3ab9b3b760b1c3cf7c2073ed08830accad651310244cc781046f70c9af6e1805?s=96&d=mm&r=g","0":null,"1":"","2":"","3":"","4":"","5":"","6":"","7":"","8":""}],"_links":{"self":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/14046","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/users\/130"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/comments?post=14046"}],"version-history":[{"count":5,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/14046\/revisions"}],"predecessor-version":[{"id":14104,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/posts\/14046\/revisions\/14104"}],"wp:attachment":[{"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/media?parent=14046"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/categories?post=14046"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/tags?post=14046"},{"taxonomy":"author","embeddable":true,"href":"https:\/\/www.blopig.com\/blog\/wp-json\/wp\/v2\/ppma_author?post=14046"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}