This is one of many things that has a preliminary implementation in ISOLDE, but is not yet exposed to the main interface. You can get to it via the Python shell, though (Tools/General/Shell). To reimpose strict symmetry: assuming you have your model initialised in ISOLDE, save your session in case of trouble ("save session.cxs"), prune your model down to one asymmetric unit (e.g. "sel /A,B; del ~sel"), then in the shell:

m = session.isolde.selected_model
from chimerax.isolde.phenix.map_symmetry import parse_map_symmetry_file
symmetry_map = parse_map_symmetry_file('symmetry_from_map.ncs_spec')

from chimerax.isolde.atomic.building.ncs import create_all_ncs_copies
create_all_ncs_copies(m, symmetry_map[0])

One known bug is that any bonds between different chains will be lost - if present, you'll need to re-add them manually.
That extreme approach should only be necessary if you make really big changes, though (e.g. shifting a segment in register, major movement of bulky sidechains). For smaller changes it may be easier to just use your "working" ASU as a template for torsion restraints on the remaining chains. A bit repetitive doing it via the command line, e.g.:

isolde restrain torsions #1/C template #1/A angleRange 180

... and repeat for each matching NCS copy, one chain at a time. This will restrain the NCS copies to the current geometry of your template ASU - you'll need to repeat the command later if you make further changes. If you have many chains, you could save yourself some time by setting up a simple loop in the shell, e.g.:

def reimpose_symmetry(session):
    ncs_map = {
        "A": ["C","E","G"],
        "B": ["D","F","H"]
    }
    from chimerax.core.commands import run
    for template, ncs_list in ncs_map.items():
        for ncs_chain in ncs_list:
            run(session, "isolde restrain torsions #1/{} template #1/{} angleRange 180".format(ncs_chain, template))
reimpose_symmetry(session)

... and then re-run reimpose_symmetry(session) every time you want to update the restraints. Of course, you'll need to actually run a simulation encompassing the whole model for these restraints to take effect.

Hope this helps! I do hope to flesh out this tool as time permits.

-- Tristan



From: ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu> on behalf of Sean Connell <sean.connell@gmail.com>
Sent: 06 April 2021 08:44
To: chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu>
Subject: [chimerax-users] Use symmetry information in Isolde
 
Hello I have a naive question about using Isolde to build a model into a cryoEM map generated with symmetry (ie. D4). Basically I don't understand how to rebuild a chain and have the changes reflected in the symmetry related chains when using a cryoEM map.  Is it possible to use, for example, a NCS file (like symmetry_from_map.ncs_spec) generated by phenix in order to get Isolde to build simultaneously the NCS related chains? Or is there another way build symmetry related chains into a symmetrical cryoEM map? 

Thanks for any tips you have.
_______________________________________________
ChimeraX-users mailing list
ChimeraX-users@cgl.ucsf.edu
Manage subscription:
https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users