Thanks - we could have an argument about what is "natural" here, but that's philosophical.
The only option that works for me so far is to move the other model to the neighboring unit cell and disable symmetry clashes. As I said, it's an ugly hack, but it seems to work. I do run into further issues because omit map calculation fails complaining about clashes, but that's a problem for another day.
Problem with alternate conformer based approach is that it's pain to merge the two models - by hand it would take too long, but I do have reasonable coding abilities so I wrote a little tool that merges two pdb files into one and marks models with altlocs. However, phenix.refine fails when trying to read my NCS definitions even though it appears to have validated them just fine (see log file excerpt below). Any suggestions - am I maybe defining NCS groups wrong?
...
==================== Process input NCS or/and find new NCS ====================
Number of NCS groups: 1
Traceback (most recent call last):
File "/ibbr/phenix-1.14-3228/build/../modules/phenix/phenix/command_line/refine.py", line 11, in <module>
command_line.run(command_name="phenix.refine", args=sys.argv[1:])
File "/ibbr/phenix-1.14-3228/modules/phenix/phenix/refinement/command_line.py", line 106, in run
log=log)
File "/ibbr/phenix-1.14-3228/modules/phenix/phenix/refinement/driver.py", line 450, in __init__
ncs_groups_as_phil = iotbx.phil.parse(ncs_groups_str)
File "/ibbr/phenix-1.14-3228/modules/cctbx_project/iotbx/phil.py", line 81, in parse
process_includes=process_includes)
File "/ibbr/phenix-1.14-3228/modules/cctbx_project/libtbx/phil/__init__.py", line 2178, in parse
primary_parent_scope=result)
File "/ibbr/phenix-1.14-3228/modules/cctbx_project/libtbx/phil/parser.py", line 120, in collect_objects
scope_extract_call_proxy_cache=scope_extract_call_proxy_cache)
File "/ibbr/phenix-1.14-3228/modules/cctbx_project/libtbx/phil/parser.py", line 134, in collect_objects
words=collect_assigned_words(word_iterator, lead_word),
File "/ibbr/phenix-1.14-3228/modules/cctbx_project/libtbx/phil/parser.py", line 31, in collect_assigned_words
str(lead_word), lead_word.where_str()))
RuntimeError: Missing value for selection (input line 3)