
<?xml version="1.0" encoding="utf-8"?><feed xmlns="http://www.w3.org/2005/Atom" ><generator uri="https://jekyllrb.com/" version="3.10.0">Jekyll</generator><link href="https://diffuse.science/feed.xml" rel="self" type="application/atom+xml" /><link href="https://diffuse.science/" rel="alternate" type="text/html" /><updated>2026-09-01T20:02:26+00:00</updated><id>https://diffuse.science/feed.xml</id><title type="html">The DiffUSE Project</title><subtitle>The DiffUSE Project</subtitle><entry><title type="html">qFitLatent: Learning the Motions of Multiconformers</title><link href="https://diffuse.science/posts/qfitlatent/" rel="alternate" type="text/html" title="qFitLatent: Learning the Motions of Multiconformers" /><published>2026-09-01T00:00:00+00:00</published><updated>2026-09-01T00:00:00+00:00</updated><id>https://diffuse.science/posts/qfitlatent</id><content type="html" xml:base="https://diffuse.science/posts/qfitlatent/"><![CDATA[<p>Modeling proteins in the true manner in which they occur is a grand challenge of the biological puzzle, and protein dynamics is an essential piece of it. To better account for local dynamic motions that are captured but typically discarded in crystallography, an algorithm called qFit refits atomic models of proteins into underexplored regions of electron density. The resulting multiconformer protein models represent a more complete picture of the intricate fluctuations that allow proteins to function. Transforming these multiconformer models into a latent representation would enable the use of a unique dynamics modality for downstream representation learning and structural biology projects.</p>

<p>qFitLatent seeks to learn a latent vector that is capable of producing the qFit multiconformers with fidelity to the side chain ensembles. Fundamentally, by treating the multiconformers as the ground truth, a distribution of side chain conformations arises out of the atomic positions, occupancies, and B-factors. These experimental representations lend themselves naturally to a Gaussian mixture of states, where each side chain rotamer is treated as a single state with probability and variance. This Gaussian mixture can then be mapped directly to the input multiconformers, and the two distributions can be compared.</p>

<p>To learn a representation capable of recapitulating the side chain ensembles, we adopt an invariant point attention backbone to operate on sequence embeddings, such that the model has knowledge of the amino acid identities and the relevant structural biology driving local dynamics. We are experimenting with multiple formulations of the model, including a generative version conditioned on sequence and backbone only, as well as a variational autoencoder that masks residues/regions and reconstructs them from the latent vectors. The goal of this project is to craft a latent manifold that practically models the multiconformers created by unused density. An accurate representation of local dynamics through the lens of multiconformers unlocks an untapped but complementary dynamics representation: another piece of the puzzle.</p>

<p><img src="/assets/images/posts/2026-09-01/qfitlatent_validation.gif" alt="qFitLatent reconstruction of side chain multiconformers in a validation protein not seen during training. The rotamer of the ground truth (qFit, purple) central valine is correctly predicted by the model (qFitLatent, salmon)." class="align-center" width="360" /></p>

<p><em>Figure 1. qFitLatent reconstruction of side chain multiconformers in a validation protein not seen during training. The rotamer of the ground truth (qFit, purple) central valine is correctly predicted by the model (qFitLatent, salmon).</em></p>

<p>Check out the code <a href="https://github.com/diff-use/qFitLatent">here</a>.</p>]]></content><author><name>A. Clay Richard</name><email>alan.richard@astera.org</email></author><category term="posts" /><category term="machine learning" /><category term="protein dynamics" /><category term="crystallography" /><summary type="html"><![CDATA[Learning a latent representation of qFit multiconformers to capture the local dynamics that crystallography usually discards.]]></summary></entry><entry><title type="html">WaterFlow: Predicting Ordered Water Molecule Positions on Protein Structures</title><link href="https://diffuse.science/posts/waterflow/" rel="alternate" type="text/html" title="WaterFlow: Predicting Ordered Water Molecule Positions on Protein Structures" /><published>2026-09-01T00:00:00+00:00</published><updated>2026-09-01T00:00:00+00:00</updated><id>https://diffuse.science/posts/waterflow</id><content type="html" xml:base="https://diffuse.science/posts/waterflow/"><![CDATA[<p>Water mediates folding and stability of protein structure, bridges ligands to their receptors, and participates directly in catalysis. Interpreting a protein structure in light of its function, or designing a new one, depends on where the waters are. The accuracy needed is demanding too, since hydrogen-bond energies are sensitive to distance: half an angstrom of error changes the interpretation of a water network, and with it any estimate of binding affinity or catalytic geometry that rests on it.</p>

<p><img src="/assets/images/posts/2026-09-01/wf_graphical_abstract.png" alt="WaterFlow in one pass: the trained vector field transports prior samples onto candidate sites, the confidence model scores them, and clustering leaves a ranked, discrete set of waters." class="align-center" /></p>

<p><em>WaterFlow in one pass: Flow ODE integration carries a sampled prior onto candidate water sites; the confidence model scores each candidate, and clustering leaves a ranked, discrete set of kept waters.</em></p>

<p>Predicting accurate coordinates for ordered water remains a challenging, unsolved problem. Static structure prediction is close to experimental accuracy, and protein-ligand cofolding is improving quickly, but neither models solvent, so the models return a dry protein. Most water placement is instead physics-based, grounded in molecular dynamics and solvation thermodynamics (<a href="https://doi.org/10.1063/1.4733951">Nguyen et al., 2012</a>), which is slow and only as accurate as the force field and solvent model underneath. Deep learning and data-driven methods such as GalaxyWater-CNN (<a href="https://doi.org/10.1021/acs.jcim.2c00306">Park &amp; Seok, 2022</a>), HydraProt (<a href="https://doi.org/10.1021/acs.jcim.3c01559">Zamanos et al., 2024</a>), and most recently SuperWater (<a href="https://doi.org/10.1038/s42004-025-01789-4">Kuang et al., 2025</a>) showed a learned model can beat physics-based coverage, but precision and recall trade off steeply: SuperWater recovers only around 27% of deposited waters at high precision, as claimed in their paper.</p>

<p>Our new preprint introduces <a href="https://doi.org/10.64898/2026.08.26.747373">WaterFlow</a>, which outperforms SuperWater at every operating point. We also analyze how much of this gain, and the gap to ideal prediction, lies in the quality of the model itself versus the quality of the data used to train these models.</p>

<h2 id="what-is-waterflow">What is WaterFlow?</h2>

<p>WaterFlow takes a protein structure and returns the same structure with ordered waters added. A <strong>generator</strong>, trained with flow matching (<a href="https://arxiv.org/abs/2210.02747">Lipman et al., 2022</a>), learns a velocity field that transports points sampled from a prior distribution around the protein onto the water positions observed in crystal structures; at inference, integrating that field yields candidate waters. A <strong>confidence model</strong> then scores each candidate, low-scoring ones are removed, and nearby survivors are merged, leaving a ranked list of waters with confidence scores. Both stages are parametrized by the same equivariant graph neural network (<a href="https://arxiv.org/abs/2106.03843">Jing et al., 2021</a>), trained on ~67,000 structures from <a href="https://pdb-redo.eu/">PDB-REDO</a>.</p>

<p><img src="/assets/images/posts/2026-09-01/wf_inference.gif" alt="Integrating the learned velocity field carries prior samples onto ordered-water positions." class="align-center" /></p>

<p><em>Integrating the learned velocity field carries prior samples onto ordered-water positions.</em></p>

<p>Re-trained on identical sequence- and structure-clustered splits and scored on the same 698-structure holdout, SuperWater reaches a parity F1 of 0.41 at a 1.0 Å acceptance radius; WaterFlow reaches 0.63, and the gap widens at 0.5 Å (0.54 against 0.26). The largest gains are at sub-angstrom localization, the regime that matters for binding free energies and hydrogen-bond geometry.</p>

<p><img src="/assets/images/posts/2026-09-01/wf_benchmark.png" alt="Precision-recall on the 698-structure holdout, at 0.5 Å and 1.0 Å acceptance radius, and F1 at 1.0 Å at parity." class="align-center" /></p>

<p><em>Precision-recall on the 698-structure holdout. WaterFlow outperforms the re-trained SuperWater at every confidence threshold, at both 0.5 Å and 1.0 Å, and reaches an F1 of 63.4% at 1.0 Å at parity versus 40.7% for SuperWater.</em></p>

<h2 id="crystallographic-symmetry-matters">Crystallographic symmetry matters</h2>

<p>Many surface waters are coordinated by atoms from symmetry-related copies of the protein in the crystal lattice, so a model that sees only the asymmetric unit sees an incomplete coordination environment. WaterFlow expands the crystal symmetry and adds residues within 8 Å of the asymmetric unit as context nodes in its graph.</p>

<p><img src="/assets/images/posts/2026-09-01/wf_symmetry_mates.png" alt="Left: one bridging water seen from the asymmetric unit alone versus with its symmetry neighbors present. Right: the recall gain from adding symmetry mates is concentrated within hydrogen-bonding range." class="align-center" /></p>

<p><em>Left: one water, seen from the asymmetric unit alone and with its symmetry neighbors. Right: the recall gain from adding symmetry mates is confined to waters within hydrogen-bonding range of a symmetry mate.</em></p>

<p>This raises F1 at parity from 0.57 to 0.63, and the gain is concentrated in the ~10% of waters within hydrogen-bonding range of the lattice, where recall jumps from 0.29 to 0.60. We see this phenomenon emphasized with one bridging water, which scores 0.004 from the asymmetric unit alone, and 0.71 with its symmetry neighbors present. Almost no other structure prediction method encodes this crystallographic information, and the argument extends well past water: proteins, ligands, and ions also form contacts across symmetry-related interfaces.</p>

<h2 id="deposited-waters-are-not-ground-truth">Deposited waters are not ground truth</h2>

<p>Which waters get modeled into a deposited structure depends on resolution, refinement protocol, and the choices of the crystallographer (<a href="https://doi.org/10.1016/j.cell.2024.01.003">Fraser &amp; Murcko, 2024</a>), so two crystals of the same protein rarely agree about their solvent. Clustering deposited waters across large sets of isomorphous structures (lysozyme, endothiapepsin, carbonic anhydrase), we find 13-30% of modeled waters are not reproduced in the other structures of the same protein. Treating the consensus positions as ground truth, the best achievable F1 is 0.87-0.94, a ceiling for any model trained and scored against deposited coordinates, ours included. Consistent with that, filtering low-quality waters out of training did not improve the model; rather, more distinct, high-quality structures were more efficient at reaching the same performance.</p>

<h2 id="do-the-predicted-waters-fit-the-experimental-data">Do the predicted waters fit the experimental data?</h2>

<p>The more direct test of a predicted water is the experimental density. Measured by EDIA (<a href="https://doi.org/10.1021/acs.jcim.7b00391">Meyder et al., 2017</a>), predicted waters fit real-space density as well as deposited ones at a confidence threshold of 0.7, and better above it. Novel predictions, those with no deposited water within 1.0 Å, are nominally false positives, but sit on positive mFo-DFc difference density: the fraction above +3σ grows from 11% to 49% with confidence. A significant share of the apparent false positives are therefore waters the deposition omitted.</p>

<p>The predictions also hold up under re-refinement. Re-refining PDB 4RKW with predicted waters lands R-free within 0.012 of the deposited control, and on an apo/ATP-bound pair of LuxO, the model places the two waters bridging ATP to the protein within 0.1 Å of their deposited positions and leaves the ligand-displaced sites empty. These results bring predicted waters within reach of ligand binding analysis, protein design, and automated model building.</p>

<h2 id="using-waterflow">Using WaterFlow</h2>

<p>Model setup and prediction commands are in the <a href="https://github.com/diff-use/WaterFlow">README</a>. Two selection methods control how many waters are returned. The default is a <strong>confidence threshold</strong>: every water scoring above the cutoff is kept. The confidence score reflects local disorder, so the model predicts more waters for well-ordered structures and fewer for poorly ordered ones, and the predicted counts fall with resolution much like deposited counts do. Raising the threshold keeps fewer waters with stronger density support; at high thresholds the retained waters are better supported than the deposited ones. A high threshold is appropriate when individual waters matter, for example in QM/MM calculations or as refinement restraints. The second method, <strong>density selection</strong>, sets the water count from the protein size instead of the confidence score. This is useful for comparing hydration across structures of different quality, and on predicted structures, where errors in the input coordinates lower the confidence scores and a threshold would return too few waters.</p>

<p>WaterFlow is trained on static coordinates, while the experimental data average over heterogeneous protein and solvent, so many of the waters it learns from are partially occupied. Getting past that requires training data with partial occupancies and alternative conformers. WaterFlow paired with an experimentally guided ensemble framework like <a href="/posts/sampleworks/">sampleworks</a>, is one future route to generating it. In the meantime, you can use WaterFlow, follow our progress, and contribute <a href="https://github.com/diff-use/WaterFlow">here</a>.</p>]]></content><author><name>Vratin Srivastava</name></author><category term="posts" /><category term="water" /><category term="machine learning" /><category term="crystallography" /><summary type="html"><![CDATA[A flow-matching model for predicting ordered water positions on protein structures, and what it reveals about the limits of the data we train it on.]]></summary></entry><entry><title type="html">A Year (plus) of DiffUSE</title><link href="https://diffuse.science/posts/year-one-of-diffuse/" rel="alternate" type="text/html" title="A Year (plus) of DiffUSE" /><published>2026-09-01T00:00:00+00:00</published><updated>2026-09-01T00:00:00+00:00</updated><id>https://diffuse.science/posts/year-one-of-diffuse</id><content type="html" xml:base="https://diffuse.science/posts/year-one-of-diffuse/"><![CDATA[<h2 id="a-year-plus-ish-of-diffuse">A Year (plus-ish) of DiffUSE</h2>

<p>The DiffUSE Project began in July 2025 as an experiment in democratizing the methods of dynamic structural biology. While static models and sequence data have provided incredible insights into biological function and applications, in part due to AI, this data is reaching the limit of what it can explain. The most interesting biological problems cannot be addressed with a single structure. Elucidating the dynamics of transient biological events, understanding allostery, and investigating how binding events reshape the conformational landscape to achieve specificity all require the ensemble. But we are data-poor in this area. To reach the scale and diversity of data needed to be able to <a href="https://doi.org/10.1038/s41589-025-01879-3">leverage, predict, and act upon protein dynamics</a>,</p>

<p>Reaching the scale and diversity of data required to understand and ultimately predict protein dynamics demands a rethink of the entire pipeline, from data collection to interpretation, without the constraints of conventional static structure modeling.</p>

<p>The conventional approach is sequential: collect the data, process it, model it, encode it, then interpret it. But to actually get the data and information needed to tackle the ambitious biological problems of our day, we need to address the full pipeline at once.</p>

<p>But we are not improving one step in an existing workflow. We are changing an entire ecosystem. This work could not be done inside a conventional institutional structure. The bottleneck in dynamic structural biology is the absence of data at scale and the absence of methods that can absorb and collect it. Neither could be solved by an individual group, nor by focusing on individual biological problems. Both are solved by treating methods development as primary scientific work and staffing it accordingly. Our scientific organization is made possible by being a <a href="https://radial.org/">Radial project</a>. Methods developers, platform engineers, and data infrastructure teams work alongside the scientists asking the biological questions. Loose teams form around data collection and processing, modeling, encoding, and interpretation. Each team works within the scope of the problem in front of it, and each output is usable by the others and by the field.</p>

<p>Over the past year, we have made significant progress in every area of the project. We demonstrated <a href="https://diffuse.science/posts/reproducibility-stack/">reproducibility with diffuse scattering</a> across two beamlines (pub coming soon!); collected diffuse data on <a href="https://diffuse.science/logbook/">8 different proteins</a>; and <a href="https://diffuse.science/posts/goodvibes/">advanced theory</a> to better model this data. We also built <a href="https://github.com/prism-science/sampleworks">a robust modeling platform</a> that integrates structure predictors with experimental data and used it to stress-test how much <a href="https://thestacks.org/publications/sampleworks-release">memorization exists in structure predictors</a>. We also recovered latent heterogeneity from deposited X-ray crystallography data in over <a href="https://thestacks.org/publications/qfit-at-scale">60k X-ray structures</a>. We have developed <a href="https://www.biorxiv.org/content/10.64898/2026.08.26.747373v1">algorithms</a> and <a href="https://thestacks.org/publications/method-bulksolvent">methods</a> for improving our ability to model solvent in X-ray crystallography protein structures, a crux for correctly modeling experimental structural biology data. Finally, we have developed new ways to encode and visualize these <a href="https://diffuse.science/posts/mmcif-browser/">dynamics</a>. We have done all of this work completely openly, engaging with external groups and the greater structural biology community along the way.</p>

<p>A year in, the different areas of the project are now beginning to converge. We are beginning to integrate diffuse scattering data into our modeling software, and consider how to encode different types of heterogeneity in mmCIF files. As the different areas of the project converge, we are just starting to show the power of tackling the entire pipeline at once: the whole can be greater than the sum of the individual parts.</p>

<h2 id="by-the-numbers">By the Numbers</h2>

<h3 id="4-scholarly-pubs-with-8-different-contributors">4 Scholarly Pubs with 8 different contributors</h3>

<ul>
  <li><a href="https://thestacks.org/publications/sampleworks-release">sampleworks: A Modular Platform for Experimentally Guided Biomolecular Ensemble Generation</a></li>
  <li><a href="https://thestacks.org/publications/method-bulksolvent">Supplying a User-Defined Bulk Solvent Map for Refinement</a></li>
  <li><a href="https://thestacks.org/publications/qfit-at-scale">Recovering Conformational Heterogeneity from the Protein Data Bank at Scale</a></li>
  <li><a href="https://www.biorxiv.org/content/10.64898/2026.08.26.747373v1">WaterFlow: Prediction of Ordered Water Molecule Positions on Protein Structures</a></li>
</ul>

<h3 id="16-logbooks-with-18-different-contributors"><a href="https://diffuse.science/logbook/">16 Logbooks</a> with 18 different contributors</h3>

<h3 id="5-key-software-methods-with-13-different-contributors">5 Key Software Methods with 13 different contributors</h3>

<ul>
  <li><a href="https://github.com/prism-science/mdx2">Mdx2: an open-source toolkit for diffuse data processing written in Python</a></li>
  <li><a href="https://github.com/prism-science/sampleworks">sampleworks: a Python framework for integrating generative biomolecular structure models with experimental data</a></li>
  <li><a href="https://github.com/prism-science/WaterFlow">WaterFlow: a Deep Learning model that predicts the positions of ordered water molecules conditioned on a protein structure</a></li>
  <li><a href="https://github.com/prism-science/goodvibes">Goodvibes (General Optimization Of Diffuse halos from VIBrational Elastic network Simulations): a software package that produces a full forward model of the phononic contribution to the diffuse signal</a></li>
  <li><a href="https://github.com/prism-science/pdbx_hierarchy">A Python library and command-line tool for reading, writing, and modifying PDBx/mmCIF protein structure files with support for hierarchical heterogeneity extensions</a></li>
</ul>

<h3 id="38-blog-posts-written-by-14-different-authors"><a href="https://diffuse.science/posts/">38 Blog Posts written by 14 different authors!</a></h3>

<h2 id="making-diffuse-scattering-reproducible">Making diffuse scattering reproducible</h2>

<p>Diffuse scattering was the first experimental data type tackled within the project. In a typical macromolecular X-ray crystallography experiment, <a href="https://doi.org/10.1016/j.sbi.2018.01.009">only about half of the X-rays scattered by the sample are analyzed</a>. Those photons fall in the Bragg peaks, and they encode the average structure of the molecules in the lattice. Surrounding and between those peaks is a weaker signal, known as diffuse scattering, that captures deviations from the average structure. This signal not only provides one of the <a href="https://doi.org/10.1021/acs.biochem.1c00420">few direct measurements of correlated protein motion</a>, which is essential for understanding catalysis, allostery, and ligand recognition.</p>

<p>For decades, diffuse scattering has been treated as background and discarded. This is primarily because the signal is difficult to <a href="https://doi.org/10.1016/bs.mie.2023.07.007">measure, model, and interpret</a>. Those difficulties have kept the method in the hands of a small number of specialist laboratories. Over the past several years, macromolecular diffuse scattering methodology has <a href="https://doi.org/10.1038/s41467-023-36734-3">advanced substantially</a>, and the measurement and interpretation problems that once defined the field are now considered tractable.</p>

<p>Building the tools and methods to democratize the method would allow rapid scaling by using existing synchrotron infrastructure. This would allow us to potentially reach a throughput of about 10,000 ensembles produced from diffuse scattering per year, providing the scale of data needed to learn about ensemble behavior, including for the training data necessary to predict and act upon protein dynamics. The joint analysis of the Bragg and diffuse components therefore returns two results from a single experiment: a high-resolution atomic model, and a description of how atomic displacements within that model are coupled.</p>

<p>Overall, our goal was to develop the methods and tools to democratize diffuse scattering. <a href="https://diffuse.science/posts/reproducibility-stack/">We started by aiming to obtain reproducible data from two different beamlines</a>. Working across the Advanced Light Source at Berkeley (led by Kara Zielinski) and the Cornell High Energy Synchrotron Source (led by Steve Meisburger), we collected diffuse data on the same systems at both facilities and compared the resulting maps. Agreement between independently collected maps is the minimum standard for treating diffuse scattering as a quantitative measurement, enabling us to collect and analyze this data more widely. 
While there were no big surprises in samples and data collection, the lessons learned provide more background to help guide others in collecting data. With samples, we learned that humidity sleeves are essential to prevent dehydration over the course of the experiment, that the dose must be kept low, and that beamline background must also be low. Finally, crystal size matters; the larger the crystal, the better the data collected. We also found that multiple crystals are required for completeness, mostly because dose limits the rotation range available from any single crystal. We also observed that background subtraction is the most sensitive step in the pipeline. These insights have driven improvements in <a href="https://diffuse.science/posts/mdx2/">mdx2</a>, our <a href="https://github.com/prism-science/mdx2">open-source package for processing diffuse scattering</a>. The development of mdx2 is making the software more robust for other datasets. Finally, we can see that good diffuse data requires good Bragg data, with mosaicity and resolution being good proxies for diffuse map quality. Both are available early, which allows samples to be triaged before a full dataset is collected.</p>

<p>Outside of mac1, we also collected data on six other protein systems: NrdE, lysozyme, DNA fibers, ATCase, insulin, and Huwe1. Eighteen contributors collected this data, all logged in <a href="https://diffuse.science/logbook/">DiffUSE Logbook</a>. This work helps democratize the collection, processing, and quality control of high-quality datasets, with the goal of allowing more groups (outside the DiffUSE project) to collect and process their own data. Be on the lookout for our upcoming publication detailing this analysis in much more detail! 
To model and interpret that data, we have mainly been using <a href="https://doi.org/10.1073/pnas.1416744111">molecular dynamics as our primary route to modeling the signal</a>. While this can provide valuable insights into the molecular motion we capture in the diffuse signal, a large gap remains between what the simulations produce and what the experimental data show. Closing that gap for improved modeling, including with machine learning (see below), requires pushing these physical models closer together.
Therefore, in parallel, we are pushing further toward a complete forward model of diffuse scattering. Because diffuse scattering comes from multiple sources of deviations from the average structure, including deviations within the unit cell (lattice vibrations) and deviations or movement of macromolecules within the unit cell, we want to separate these two contributions to isolate the biologically interesting motions.</p>

<p>Our first approach is to continue <a href="https://diffuse.science/posts/goodvibes/">developing GOODVIBES</a> (led by Stephen Thornton), the <a href="https://github.com/prism-science/goodvibes/tree/sjt/enm-playground">software package</a> that produces a full forward model of the phononic contribution. We are also working on generating accurate total scattering from <a href="https://diffuse.science/posts/taylor-roadmap/">crystalline molecular dynamics simulations</a> and comparing it to experimental data (led by Taylor Womack and Mike Wall). Both are critical to determining how we model this signal.
By simultaneously collecting and processing high-quality data today, combined with improving the theory of diffuse scattering, we will improve models of the data and biological motion down the road, similar to what has been done with Bragg peak data and cryo-EM data processing.</p>

<h2 id="machine-learning-modeling-of-experimental-data">Machine Learning Modeling of Experimental Data</h2>

<p>Machine learning structure predictors are now central to structural biology, in part because they can be used as a search mechanism over conformational space. Predicted models now routinely serve as templates for atomic model building and refinement, and <a href="https://doi.org/10.1038/s41592-022-01645-6">placing predictors in an iterative loop with experimental data accelerates model building while improving prediction quality</a>. One path to advance this idea is to exploit modern predictors’ ability to sample from their learned conformational distribution. Treated as conformational samplers, predictors can be combined with inference-time guidance, also described as scaling or steering, to improve agreement with experimental data. Such methods have been applied to <a href="https://doi.org/10.48550/arXiv.2406.04239">single structures</a> and, more recently, to <a href="https://doi.org/10.48550/arXiv.2602.24007">ensembles</a>. However, comparing results across these approaches or building on them was difficult. This limited our ability to iterate fast to improve modeling.</p>

<h3 id="developing-sampleworks">Developing sampleworks</h3>
<p>To enable rapid development and iteration, we developed <a href="https://github.com/prism-science/sampleworks">sampleworks</a>, a platform for modeling experimental structural biology using machine learning. Our initial conditions for sampleworks were that it needed to take in multiple types of experimental data and be robust enough for us and others to build on in the future, as machine learning modeling approaches change. sampleworks provides abstractions for modular combinations of structure predictors, inference-time steering methods, and loss functions, so that new predictors and guidance methods can be implemented and tested against multiple forms of experimental data. It also includes evaluation infrastructure for parallel comparison of predictors and guidance methods, using metrics for ensemble quality and for agreement with experimental data.</p>

<p><a href="https://thestacks.org/publications/sampleworks-release">We used sampleworks to test whether ensemble predictors have internalized physics or memorized their training distributions</a>. We used alternative conformations deposited as altlocs within a single PDB as the test. They are physically real and experimentally supported, but are stripped from the training data of every public predictor. A predictor that has learned anything resembling physics should recover them, particularly when guided by experimental density.
Without guidance, predictions collapse onto whichever conformation dominates the training set. Guidance substantially improves fit to density, raising the fraction of segments above an RSCC of 0.8 from 45.4 to 96.0 percent. However, we observed that the predictors tend to track their training distribution. While guidance reduces this bias, it did not remove it.
But we can already see some machine learning tricks or changes to ensemble predictors that point to potential ways forward. sampleworks lets us integrate new experimental data types, such as diffuse scattering, to test new methods and release those capabilities for others to use in modeling structural data. Critically, this lets us integrate the project from data collection through machine-learning-based modeling.</p>

<h3 id="modeling-existing-heterogeneity-from-the-pdb">Modeling existing heterogeneity from the PDB</h3>
<p>One thing from our analysis with sampleworks is how limited conformational ensemble prediction is by training data. However, one of the largest untapped sources is the experimental data already deposited. Crystallography and cryo-EM measure data from millions of copies of macromolecules and average them. Conventional refinement collapses that average into one set of coordinates. However, the signal on these multiple states exists in the structure factors but needs to be modeled. Therefore, we set out to generate better ensemble data from the latent data in the structure factors.</p>

<p>We ran <a href="https://doi.org/10.7554/elife.90606">qFit</a> multiconformer modeling <a href="https://thestacks.org/publications/qfit-at-scale">across the high-resolution PDB to extract some of this latent heterogeneity</a>. Starting from 80,876 PDB-REDO entries at 2 Å or better, the qFit multiconformer models fit the data better, with 85.7 percent having a lower R-free than the re-refined deposited comparison. They also contain substantially more conformational heterogeneity, with 9.4 percent of residues gaining at least one alternate conformation, and root-mean-square fluctuation increased by a mean of 0.13 Å.
This is only the starting point. We can extract significantly more information from existing data. By combining sampleworks, qFit, and other machine learning approaches, we are extracting even more heterogeneity latent in structure factors. This is a key piece in getting us the ensemble data needed to accelerate generating the diversity we need to predict ensembles.</p>

<h3 id="solvent-modeling">Solvent Modeling</h3>
<p>Solvent occupies about <a href="https://doi.org/10.1016/0022-2836(68)90205-2">50% of a macromolecular crystal</a>. X-ray scattering arises from every atom in the crystal, so solvent must be correctly accounted for to model the collected data. Beyond this, water molecules mediate <a href="https://doi.org/10.1021/acs.chemrev.5b00664">protein stability, ligand binding, and catalysis</a>, making them essential to understanding macromolecular biology. We model ordered waters in the first hydration shells as discrete atoms. However, predicting water molecule positions has lagged far behind protein and ligand structure prediction. Everything beyond them is approximated by a flat, binary mask.</p>

<p>We have tackled this with two approaches, first predicting ordered water molecules with <a href="https://www.biorxiv.org/content/10.64898/2026.08.26.747373v1">WaterFlow</a> using a deep learning model. The model sets a new state of the art, especially at sub-angstrom localization, where the gains concentrate, and sub-angstrom accuracy is what binding and catalysis applications require. 
<a href="https://github.com/prism-science/WaterFlow">WaterFlow is a two-stage model</a>: a flow-matching generator learns a velocity field that transports prior samples to crystallographic water molecule positions, combined with a confidence model that scores each candidate; the user then sets a threshold that controls how many waters are returned. Both stages share a geometric vector perceptron backbone built on ESM3 residue embeddings. The largest single design gain came from crystallographic symmetry mates.</p>

<p>We demonstrated that we can predict bridging water molecules between proteins and ligands, and that our predicted water molecules fit experimental data better, including novel predictions with no deposited counterpart, sitting on positive difference density far more often than displaced decoys.</p>

<p>We also worked on integrating <a href="https://thestacks.org/publications/method-bulksolvent">bulk solvent parameters into refinement software</a>. While bulk solvent is often treated as flat and discrete, this is not what the <a href="https://doi.org/10.1107/S1399004715006045">data is actually capturing</a>. The poor modeling of this solvent is a major contributor to the persistent gap between refinement R values and data quality. Richer descriptions exist, from molecular dynamics, 3D-RISM, and holographic reconstruction; however, getting them into refinement software to test them was a barrier. <a href="https://github.com/jmholton/phenix_user_solvent">We developed a patch to integrate these</a>.</p>

<h2 id="encoding-data-for-ai-and-humans">Encoding Data for AI and Humans</h2>

<p>Modeling heterogeneity is useless if the result cannot be communicated to AI and humans. PDBx/mmCIF represents alternate conformations through altlocs, which mark mutually exclusive atomic positions. <a href="https://doi.org/10.1107/S2052252524005098">It provides no way to state how those states relate</a>. Beyond dynamics, this encoding is critical to communicate protein-ligand interactions. Fragment screening and time-resolved experiments generate exactly this structure of heterogeneity, and both are growing ways for us to understand new biology.</p>

<p>Over the past year, we have worked in the wwPDB and refinement programs to implement a new mmCIF category encoding <a href="https://github.com/prism-science/mmcif_encoding">hierarchical relationships between heterogeneity states, paired with a coexistence table specifying which states may co-occur</a>. 
To support these changes, we have been developing <a href="https://diffuse.science/posts/mmcif-browser/">visualization software</a> and building off of existing modeling software, <a href="https://diffuse.science/post/bandicoot-PRISM-blog-2/">Bandicoot</a>, to enable model building, visualization, and computing on these heterogeneous structures.</p>

<h2 id="functional-evaluation">Functional evaluation</h2>
<p>Collecting, modeling, and encoding structural data is valuable, but it has limited utility if it does not provide insight into function. However, how to even measure ‘function’ is an open question. A single protein can perform an extraordinary range of biological functions. It can catalyze reactions, bind ligands, and transduce signals allosterically. The impact of each function can change with small perturbations, such as a shift in pH, a macromolecular interaction, or a post-translational modification. Together, these functions are essential for biological processes. Predicting these functions from sequence data and how they change under such perturbations is a central goal of biology. This would enable interpretation of the millions of cataloged protein sequences, understanding the impact of mutations, and designing for function. 
One challenge of full functional characterization is that protein function is vast and multifaceted, spanning many levels of granularity. Untangling these effects is required to predict mutational consequences, design better therapeutics, and engineer proteins with novel properties.</p>

<p>High-throughput experimental methods now enable the collection of data on more specific, mechanistic functional landscapes at scale. However, each assay often measures a single molecular phenotype under a single engineered selection such as stability, binding, or enzymatic turnover. A variant can be neutral in the assay’s readout yet functionally disruptive through a mechanism the assay never probes. These assays can produce the scale machine learning needs; however, each captures only a subset of functional axes. 
To characterize models predicting protein function, we developed <a href="https://diffuse.science/post/plug-benchmark/">PLUG</a>, an extensible framework for constructing leakage-free hold-out sets that enables evaluation of prediction models across multiple functional viewpoints. The benchmark compiler is organized so that any new functional benchmark can be added and a rebuilt leakage-free training set can be created against it, giving the community a moving target that resists the gradual contamination that has eroded the value of previous static benchmarks. We propose adopting PLUG as a framework for continual evaluation of protein function predictors, with careful homology detection to assess generalization and performance as a function of training similarity.</p>

<p>We are using PLUG as the baseline for our functional datasets, with our next endeavor looking at how dynamics impact function, focusing on cases where sequence data does not provide the necessary information.</p>

<h2 id="where-are-we-now">Where are we now?</h2>
<p>Beyond progressing on each of these fronts, we are beginning to integrate the pipeline. Diffuse scattering data is being brought directly into Sampleworks. In parallel, we are determining how best to encode Sampleworks ensemble outputs, and we are using conformational heterogeneity already present in the PDB to train better models to input into Sampleworks. We are also building functional outputs to establish where sequence or static structure provides sufficient functional information and where dynamic data is genuinely required, stress-testing our data collection and modeling.</p>

<h3 id="recurring-lessons-across-the-project">Recurring lessons across the project:</h3>
<ul>
  <li>You can tackle ambitious science projects with the right people</li>
  <li>New organizational structures are needed to accelerate science</li>
  <li>Democratizing tools and methods requires returning to the basics</li>
  <li>Building robust tools that others can readily build upon is essential</li>
  <li>Working openly enables community engagement</li>
</ul>

<p>We are building on these lessons to expand our experiment into new experimental modalities, new biological questions, and new AI-native approaches to solve these problems.</p>]]></content><author><name>Stephanie Wankowicz</name><email>stephanie.wankowicz@astera.org</email></author><category term="posts" /><category term="meta" /><summary type="html"><![CDATA[Science progress over the first year-ish of the DiffUSE Project]]></summary></entry><entry><title type="html">Coffee is for Closers: making Mac1 diffuse scattering reproducible</title><link href="https://diffuse.science/posts/reproducibility-stack/" rel="alternate" type="text/html" title="Coffee is for Closers: making Mac1 diffuse scattering reproducible" /><published>2026-08-31T00:00:00+00:00</published><updated>2026-08-31T00:00:00+00:00</updated><id>https://diffuse.science/posts/reproducibility-stack</id><content type="html" xml:base="https://diffuse.science/posts/reproducibility-stack/"><![CDATA[<p>Anyone who has published a paper (or in our case, a <a href="https://thestacks.org/">Stack</a>) knows the last 10% is the hardest part. Steve, Nozomi, Jaime, and I have been working on the core result for a while: apo Mac1 diffuse scattering that looks the same whether we collect it at CHESS in New York or ALS in California. What we’ve spent recent months on is moving from qualitative agreement “looks the same” to quantitative agreement “is the same, and here’s why.” Consider this a preview of the scholarly work to come.</p>

<p>Most of that effort was unglamorous: making the analysis reproducible, wrapping it in a pipeline, getting it to run the same way across different (and cloud) compute environments, etc. This is the hard part of open science. But doing it forced us to pin down every choice that feeds into a diffuse map, and in the process it deepened our understanding of what the result actually is and how firmly we can stand behind it.</p>

<p>Going into the project, we knew qualitatively that <a href="https://pubmed.ncbi.nlm.nih.gov/37748823/">high-quality diffuse data</a> depends on keeping the sample humid, avoiding radiation damage, and using large crystals. Now, we can show that when all three are in place, the maps agree across sites. Our best metric for this is the pairwise correlation coefficient between datasets, compared against a ceiling, or maximum expected correlation, set by the product of each dataset’s CC* (an estimate from its internal consistency (CC½) of how well it tracks the true underlying signal). This lets us ask how similar two datasets are given the noise in each. Across four beamtimes, two at CHESS, two at ALS, every pairwise CC sits at or near its ceiling, meaning the datasets are as similar as their noise allows, with no signature of which site collected them.</p>

<p><img src="/assets/images/posts/2026-08-31/cc_ceiling.png" alt="Correlation between a CHESS dataset and an ALS dataset, plotted against resolution, for halo and non-halo voxels." class="align-center" /></p>

<p><em>Figure legend: Correlation between a CHESS dataset and ALS dataset for the halo (blue) and non-halo (green) relative to the maximum expected correlation (dashed line).</em></p>

<p>And when one or more of the ingredients is systematically missing (whether on purpose or by accident), the maps clearly diverge, and we can trace the difference back to the piece that was left out. Our focus on reproducibility became the instrument for understanding our physical and computational workflows, setting the stage to help democratize diffuse scattering across more beamlines and users.</p>

<p>In addition to the headline result (diffuse scattering reproducible, yay!), this process gathered a pile of smaller lessons, <a href="/posts/mdx2">mdx2</a> quirks and settings, and beamline configuration changes that we will describe fully in the Stack. Collectively, these lessons allowed us to strengthen our computational methods by identifying and fixing ‘one-offs’ such as a single hot pixel at the detector at CHESS ruining our ability to get quantitative agreement between sites. Without a standard mdx2 workflow, background subtraction can masquerade as signal, or we can accidentally misindex samples.</p>

<p>We are excited to have crossed the threshold of “reproducible diffuse scattering” and the full stack will enable others to join the party. This entire exercise shows that a major value of open science is raising our game to finish the work.</p>]]></content><author><name>Kara Zielinski</name><email>kara.zielinski@ucsf.edu</email></author><category term="posts" /><category term="meta" /><category term="diffuse scattering" /><summary type="html"><![CDATA[diffuse scattering reproducible, yay!]]></summary></entry><entry><title type="html">The Tortured Proteins Department, Episode 17</title><link href="https://diffuse.science/posts/TTPD-17/" rel="alternate" type="text/html" title="The Tortured Proteins Department, Episode 17" /><published>2026-08-30T00:00:00+00:00</published><updated>2026-08-30T00:00:00+00:00</updated><id>https://diffuse.science/posts/TTPD-17</id><content type="html" xml:base="https://diffuse.science/posts/TTPD-17/"><![CDATA[<h2 id="episode-17-state-of-decay">Episode 17: State of Decay</h2>

<p>We talk about a big travel month (including <a href="https://aucryst.org/sheldrick-award/inaugural-2026-sheldrick-awardee-announced/">Stephanie winning the George Sheldrick Award for Structural Science</a>), federal funding in light of the upcoming turnover of US political representation, pre-prints, and the use of AI with agentic workflows for science and LLMs for writing.</p>

<p>News Links:</p>
<ul>
  <li><a href="https://www.science.org/content/blog-post/assault-science-funding-continues">Derek Lowe’s Blog: The Assault On Science Funding Continues</a></li>
  <li><a href="https://www.science.org/content/article/senate-votes-block-rule-giving-white-house-more-control-over-research">Senate votes to block rule giving White House more control over research</a></li>
  <li><a href="https://arxiv.org/pdf/2608.16322">Estimating global article processing charges paid to 14 publishers for open access between 2019 and 2025</a></li>
</ul>

<p>Preprints/Blogs:</p>
<ul>
  <li><a href="https://www.biorxiv.org/content/10.64898/2026.08.21.746204v1?rss=1">Atomic modeling of radiation damage in cryoelectron microscopy datasets</a></li>
  <li><a href="https://www.biorxiv.org/content/10.64898/2026.08.11.744235v1.abstract">Dynamic view of an allosteric intermediate in a positively cooperative dimer</a></li>
  <li><a href="https://www.biorxiv.org/content/10.64898/2026.08.04.741757v1.abstract">Incidental conformational switching in an allosteric enzyme</a></li>
  <li><a href="https://huggingface.co/datasets/Anthropic/claude-protein-binder-design/tree/main/prompts">Anthropic Protein Design Prompts</a></li>
  <li>
    <p><a href="https://arxiv.org/abs/2601.15485">The Rise of Large Language Models and the Direction and Impact of US Federal Research Funding</a></p>
  </li>
  <li><a href="https://open.spotify.com/episode/3uj8Q4LtIBib4pDWCkXBW5?si=Ccwl6vhzShu0qHPJPmkENA">Spotify</a></li>
  <li><a href="https://podcasts.apple.com/us/podcast/state-of-decay/id1802420696?i=1000786876847">Apple Podcasts</a></li>
</ul>

<iframe data-testid="embed-iframe" style="border-radius:12px" src="https://open.spotify.com/embed/episode/3uj8Q4LtIBib4pDWCkXBW5?utm_source=generator" width="100%" height="352" frameborder="0" allowfullscreen="" allow="autoplay; clipboard-write; encrypted-media; fullscreen; picture-in-picture" loading="lazy" title="Spotify player: State of Decay"></iframe>]]></content><author><name>Stephanie Wankowicz</name><email>stephanie.wankowicz@astera.org</email></author><category term="posts" /><category term="meta" /><summary type="html"><![CDATA[The Tortured Proteins Department Podcast, Episode 17]]></summary></entry><entry><title type="html">Revealing hidden signals in raw X-ray crystallography data with mdx2</title><link href="https://diffuse.science/posts/mdx2/" rel="alternate" type="text/html" title="Revealing hidden signals in raw X-ray crystallography data with mdx2" /><published>2026-08-25T00:00:00+00:00</published><updated>2026-08-25T00:00:00+00:00</updated><id>https://diffuse.science/posts/mdx2</id><content type="html" xml:base="https://diffuse.science/posts/mdx2/"><![CDATA[<p>Proteins are dynamic, even when packed in a crystal lattice. The dynamics leave an imprint in the raw X-ray crystallography data in the form of diffuse scattering, which encodes information about correlated atomic motions in the protein. Although measuring correlated motions is the key to many frontier questions in biochemistry<sup id="fnref:XMA2021" role="doc-noteref"><a href="#fn:XMA2021" class="footnote" rel="footnote">1</a></sup>, we haven’t yet been able to make routine use of diffuse scattering signal. One reason is that conventional data processing tools discard the diffuse scattering as “background” at an early stage, and as a result crystallographers may not even be aware that it exists.</p>

<p><em>What if diffuse scattering data were carried through all steps in data processing and model refinement? What new science would that enable?</em></p>

<p>Let’s find out! One key step toward this goal is to make diffuse data processing easier. In this post, I’ll introduce our open-source toolkit mdx2, and explain why I think it will change the way structural biologists use X-ray data.</p>

<h2 id="what-makes-diffuse-data-tricky-to-process">What makes diffuse data tricky to process?</h2>

<p>The main task of data processing is to map detector pixels and their intensities into three-dimensional (3-D) reciprocal space, and then to merge and scale photon counts in order to generate a 3-D map of diffuse intensity (Figure 1).</p>

<p><img src="/assets/images/posts/2026-08-25/figure1.png" alt="Figure 1" /></p>

<p><em>Figure 1. Diffuse data processing can be divided conceptually into two steps: mapping signals from the detector to reciprocal space, and merging them to produce a final three-dimensional (3-D) map. Adapted from Meisburger &amp; Ando (2024).<sup id="fnref:MA2024" role="doc-noteref"><a href="#fn:MA2024" class="footnote" rel="footnote">2</a></sup></em></p>

<p>In the first step, the precise orientations of the crystal, detector, and X-ray beam are determined, and the photon counts are corrected for various non-ideal effects. Thankfully, this first step is shared with conventional crystallography, and the algorithms have already been worked out. The second step, scaling and merging, requires a different approach because Bragg diffraction and diffuse scattering differ in a few key ways.<sup id="fnref:MCA2020" role="doc-noteref"><a href="#fn:MCA2020" class="footnote" rel="footnote">3</a></sup></p>

<ul>
  <li>The diffuse scattering is a continuous signal requiring discretization into reciprocal space coordinates (H, K, L can take any value, not just integers). To fully describe sharp diffuse features like <a href="/posts/goodvibes">halos</a>, the diffuse map is typically <em>oversampled</em> relative to the reciprocal lattice. Multiple passes of data processing are performed, first producing a coarse map to refine corrections, and then a final, finely sampled map.</li>
  <li>Diffuse scattering is everywhere on the detector and mixed with the background from the experimental apparatus, requiring a separate background dataset measured with the crystal out of the X-ray beam.</li>
  <li>The diffuse signal is very weak compared with the Bragg peaks, with most detector pixels recording <em>zero</em> counts, so algorithms must be robust to count-limited data and carefully designed to avoid artifacts when merging many signals together.</li>
</ul>

<h2 id="what-is-mdx2">What is Mdx2?</h2>

<p>Mdx2 is an <a href="https://github.com/prism-science/mdx2">open-source toolkit</a> for diffuse data processing written in Python. Mdx2 is built on top of <a href="https://dials.github.io/">DIALS</a>, an open-source project for conventional crystallography data processing. Mdx2 modules can be imported to access the data as familiar Python objects, or its command-line tools can be run with a DIALS-like syntax</p>

<p>Mdx2 began as a teaching tool for the 2022 International School of Crystallography in Erice, Italy.<sup id="fnref:MA2023" role="doc-noteref"><a href="#fn:MA2023" class="footnote" rel="footnote">4</a></sup> Subsequently, the Ando lab’s state-of-the-art scaling and merging algorithms<sup id="fnref:MCA2020:1" role="doc-noteref"><a href="#fn:MCA2020" class="footnote" rel="footnote">3</a></sup> from the MATLAB-based <a href="https://github.com/ando-lab/mdx-lib">mdx-lib</a> were incorporated.<sup id="fnref:MA2024:1" role="doc-noteref"><a href="#fn:MA2024" class="footnote" rel="footnote">2</a></sup> When we began the Diffuse Project last year, it was clear that mdx2 would be the right choice for data processing, since it is open source and easy to use. However, because it was so new, several key features from mdx-lib were still missing, and it had only been tested on a handful of datasets.</p>

<h2 id="where-were-at">Where we’re at</h2>

<p>Over the past year, teams at Cornell and UCSF collected <em>hundreds</em> of diffuse scattering datasets over <em>sixteen</em> synchrotron visits (documented online in the <a href="https://diffuse.science/logbook/beamtime/">logbook</a>). As the teams worked together to process data, sticking points became clear very quickly, and these were addressed through improvements to the code. Here we highlight several major updates.</p>

<p><strong>Reproducible computing</strong>. Mdx2 is now packaged on conda-forge. Install the latest version and its dependencies using <code class="language-plaintext highlighter-rouge">mamba install -c conda-forge mdx2</code>.</p>

<p><strong>Automated reports</strong>. Since version <code class="language-plaintext highlighter-rouge">1.0.4</code>, mdx2 can produce data visualizations, validation statistics, and other plots via the <code class="language-plaintext highlighter-rouge">mdx2.report</code> command-line tool. This tool generates Jupyter notebooks from built-in templates and executes them automatically in the mdx2 environment (Figure 2).</p>

<p><img src="/assets/images/posts/2026-08-25/figure2.png" alt="Figure 2" /></p>

<p><em>Figure 2. Example output generated by <code class="language-plaintext highlighter-rouge">mdx2.report</code>. The figure, selected from the <code class="language-plaintext highlighter-rouge">visualization.ipynb</code> report notebook, shows a slice through the diffuse map of SARS-CoV-2 macrodomain (mac1) crystallized in the P4<sub>3</sub> space group. Slices are perpendicular to the L direction (the four-fold symmetry axis). The image on the left is the total intensity, which includes scattering from the disordered solvent within the crystal. In the image on the right, the isotropic scattering has been removed to better visualize the fluctuating pattern.</em></p>

<p><strong>Fine map generation</strong>. <code class="language-plaintext highlighter-rouge">mdx2.reintegrate</code> implements the final step in data processing, after corrections are refined, to generate finely sampled diffuse maps (Figure 3).</p>

<p><img src="/assets/images/posts/2026-08-25/figure3.gif" alt="Figure 3" class="align-center" /></p>

<p><em>Figure 3. Slices through a finely sampled 3-D diffuse map (same dataset as Figure 2). The scattering was mapped on a 5 x 5 x 11 oversampled grid (H x K x L, relative to the reciprocal lattice) using <code class="language-plaintext highlighter-rouge">mdx2.reintegrate</code>. Slices are perpendicular to the L direction. A lattice of intense peaks (red in the color map) appears whenever L is an integer – these are the diffuse halos (Bragg peaks have been removed).</em></p>

<h2 id="whats-next">What’s next</h2>

<p>Now that mdx2 has been refined through many cycles of data collection, we are turning our attention toward increased automation. We are targeting two applications:</p>

<ul>
  <li>Providing timely feedback during data collection, which would enable experimenters to make decisions informed by diffuse scattering.</li>
  <li>Batch re-processing accumulated data from the project, for instance when a new algorithm is added to mdx2.</li>
</ul>

<p>We are keen for others to try mdx2, and we welcome contributions to the project. Tutorials and source code are available at <a href="https://github.com/diff-use/mdx2">github.com/diff-use/mdx2</a>.</p>

<h2 id="references">References</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:XMA2021" role="doc-endnote">
      <p>Xu, D., Meisburger, S. P., &amp; Ando, N. (2021). Correlated Motions in Structural Biology. <em>Biochemistry</em>, 60(30), 2331–2340. <a href="https://doi.org/10.1021/acs.biochem.1c00420">doi.org/10.1021/acs.biochem.1c00420</a> <a href="#fnref:XMA2021" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:MA2024" role="doc-endnote">
      <p>Meisburger, S. P., &amp; Ando, N. (2024). Scaling and merging macromolecular diffuse scattering with mdx2. Acta crystallographica. Section D, Structural biology, 80(Pt 5), 299–313. <a href="https://doi.org/10.1107/S2059798324002705">doi.org/10.1107/S2059798324002705</a> <a href="#fnref:MA2024" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:MA2024:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:MCA2020" role="doc-endnote">
      <p>Meisburger, S. P., Case, D. A., &amp; Ando, N. (2020). Diffuse X-ray scattering from correlated motions in a protein crystal. <em>Nature communications</em>, 11(1), 1271. <a href="https://doi.org/10.1038/s41467-020-14933-6">doi.org/10.1038/s41467-020-14933-6</a> <a href="#fnref:MCA2020" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:MCA2020:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:MA2023" role="doc-endnote">
      <p>Meisburger, S. P., &amp; Ando, N. (2023). Processing macromolecular diffuse scattering data. <em>Methods in enzymology</em>, 688, 43–86. <a href="https://doi.org/10.1016/bs.mie.2023.06.010">doi.org/10.1016/bs.mie.2023.06.010</a> <a href="#fnref:MA2023" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Steve Meisburger</name><email>spm82@cornell.edu</email></author><category term="posts" /><category term="diffuse scattering" /><category term="software" /><summary type="html"><![CDATA[Mdx2 is a powerful and open-source toolkit for diffuse data processing.]]></summary></entry><entry><title type="html">Modeling the contribution of harmonic lattice vibrations to the diffuse signal with GOODVIBES</title><link href="https://diffuse.science/posts/goodvibes/" rel="alternate" type="text/html" title="Modeling the contribution of harmonic lattice vibrations to the diffuse signal with GOODVIBES" /><published>2026-08-21T00:00:00+00:00</published><updated>2026-08-21T00:00:00+00:00</updated><id>https://diffuse.science/posts/goodvibes</id><content type="html" xml:base="https://diffuse.science/posts/goodvibes/"><![CDATA[<p>When a protein crystal is bombarded with X-rays, the resulting signal on the detector contains a wealth of information that is connected to the structure and dynamics of the crystal. The clearest structural information is contained within the bright, regularly-spaced Bragg peaks. These contain information about the average structure; the space group to which the crystal belongs (related to how proteins have packed into the unit cell) and the average positions of each atom can be determined from these intense spots. The diffuse signal, on the other hand, comes from all deviations of atoms from their average positions. Conformational heterogeneity<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>, crystal defects, and thermal motion all contribute to the diffuse signal and lead to their own characteristic features. The inverse problem of extracting information from this diffuse signal is one of the overarching goals of the DiffUSE collaboration.</p>

<p><img src="/assets/images/posts/2026_08_21/lys_tri_goodvibes.gif" alt="Diffuse signal predicted by a GOODVIBES model of triclinic lysozyme." title="Figure 1" class="align-center" /></p>

<p><em>Figure 1: A moving slice through reciprocal space of the diffuse signal predicted by a model that includes lattice vibrations of a triclinic lysozyme crystal. The scale is different in each frame so that the diffuse signal between the Bragg peaks is visible.</em></p>

<p>The brightest features in the diffuse signal occur around the Bragg peaks, and are termed “halos” for their round (but often asymmetric) shape. These halos are well-reproduced by a model that includes thermally excited lattice vibrations, or phonons. Phonons are elastic waves that propagate through crystals and displace proteins from their average positions. Very low-frequency and long-wavelength phonons contain information about the often anisotropic sound speeds and elastic moduli of the crystal, but they do not contain direct information about internal protein motions. High-frequency and short-wavelength phonons can involve correlated motions of proteins in the crystal that are related to the biological function of isolated proteins in vivo.</p>

<p><img src="/assets/images/posts/2026_08_21/Meisburger_halos.png" alt="Comparison of the halos generated by the model and seen in the experiment." title="Figure 2" /></p>

<p><em>Figure 2: Selected regions of the diffuse X-ray scattering of a lattice dynamics model (left) and of a real protein crystal (right). The red features are halos. The halos which are surrounded by blue boxes were used to refine the model to the data (image from Meisburger et al. 2020<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>).</em></p>

<p>At any temperature, the most populated phonon modes are the lowest-frequency ones. Unsurprisingly, then, these low-frequency phonons which only contain information about long-wavelength crystal properties produce the halos and dominate the diffuse signal<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>. General Optimization Of Diffuse halos from VIBrational Elastic network Simulations (<a href="https://github.com/prism-science/goodvibes">GOODVIBES</a>) is a software package that produces a full forward model of the phononic contribution to the diffuse signal<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>. It works by modeling a protein crystal as a periodic collection of rigid bodies which are connected to neighbors by springs. From this model and an independently refined map of the electron density, information about the expected diffuse signal contributed by thermally excited phonons can be readily computed. The strengths of springs that connect adjacent rigid bodies are adjusted until the diffuse signal from the model well-fits the bright, halo-like features of the experimental data.</p>

<p>As a full forward model of the phononic contribution to diffuse scattering, the utility of GOODVIBES is many-fold and leads to several open questions:</p>

<ol>
  <li>If we model the long-wavelength contribution to the diffuse signal very well, can we subtract it out to extract biologically relevant motions that contribute to the diffuse signal?</li>
  <li>After the halos are fit, can we understand the more complicated, structured diffuse signal between the Bragg peaks as also coming partially from phonons?</li>
  <li>Can more sophisticated modeling of the internal motions of the protein be developed so that harmonic modes related to biological function can be fit to the experimental data?</li>
</ol>

<h2 id="where-we-are-now">Where we are now</h2>

<p>We are re-developing the GOODVIBES pipeline using entirely open-source Python packages. As part of this, we are re-thinking each step in the pipeline, from the structure refinement to the parameterization of the interactions within the asymmetric unit of the crystal. We want the refinement procedure to be flexible enough to handle protein crystals in any space group and of any unit cell size. While we are aiming to refine an elastic network model of Mac1 in the P43 space group (PDB 7tx0<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>) to experimental diffuse scattering data, here we show results based on the refinement of lysozyme in the P1 space group (PDB 6o2h<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>) from an older iteration of GOODVIBES as proof of concept. We treat the entire protein in the unit cell as a rigid body, so no internal protein modes are modeled. With one protein per unit cell, there are consequently 6 phonon bands, which change shape appreciably during the refinement process.</p>

<p><img src="/assets/images/posts/2026_08_21/band_structure.gif" alt="Phonon band structure and DOS predicted by a GOODVIBES model of triclinic lysozyme." title="Figure 3" /></p>

<p><em>Figure 3: The phonon band structure (left) and density of states (right) of triclinic lysozyme predicted by GOODVIBES during refinement. Each changes dramatically during refinement to fit the halos in the experimental data.</em></p>

<p>After refinement, the halos are well-fit, and the fully refined harmonic model contains a wealth of easily extractable information that can be compared with other experimental data: the phonon band structure and density of states allow us to determine the independent elastic moduli of the crystal and to calculate the phononic contribution to thermodynamic quantities like entropy and specific heat, which may be anomalous<sup id="fnref:7" role="doc-noteref"><a href="#fn:7" class="footnote" rel="footnote">7</a></sup>.</p>

<h2 id="where-were-going-next">Where we’re going next</h2>

<p>We have a combination of short- and long-term goals for the future development of GOODVIBES.</p>

<ol>
  <li>Demonstrate the full refinement pipeline for the Mac1 protein crystal in the P43 space group (PDB 7tx0<sup id="fnref:5:1" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>), modeling the two independent chains in the asymmetric unit as separate rigid bodies.</li>
  <li>Incorporate structure refinement into the pipeline - can information contained within the diffuse signal be used to get a better average structure?</li>
  <li>Rethink the parameterization of the rigid body interactions - are springs between residues found with a neighbor search an optimal choice for this refinement problem?</li>
  <li>Incorporate flexibility in the rigid body decomposition, perhaps integrating it with other TLS refinement software. This will allow further exploration of how model parameterization affects the portions of the diffuse signal not included in the fit to the experimental diffuse signal.</li>
</ol>

<p>As we continue to develop GOODVIBES, we will be thinking more deeply about how to integrate information gleaned from a fit to this model which assumes phonons in regular crystals generate the diffuse signal with other models that include contributions that come from motion that cannot be understood as harmonic. Non-harmonic contributions to the signal include conformational heterogeneity (modeled with sampleworks<sup id="fnref:8" role="doc-noteref"><a href="#fn:8" class="footnote" rel="footnote">8</a></sup>) and highly disordered protein and solvent (found through molecular dynamics simulations (e.g. Wall et al. 2019<sup id="fnref:9" role="doc-noteref"><a href="#fn:9" class="footnote" rel="footnote">9</a></sup>)).</p>

<p>GOODVIBES is developed in the open. The source code is available at <a href="https://github.com/prism-science/goodvibes">https://github.com/prism-science/goodvibes</a>, and we welcome issues and pull requests.</p>

<h2 id="references">References:</h2>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Wankowicz, S. A. (2026). Recovering Conformational Heterogeneity from the Protein Data Bank at Scale. https://doi.org/10.82153/pff0-ck46 <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Meisburger, S.P., Case, D.A. &amp; Ando, N. Diffuse X-ray scattering from correlated motions in a protein crystal. Nat Commun 11, 1271 (2020). https://doi.org/10.1038/s41467-020-14933-6 <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Polikanov YS, Moore PB. Acoustic vibrations contribute to the diffuse scatter produced by ribosome crystals. Acta Crystallogr D Biol Crystallogr. 2015 Oct;71(Pt 10):2021-31. doi: https://doi.org/10.1107/S1399004715013838 <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>Meisburger, S. P., Case, D. A., &amp; Ando, N. (2023). Robust total X-ray scattering workflow to study correlated motion of proteins in crystals. Nat Commun, 14(1), 1228. https://doi.org/10.1038/s41467-023-36734-3 <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p>Correy, G.J., Fraser, J.S. (2022). Crystal structure of SARS-CoV-2 NSP3 macrodomain in complex with ADP-ribose at pH 9 (P43 crystal form). doi: https://doi.org/10.2210/pdb7TX0/pdb <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:5:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:6" role="doc-endnote">
      <p>Meisburger, S.P., Ando, N. (2020). Hen lysozyme in triclinic space group at ambient temperature - diffuse scattering dataset. doi: https://doi.org/10.2210/pdb6O2H/pdb <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:7" role="doc-endnote">
      <p>Meinhold, L., Merzel, F., &amp; Smith, J. C. (2007) Lattice Dynamics of a Protein Crystal. Phys. Rev. Lett. 99, 138101. https://doi.org/10.1103/PhysRevLett.99.138101 <a href="#fnref:7" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:8" role="doc-endnote">
      <p>Chrispens, K., Collins, M. D., Mai, D., Wankowicz, S. A., Fraser, J. S., &amp; van den Bedem, H. (2026). sampleworks: A Modular Platform for Experimentally Guided Biomolecular Ensemble Generation. https://doi.org/10.82153/jkxj-tw08 <a href="#fnref:8" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:9" role="doc-endnote">
      <p>Wall ME, Calabró G, Bayly CI, Mobley DL, Warren GL. Biomolecular Solvation Structure Revealed by Molecular Dynamics Simulations. J Am Chem Soc. 2019 Mar 20;141(11):4711-4720. https://doi.org/10.1021/jacs.8b13613 <a href="#fnref:9" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Stephen Thornton</name></author><category term="posts" /><category term="diffuse scattering" /><category term="goodvibes" /><summary type="html"><![CDATA[GOODVIBES allows users to model the contribution of harmonic lattice vibrations to diffuse scattering.]]></summary></entry><entry><title type="html">Displaying Conformational Heterogeneity in BANDICOOT</title><link href="https://diffuse.science/post/bandicoot-PRISM-blog-2/" rel="alternate" type="text/html" title="Displaying Conformational Heterogeneity in BANDICOOT" /><published>2026-08-07T00:00:00+00:00</published><updated>2026-08-07T00:00:00+00:00</updated><id>https://diffuse.science/post/bandicoot-PRISM-blog-2</id><content type="html" xml:base="https://diffuse.science/post/bandicoot-PRISM-blog-2/"><![CDATA[<p>In order for structural biologists to effectively use the new paradigm of hierarchical conformational heterogeneity to understand and build macromolecular structures, they should be able to view and model it. The new version of <a href="https://diffuse.science/post/bandicoot/">BANDICOOT</a> (v0.1.4.12) takes a small step in that direction by introducing a new atom coloring mode: by alternate conformation.</p>

<p>This display mode, selected in a drop-down menu in BANDICOOT’s Display Manager, generates a hue offset for each altloc (a residue modeled with conformational hetereogeneity) such that all the alternate conformations are visually distinguishable at a glance. The offsets are configurable, so that each user can create the level of visual distinction most comfortable and intuitive to them. The mode works smoothly: removing all alternate conformations automatically reverts the residue to the coloring of bulk molecule, while each added alternate conformation is automatically hue-shifted from the last one.</p>

<p>This is only the first small step in a larger project to implement hierarchical heterogeneity tools and features in BANDICOOT. When complete, users will be able to not only view altlocs in different colors, but visualize the hierarchy, assign hierarchical positions to each alternate conformation, and, importantly, output mmCIF-formatted files with this information.</p>

<figure class=" ">
  
    
      <a href="/assets/images/posts/2026_08_07/altloc_coloring_bandicoot_3NYD.png" title="Model colored by heterogeneity displayed in Bandicoot v0.1.4.12">
          <img src="/assets/images/posts/2026_08_07/altloc_coloring_bandicoot_3NYD.png" alt="" />
      </a>
    
  
  
    <figcaption>Model colored by heterogeneity displayed in Bandicoot v0.1.4.12
</figcaption>
  
</figure>

<p>Bandicoot is an open-source project, forked from Coot 0.9.8.95. Source code and binary releases are available for download from the public repository at <a href="https://github.com/fraser-lab/bandicoot">https://github.com/fraser-lab/bandicoot</a>. Currently, Bandicoot runs on only on MacOS (tested on Tahoe but runnable on previous MacOS versions as well). It’s a work in progress and thus is a bit rough around the edges. Users are encouraged to report any issues and submit pull requests.</p>]]></content><author><name>Art Lyubimov</name></author><category term="post" /><category term="coot" /><category term="molecular modeling" /><category term="macos" /><summary type="html"><![CDATA[In preparation for hierarchical hetereogeneity encoding, BANDICOOT has a new, more intuitive display mode for alternate conformations.]]></summary></entry><entry><title type="html">mmCIF Explorer and the Heterogeneity Proposal</title><link href="https://diffuse.science/posts/mmcif-browser/" rel="alternate" type="text/html" title="mmCIF Explorer and the Heterogeneity Proposal" /><published>2026-07-25T00:00:00+00:00</published><updated>2026-07-25T00:00:00+00:00</updated><id>https://diffuse.science/posts/mmcif-browser</id><content type="html" xml:base="https://diffuse.science/posts/mmcif-browser/"><![CDATA[<p>The atomic models in the PDB are, for the most part, static snapshots: one set of coordinates representing what is usually a population of many copies of a molecule. A growing body of work across structural biology and machine learning is trying to look past that snapshot at the distribution underneath it, and to predict<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>, measure<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup> and represent<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup><sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup> it. This goes under the loose heading of “heterogeneity” — a molecule modelled not as a single conformation but as an ensemble of them, with populations.</p>

<p>One of the hurdles to this is less scientific than operational: you have to be able to write whatever you are trying to represent down — <a href="https://mmcif.wwpdb.org/">PDBx/mmCIF</a>. That format is old, rich, and has a very particular structure that a large amount of software reads, writes and depends on. So extending it gracefully is nontrivial. Any extension has to satisfy several kinds of constraint — physical (it must be able to say what is true of the sample), ontological (it must sit sensibly inside the existing dictionary), and social (the surrounding ecosystem should be able to adopt without rewriting too much).</p>

<p>The tool we are putting together is a bit of a playground towards this effort: <a href="https://mmcif-browser-2.vercel.app/">mmcif-browser</a>. There are three pages: a browser for the mmCIF dictionary itself, a live file inspector paired with a 3D viewer (inspired by <a href="https://godbolt.org/">the compiler explorer</a>) – source on one side, its consequence on the other – and a written version of the current working proposal that anyone can read and pick apart.</p>

<p><img src="/assets/images/posts/2026-07-25/mmcif-browser-image1.png" alt="Screenshot of the mmcif-browser file inspector and 3D viewer" title="Figure 1" />
<em>Figure 1: The mmcif-browser file inspector and 3D viewer.</em></p>

<ol>
  <li><strong>The dictionary switcher</strong> — flips the definitions the page reads between plain PDBx/mmCIF v50 and v50 plus the proposed heterogeneity extension, so the new categories light up (or don’t).</li>
  <li><strong>The examples</strong> — the set of example files to play with (some real PDB depositions, some hand-crafted scenarios in service of the proposal).</li>
  <li><strong>The heterogeneity states</strong> — where the file contains clearly defined heterogeneity states (either via the existing altloc/occupancy/bfactor mechanisms or via the newly-proposed ones) I provide some QOL UI elements to toggle through them.</li>
  <li><strong>The settings bar</strong> — contains filters and by-category navigation so one may quickly find the part of the cif file that one needs.</li>
</ol>

<h2 id="the-current-proposal-briefly">The current proposal, briefly</h2>

<p><img src="/assets/images/posts/2026-07-25/mmcif-browser-image2.png" alt="Diagram of the proposed heterogeneity categories and how they relate to existing altloc/occupancy fields" title="Figure 2" />
<em>Figure 2: The proposed heterogeneity categories, layered on top of the existing altloc/occupancy/bfactor mechanisms.</em></p>

<p>mmCIF already records two things per atom: which alternate a given atom belongs to (<code class="language-plaintext highlighter-rouge">label_alt_id</code>), and the fraction of copies it is present in (<code class="language-plaintext highlighter-rouge">occupancy</code>).</p>

<p>Both are one-atom-at-a-time facts. What they cannot express is which alternates are found <em>together</em> in the same copy — the correlation between sites, the joint distribution rather than its marginals.</p>

<p>The extension aims to add a few optional categories that name alternate states, say which of them exclude one another, and list the combinations that actually co-occur with their joint occupancy.</p>

<p>If that were added, that would bring us one step closer to being able to <em>communicate</em> multiple types of heterogeneity, but it’s very much an open problem as to how to actually compute these joint states perfectly, define or recover them from standard refinement and bundle them together into biologically meaningful states.</p>

<p>All of this is very much a work in progress — the proposal most of all.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Zhong, E. D., Bepler, T., Berger, B. &amp; Davis, J. H. CryoDRGN: reconstruction of heterogeneous cryo-EM structures using neural networks. <em>Nat Methods</em> 18, 176–185 (2021). https://doi.org/10.1038/s41592-020-01049-4 <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Meisburger, S. P., Case, D. A. &amp; Ando, N. Robust total X-ray scattering workflow to study correlated motion of proteins in crystals. <em>Nat Commun</em> 14, 1228 (2023). https://doi.org/10.1038/s41467-023-36734-3 <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Riley, B. T., Wankowicz, S. A., de Oliveira, S. H. P., van Zundert, G. C. P., Hogan, D. W., Fraser, J. S., Keedy, D. A. &amp; van den Bedem, H. qFit 3: Protein and ligand multiconformer modeling for X-ray crystallographic and single-particle cryo-EM density maps. <em>Protein Sci</em> 30, 270–285 (2021). https://doi.org/10.1002/pro.4001 <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>Pearce, N. M. &amp; Gros, P. A method for intuitively extracting macromolecular dynamics from structural disorder. <em>Nat Commun</em> 12, 5493 (2021). https://doi.org/10.1038/s41467-021-25814-x <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Artem Kushner</name><email>rtkushner@gmail.com</email></author><category term="posts" /><category term="meta" /><category term="encoding" /><category term="tools" /><summary type="html"><![CDATA[A playground for the PDBx/mmCIF file exploration, a look at the current proposal for encoding correlated heterogeneity]]></summary></entry><entry><title type="html">Is it all just the lattice?</title><link href="https://diffuse.science/posts/taylor-roadmap/" rel="alternate" type="text/html" title="Is it all just the lattice?" /><published>2026-07-24T00:00:00+00:00</published><updated>2026-07-24T00:00:00+00:00</updated><id>https://diffuse.science/posts/taylor-roadmap</id><content type="html" xml:base="https://diffuse.science/posts/taylor-roadmap/"><![CDATA[<h2 id="towards-a-complete-forward-model-of-diffuse-scattering">Towards a complete forward model of diffuse scattering</h2>

<p>Even when crystallized, proteins move. But each copy in the thousands of unit cells don’t all move the same way. Therefore, a protein crystal is in essence a spatial sampling of the thermodynamic ensemble of a protein (within the lattice). These varied internal motions within each unit cell have been identified as a major contribution to the diffuse X-ray scattering intensity. Diffuse scatter is caused by variance in the structure factors between every unit cell in a crystal. X-ray crystallography has therefore always had the potential to detect correlated intraprotein motions, if only we can learn how to interpret the diffuse signal properly<sup id="fnref:1" role="doc-noteref"><a href="#fn:1" class="footnote" rel="footnote">1</a></sup>. These correlated motions are likely to underlie many biologically relevant movements.</p>

<p>This is the challenge that the diffUSE team has been working on for the past year, but there’s a big complication: internal protein motions aren’t the only contribution to the diffuse scattering signal, and they likely aren’t even the majority component<sup id="fnref:2" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup>. Lattice vibrations known as phonons (basically sound waves) move throughout the crystal lattice and cause long-range disorder that is picked up in the diffuse signal. We can think of these vibrational modes as whole proteins fluctuating around their average positions. Since this disorder is long-range and the vibrations are due to motions of entire unit cells, this type of diffuse scattering mostly shows up as extra intensity concentrated around Bragg peaks, dubbing this feature’s name: halos.</p>

<p>Before we can get to interpreting the signal from the (interesting) internal protein motions, we’d like to isolate this vibrational lattice signal. A great way to remove a signal you’re not interested in is to have a forward model that generates exactly what that signal is, then simply subtract it. This is exactly what the GOODVIBES lattice dynamics simulator developed by Steve Meisburger, David Case, and Nozomi Ando does<sup id="fnref:3" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>. In earlier studies on hen egg-white lysozyme crystals<sup id="fnref:2:1" role="doc-noteref"><a href="#fn:2" class="footnote" rel="footnote">2</a></sup><sup id="fnref:3:1" role="doc-noteref"><a href="#fn:3" class="footnote" rel="footnote">3</a></sup>, these halo features were effectively simulated by rigid-body elastic network models. Residues, domains, or entire protein molecules were treated as stiff objects where a force (or torque!) applied to one atom causes the whole object to move. These rigid bodies are coupled at contact points by springs and vibrate around their equilibria according to two refineable energy potentials:</p>

\[V^{(\text{Gauss.})}_{ij}=\frac{1}{2}k^\text{G}_{ij}\left|\mathbf{u}_i-\mathbf{u}_j\right|^2\]

\[V^{(\text{dir.})}_{ij}=\frac{1}{2}k^\text{d}_{ij}\left((\mathbf{u}_i-\mathbf{u}_j)\cdot\hat{\mathbf{r}}_{ij}\right)^2\]

<p>where $i$ and $j$ are the indices of the coupled atoms, $\mathbf{u}$ is the displacement vector of an atom from its equilibrium position, the $k_{ij}$s are the respective refineable spring constants between atoms $i$ and $j$, and $\hat{\mathbf{r}}_{ij}$ is the unit vector pointing from atom $i$’s equilibrium position to $j$’s. In this case the complete potential energy of the system is</p>

\[V=\sum_{i&lt;j}\left(V^{(\text{Gauss.})}_{ij}+V^{(\text{dir.})}_{ij}\right).\]

<p>In the harmonic approximation, and for dimensional indices $l\in\lbrace x,y,z\rbrace$, forces on the $i^{\text{th}}$ atom in the $l$ direction due to displacement of the $j^{\text{th}}$ atom along the $l’$ direction are described as</p>

\[F_{ij}^{ll{'}}=-\frac{\partial^2V}{\partial u_i^l\partial u_j^{l{'}}}.\]

<p>Rigid body vibrations can be turned into scattering factors through the one-phonon approximation for thermal diffuse scattering<sup id="fnref:4" role="doc-noteref"><a href="#fn:4" class="footnote" rel="footnote">4</a></sup>. Continued improvements to the GOODVIBES model will not only help isolate unwanted lattice vibrations, but may also help describe biologically important domain movements that are well-approximated by rigid bodies (e.g. catalytically-relevant hinge-bending). This work will be continued by the diffUSE East team especially by the Ando Lab’s new postdoctoral scholar, Stephen Thornton.</p>

<p>Our ultimate goal is a forward model of the complete diffuse scattering map — containing features arising from both rigid-body motions and short-ranged atomistic ones. Molecular dynamics (MD) simulations are still the best tool we have to assess conformational flexibility at the atomic scale. Other diffUSE member (and great mentor!) Mike Wall has developed a structure factor calculation script <code class="language-plaintext highlighter-rouge">xtraj.py</code> in the <em>Lunus</em> package (<a href="https://www.github.com/lanl/lunus">https://www.github.com/lanl/lunus</a>) which generates both $F_{calc}$’s and diffuse intensities from MD trajectories. MD combined with xtraj allows us to model diffuse scatter directly associated with protein internal motions, and the isotropic component of the diffuse signal has been well-characterized using it<sup id="fnref:5" role="doc-noteref"><a href="#fn:5" class="footnote" rel="footnote">5</a></sup>. However, MD runs are far too computationally expensive to simulate an entire protein crystal. Therefore, MD diffuse maps are missing lattice vibrational features as discussed above, yet they probably aren’t missing all of them. When performing MD simulations of crystals, we need a supercell of several unit cells in order to avoid autocorrelation artifacts. Even in the minimally viable 2x2x2 system, we have a portion of the extended crystal lattice which introduces vibrational elements. To what extent MD recapitulates vibrational features is an open question, and the first system we are using to tackle this question is a 5x5x5 supercell of triclinic lysozyme (6O2H, Figure 1).</p>

<p><img src="/assets/images/posts/2026-07-24/6O2H_5x5x5.png" alt="5x5x5 supercell of triclinic lysozyme 6O2H" title="Figure 1" />
<em>Figure 1: (Left) HEW lysozyme 6O2H structure. (Right) Our solvated and equilibrated 5x5x5 triclinic crystal built from 6O2H. This system was used as the basis for production simulations of both restrained and unrestrained dynamics.</em></p>

<p>So far, I’ve simulated this system over 1μs, calculated the relevant structure factors using <code class="language-plaintext highlighter-rouge">xtraj.py</code>, and generated total scattering diffraction series (Bragg + diffuse) using James Holton’s nanoBragg diffraction plotter (Figure 2). I’m working on processing these simulated datasets using the mdx2 diffuse scatter processing pipeline in an attempt to replicate the workflow that we use for experimental data<sup id="fnref:6" role="doc-noteref"><a href="#fn:6" class="footnote" rel="footnote">6</a></sup>. After that, I plan to fit my simulated diffuse map to a GOODVIBES elastic network model to see which halo features are present. The overall questions I am trying to answer are:</p>

<ol>
  <li>How can we generate accurate total scattering from crystal dynamics simulations and correctly compare it to experimental data?</li>
  <li>What methods most effectively deconvolve lattice dynamics from internal motions?</li>
</ol>

<p><img src="/assets/images/posts/2026-07-24/6O2H_nB_res-un.jpg" alt="Simulated diffraction image from 6O2H MD trajectory" title="Figure 2" />
<em>Figure 2: Total scattering diffraction images generated from MD trajectories of the 5x5x5 6O2H crystal using nanoBragg. (Left) Image from a restrained MD run in which the protein’s heavy atoms were harmonically restrained to their crystallographic coordinates. The Bragg lattice is unrealistically strong and minimal diffuse scatter is observed. (Right) Image from an unrestrained run. The Bragg lattice is weaker and diffuse scatter is evident. It’s possible that targeted restraints and tuning of the well-strength are an avenue to isolating specific motions in the crystal.</em></p>

<p>If we can identify which vibrations occur in MD, there may be a way to bias the simulation to remove those features while leaving the internal motions unbiased, thus enabling us to simulate a complete diffuse map with MD internal motions and fully realized lattice vibrations from GOODVIBES. Or perhaps constituting the complete diffuse map will be as simple as subtracting out the incomplete vibrational features from MD and adding in the complete ones from a GOODVIBES simulation. These speculations have yet to be clarified, and I am open to feedback and suggestions!</p>

<p>If we can develop an accurate forward model for all the major features of a protein crystal’s diffuse scattering map, we will not only have advanced the study of dynamic structural biology on a theoretical level — we will also enable machine learning and AI tools to use diffuse maps to distinguish between ensembles that produce identical dynamically averaged Bragg data. Tools like the <a href="https://thestacks.org/publications/sampleworks-release"><em>sampleworks</em></a> platform pioneered by the modeling team within diffUSE. Suffice it to say, diffuse scattering is indeed <em>not</em> merely due to lattice vibrations, but the lattice signal is significant and cannot be ignored; my contribution to the diffUSE project begins with moving us towards developing such a complete forward model.</p>

<div class="footnotes" role="doc-endnotes">
  <ol>
    <li id="fn:1" role="doc-endnote">
      <p>Welberry, T. R., &amp; Weber, T. (2016). One hundred years of diffuse scattering. <em>Crystallography Reviews</em>, 22(1), 2–78. https://doi.org/10.1080/0889311X.2015.1046853 <a href="#fnref:1" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:2" role="doc-endnote">
      <p>Meisburger, S.P., Case, D.A. &amp; Ando, N. Diffuse X-ray scattering from correlated motions in a protein crystal. <em>Nat Commun</em> 11, 1271 (2020). https://doi.org/10.1038/s41467-020-14933-6 <a href="#fnref:2" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:2:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:3" role="doc-endnote">
      <p>Meisburger, S.P., Case, D.A. &amp; Ando, N. Robust total X-ray scattering workflow to study correlated motion of proteins in crystals. <em>Nat Commun</em> 14, 1228 (2023). https://doi.org/10.1038/s41467-023-36734-3 <a href="#fnref:3" class="reversefootnote" role="doc-backlink">&#8617;</a> <a href="#fnref:3:1" class="reversefootnote" role="doc-backlink">&#8617;<sup>2</sup></a></p>
    </li>
    <li id="fn:4" role="doc-endnote">
      <p>Willis, B. T. M. (2010). Thermal diffuse scattering of X-rays and neutrons. In <em>International Tables for Crystallography</em>, Vol. B, ch. 4.1, pp. 484–491. https://doi.org/10.1107/97809553602060000773 <a href="#fnref:4" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:5" role="doc-endnote">
      <p>Wych, D. C. and Wall, M. E. (2023). Molecular-dynamics simulations of macromolecular diffraction, part II: Analysis of protein crystal simulations. In N. Ando (Ed.), <em>Methods in Enzymology</em>, Vol. 688, pp. 115–143. Academic Press. https://doi.org/10.1016/bs.mie.2023.06.012 <a href="#fnref:5" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
    <li id="fn:6" role="doc-endnote">
      <p>Meisburger, S. P. and Ando, N. (2023). Processing macromolecular diffuse scattering data. In N. Ando (Ed.), <em>Methods in Enzymology</em>, Vol. 688, pp. 43–86. Academic Press. https://doi.org/10.1016/bs.mie.2023.06.010 <a href="#fnref:6" class="reversefootnote" role="doc-backlink">&#8617;</a></p>
    </li>
  </ol>
</div>]]></content><author><name>Taylor Womack</name><email>Taylor.Womack@ucsf.edu</email></author><category term="posts" /><category term="meta" /><summary type="html"><![CDATA[Taylor's update on his work in the diffUSE project and the roadmap to a complete forward model of diffuse scattering.]]></summary></entry></feed>