On Sun, Oct 27, 2013 at 6:36 AM, Keitaro Yamashita <k.yamashita@spring8.or.jp> wrote:
When I changed the cctbx code to sort reflections after mapping to
a.s.u., CC1/2 values by phenix.merging_statistics became closer to
XSCALE.

In merging_stats.__init__() in iotbx/merging_statistics.py, I inserted a line
>    array = array.sort("packed_indices")
after
>    array = array.customized_copy(anomalous_flag=anomalous).map_to_asu()

but I think there would be more correct way to fix this unexpected behavior.

If you can think of a better method, feel free to implement it, but I think the above is quite appropriate.  Assuming this passes the regression test (iotbx/regression/tst_merging_statistics.py), it's fine to check in.  The only drawback is that it's probably inefficient (especially for arrays that are already sorted), but the entire program isn't very efficient to begin with, and a more comprehensive solution would require a ground-up approach mostly coded in C++.  This will definitely become necessary at some point but none of us have time to spare right now.

-Nat