One simple possibility that requires minimal changes to the current contents of experiments.json (and reduce the number of files that touch disk) would be for refine_bravais_settings to *not* output any bravais_setting_NN.json files at all, but to simply report the results in each setting for the user to choose from. Then dials.reindex could be used to both change the setting and reindex reflections if necessary in a single operation.
From: DIALS project general discussion [[log in to unmask]] on behalf of Richard Gildea [[log in to unmask]]
Sent: 01 October 2015 14:41
To: [log in to unmask]
Subject: Re: Reindex
Thanks for the suggestions. I've never been particularly happy with the way the dials.reindex step fits in the process, but haven't been able to come up with a suitable alternative (other than to go back and re-run dials.index in the correct space group). Your suggestion of tracking the change of basis operator alongside the experiments.json and reflections does seem to have merit, although we would need to discuss internally exactly how to go about it.
Another alternative could be to output the bravais_setting_NN.json files in the same basis as the input, i.e. primitive setting, then they would be compatible with the original indexed.pickle without reindexing the reflection list. Then downstream programs like dials.refine could choose to optionally convert to the reference setting on input. Any thoughts on this workflow? When we eventually get around to the one-hdf5-file-to-rule-them-all version of DIALS that James is keen on, then hopefully these kinds of problems will go away.
From: DIALS project general discussion [[log in to unmask]] on behalf of Phil Evans [[log in to unmask]]
Sent: 01 October 2015 10:50
To: [log in to unmask]
Following up on the Dials demo yesterday
The process is
1) dials.index -> indexed.pickle
2) dials.refine_bravais_settings -> bravais_setting_NN.json
choose a setting, then if necessary reindex
3) dials.reindex indexed.pickle change_of_basis_op=a,b,c -> reindexed_reflections.pickle
followed by something like
4) dials.refine bravais_setting_9.json indexed.pickle scan_varying=true [ or reindexed_reflections.pickle]
however it seems to me that step 3 (a complication for pipelines, and a hazard for manual working) could be incorporated into step 4. You know that indexed.pickle is in the “original” frame (and could usefully be internally stamped as such), and bravais_setting_NN.json does or should include the change of basis operator, so it could be applied automatically. This would be safer
Just a suggestion
This e-mail and any attachments may contain confidential, copyright and or privileged material, and are for the use of the intended addressee only. If you are not the intended addressee or an authorised recipient of the addressee please notify us of receipt by returning the e-mail and do not use, copy, retain, distribute or disclose the information in or attached to the e-mail.
Any opinions expressed within this e-mail are those of the individual and not necessarily of Diamond Light Source Ltd.
Diamond Light Source Ltd. cannot guarantee that this e-mail or any attachments are free from viruses and we cannot accept liability for any damage which you may sustain as a result of software viruses which may be transmitted in or with the message.
Diamond Light Source Limited (company no. 4375679). Registered in England and Wales with its registered office at Diamond House, Harwell Science and Innovation Campus, Didcot, Oxfordshire, OX11 0DE, United Kingdom