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

24 lines
37 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>Rugnux &#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="What Rugnux does" href=RUGNUX_OVERVIEW.html /> <link rel=prev title="PSI Jungfraujoch" href=index.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="#RUGNUX" 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 > Rugnux </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 > <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 > Rugnux </label> <a href="#" class="md-nav__link md-nav__link--active">Rugnux</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="#quick-start" class=md-nav__link >Quick start</a> <li class=md-nav__item > <a href="#the-rest-of-the-manual" class=md-nav__link >The rest of the manual</a> <li class=md-nav__item > <a href="#where-it-fits-among-the-three-analysis-tools" class=md-nav__link >Where it fits among the three analysis tools</a> </ul> <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 > <a href=CPU_DATA_ANALYSIS.html class=md-nav__link >CPU-side crystallographic data analysis (Jungfraujoch)</a> <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=rugnux > <h1 id=rugnux--page-root >Rugnux<a class=headerlink href="#rugnux--page-root" title="Link to this heading"></a></h1> <p><code class="docutils literal notranslate"><span class=pre >rugnux</span></code> is the <strong>offline</strong> crystallographic data-analysis tool of Jungfraujoch — the data-processing half of the system (see <a class="reference internal" href=NAMING.html ><span class="std std-doc">Naming</span></a> for where the name comes from). It takes an existing HDF5 dataset, runs the full analysis pipeline — spot finding, indexing, geometry refinement, Bragg integration and (optionally) scaling and merging — and writes the results to a <code class="docutils literal notranslate"><span class=pre >_process.h5</span></code> file, plus reflection files (<code class="docutils literal notranslate"><span class=pre >.mtz</span></code>/<code class="docutils literal notranslate"><span class=pre >.cif</span></code>/<code class="docutils literal notranslate"><span class=pre >.hkl</span></code>) when merging is requested.</p> <p>It runs the <em>same</em> analysis code as the online and interactive tools, just driven from the command line over a file rather than a live detector stream.</p> <div class="highlight-default notranslate"><div class=highlight ><pre><span></span><span class=n >rugnux</span> <span class=p >{</span><span class=o >&lt;</span><span class=n >options</span><span class=o >&gt;</span><span class=p >}</span> <span class=o >&lt;</span><span class=nb >input</span><span class=o >.</span><span class=n >h5</span><span class=o >&gt;</span>
</pre></div> </div> <p>Run it with no arguments to print the usage.</p> <blockquote> <div><p><strong>Note.</strong> <code class="docutils literal notranslate"><span class=pre >rugnux</span></code> is under very active development. This page describes the tool and its options at a high level; the authoritative, always-current list of options is the program’s own usage message — run <code class="docutils literal notranslate"><span class=pre >rugnux</span></code> with no arguments.</p> </div></blockquote> <nav class="contents local" id=on-this-page > <p class=topic-title >On this page</p> <ul class=simple > <li><p><a class="reference internal" href="#quick-start" id=id1 >Quick start</a></p> <li><p><a class="reference internal" href="#the-rest-of-the-manual" id=id2 >The rest of the manual</a></p> <li><p><a class="reference internal" href="#where-it-fits-among-the-three-analysis-tools" id=id3 >Where it fits among the three analysis tools</a></p> </ul> </nav> <section id=quick-start > <h2 id=quick-start ><a class=toc-backref href="#id1" role=doc-backlink >Quick start</a><a class=headerlink href="#quick-start" title="Link to this heading"></a></h2> <p>Four commands cover most of what people ask of <code class="docutils literal notranslate"><span class=pre >rugnux</span></code>. Each takes the <strong>master</strong> file of the dataset — one written by Jungfraujoch, a DECTRIS EIGER master, or an NXmx master written by another facility’s toolchain; a PILATUS miniCBF, marCCD or SMV sweep works too (see <a class="reference internal" href=RUGNUX_FORMATS.html ><span class="std std-doc">What Rugnux reads</span></a>) — and names its output files from <code class="docutils literal notranslate"><span class=pre >-o</span></code>:</p> <div class="highlight-default notranslate"><div class=highlight ><pre><span></span><span class=c1 ># 1. everything from the data - index, integrate, scale and merge with the defaults</span>
<span class=n >rugnux</span> <span class=o >-</span><span class=n >o</span> <span class=n >myrun</span> <span class=n >dataset_master</span><span class=o >.</span><span class=n >h5</span>
<span class=c1 ># 2. with a reference dataset of the same crystal form: it fixes the space group and the cell,</span>
<span class=c1 ># resolves the indexing ambiguity, and hands over its R-free set</span>
<span class=n >rugnux</span> <span class=o >-</span><span class=n >o</span> <span class=n >myrun</span> <span class=o >-</span><span class=n >z</span> <span class=n >reference</span><span class=o >.</span><span class=n >mtz</span> <span class=n >dataset_master</span><span class=o >.</span><span class=n >h5</span>
<span class=c1 ># 3. with a known structure: R-work / R-free and sigma_A-weighted 2mFo-DFc / mFo-DFc maps</span>
<span class=n >rugnux</span> <span class=o >-</span><span class=n >o</span> <span class=n >myrun</span> <span class=o >--</span><span class=n >model</span> <span class=n >model</span><span class=o >.</span><span class=n >pdb</span> <span class=n >dataset_master</span><span class=o >.</span><span class=n >h5</span>
<span class=c1 ># 4. with the space group and the cell pinned (-S takes either spelling: P43212 or 96)</span>
<span class=n >rugnux</span> <span class=o >-</span><span class=n >o</span> <span class=n >myrun</span> <span class=o >-</span><span class=n >S</span> <span class=n >P43212</span> <span class=o >-</span><span class=n >C</span> <span class=mi >79</span><span class=p >,</span><span class=mi >79</span><span class=p >,</span><span class=mi >38</span><span class=p >,</span><span class=mi >90</span><span class=p >,</span><span class=mi >90</span><span class=p >,</span><span class=mi >90</span> <span class=n >dataset_master</span><span class=o >.</span><span class=n >h5</span>
</pre></div> </div> <p>Parallelism needs no asking for: a run already uses the machine’s threads. <code class="docutils literal notranslate"><span class=pre >-N</span></code> is there to <em>limit</em> that, or to lift the per-image loop’s default ceiling of 16 workers per GPU.</p> <p>Nothing more is needed to pick the workflow: a dataset carrying a <strong>goniometer axis</strong> is processed as a rotation sweep, one without as <strong>independent stills</strong>, and scaling and merging run by default in both. A rotation run that merges — the default — leaves eight files next to each other:</p> <div class="highlight-default notranslate"><div class=highlight ><pre><span></span><span class=n >myrun</span><span class=o >.</span><span class=n >mtz</span> <span class=n >merged</span> <span class=n >intensities</span> <span class=o >+</span> <span class=n >French</span><span class=o >-</span><span class=n >Wilson</span> <span class=n >amplitudes</span><span class=p >,</span> <span class=k >for</span> <span class=n >CCP4</span> <span class=o >/</span> <span class=n >phenix</span>
<span class=n >myrun</span><span class=o >.</span><span class=n >cif</span> <span class=n >the</span> <span class=n >same</span><span class=p >,</span> <span class=k >as</span> <span class=n >mmCIF</span> <span class=o >-</span> <span class=n >the</span> <span class=bp >self</span><span class=o >-</span><span class=n >describing</span> <span class=nb >format</span><span class=p >,</span> <span class=ow >and</span> <span class=n >what</span> <span class=n >to</span> <span class=n >deposit</span>
<span class=n >myrun</span><span class=o >.</span><span class=n >hkl</span> <span class=n >the</span> <span class=n >scaled</span> <span class=n >observations</span> <span class=n >unmerged</span><span class=p >,</span> <span class=k >as</span> <span class=n >SHELX</span> <span class=n >HKLF</span> <span class=mi >4</span> <span class=o >-</span> <span class=k >for</span> <span class=n >SHELXL</span><span class=p >,</span> <span class=n >SHELXC</span> <span class=o >/</span> <span class=n >ANODE</span>
<span class=n >myrun_unmerged</span><span class=o >.</span><span class=n >mtz</span> <span class=n >every</span> <span class=n >observation</span> <span class=n >before</span> <span class=n >scaling</span><span class=p >,</span> <span class=k >for</span> <span class=n >pointless</span> <span class=o >/</span> <span class=n >aimless</span> <span class=o >/</span> <span class=n >careless</span> <span class=o >-</span>
<span class=n >the</span> <span class=n >largest</span> <span class=n >file</span> <span class=n >of</span> <span class=n >the</span> <span class=n >run</span> <span class=p >(</span><span class=o >--</span><span class=n >no</span><span class=o >-</span><span class=n >export</span><span class=o >-</span><span class=n >unmerged</span> <span class=n >skips</span> <span class=n >it</span><span class=p >)</span>
<span class=n >myrun_P1</span><span class=o >.</span><span class=n >mtz</span> <span class=n >the</span> <span class=n >same</span> <span class=n >observations</span> <span class=n >merged</span> <span class=ow >in</span> <span class=n >P1</span><span class=p >,</span> <span class=n >so</span> <span class=n >a</span> <span class=n >wrong</span> <span class=n >space</span><span class=o >-</span><span class=n >group</span> <span class=n >call</span> <span class=n >can</span> <span class=n >be</span>
<span class=n >re</span><span class=o >-</span><span class=n >merged</span> <span class=ow >or</span> <span class=n >re</span><span class=o >-</span><span class=n >refined</span> <span class=n >without</span> <span class=n >reprocessing</span> <span class=p >(</span><span class=o >--</span><span class=n >no</span><span class=o >-</span><span class=n >p1</span><span class=o >-</span><span class=n >crosscheck</span> <span class=n >skips</span> <span class=n >it</span><span class=p >)</span>
<span class=n >myrun_report</span><span class=o >.</span><span class=n >txt</span> <span class=n >what</span> <span class=n >the</span> <span class=n >run</span> <span class=n >determined</span><span class=p >:</span> <span class=n >cell</span><span class=p >,</span> <span class=n >space</span> <span class=n >group</span><span class=p >,</span> <span class=n >statistics</span><span class=p >,</span> <span class=n >warnings</span>
<span class=n >myrun_plot</span><span class=o >.</span><span class=n >txt</span> <span class=n >one</span> <span class=n >row</span> <span class=n >per</span> <span class=n >image</span><span class=p >,</span> <span class=k >for</span> <span class=n >plotting</span> <span class=n >how</span> <span class=n >the</span> <span class=n >crystal</span> <span class=n >behaved</span> <span class=n >over</span> <span class=n >the</span> <span class=n >sweep</span>
<span class=n >myrun_detector</span><span class=o >.</span><span class=n >jpg</span> <span class=n >the</span> <span class=n >detector</span> <span class=k >with</span> <span class=n >the</span> <span class=n >pixel</span> <span class=n >mask</span> <span class=ow >and</span> <span class=n >the</span> <span class=n >beam</span><span class=o >-</span><span class=n >stop</span> <span class=n >shadow</span> <span class=n >drawn</span> <span class=n >on</span> <span class=n >it</span>
</pre></div> </div> <p>The two MTZ extras are most of the bytes a run writes — worth knowing when sizing a scratch directory for a campaign, and both have off switches.</p> <p>Read <code class="docutils literal notranslate"><span class=pre >myrun_report.txt</span></code> first: it says which space group was chosen and on what evidence, how far the data go, and anything that needs attention.</p> <p>A few things worth knowing before reaching for more flags:</p> <ul class=simple > <li><p><strong>The written reflections stop where CC1/2 falls through 0.30.</strong> Every reflection file is resolution-trimmed automatically (<code class="docutils literal notranslate"><span class=pre >--resolution-cutoff</span> <span class=pre >cc-logistic</span></code>, one shell past the crossing); <code class="docutils literal notranslate"><span class=pre >--resolution-cutoff</span> <span class=pre >off</span></code> keeps the full measured range, <code class="docutils literal notranslate"><span class=pre >--scaling-high-resolution</span></code> fixes the limit by hand. A Rugnux file reaching less far than another program’s on the same data is usually this default at work, not lost data.</p> <li><p><strong>Rotation data are best left de novo.</strong> Pinning the cell and space group (recipe 4) is the normal thing to do for <strong>serial stills</strong>, where the <code class="docutils literal notranslate"><span class=pre >ffbidx</span></code> indexer needs a cell; on a rotation sweep it tends to <em>degrade</em> low-symmetry cases, so prefer recipe 1 and let the run determine both (see <a class="reference internal" href="RUGNUX_TUTORIAL.html#rotation-data"><span class="std std-ref">Rotation data</span></a>). <code class="docutils literal notranslate"><span class=pre >-S</span></code> takes a Hermann-Mauguin symbol (<code class="docutils literal notranslate"><span class=pre >P43212</span></code>) or a space-group number (<code class="docutils literal notranslate"><span class=pre >96</span></code>), whichever is to hand.</p> <li><p><strong>Anomalous data are there without <code class="docutils literal notranslate"><span class=pre >-A</span></code>.</strong> A rotation merge always keeps the Bijvoet split: a default run’s <code class="docutils literal notranslate"><span class=pre >.mtz</span></code> carries <code class="docutils literal notranslate"><span class=pre >I(+)</span></code>/<code class="docutils literal notranslate"><span class=pre >I(-)</span></code> beside <code class="docutils literal notranslate"><span class=pre >IMEAN</span></code>, and its <code class="docutils literal notranslate"><span class=pre >.hkl</span></code> every observation at the index it was measured at — <code class="docutils literal notranslate"><span class=pre >FRIEDELS_LAW=</span> <span class=pre >TRUE</span></code> in the report says how the <em>statistics</em> were counted, not that the signal was averaged away. What <code class="docutils literal notranslate"><span class=pre >-A</span></code> changes is the counting basis and the error model: each hand becomes a merged observation of its own, so multiplicity, completeness and ⟨I/σ⟩ are counted anomalously and the sigmas are refitted on the Bijvoet-separated merge. Reach for it for anomalous statistics; the signal itself is in the file either way. (Stills merges carry no split by default — there <code class="docutils literal notranslate"><span class=pre >-A</span></code> is what creates one.)</p> <li><p><strong>A model names the enantiomorph.</strong> Where the data accept the model — it is tested against a null of the same model in random orientations, and <code class="docutils literal notranslate"><span class=pre >MODEL_FIT=</span></code> in the report says the verdict — <code class="docutils literal notranslate"><span class=pre >--model</span></code> settles which of P4<sub>1</sub>2<sub>1</sub>2 and P4<sub>3</sub>2<sub>1</sub>2 the merged reflections are <em>labelled</em> with — a choice no merged intensity can make. It is a label and nothing more: the two groups have the same rotation operations, so no reflection moves, and in particular I(+) and I(-) are left exactly as measured. Whether the model agrees with the data about the hand is then a real question, and the anomalous difference map answers it — a run says so when the density at the model’s atoms comes out inverted.</p> <li><p><strong><code class="docutils literal notranslate"><span class=pre >-z</span></code> and <code class="docutils literal notranslate"><span class=pre >--model</span></code> overlap but are not the same.</strong> A reference MTZ steers the processing from the start; a model scores the merge and settles the frame it is written in — where the data accept it; a model they reject changes nothing. Either resolves an <a class="reference internal" href="RUGNUX_ADVANCED.html#the-indexing-ambiguity"><span class="std std-ref">indexing ambiguity</span></a>, which on serial data decides whether the merged intensities are usable at all.</p> <li><p><strong>Small molecules need no flag either.</strong> Short axes, spots wider than the integration disk and glide-plane space groups are handled by the default run, and <code class="docutils literal notranslate"><span class=pre >myrun.hkl</span></code> goes straight to SHELXT / SHELXL (<a class="reference internal" href="RUGNUX_TUTORIAL.html#small-molecule-data"><span class="std std-ref">Small-molecule data</span></a>).</p> <li><p><strong><code class="docutils literal notranslate"><span class=pre >--scaling-high-resolution</span> <span class=pre >&lt;d&gt;</span></code></strong>, where the resolution is already known, sharpens both the space-group search and the error model.</p> <li><p><strong>A run wants memory in proportion to what it integrates</strong>, not to the detector: 2.5-14 GB of host RAM and 3-7 GB on the card over the datasets measured, both peaking in scaling and merging. <a class="reference internal" href="RUGNUX_INSTALL.html#memory"><span class="std std-ref">Installing Rugnux ▸ Memory</span></a> has the table and the two flags that lower it. A very large cell needs far more, and a CPU-only build most of all — tens of GB of host RAM (<a class="reference internal" href="RUGNUX_INSTALL.html#very-large-unit-cells"><span class="std std-ref">Very large unit cells</span></a>).</p> <li><p>Everything else is in <a class="reference internal" href="RUGNUX_TUTORIAL.html#running-rugnux"><span class="std std-ref">Running Rugnux</span></a> and the full <a class="reference internal" href="RUGNUX_ADVANCED.html#command-line-options"><span class="std std-ref">Command-line options</span></a>.</p> </ul> </section> <section id=the-rest-of-the-manual > <h2 id=the-rest-of-the-manual ><a class=toc-backref href="#id2" role=doc-backlink >The rest of the manual</a><a class=headerlink href="#the-rest-of-the-manual" title="Link to this heading"></a></h2> <p>One page per job, so the answer needed is near the top of a short page:</p> <ul class=simple > <li><p><a class="reference internal" href=RUGNUX_OVERVIEW.html ><span class="std std-doc">What Rugnux does</span></a> — the pipeline from images to merged reflections, in order. Read this one first.</p> <li><p><a class="reference internal" href=RUGNUX_INSTALL.html ><span class="std std-doc">Installing Rugnux</span></a> — packages, the release archive, GPU drivers, building from source, hardware.</p> <li><p><a class="reference internal" href=RUGNUX_FORMATS.html ><span class="std std-doc">What Rugnux reads</span></a> — will it open your data: NXmx / EIGER masters, PILATUS miniCBF, marCCD and SMV (ADSC, Rigaku d*TREK) sweeps, one sweep per input.</p> <li><p><a class="reference internal" href=RUGNUX_TUTORIAL.html ><span class="std std-doc">Running Rugnux</span></a> — a first run in detail, rotation, serial and small-molecule data, and every file a run writes.</p> <li><p><a class="reference internal" href=RUGNUX_INTEGRATION.html ><span class="std std-doc">Rugnux with other programs</span></a> — the reflection-file conventions, the unmerged export, and worked command lines for phenix, REFMAC, POINTLESS / AIMLESS, careless, Phaser, SHELXC/D/E and, for small molecules, SHELXT / SHELXL.</p> <li><p><a class="reference internal" href=RUGNUX_REPORT.html ><span class="std std-doc">The results report</span></a> — the <code class="docutils literal notranslate"><span class=pre >KEY=</span> <span class=pre >value</span></code> interface, sweep quality and the anisotropy section.</p> <li><p><a class="reference internal" href=RUGNUX_ADVANCED.html ><span class="std std-doc">Advanced usage</span></a> — reference data and the indexing ambiguity, model validation, re-merging, and the full command-line option tables.</p> <li><p><a class="reference internal" href=RUGNUX_CALIBRATION.html ><span class="std std-doc">Detector calibration</span></a> — the geometry from a calibrant’s powder rings (<code class="docutils literal notranslate"><span class=pre >--mode</span> <span class=pre >calibration</span></code>).</p> <li><p><a class="reference internal" href=CPU_DATA_ANALYSIS.html ><span class="std std-doc">CPU/GPU data analysis</span></a> — the algorithms behind all of it.</p> </ul> </section> <section id=where-it-fits-among-the-three-analysis-tools > <h2 id=where-it-fits-among-the-three-analysis-tools ><a class=toc-backref href="#id3" role=doc-backlink >Where it fits among the three analysis tools</a><a class=headerlink href="#where-it-fits-among-the-three-analysis-tools" title="Link to this heading"></a></h2> <table> <thead> <tr class=row-odd ><th class=head ><p>Tool</p> <th class=head ><p>Mode</p> <th class=head ><p>Driven by</p> <th class=head ><p>Output</p> <tr class=row-even ><td><p><a class="reference internal" href=JFJOCH_BROKER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_broker</span></code></span></a></p> <td><p>Online, real-time streaming analysis on FPGA + GPU</p> <td><p>HTTP/REST + ZeroMQ</p> <td><p>Live results and statistics, images streamed to <a class="reference internal" href=JFJOCH_WRITER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_writer</span></code></span></a></p> <tr class=row-odd ><td><p><a class="reference internal" href=JFJOCH_VIEWER.html ><span class="std std-doc"><code class="docutils literal notranslate"><span class=pre >jfjoch_viewer</span></code></span></a></p> <td><p>Interactive, on-screen exploration</p> <td><p>Qt desktop application</p> <td><p>On screen; a processing job can write the same files as <code class="docutils literal notranslate"><span class=pre >rugnux</span></code></p> <tr class=row-even ><td><p><strong><code class="docutils literal notranslate"><span class=pre >rugnux</span></code></strong></p> <td><p><strong>Offline batch processing of a stored dataset</strong></p> <td><p><strong>Command-line interface</strong></p> <td><p><strong><code class="docutils literal notranslate"><span class=pre >_process.h5</span></code>, and <code class="docutils literal notranslate"><span class=pre >.mtz</span></code>/<code class="docutils literal notranslate"><span class=pre >.cif</span></code>/<code class="docutils literal notranslate"><span class=pre >.hkl</span></code> when merging</strong></p> </table> <p>Use <code class="docutils literal notranslate"><span class=pre >rugnux</span></code> to re-analyse data after acquisition, to experiment with processing parameters, or to produce merged intensities for downstream structure solution.</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=index.html title="PSI Jungfraujoch" 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> PSI Jungfraujoch </span> </div> </a> <a href=RUGNUX_OVERVIEW.html title="What Rugnux does" 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> What Rugnux does </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>