<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
<style type="text/css" style="display:none;"> P {margin-top:0;margin-bottom:0;} </style>
</head>
<body dir="ltr">
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
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:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">m = session.isolde.selected_model</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">from chimerax.isolde.phenix.map_symmetry import parse_map_symmetry_file</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">symmetry_map = parse_map_symmetry_file('symmetry_from_map.ncs_spec')</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">from chimerax.isolde.atomic.building.ncs import create_all_ncs_copies</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">create_all_ncs_copies(m, symmetry_map[0])</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
One known bug is that any bonds between different chains will be lost - if present, you'll need to re-add them manually.<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
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.:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
isolde restrain torsions #1/C template #1/A angleRange 180</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
... and repeat for each matching NCS copy, one chain at a time. This will restrain the NCS copies to the
<b>current </b>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.:</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
def reimpose_symmetry(session):<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">    ncs_map = {</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">        "A": ["C","E","G"],</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">        "B": ["D","F","H"]</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">    }</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">    from chimerax.core.commands import run</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">    for template, ncs_list in ncs_map.items():</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">        for ncs_chain in ncs_list:</span><br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">            run(session, "isolde restrain torsions #1/{} template #1/{} angleRange 180".format(ncs_chain, template))</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<span style="font-family: "Courier New", monospace;">reimpose_symmetry(session)</span></div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
... and then re-run <span style="font-family: "Courier New", monospace;">reimpose_symmetry(session)</span> 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. <br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
Hope this helps! I do hope to flesh out this tool as time permits.</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
-- Tristan<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div style="font-family: Calibri, Arial, Helvetica, sans-serif; font-size: 12pt; color: rgb(0, 0, 0);">
<br>
</div>
<div id="appendonsend"></div>
<hr style="display:inline-block;width:98%" tabindex="-1">
<div id="divRplyFwdMsg" dir="ltr"><font face="Calibri, sans-serif" style="font-size:11pt" color="#000000"><b>From:</b> ChimeraX-users <chimerax-users-bounces@cgl.ucsf.edu> on behalf of Sean Connell <sean.connell@gmail.com><br>
<b>Sent:</b> 06 April 2021 08:44<br>
<b>To:</b> chimerax-users@cgl.ucsf.edu <chimerax-users@cgl.ucsf.edu><br>
<b>Subject:</b> [chimerax-users] Use symmetry information in Isolde</font>
<div> </div>
</div>
<div class="BodyFragment"><font size="2"><span style="font-size:11pt;">
<div class="PlainText">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?  <br>
<br>
Thanks for any tips you have.<br>
_______________________________________________<br>
ChimeraX-users mailing list<br>
ChimeraX-users@cgl.ucsf.edu<br>
Manage subscription:<br>
<a href="https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users">https://www.rbvi.ucsf.edu/mailman/listinfo/chimerax-users</a><br>
</div>
</span></font></div>
</body>
</html>