24 lines
37 KiB
HTML
24 lines
37 KiB
HTML
<!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 — 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 ></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 >  </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 ></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 ><</span><span class=n >options</span><span class=o >></span><span class=p >}</span> <span class=o ><</span><span class=nb >input</span><span class=o >.</span><span class=n >h5</span><span class=o >></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 ><d></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 > © 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> |