From time to time it may happen you record data with the wrong beam centre in the header (say) and then, if you have a large unit cell, you can have a lot of fun trying to get the data to process right... why? Because it may index perfectly well but with the wrong origin in reciprocal space.
Clearly you can resolve this by looking at the data - however it's much more fun to use DIALS!
OK, so we have run the usual dials.find_spots, dials.index shuffle & ended up with something which looks ... sensible:
Final refined crystal models:
model 1 (93307 reflections):
Crystal:
Unit cell: (57.593, 57.688, 148.089, 90.579, 90.455, 89.758)
Space group: P 1
U matrix: {{ 0.3287, 0.1200, -0.9368},
{ 0.0693, -0.9923, -0.1027},
{-0.9419, -0.0312, -0.3344}}
B matrix: {{ 0.0174, 0.0000, 0.0000},
{-0.0001, 0.0173, 0.0000},
{ 0.0001, 0.0002, 0.0068}}
A = UB: {{ 0.0056, 0.0019, -0.0063},
{ 0.0013, -0.0172, -0.0007},
{-0.0164, -0.0006, -0.0023}}
Saving refined experiments to experiments.json
Saving refined reflections to indexed.pickle
However we know here that the beam centre is wrong - how to work out the right centre? Look for the inversion symmetry in the intensities of the strong spots as follows:
dials.check_indexing_symmetry experiments.json indexed.pickle \
grid_search_scope=3 symop_threshold=0.7
This will check the symmetry operations implied by the input experiment (in this case P1; nothing to see here) and since we have set the grid search scope it will also compute the CC on the -h,-k,-l operator taking in to account shifts in h,k,l of -3 to +3 => 343 permutations; it will then print (in this case) those which give a CC > 0.7 and also the 0,0,0 for reference - here we find that the data are indeed misindexed:
symop_threshold = 0.7
grid_search_scope = 3
input {
experiments = experiments.json
reflections = indexed.pickle
}
Checking HKL origin:
dH dK dL Nref CC
0 0 0 26890 0.393
0 0 2 27849 0.965
So you can then apply this shift to the indexed reflections and rerun the refinement - this should sort out your geometry nicely. You do this with:
dials.reindex indexed.pickle hkl_offset=0,0,2 output.reflections=reindexed.pickle
If this happened to me, I would take the refined geometry and rerun the indexing (that's for another post). In the case I was working on here this improved the #reflections indexed from 93307 to 269577 - worthwhile!
Happy twiddling!