positional restraints in real_space_refine?
Hi all, I'm working on a cryo-EM reconstruction where I have some flexible low-resolution elements (RNA double helices). They have different orientations relative to my reference model, but I would like to model them in the approximately correct position. I've tried real_space_refine with morphing and simulated annealing, but neither accomplish what I want. Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint". Is it possible to use the manual positions as a reference for positional restraints, but use the original model as the reference for the torsion angles. Is this possible with real_space_refine? Or is there a better way of refining this structure? Regards, Daniel När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/ E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
Hi Daniel,
Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint".
This is very likely. If the distance would be too big, there will be no connection. If you will specify links manually, for long distances this may cause instability in "joint" region during refinement.
Is it possible to use the manual positions as a reference for positional restraints,
No. Unfortunately, the reference_coordinate_restraints are not designed to take other model.
Or is there a better way of refining this structure?
Maybe you can try "Real space refine zone" in Coot and drag the piece of model into the density there maintaining the reasonable geometry during the process? Best regards, Oleg Sobolev.
Regards, Daniel
När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/
E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
I’ve done something quite like this in ISOLDE with a fair bit of success: rigid-body docked individual domains into density, then using these to define target positions for flexible fitting of the unbroken complete model from a markedly different configuration. This currently requires a little work in the ChimeraX shell to set up, but is fairly straightforward. Let me know if you’re interested and I can write up some instructions. Tristan Croll Research Fellow Cambridge Institute for Medical Research University of Cambridge CB2 0XY
On 3 Oct 2019, at 11:24, Daniel Larsson
wrote: Hi all,
I'm working on a cryo-EM reconstruction where I have some flexible low-resolution elements (RNA double helices). They have different orientations relative to my reference model, but I would like to model them in the approximately correct position. I've tried real_space_refine with morphing and simulated annealing, but neither accomplish what I want. Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint". Is it possible to use the manual positions as a reference for positional restraints, but use the original model as the reference for the torsion angles. Is this possible with real_space_refine? Or is there a better way of refining this structure?
Regards, Daniel
När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/
E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
Tristan, it would be very nice if you could write it up. Thank you so much! Regards, Daniel
On 2019-10-04, at 23:09, Tristan Croll
wrote: I’ve done something quite like this in ISOLDE with a fair bit of success: rigid-body docked individual domains into density, then using these to define target positions for flexible fitting of the unbroken complete model from a markedly different configuration. This currently requires a little work in the ChimeraX shell to set up, but is fairly straightforward. Let me know if you’re interested and I can write up some instructions.
Tristan Croll Research Fellow Cambridge Institute for Medical Research University of Cambridge CB2 0XY
On 3 Oct 2019, at 11:24, Daniel Larsson
wrote: Hi all,
I'm working on a cryo-EM reconstruction where I have some flexible low-resolution elements (RNA double helices). They have different orientations relative to my reference model, but I would like to model them in the approximately correct position. I've tried real_space_refine with morphing and simulated annealing, but neither accomplish what I want. Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint". Is it possible to use the manual positions as a reference for positional restraints, but use the original model as the reference for the torsion angles. Is this possible with real_space_refine? Or is there a better way of refining this structure?
Regards, Daniel
När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/
E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
Ok. I've been a bit tied up today, but will try to get them together tomorrow. If you have access to a powerful enough GPU machine and the changes aren't *too* large, you could try the following right now: - Load your model/map in ChimeraX, start ISOLDE and associate the model with the map, ready to go - Add hydrogens if you haven't already using the 'addh' command on the ChimeraX command line - Assuming your model is #1 (check the Models panel if you're not sure), do 'isolde restrain distances #1' to set up a web of distance restraints - On the ISOLDE 'Sim settings' tab, increase the mask radius to the approximate distance necessary to cover the biggest move you expect - Click the 'Show map settings dialogue' button and reduce the Weight term to about half (generally when you're doing big moves you want the map to pull quite weakly) - Start a simulation covering the whole model ('select #1', then press ISOLDE's play button) - Reduce the display to a backbone trace by hiding everything but the CA and P atoms: 'hide ~@CA,P' - select the atoms you want to tug on (e.g. 'select /A:20-30') - click the 'tug selected atoms' button (third from bottom left on the ISOLDE panel) - Now, clicking and dragging with the right mouse button will tug on the selection - line it up so the direction you want to pull is in the plane of the screen, and go for it. I find that tugging in short bursts rather than one continuous pull yields the best results. The distance restraints are designed to restrain local geometry while allowing large conformational changes, so in general things should remain under control. If you need to (i.e. in places where the conformation *really* changes) you can release the restraints on some atoms by selecting them, then typing the command, 'isolde release distances sel'. Best regards, Tristan On 2019-10-07 10:09, Daniel Larsson wrote:
Tristan, it would be very nice if you could write it up. Thank you so much!
Regards, Daniel
On 2019-10-04, at 23:09, Tristan Croll
wrote: I’ve done something quite like this in ISOLDE with a fair bit of success: rigid-body docked individual domains into density, then using these to define target positions for flexible fitting of the unbroken complete model from a markedly different configuration. This currently requires a little work in the ChimeraX shell to set up, but is fairly straightforward. Let me know if you’re interested and I can write up some instructions.
Tristan Croll Research Fellow Cambridge Institute for Medical Research University of Cambridge CB2 0XY
On 3 Oct 2019, at 11:24, Daniel Larsson
wrote: Hi all,
I'm working on a cryo-EM reconstruction where I have some flexible low-resolution elements (RNA double helices). They have different orientations relative to my reference model, but I would like to model them in the approximately correct position. I've tried real_space_refine with morphing and simulated annealing, but neither accomplish what I want. Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint". Is it possible to use the manual positions as a reference for positional restraints, but use the original model as the reference for the torsion angles. Is this possible with real_space_refine? Or is there a better way of refining this structure?
Regards, Daniel
När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/
E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
As promised, here's a quick run-down of how you can currently implement bulk positional targets in ISOLDE. This requires a combination of commands via the ChimeraX command line (the bar under the main GUI window) and the Python shell (accessible via Tools/General/Shell). Eventually this will all be doable via the command line, but not quite yet. The instructions assume that your main model is model #1 and is ready to go in ISOLDE, and each rigid-body docked fragment corresponds exactly to some part of your main model. Best regards, Tristan # Preliminaries on the command line: apply adaptive distance restraints # to keep the overall geometry controlled: "isolde restrain distances #1" # Preliminaries in the shell: m = session.isolde.selected_model from chimerax.atomic import selected_atoms from chimerax.isolde import session_extensions as sx prm = sx.get_position_restraint_mgr(m) # Now, in the GUI or via the command line, select the first set of atoms # you want to move - e.g. "select #1/A:1-100@CA" to select all CA atoms # in residues 1 to 100 of chain A in model #1. # in the shell: tomove_1 = selected_atoms(session) # on the command line, select the *exactly* corresponding atoms from your # first rigid-body docked fragment - this will most likely be as simple as # changing the model number in the previous command target_1 = selected_atoms(session) prs_1 = prm.add_restraints(tomove_1) prs_1.targets = target_1.scene_coords prs_1.spring_constants = 100 # Units here are in kJ/mol/nm^2. This value is very weak, and is a good starting # point when your starting coordinates are far from the target. As the simulation # converges you might consider increasing these 10-fold or so - you can change # them at any time using 'prs_1.spring_constants = {new value}' and they'll # automatically update in the simulation. The restraints themselves mostly act # as simple harmonic potentials, but switch to constant force beyond a (quite high, # but still stable) cut-off. In general, as long as you're also using the # adaptive distance restraints they should be well-behaved even if your target is # many tens of Angstroms from the starting coordinates. prs_1.enableds = True # Each target position will appear as a yellow pin in the main GUI, connected to # its atom by a yellow dotted line. # Now repeat the above for each other docked fragment. Once done, you can close # the docked fragment models if you wish. Select your model and press ISOLDE's # play button. If you wish to monitor some numeric indicator of convergence as # well as simply watching, you can get the mean difference between current and # target positions for a set of restraints with a little Numpy: import numpy numpy.mean(numpy.abs(numpy.linalg.norm(prs_1.targets-prs_1.atoms.coords, axis=1)), axis=0) # Once you're happy with the result, stop the simulation. You can disable the # position restraints using: prs_1.enableds = False # ... but if you intend to continue in this modelling session, it's a little more # efficient to delete them entirely (disabled position restraints are still # present in simulations, in case you want to re-enable them). # WARNING: you MUST ensure the simulation is stopped (not just paused) before doing # this. If you forget, you'll still be able to save your coordinates but your ISOLDE # session will be otherwise fried. # This can be done via the model panel or in the shell. on the model panel, # expand the entry corresponding to the model itself (this will have the name of # the original coordinates file, and in most circumstances will be model #1.3), # find the "Position Restraints" entry, select it and press the "Close" button. # Do the same for the "Adaptive Distance Restraints" entry. In the shell: session.models.remove([prm]) adrm = sx.get_adaptive_distance_restraint_mgr(m) session.models.remove([adrm]) On 2019-10-07 17:14, Tristan Croll wrote:
Ok. I've been a bit tied up today, but will try to get them together tomorrow. If you have access to a powerful enough GPU machine and the changes aren't *too* large, you could try the following right now:
- Load your model/map in ChimeraX, start ISOLDE and associate the model with the map, ready to go - Add hydrogens if you haven't already using the 'addh' command on the ChimeraX command line - Assuming your model is #1 (check the Models panel if you're not sure), do 'isolde restrain distances #1' to set up a web of distance restraints - On the ISOLDE 'Sim settings' tab, increase the mask radius to the approximate distance necessary to cover the biggest move you expect - Click the 'Show map settings dialogue' button and reduce the Weight term to about half (generally when you're doing big moves you want the map to pull quite weakly) - Start a simulation covering the whole model ('select #1', then press ISOLDE's play button) - Reduce the display to a backbone trace by hiding everything but the CA and P atoms: 'hide ~@CA,P' - select the atoms you want to tug on (e.g. 'select /A:20-30') - click the 'tug selected atoms' button (third from bottom left on the ISOLDE panel) - Now, clicking and dragging with the right mouse button will tug on the selection - line it up so the direction you want to pull is in the plane of the screen, and go for it. I find that tugging in short bursts rather than one continuous pull yields the best results. The distance restraints are designed to restrain local geometry while allowing large conformational changes, so in general things should remain under control. If you need to (i.e. in places where the conformation *really* changes) you can release the restraints on some atoms by selecting them, then typing the command, 'isolde release distances sel'.
Best regards,
Tristan
On 2019-10-07 10:09, Daniel Larsson wrote:
Tristan, it would be very nice if you could write it up. Thank you so much!
Regards, Daniel
On 2019-10-04, at 23:09, Tristan Croll
wrote: I’ve done something quite like this in ISOLDE with a fair bit of success: rigid-body docked individual domains into density, then using these to define target positions for flexible fitting of the unbroken complete model from a markedly different configuration. This currently requires a little work in the ChimeraX shell to set up, but is fairly straightforward. Let me know if you’re interested and I can write up some instructions.
Tristan Croll Research Fellow Cambridge Institute for Medical Research University of Cambridge CB2 0XY
On 3 Oct 2019, at 11:24, Daniel Larsson
wrote: Hi all,
I'm working on a cryo-EM reconstruction where I have some flexible low-resolution elements (RNA double helices). They have different orientations relative to my reference model, but I would like to model them in the approximately correct position. I've tried real_space_refine with morphing and simulated annealing, but neither accomplish what I want. Now I'm thinking of cutting out these helices and manually position them approximately where I want them. But I fear that this will case headache at the "joint". Is it possible to use the manual positions as a reference for positional restraints, but use the original model as the reference for the torsion angles. Is this possible with real_space_refine? Or is there a better way of refining this structure?
Regards, Daniel
När du har kontakt med oss på Uppsala universitet med e-post så innebär det att vi behandlar dina personuppgifter. För att läsa mer om hur vi gör det kan du läsa här: http://www.uu.se/om-uu/dataskydd-personuppgifter/
E-mailing Uppsala University means that we will process your personal data. For more information on how this is performed, please read here: http://www.uu.se/en/about-uu/data-protection-policy
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
_______________________________________________ phenixbb mailing list [email protected] http://phenix-online.org/mailman/listinfo/phenixbb Unsubscribe: [email protected]
participants (3)
-
Daniel Larsson
-
Oleg Sobolev
-
Tristan Croll