Hi Ed,
Curious. Both phenix.mtz.dump and ccp4 mtzdmp indicate that HKL_base is present, yet when you actually look at the headers it's missing. The mtzlib description says that HKL_base will be inserted automatically if missing, perhaps this is what happens when mtz file is dumped?
Honestly, I never really understood how the HKL_base mechnism is supposed to work. Practically: to my knowledge, you are the first ever to report trouble reading phenix.refine mtz files. How exactly are you reading them? Maybe a small adjustment could make your reader work? We are reading everything through the ccp4 cmtz library, just through C++ wrappers that hide the technicalities of the C interfaces. Therefore I think any other program using the cmtz library should also be able to read our files. The mtz code used by phenix.refine is in this directory: http://cci.lbl.gov/cctbx_sources/iotbx/mtz/ The main files are object.h, object.cpp, and __init__.py which contains a .set_hkl_base() method. I guess I could try to assign the H,K,L columns to crystal 1 as Nat suggested, but nobody knows what problems such a change would trigger, and it will probably take a decade anyway before the current implementation is flushed out of the system. I think modifying your reader to work with our files is the best solution and should be very easy. Ralf