Files
Jungfraujoch/CPU_DATA_ANALYSIS.html
T
2026-10-06 20:38:39 +00:00

1 line
30 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html> <html lang=en data-content_root="./"> <meta charset=utf-8 /> <meta name=viewport content="width=device-width, initial-scale=1.0" /><meta name=viewport content="width=device-width, initial-scale=1" /> <meta name=viewport content="width=device-width,initial-scale=1"> <meta http-equiv=x-ua-compatible content="ie=edge"> <meta name="lang:clipboard.copy" content="Copy to clipboard"> <meta name="lang:clipboard.copied" content="Copied to clipboard"> <meta name="lang:search.language" content=en > <meta name="lang:search.pipeline.stopwords" content=True > <meta name="lang:search.pipeline.trimmer" content=True > <meta name="lang:search.result.none" content="No matching documents"> <meta name="lang:search.result.one" content="1 matching document"> <meta name="lang:search.result.other" content="# matching documents"> <meta name="lang:search.tokenizer" content="[\s\-]+"> <link href="https://fonts.gstatic.com/" rel=preconnect crossorigin> <link href="https://fonts.googleapis.com/css?family=Roboto+Mono:400,500,700|Roboto:300,400,400i,700&display=fallback" rel=stylesheet > <style> body, input { font-family: "Roboto", "Helvetica Neue", Helvetica, Arial, sans-serif } code, kbd, pre { font-family: "Roboto Mono", "Courier New", Courier, monospace } </style> <link rel=stylesheet href="_static/stylesheets/application.css"/> <link rel=stylesheet href="_static/stylesheets/application-palette.css"/> <link rel=stylesheet href="_static/stylesheets/application-fixes.css"/> <link rel=stylesheet href="_static/fonts/material-icons.css"/> <meta name=theme-color content="#3f51b5"> <script src="_static/javascripts/modernizr.js"></script> <title>CPU-side crystallographic data analysis (Jungfraujoch) &#8212; Jungfraujoch 1.0.0-rc.174 documentation</title> <link rel=stylesheet type="text/css" href="_static/pygments.css?v=83e35b93" /> <link rel=stylesheet type="text/css" href="_static/material.css?v=79c92029" /> <script src="_static/documentation_options.js?v=3dccfb20"></script> <script src="_static/doctools.js?v=9bcbadda"></script> <script src="_static/sphinx_highlight.js?v=dc90522c"></script> <link rel=icon href="_static/jfjoch.png"/> <link rel=index title=Index href=genindex.html /> <link rel=search title=Search href=search.html /> <link rel=next title="Data analysis: from images to spots (§0–§3)" href=CPU_DATA_ANALYSIS_IMAGE.html /> <link rel=prev title="Detector calibration from powder rings (rugnux --mode calibration)" href=RUGNUX_CALIBRATION.html /> <body dir=ltr data-md-color-primary=indigo data-md-color-accent=lime> <svg class=md-svg > <defs data-children-count=0 > <svg xmlns="http://www.w3.org/2000/svg" width=500 height=500 viewBox="0 0 500 500" id=__gitlab ><path fill=currentColor d="M93.667 473.347l90.684-279.097H2.983l90.684 279.097z" transform="translate(156.198 1.16)"/><path fill=currentColor d="M221.333 473.345L130.649 194.25H3.557l217.776 279.095z" transform="translate(28.531 1.16)" opacity=.7 /><path fill=currentColor d="M32 195.155L4.441 279.97a18.773 18.773 0 0 0 6.821 20.99l238.514 173.29L32 195.155z" transform="translate(.089 .256)" opacity=.5 /><path fill=currentColor d="M2.667-84.844h127.092L75.14-252.942c-2.811-8.649-15.047-8.649-17.856 0L2.667-84.844z" transform="translate(29.422 280.256)"/><path fill=currentColor d="M2.667 473.345L93.351 194.25h127.092L2.667 473.345z" transform="translate(247.198 1.16)" opacity=.7 /><path fill=currentColor d="M221.334 195.155l27.559 84.815a18.772 18.772 0 0 1-6.821 20.99L3.557 474.25l217.777-279.095z" transform="translate(246.307 .256)" opacity=.5 /><path fill=currentColor d="M130.667-84.844H3.575l54.618-168.098c2.811-8.649 15.047-8.649 17.856 0l54.618 168.098z" transform="translate(336.974 280.256)"/></svg> </defs> </svg> <input class=md-toggle data-md-toggle=drawer type=checkbox id=__drawer > <input class=md-toggle data-md-toggle=search type=checkbox id=__search > <label class=md-overlay data-md-component=overlay for=__drawer ></label> <a href="#CPU_DATA_ANALYSIS" tabindex=1 class=md-skip > Skip to content </a> <header class=md-header data-md-component=header > <nav class="md-header-nav md-grid"> <div class="md-flex navheader"> <div class="md-flex__cell md-flex__cell--shrink"> <a href=index.html title="Jungfraujoch 1.0.0-rc.174 documentation" class="md-header-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--menu md-header-nav__button" for=__drawer ></label> </div> <div class="md-flex__cell md-flex__cell--stretch"> <div class="md-flex__ellipsis md-header-nav__title" data-md-component=title > <span class=md-header-nav__topic >PSI Jungfraujoch</span> <span class=md-header-nav__topic > CPU-side crystallographic data analysis (Jungfraujoch) </span> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <label class="md-icon md-icon--search md-header-nav__button" for=__search ></label> <div class=md-search data-md-component=search role=dialog > <label class=md-search__overlay for=__search ></label> <div class=md-search__inner role=search > <form class=md-search__form action=search.html method=get name=search > <input type=text class=md-search__input name=q placeholder=""Search"" autocapitalize=off autocomplete=off spellcheck=false data-md-component=query data-md-state=active > <label class="md-icon md-search__icon" for=__search ></label> <button type=reset class="md-icon md-search__icon" data-md-component=reset tabindex=-1 > &#xE5CD; </button> </form> <div class=md-search__output > <div class=md-search__scrollwrap data-md-scrollfix> <div class=md-search-result data-md-component=result > <div class=md-search-result__meta > Type to start searching </div> <ol class=md-search-result__list ></ol> </div> </div> </div> </div> </div> </div> <div class="md-flex__cell md-flex__cell--shrink"> <div class=md-header-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> </div> <script src="_static/javascripts/version_dropdown.js"></script> <script> var json_loc = ""versions.json"", target_loc = "../", text = "Versions"; $( document ).ready( add_version_dropdown(json_loc, target_loc, text)); </script> </div> </nav> </header> <div class=md-container > <nav class=md-tabs data-md-component=tabs > <div class="md-tabs__inner md-grid"> <ul class=md-tabs__list > <li class=md-tabs__item ><a href=index.html class=md-tabs__link >Jungfraujoch 1.0.0-rc.174 documentation</a> </ul> </div> </nav> <main class=md-main > <div class="md-main__inner md-grid" data-md-component=container > <div class="md-sidebar md-sidebar--primary" data-md-component=navigation > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--primary" data-md-level=0 > <label class="md-nav__title md-nav__title--site" for=__drawer > <a href=index.html title="Jungfraujoch 1.0.0-rc.174 documentation" class="md-nav__button md-logo"> <i class=md-icon >&#xe30d</i> </a> <a href=index.html title="Jungfraujoch 1.0.0-rc.174 documentation">PSI Jungfraujoch</a> </label> <div class=md-nav__source > <a href="https://gitea.psi.ch/mx/jungfraujoch" title="Go to repository" class=md-source data-md-source=github > <div class=md-source__icon > <svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 24 24" width=28 height=28 > <use xlink:href="#__gitlab" width=24 height=24 ></use> </svg> </div> <div class=md-source__repository > Jungfraujoch </div> </a> </div> <ul class=md-nav__list > <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >rugnux — data processing</span></span> <li class=md-nav__item > <a href=RUGNUX.html class=md-nav__link >Rugnux</a> <li class=md-nav__item > <a href=RUGNUX_OVERVIEW.html class=md-nav__link >What Rugnux does</a> <li class=md-nav__item > <a href=RUGNUX_INSTALL.html class=md-nav__link >Installing Rugnux</a> <li class=md-nav__item > <a href=RUGNUX_FORMATS.html class=md-nav__link >What Rugnux reads</a> <li class=md-nav__item > <a href=RUGNUX_TUTORIAL.html class=md-nav__link >Running Rugnux</a> <li class=md-nav__item > <a href=RUGNUX_INTEGRATION.html class=md-nav__link >Rugnux with other programs</a> <li class=md-nav__item > <a href=RUGNUX_REPORT.html class=md-nav__link >The results report</a> <li class=md-nav__item > <a href=RUGNUX_ADVANCED.html class=md-nav__link >Advanced Rugnux</a> <li class=md-nav__item > <a href=RUGNUX_CALIBRATION.html class=md-nav__link >Detector calibration from powder rings (<code class="docutils literal notranslate"><span class=pre >rugnux</span> <span class=pre >--mode</span> <span class=pre >calibration</span></code>)</a> <li class=md-nav__item > <input class="md-toggle md-nav__toggle" data-md-toggle=toc type=checkbox id=__toc > <label class="md-nav__link md-nav__link--active" for=__toc > CPU-side crystallographic data analysis (Jungfraujoch) </label> <a href="#" class="md-nav__link md-nav__link--active">CPU-side crystallographic data analysis (Jungfraujoch)</a> <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> <ul class=md-nav__list > <li class=md-nav__item > <a href="#references" class=md-nav__link >References</a> </ul> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS_IMAGE.html class=md-nav__link >Data analysis: from images to spots (§0–§3)</a> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS_INDEXING.html class=md-nav__link >Data analysis: indexing and geometry (§4–§7)</a> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS_INTEGRATION.html class=md-nav__link >Data analysis: integration, scaling and merging (§8–§12)</a> <li class=md-nav__item > <a href=CPU_DATA_ANALYSIS_DECISIONS.html class=md-nav__link >Data analysis: space group and validation (§13–§14)</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Jungfraujoch — acquisition</span></span> <li class=md-nav__item > <a href=JFJOCH_BROKER.html class=md-nav__link >jfjoch_broker</a> <li class=md-nav__item > <a href=JFJOCH_WRITER.html class=md-nav__link >jfjoch_writer</a> <li class=md-nav__item > <a href=JFJOCH_VIEWER.html class=md-nav__link >jfjoch_viewer</a> <li class=md-nav__item > <a href=SOFTWARE_INTEGRATION.html class=md-nav__link >Integration with MX data processing software</a> <li class=md-nav__item > <a href=TOOLS.html class=md-nav__link >Tools</a> <li class=md-nav__item > <a href=DEPLOYMENT.html class=md-nav__link >Deployment</a> <li class=md-nav__item > <a href=DETECTORS.html class=md-nav__link >Supported detectors</a> <li class=md-nav__item > <a href=HARDWARE.html class=md-nav__link >Hardware requirements</a> <li class=md-nav__item > <a href=SOFTWARE.html class=md-nav__link >Software requirements</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >FPGA</span></span> <li class=md-nav__item > <a href=FPGA.html class=md-nav__link >FPGA smartNIC</a> <li class=md-nav__item > <a href=FPGA_LICENSE.html class=md-nav__link >FPGA license</a> <li class=md-nav__item > <a href=FPGA_DESIGN.html class=md-nav__link >FPGA data flow</a> <li class=md-nav__item > <a href=FPGA_NETWORK.html class=md-nav__link >FPGA network</a> <li class=md-nav__item > <a href=FPGA_PCIE_DRIVER.html class=md-nav__link >FPGA PCIe driver</a> <li class=md-nav__item > <a href=FPGA_SETTINGS.html class=md-nav__link >FPGA advanced reference</a> <li class=md-nav__item > <a href=FPGA_DATA_ANALYSIS.html class=md-nav__link >FPGA data analysis</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Reference</span></span> <li class=md-nav__item > <a href=DETECTOR_GEOMETRY.html class=md-nav__link >Detector geometry</a> <li class=md-nav__item > <a href=OPENAPI.html class=md-nav__link >OpenAPI</a> <li class=md-nav__item > <a href=OPENAPI_SPECS.html class=md-nav__link >OpenAPI specification</a> <li class=md-nav__item > <a href=PYTHON_CLIENT.html class=md-nav__link >OpenAPI Python client</a> <li class=md-nav__item > <a href=CBOR.html class=md-nav__link >CBOR messages</a> <li class=md-nav__item > <a href=HDF5.html class=md-nav__link >HDF5 / NeXus data format</a> <li class=md-nav__item > <a href=IMAGE_STREAM.html class=md-nav__link >Data streams</a> <li class=md-nav__item > <a href=PIXEL_MASK.html class=md-nav__link >Pixel mask</a> <li class=md-nav__item > <a href=WEB_FRONTEND.html class=md-nav__link >Web frontend</a> <li class=md-nav__item > <a href=TESTS.html class=md-nav__link >Tests</a> <li class=md-nav__item > <span class="md-nav__link caption"><span class=caption-text >Project</span></span> <li class=md-nav__item > <a href=ACKNOWLEDGEMENT.html class=md-nav__link >Acknowledgements</a> <li class=md-nav__item > <a href=EXTERNAL_TEST_DATA.html class=md-nav__link >External test data</a> <li class=md-nav__item > <a href=LICENSE.html class=md-nav__link >License</a> <li class=md-nav__item > <a href=THIRD_PARTY_NOTICES.html class=md-nav__link >Third-party software notices</a> <li class=md-nav__item > <a href=VERSIONING.html class=md-nav__link >Semantic versioning</a> <li class=md-nav__item > <a href=SECURITY.html class=md-nav__link >Security</a> <li class=md-nav__item > <a href=RELEASE_CONTENTS.html class=md-nav__link >Release contents</a> <li class=md-nav__item > <a href=REPOSITORIES.html class=md-nav__link >Linux package repositories</a> <li class=md-nav__item > <a href=NAMING.html class=md-nav__link >Naming</a> <li class=md-nav__item > <a href=CHANGELOG.html class=md-nav__link >Changelog</a> </ul> </nav> </div> </div> </div> <div class="md-sidebar md-sidebar--secondary" data-md-component=toc > <div class=md-sidebar__scrollwrap > <div class=md-sidebar__inner > <nav class="md-nav md-nav--secondary"> <ul class=md-nav__list data-md-scrollfix=""> </ul> </nav> </div> </div> </div> <div class=md-content > <article class="md-content__inner md-typeset" role=main > <section class="tex2jax_ignore mathjax_ignore" id=cpu-side-crystallographic-data-analysis-jungfraujoch > <h1 id=cpu-data-analysis--page-root >CPU-side crystallographic data analysis (Jungfraujoch)<a class=headerlink href="#cpu-data-analysis--page-root" title="Link to this heading"></a></h1> <p>This document describes the crystallographic algorithms implemented in Jungfraujoch for <strong>CPU</strong>- and <strong>GPU</strong>-side real‑time and near‑real‑time data analysis.</p> <p><strong>Scope.</strong> The pipeline covered here comprises:</p> <ol class="arabic simple"> <li><p>geometry mapping and corrections,</p> <li><p>azimuthal integration (powder/radial profiles),</p> <li><p>Bragg spot finding (strong pixels → connected components → spot descriptors),</p> <li><p>indexing (still and rotation modes),</p> <li><p>Bravais lattice / centering inference,</p> <li><p>geometry and lattice refinement,</p> <li><p>reflection prediction (still and rotation),</p> <li><p>Bragg integration by either 2D box summation or profile fitting (Kabsch, reference-free),</p> <li><p>scaling and merging,</p> <li><p>merge-level error modelling, outlier rejection and the resolution cutoff,</p> <li><p>space-group determination from the merged intensities (Laue group, screw axes, glide planes, centering, the centre of symmetry), the twinning check and the translational pseudo-symmetry check,</p> <li><p>auxiliary statistics (Wilson plot, ⟨I/σ(I)⟩, CC1/2, CCref),</p> <li><p>amplitude estimation (French–Wilson) and R-free test-set flagging,</p> <li><p>optional model-based validation: rigid-body placement of a supplied model, R-free against it, sigma_A-weighted 2mFo−DFc / mFo−DFc electron-density maps, and an anomalous difference map with the strongest anomalous sites named.</p> </ol> <p>The reference is split into four parts, in pipeline order; the section numbers run continuously across them and are the ones the rest of the documentation cites.</p> <ul class=simple > <li><p><a class="reference internal" href=CPU_DATA_ANALYSIS_IMAGE.html ><span class="std std-doc">From images to spots (§0–§3)</span></a> — device-side decoding, geometry and reciprocal-space mapping, azimuthal integration, spot finding.</p> <li><p><a class="reference internal" href=CPU_DATA_ANALYSIS_INDEXING.html ><span class="std std-doc">Indexing and geometry refinement (§4–§7)</span></a> — FFT and fast-feedback indexing, the lattice search, geometry refinement, post-refinement and powder calibration.</p> <li><p><a class="reference internal" href=CPU_DATA_ANALYSIS_INTEGRATION.html ><span class="std std-doc">Prediction, integration, scaling and merging (§8–§12)</span></a> — reflection prediction, profile-fitted integration, scaling, merging, mosaicity and the auxiliary statistics.</p> <li><p><a class="reference internal" href=CPU_DATA_ANALYSIS_DECISIONS.html ><span class="std std-doc">Space group and validation (§13–§14)</span></a> — the space-group search, twinning and translational pseudo-symmetry, the resolution cutoff, diffraction anisotropy, and model-based validation.</p> </ul> <section id=references > <h2 id=references >References<a class=headerlink href="#references" title="Link to this heading"></a></h2> <p>The methods draw on, and in places reimplement, solutions from:</p> <ul class=simple > <li><p>W. Kabsch, “XDS”, <em>Acta Cryst.</em> <strong>D66</strong> (2010), 125–132 and related XDS papers (rotation geometry, partiality, scaling concepts).</p> <li><p>W. Kabsch, “Integration, scaling, space-group assignment and post-refinement”, <em>Acta Cryst.</em> <strong>D66</strong> (2010), 133–144 (mosaicity/partiality likelihood treatment; notation such as ζ and rotation factors).</p> <li><p>T. A. White et al., CrystFEL method papers (spot finding, three‑ring integration, serial/still diffraction processing concepts).</p> <li><p>J. Kieffer &amp; J. P. Wright, “PyFAI: a Python library for high performance azimuthal integration on GPU”, <em>Powder Diffraction</em> <strong>28</strong> (2013), S339-S350 (detector geometry definition, azimuthal integration)</p> <li><p>I. Steller, R. Bolotovsky &amp; M. G. Rossmann, “An algorithm for automatic indexing of oscillation images using Fourier analysis”, <em>J. Appl. Cryst.</em> <strong>30</strong> (1997), 1036-1040 (the projection/1D-FFT autoindexing algorithm of §5).</p> <li><p>H. Powell, “The Rossmann Fourier autoindexing algorithm in MOSFLM”, <em>Acta Cryst.</em> <strong>D55</strong> (1999), 1690-1695 (the MOSFLM implementation of it, whose practice is followed)</p> <li><p>P. Gasparotto, L. Barba, H.-C. Stadler et al., “TORO Indexer: a PyTorch-based indexing algorithm for kilohertz serial crystallography”, <em>J. Appl. Cryst.</em> <strong>57</strong> (2024), 931-944 (the algorithm of the <code class="docutils literal notranslate"><span class=pre >ffbidx</span></code> fast-feedback indexer, §4).</p> <li><p>I. Křivý &amp; B. Gruber, “A unified algorithm for determining the reduced (Niggli) cell”, <em>Acta Cryst.</em> <strong>A32</strong> (1976), 297-298, and International Tables for Crystallography Vol. A, Table 9.2.5.1 (the Niggli reduction and the lattice-character table of §5.3/§6).</p> <li><p>J. E. Padilla &amp; T. O. Yeates, “A statistic for local intensity differences: robustness to anisotropy and pseudo-centering and utility for detecting twinning”, <em>Acta Cryst.</em> <strong>D59</strong> (2003), 1124-1130 (the L test, §13.2).</p> <li><p>A. J. C. Wilson, “The probability distribution of X-ray intensities”, <em>Acta Cryst.</em> <strong>2</strong> (1949), 318-321, and E. R. Howells, D. C. Phillips &amp; D. Rogers, “The probability distribution of X-ray intensities. II. Experimental investigation and the X-ray detection of centres of symmetry”, <em>Acta Cryst.</em> <strong>3</strong> (1950), 210-214 (the acentric and centric intensity distributions behind the centre-of-symmetry statistics of §13.1 and the Wilson outlier test of §13.3).</p> <li><p>W. H. Baur &amp; D. Kassner, “The perils of Cc: comparing the frequencies of falsely assigned space groups with their general population”, <em>Acta Cryst.</em> <strong>B48</strong> (1992), 356-369 (writing the centrosymmetric group where the absences cannot decide the centre, §13.1).</p> <li><p>R. J. Read, P. D. Adams &amp; A. J. McCoy, “Intensity statistics in the presence of translational noncrystallographic symmetry”, <em>Acta Cryst.</em> <strong>D69</strong> (2013), 176-183 (the native-Patterson detection of translational pseudo-symmetry, and the intensity modulation it produces, which the axial-zone screw-absence test scores against).</p> <li><p>A. Barty, R. A. Kirian, F. R. N. C. Maia et al., “Cheetah: software for high-throughput reduction and analysis of serial femtosecond X-ray diffraction data”, <em>J. Appl. Cryst.</em> <strong>47</strong> (2014), 1118-1131 (peakfinder8: the per-resolution-ring background statistics of §3.2).</p> <li><p>A. Hennequin, B. Couturier, V. V. Gligorov &amp; L. Lacassagne, “SparseCCL: Connected Components Labeling and Analysis for sparse images”, DASIP 2019, 65-70 (the connected-component labelling of §3.4, used via ACTS/traccc).</p> <li><p>S. French &amp; K. Wilson, “On the treatment of negative intensity observations”, <em>Acta Cryst.</em> <strong>A34</strong> (1978), 517-525 (Bayesian amplitude estimation from intensities), and CCP4’s ctruncate (C. Ballard &amp; N. Stein), whose anisotropic Wilson prior §10.8 follows, cited through M. D. Winn et al., “Overview of the CCP4 suite and current developments”, <em>Acta Cryst.</em> <strong>D67</strong> (2011), 235-242.</p> <li><p>A. T. Brünger, “Free R value: a novel statistical quantity for assessing the accuracy of crystal structures”, <em>Nature</em> <strong>355</strong> (1992), 472-475 (R-free cross-validation).</p> <li><p>P. H. C. Eilers, “A perfect smoother”, <em>Anal. Chem.</em> <strong>75</strong> (2003), 3631-3636, after E. T. Whittaker, “On a new method of graduation”, <em>Proc. Edinburgh Math. Soc.</em> <strong>41</strong> (1923), 63-75 (the penalised smoother of the fulls’ per-frame scale, §10.6).</p> <li><p>R. A. Fisher, “Frequency distribution of the values of the correlation coefficient in samples from an indefinitely large population”, <em>Biometrika</em> <strong>10</strong> (1915), 507-521 (the z-transformation on which the correction surfaces’ held-out half-set CC1/2 is compared).</p> <li><p>M. Wojdyr, “GEMMI: A library for structural biology”, <em>J. Open Source Softw.</em> <strong>7</strong> (2022), 4200 (model / structure-factor / map machinery used in §14).</p> <li><p>J. P. Wright, “Experiences with GPU decompression for bitshuffle + LZ4 data”, HDF5 User Group meeting (2021), and <a class="reference external" href="https://github.com/jonwright/bslz4decoders">github.com/jonwright/bslz4decoders</a> (device-side decoding of bitshuffle+LZ4 images, §0).</p> <li><p>A. Thorn &amp; G. M. Sheldrick, “ANODE: anomalous and heavy-atom density calculation”, <em>J. Appl. Cryst.</em> <strong>44</strong> (2011), 1285-1287 (anomalous difference density read at the model’s sites).</p> <li><p>R. Kahn, R. Fourme, A. Gadet, J. Janin, C. Dumas &amp; D. Andre, “Macromolecular crystallography with synchrotron radiation: photographic data collection and polarization correction”, <em>J. Appl. Cryst.</em> <strong>15</strong> (1982), 330-337 (the azimuthal polarization factor of §2.2, applied to the azimuthal profile, the Bragg intensities and the ring background the beam-stop shadow test compares against).</p> <li><p>R. J. Read, “Improved Fourier coefficients for maps using phases from partial structures with errors”, <em>Acta Cryst.</em> <strong>A42</strong> (1986), 140-149 (the sigma_A formalism and the m, D weighting of the map coefficients of §14.4).</p> <li><p>A. Fokine &amp; A. Urzhumtsev, “Flat bulk-solvent model: obtaining optimal parameters”, <em>Acta Cryst.</em> <strong>D58</strong> (2002), 1387-1392 (the flat bulk-solvent model, its optimal parameters and the range they are physically meaningful over, used when scaling a model to the data in §14).</p> <li><p>P. V. Afonine, R. W. Grosse-Kunstleve &amp; P. D. Adams, “A robust bulk-solvent correction and anisotropic scaling procedure”, <em>Acta Cryst.</em> <strong>D61</strong> (2005), 850-855 (the grid search over that range that fits k_sol and b_sol, with the overall scale and anisotropic B refitted at each grid point).</p> <li><p>K. Shoemake, “Uniform Random Rotations”, in <em>Graphics Gems III</em>, ed. D. Kirk, Academic Press (1992), 124-132 (the uniform random rotations the model-fit null of §14.5 is built from).</p> <li><p>G. H. Golub &amp; V. Pereyra, “The differentiation of pseudo-inverses and nonlinear least squares problems whose variables separate”, <em>SIAM J. Numer. Anal.</em> <strong>10</strong> (1973), 413-432, and L. Kaufman, “A variable projection method for solving separable nonlinear least squares problems”, <em>BIT</em> <strong>15</strong> (1975), 49-57 (the scale re-fit folded into the rigid-body Jacobian of §14.8).</p> <li><p>Z. Otwinowski &amp; W. Minor, “Processing of X-ray diffraction data collected in oscillation mode”, <em>Methods Enzymol.</em> <strong>276</strong> (1997), 307-326 (reweighted, de-biased profile-fit variances).</p> <li><p>G. Winter et al., “DIALS: implementation and evaluation of a new integration package”, <em>Acta Cryst.</em> <strong>D74</strong> (2018), 85-97, and J. Beilsten-Edmands et al., <em>Acta Cryst.</em> <strong>D76</strong> (2020), 385-399 (CC1/2 resolution cutoff, merge outlier rejection, scaling error model).</p> <li><p>R. H. Blessing, “An empirical correction for absorption anisotropy”, <em>Acta Cryst.</em> <strong>A51</strong> (1995), 33-38 (absorption as spherical harmonics of the beam directions).</p> <li><p>P. Evans, “Scaling and assessment of data quality”, <em>Acta Cryst.</em> <strong>D62</strong> (2006), 72-82, and P. R. Evans, <em>Acta Cryst.</em> <strong>D67</strong> (2011), 282-292 (POINTLESS: operator-by-operator point-group scoring, and the axial-zone screw-absence test).</p> <li><p>A. G. W. Leslie &amp; H. R. Powell, “Processing diffraction data with MOSFLM” (2007), NATO Science Series II <strong>245</strong>, 41-51 (post-refinement practice: what is refined per image and what over a wedge).</p> <li><p>D. W. Moreau, H. Atakisi &amp; R. E. Thorne, “Ice in biomolecular cryocrystallography”, <em>Acta Cryst.</em> <strong>D77</strong> (2021), 540-554 (measured hexagonal-ice ring positions, used by the ice-ring score, the ice flagging and the ice calibrant).</p> <li><p>K. Röttger, A. Endriss, J. Ihringer, S. Doyle &amp; W. F. Kuhs, “Lattice constants and thermal expansion of H2O and D2O ice Ih between 10 and 265 K”, <em>Acta Cryst.</em> <strong>B50</strong> (1994), 644-648 (the ice Ih cell the ring positions below 1.522 Å are calculated from).</p> <li><p>S. Sheriff &amp; W. A. Hendrickson, “Description of overall anisotropy in diffraction from macromolecular crystals”, <em>Acta Cryst.</em> <strong>A43</strong> (1987), 118-121 (the overall anisotropic B tensor and its symmetry constraints), and A. N. Popov &amp; G. P. Bourenkov, “Choice of data-collection parameters based on statistic modelling”, <em>Acta Cryst.</em> <strong>D59</strong> (2003), 1145-1153 (the sigma-aware estimation of the anisotropy of the observed intensity distribution, part of that paper’s statistic modelling).</p> <li><p>P. R. Evans &amp; G. N. Murshudov, “How good are my data and what is the resolution?”, <em>Acta Cryst.</em> <strong>D69</strong> (2013), 1204-1214 (AIMLESS: the anisotropic deltaB as the range of the principal components, and diffraction limits from a cone about each principal direction).</p> <li><p>G. Assmann, W. Brehm &amp; K. Diederichs, “Identification of rogue datasets in serial crystallography”, <em>J. Appl. Cryst.</em> <strong>49</strong> (2016), 1021-1028, and G. M. Assmann, M. Wang &amp; K. Diederichs, <em>Acta Cryst.</em> <strong>D76</strong> (2020), 636-652 (XDSCC12: sigma-tau CC1/2, delta-CC1/2, the Fisher transformation and the rejection discipline the frame disposition follows).</p> <li><p>K. Diederichs &amp; P. A. Karplus, <em>Nat. Struct. Biol.</em> <strong>4</strong> (1997), 269-275, and P. A. Karplus &amp; K. Diederichs, <em>Science</em> <strong>336</strong> (2012), 1030-1033 (R_meas / R_pim, CC1/2 and CC*).</p> <li><p>IUCr Commission on Crystallographic Nomenclature, “Statistical descriptors in crystallography”, <em>Acta Cryst.</em> <strong>A45</strong> (1989), 63-75, and <em>Acta Cryst.</em> <strong>A51</strong> (1995), 565-569 (uncertainty conventions).</p> </ul> <p>(list is not exhaustive; the full citations, with DOIs, are in <a class="reference internal" href=ACKNOWLEDGEMENT.html ><span class="std std-doc">ACKNOWLEDGEMENT.md</span></a>)</p> </section> </section> </article> </div> </div> </main> </div> <footer class=md-footer > <div class=md-footer-nav > <nav class="md-footer-nav__inner md-grid"> <a href=RUGNUX_CALIBRATION.html title="Detector calibration from powder rings (rugnux --mode calibration)" class="md-flex md-footer-nav__link md-footer-nav__link--prev" rel=prev > <div class="md-flex__cell md-flex__cell--shrink"> <i class="md-icon md-icon--arrow-back md-footer-nav__button"></i> </div> <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"> <span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Previous" </span> Detector calibration from powder rings (<code class="docutils literal notranslate"><span class=pre >rugnux</span> <span class=pre >--mode</span> <span class=pre >calibration</span></code>) </span> </div> </a> <a href=CPU_DATA_ANALYSIS_IMAGE.html title="Data analysis: from images to spots (§0–§3)" class="md-flex md-footer-nav__link md-footer-nav__link--next" rel=next > <div class="md-flex__cell md-flex__cell--stretch md-footer-nav__title"><span class=md-flex__ellipsis > <span class=md-footer-nav__direction > "Next" </span> Data analysis: from images to spots (§0–§3) </span> </div> <div class="md-flex__cell md-flex__cell--shrink"><i class="md-icon md-icon--arrow-forward md-footer-nav__button"></i> </div> </a> </nav> </div> <div class="md-footer-meta md-typeset"> <div class="md-footer-meta__inner md-grid"> <div class=md-footer-copyright > <div class=md-footer-copyright__highlight > &#169; Copyright 2024, Paul Scherrer Institute. </div> Created using <a href="http://www.sphinx-doc.org/">Sphinx</a> 8.1.3. and <a href="https://github.com/bashtage/sphinx-material/">Material for Sphinx</a> </div> </div> </div> </footer> <script src="_static/javascripts/application.js"></script> <script>app.initialize({version: "1.0.4", url: {base: ".."}})</script>