<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://viper.lbl.gov:8080/cctbx.xfel/index.php?action=history&amp;feed=atom&amp;title=Cctbx.xfel_GUI%2FWorkflows</id>
	<title>Cctbx.xfel GUI/Workflows - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://viper.lbl.gov:8080/cctbx.xfel/index.php?action=history&amp;feed=atom&amp;title=Cctbx.xfel_GUI%2FWorkflows"/>
	<link rel="alternate" type="text/html" href="http://viper.lbl.gov:8080/cctbx.xfel/index.php?title=Cctbx.xfel_GUI/Workflows&amp;action=history"/>
	<updated>2026-10-10T22:20:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.39.15</generator>
	<entry>
		<id>http://viper.lbl.gov:8080/cctbx.xfel/index.php?title=Cctbx.xfel_GUI/Workflows&amp;diff=1801&amp;oldid=prev</id>
		<title>Aaron: Created page with &quot;{{DISPLAYTITLE:cctbx.xfel GUI/Workflows}} Step-by-step recipes for the common things done with the cctbx.xfel GUI. Each step names the tab or dialog it happens in; see the tab pages for the details of every control.  Back to cctbx.xfel GUI.  == Setting up a new experiment == # Start &lt;code&gt;cctbx.xfel&lt;/code&gt;. In the login dialog press &#039;&#039;&#039;DB Credentials...&#039;&#039;&#039; and enter the database server, database, user and password. If you have no server, fill those in anyway and pres...&quot;</title>
		<link rel="alternate" type="text/html" href="http://viper.lbl.gov:8080/cctbx.xfel/index.php?title=Cctbx.xfel_GUI/Workflows&amp;diff=1801&amp;oldid=prev"/>
		<updated>2026-10-09T22:32:28Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;{{DISPLAYTITLE:cctbx.xfel GUI/Workflows}} Step-by-step recipes for the common things done with the cctbx.xfel GUI. Each step names the tab or dialog it happens in; see the tab pages for the details of every control.  Back to &lt;a href=&quot;/cctbx.xfel/index.php/Cctbx.xfel_GUI&quot; title=&quot;Cctbx.xfel GUI&quot;&gt;cctbx.xfel GUI&lt;/a&gt;.  == Setting up a new experiment == # Start &amp;lt;code&amp;gt;cctbx.xfel&amp;lt;/code&amp;gt;. In the login dialog press &amp;#039;&amp;#039;&amp;#039;DB Credentials...&amp;#039;&amp;#039;&amp;#039; and enter the database server, database, user and password. If you have no server, fill those in anyway and pres...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{DISPLAYTITLE:cctbx.xfel GUI/Workflows}}&lt;br /&gt;
Step-by-step recipes for the common things done with the cctbx.xfel GUI. Each step names the tab or dialog it happens in; see the tab pages for the details of every control.&lt;br /&gt;
&lt;br /&gt;
Back to [[cctbx.xfel GUI]].&lt;br /&gt;
&lt;br /&gt;
== Setting up a new experiment ==&lt;br /&gt;
# Start &amp;lt;code&amp;gt;cctbx.xfel&amp;lt;/code&amp;gt;. In the login dialog press &amp;#039;&amp;#039;&amp;#039;DB Credentials...&amp;#039;&amp;#039;&amp;#039; and enter the database server, database, user and password. If you have no server, fill those in anyway and press &amp;#039;&amp;#039;&amp;#039;Start DB Server&amp;#039;&amp;#039;&amp;#039; (see [[cctbx.xfel GUI/Settings#Starting a local database server|starting a local server]]).&lt;br /&gt;
# Enter a new &amp;#039;&amp;#039;&amp;#039;Experiment Tag&amp;#039;&amp;#039;&amp;#039; for this experiment, choose the &amp;#039;&amp;#039;&amp;#039;Facility&amp;#039;&amp;#039;&amp;#039; and, at LCLS, the &amp;#039;&amp;#039;&amp;#039;Experiment&amp;#039;&amp;#039;&amp;#039; name; in standalone mode press &amp;#039;&amp;#039;&amp;#039;Options...&amp;#039;&amp;#039;&amp;#039; and set the folder to monitor and the file template.&lt;br /&gt;
# Choose the &amp;#039;&amp;#039;&amp;#039;Output&amp;#039;&amp;#039;&amp;#039; folder (on a file system the compute nodes can write to).&lt;br /&gt;
# Press &amp;#039;&amp;#039;&amp;#039;Advanced Settings...&amp;#039;&amp;#039;&amp;#039; and set the multiprocessing method, queue, number of processors and environment script for your cluster. Press OK.&lt;br /&gt;
# Press &amp;#039;&amp;#039;&amp;#039;Save Project As...&amp;#039;&amp;#039;&amp;#039; and name the project, then &amp;#039;&amp;#039;&amp;#039;OK&amp;#039;&amp;#039;&amp;#039;. The main window opens.&lt;br /&gt;
# On the toolbar press &amp;#039;&amp;#039;&amp;#039;Watch for new runs&amp;#039;&amp;#039;&amp;#039;. Runs appear in the Runs tab.&lt;br /&gt;
&lt;br /&gt;
== Processing runs as they are collected ==&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Runs tab&amp;#039;&amp;#039;&amp;#039;: press &amp;#039;&amp;#039;&amp;#039;Manage Tags&amp;#039;&amp;#039;&amp;#039; and create tags for your samples; press &amp;#039;&amp;#039;&amp;#039;Manage Persistent Tags&amp;#039;&amp;#039;&amp;#039; and tick the tag for the sample currently on the beam, so that every new run gets it. Change the persistent tags when the sample changes.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Trials tab&amp;#039;&amp;#039;&amp;#039;: press &amp;#039;&amp;#039;&amp;#039;New Trial&amp;#039;&amp;#039;&amp;#039;. Enter the unit cell and space group if known, adjust spot finding if needed, and press OK. In the new trial press &amp;#039;&amp;#039;&amp;#039;New Block&amp;#039;&amp;#039;&amp;#039;: set the start run, leave &amp;#039;&amp;#039;&amp;#039;Auto add runs&amp;#039;&amp;#039;&amp;#039; selected, enter the detector address, beam centre and distance (LCLS), any mask or reference geometry, and press OK. Tick &amp;#039;&amp;#039;&amp;#039;Active Trial&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
# On the toolbar press &amp;#039;&amp;#039;&amp;#039;Auto-submit jobs&amp;#039;&amp;#039;&amp;#039;. The job sentinel now submits a job for every run in the block and for each new run as it arrives.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Jobs tab&amp;#039;&amp;#039;&amp;#039;: confirm the jobs reach &amp;lt;code&amp;gt;RUN&amp;lt;/code&amp;gt; and then &amp;lt;code&amp;gt;DONE&amp;lt;/code&amp;gt;. If one shows &amp;lt;code&amp;gt;EXIT&amp;lt;/code&amp;gt; or &amp;lt;code&amp;gt;S_FAIL&amp;lt;/code&amp;gt;, read its log (see [[cctbx.xfel GUI/Troubleshooting|Troubleshooting]]).&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Run Stats tab&amp;#039;&amp;#039;&amp;#039;: select the trial and press &amp;#039;&amp;#039;&amp;#039;Auto plot last five runs&amp;#039;&amp;#039;&amp;#039;. Leave this tab showing during collection.&lt;br /&gt;
# &amp;#039;&amp;#039;&amp;#039;Unit Cell tab&amp;#039;&amp;#039;&amp;#039;: select the trial, add a tag set for the sample, and check that the cell histograms are single peaks at the expected values.&lt;br /&gt;
&lt;br /&gt;
== Tuning spot finding and indexing ==&lt;br /&gt;
# Make a new trial (it copies the previous one) and change one thing: for example lower &amp;#039;&amp;#039;Sigma strong&amp;#039;&amp;#039; or set &amp;#039;&amp;#039;Min spot size&amp;#039;&amp;#039;. Use &amp;#039;&amp;#039;&amp;#039;Copy runblocks from&amp;#039;&amp;#039;&amp;#039; the previous trial so both trials cover the same runs, or give the new trial a block with an explicit end run covering a few representative runs.&lt;br /&gt;
# Activate the new trial. Both trials can be active at once; jobs for the new trial appear in the Jobs tab.&lt;br /&gt;
# In the Run Stats tab switch between the two trials and compare the strong spot counts, indexing rate and resolution for the same runs.&lt;br /&gt;
# Deactivate the trial you will not use, so it stops consuming queue time on new runs.&lt;br /&gt;
&lt;br /&gt;
== Reprocessing after a change to a run block ==&lt;br /&gt;
Detector settings live in run blocks, and results are stored per block. To reprocess runs with a new geometry or mask:&lt;br /&gt;
# Trials tab: click the block, change the setting (for example &amp;#039;&amp;#039;Reference geometry&amp;#039;&amp;#039;) and press OK. Because a setting other than the end run or comment changed, the old block is deactivated and a new block is created in the trial.&lt;br /&gt;
# With the trial active and &amp;#039;&amp;#039;Auto-submit jobs&amp;#039;&amp;#039; on, jobs for the new block are submitted. The old block&amp;#039;s results remain on disk under the old block id.&lt;br /&gt;
To instead re-run a single failed job unchanged, use &amp;#039;&amp;#039;&amp;#039;Restart job&amp;#039;&amp;#039;&amp;#039; in the Jobs tab.&lt;br /&gt;
&lt;br /&gt;
== Merging a dataset ==&lt;br /&gt;
# Make sure the runs to merge carry a tag that identifies them (Runs tab) and that their indexing jobs are &amp;lt;code&amp;gt;DONE&amp;lt;/code&amp;gt;.&lt;br /&gt;
# Datasets tab: press &amp;#039;&amp;#039;&amp;#039;New Dataset&amp;#039;&amp;#039;&amp;#039;. Name it, choose the trial and the tag(s). Choose a reference model, or &amp;#039;&amp;#039;Unknown structure&amp;#039;&amp;#039; with the cell and space group. Keep &amp;#039;&amp;#039;Include ensemble refinement&amp;#039;&amp;#039; ticked unless time is short. Accept or change the cosym suggestion. Set the resolution limit. Finish.&lt;br /&gt;
# Tick &amp;#039;&amp;#039;&amp;#039;Active Dataset&amp;#039;&amp;#039;&amp;#039;. With &amp;#039;&amp;#039;Auto-submit jobs&amp;#039;&amp;#039; on, ensemble refinement and scaling jobs are submitted per run, then a merging job once some runs are through. Follow them in the Jobs tab.&lt;br /&gt;
# Merging stats tab: select the dataset. Version &amp;#039;&amp;#039;All&amp;#039;&amp;#039; shows CC1/2 and multiplicity growing as versions accumulate; a single version shows its statistics by resolution.&lt;br /&gt;
# The merged MTZ is &amp;lt;code&amp;gt;&amp;lt;output folder&amp;gt;/&amp;lt;dataset name&amp;gt;/v&amp;lt;NNN&amp;gt;/&amp;lt;name&amp;gt;_v&amp;lt;NNN&amp;gt;_all.mtz&amp;lt;/code&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
=== Merging without a reference structure ===&lt;br /&gt;
Choose &amp;#039;&amp;#039;Unknown structure&amp;#039;&amp;#039; in the wizard. The merge is a plain average without per-image scaling. Once it has produced an MTZ, create a second dataset with &amp;#039;&amp;#039;Known reference model&amp;#039;&amp;#039; pointing at that MTZ to get a properly scaled and post-refined merge. If the symmetry has an indexing ambiguity, tick cosym in both datasets; the first merge fixes an arbitrary but consistent indexing frame which the second then anchors to.&lt;br /&gt;
&lt;br /&gt;
=== Merging one crystal form out of a mixture ===&lt;br /&gt;
# Unit Cell tab: select the trial and the tag set, tick &amp;#039;&amp;#039;&amp;#039;Plot clusters&amp;#039;&amp;#039;&amp;#039;, and adjust &amp;#039;&amp;#039;Cluster epsilon&amp;#039;&amp;#039; until the forms separate. Note which component (0 is the largest) is the one you want. The cluster file is written to &amp;lt;code&amp;gt;cluster/&amp;lt;/code&amp;gt; in the output folder.&lt;br /&gt;
# Datasets tab: open the dataset, and in the &amp;#039;&amp;#039;&amp;#039;Scaling&amp;#039;&amp;#039;&amp;#039; stage tick &amp;#039;&amp;#039;&amp;#039;Filter by unit-cell cluster&amp;#039;&amp;#039;&amp;#039;, choose the cluster file, enter the component number and, if needed, a tighter Mahalanobis cutoff. Press OK.&lt;br /&gt;
# The next version merged (restart the scaling jobs from the Jobs tab, or wait for new runs) uses only lattices from that cluster.&lt;br /&gt;
&lt;br /&gt;
== Merging the same runs with different settings ==&lt;br /&gt;
Press the copy button on the dataset. The copy is inactive and shares the original&amp;#039;s tasks. Open it, change what you want (resolution limit, reference model, a stage&amp;#039;s parameters); when asked, choose &amp;#039;&amp;#039;&amp;#039;Detach&amp;#039;&amp;#039;&amp;#039; so the original is unaffected. Give the copy a comment saying what differs, then activate it.&lt;br /&gt;
&lt;br /&gt;
== Stopping and restarting jobs ==&lt;br /&gt;
* To stop submitting new jobs, turn off &amp;#039;&amp;#039;&amp;#039;Auto-submit jobs&amp;#039;&amp;#039;&amp;#039; or untick the trial or dataset&amp;#039;s &amp;#039;&amp;#039;Active&amp;#039;&amp;#039; box.&lt;br /&gt;
* To stop a running job, select it in the Jobs tab and press &amp;#039;&amp;#039;&amp;#039;Stop job&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
* To re-run a job after fixing the cause of a failure, select it, press &amp;#039;&amp;#039;&amp;#039;Stop job&amp;#039;&amp;#039;&amp;#039; if it is still running, then &amp;#039;&amp;#039;&amp;#039;Restart job&amp;#039;&amp;#039;&amp;#039;. Its old results are deleted and the job sentinel resubmits it.&lt;br /&gt;
* To throw away a trial&amp;#039;s results, delete its jobs in the Jobs tab (untick &amp;#039;&amp;#039;Only display jobs from active trials/blocks&amp;#039;&amp;#039; to see jobs of inactive trials), and leave the trial inactive. The trial itself cannot be deleted.&lt;br /&gt;
&lt;br /&gt;
== Watching an experiment from elsewhere ==&lt;br /&gt;
Start a second GUI with the same project (copy &amp;lt;code&amp;gt;~/.cctbx.xfel/settings_&amp;lt;name&amp;gt;.phil&amp;lt;/code&amp;gt; to the other machine, or set the same credentials by hand) and &amp;lt;code&amp;gt;monitoring_mode=True&amp;lt;/code&amp;gt;:&lt;br /&gt;
&amp;lt;pre&amp;gt;cctbx.xfel monitoring_mode=True&amp;lt;/pre&amp;gt;&lt;br /&gt;
The Run Stats, Unit Cell and Merging stats tabs work as usual; nothing can be submitted from it. Keep job submission to a single GUI instance.&lt;br /&gt;
&lt;br /&gt;
== Standalone mode with files from another source ==&lt;br /&gt;
# Settings: facility &amp;#039;&amp;#039;Standalone&amp;#039;&amp;#039;; &amp;#039;&amp;#039;&amp;#039;Options...&amp;#039;&amp;#039;&amp;#039;: set the folder, &amp;#039;&amp;#039;&amp;#039;Monitor for&amp;#039;&amp;#039;&amp;#039; &amp;#039;&amp;#039;files&amp;#039;&amp;#039; or &amp;#039;&amp;#039;folders&amp;#039;&amp;#039;, the file template (for example &amp;lt;code&amp;gt;*.h5&amp;lt;/code&amp;gt;) and tick &amp;#039;&amp;#039;Files are composite&amp;#039;&amp;#039; for HDF5 or NeXus files. For one-image-per-file data, use &amp;#039;&amp;#039;folders&amp;#039;&amp;#039; with one folder per run and untick &amp;#039;&amp;#039;composite&amp;#039;&amp;#039;.&lt;br /&gt;
# Proceed as for a live experiment. Run blocks select runs by their order of discovery; the detector geometry comes from the image headers unless a reference geometry is set in the block.&lt;/div&gt;</summary>
		<author><name>Aaron</name></author>
	</entry>
</feed>