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?Validating user-supplied NCS groups...Validating:ncs_group {reference = "altloc A"selection = "altloc B"}OK. All atoms were included in validated selection....==================== Process input NCS or/and find new NCS ====================Number of NCS groups: 1Traceback (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)On Thu, Nov 1, 2018 at 7:50 PM Oleg Sobolev <osobolev@lbl.gov> wrote:Dear Edwin,The alternative is probably to define the second orientation as an alternative conformation. Aside from aesthetic objections, I don't want to lose the ability to restrain NCS - I need two orientations to be identical structures, and I am not sure yet whether I can use NCS groups defined via alternative conformers.I think this would be the easiest way forward and it looks like a very natural use of alternative conformations. You can definitely define NCS groups and even automatic search works. I'm attaching a small dummy example I experimented on. Two overlapping helices: chain A with altloc A and occupancy 0.5, chain B with altloc B and occupancy 0.5. Nothing prevents you from defining NCS groups using "altloc A" and it should work, but I imagine there should always be equivalent selection in terms of "chain A".Best regards,Oleg Sobolev.