Dear Nat,
Thank you very much for your reply. As the code passes the regression
test, I have committed this change. This sort() may slowdown the
runtime, but it seems comparable. For 3,099,125 reflections test case,
the difference was marginal (68.6 vs 68.9 sec).
Best regards,
Keitaro
2013/10/28 Nathaniel Echols
On Sun, Oct 27, 2013 at 6:36 AM, Keitaro Yamashita
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
_______________________________________________ cctbxbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/cctbxbb