(Semi-)Automated Manipulations

Peptide_Bond_Flipper

../_images/pep-flip-icon.png
class chimerax.isolde.manipulations.Peptide_Bond_Flipper(isolde, residue)

Responsible for flipping a peptide bond by adding temporary phi and psi restraints 180 degrees away from their starting angles. Automatically removes the restraints and deletes itself once satisfied, or when unable to satisfy the restraints after a number of steps defined by SimParams.peptide_flipper_max_rounds. On failure, a warning is printed to the ChimeraX log. If the restraints are satisfied to within SimParams.dihedral_restraint_cutoff_angle within the step limit, a “polishing” phase is triggered in which the restraint cutoff angles are reduced to zero and maintained for ten coordinate updates, at which point the restraints are released. There is no real need to keep a handle to a Peptide_Bond_Flipper instance - just fire and forget.

__init__(isolde, residue)

Initialisation immediately starts the peptide flipping process. Adds a handler to the chimerax.AtomicStructure.triggers ‘coord update’ trigger to check its progress and make decisions after each coordinate update.

Args:
  • isolde:
    • the current Isolde session

  • residue:
    • a currently-mobile chimerax.Residue

ProteinRegisterShifter

../_images/registershift-icon.png
class chimerax.isolde.manipulations.ProteinRegisterShifter(session, isolde, atoms)

In models built into low-resolution maps it is quite common to find stretches of the protein chain that have been built out of register - that is, the fold is more-or-less correct, but the residues are one or more steps forward or backward along the chain from where they should be. It can be a difficult and frustrating task to fix such problems via purely manual methods, but a little scripting can help simplify the task substantially.

ProteinRegisterShifter addresses the task by first calculating four 3D parametric splines (through the coordinates of the N, CA, C and CB (or HA3 for glycine) atoms of the problem residues respectively). These splines are then used to define the positions of position restraints for each N, CA, C and CB, which move smoothly along the spline traversing one register position for every ten coordinate updates. This provides a smooth transition from starting to final positions, avoiding any risk of clashes or excessive forces. When the traversal is finished the restraints will remain in place until release_all() is called, allowing the user to check and correct local geometry before releasing.

Note that checkpointing of the simulation is blocked while a ProteinRegisterShifter is active. The block will be released when release_all() is called.

__init__(session, isolde, atoms)

Initialise the object, including creating the splines from the current coordinates. No restraints are applied at this stage.

Args:
  • session:
    • the ChimeraX master session object

  • isolde:
    • the Isolde session

  • atoms:
    • a chimerax.AtomicStructure instance. All atoms must be mobile, and from a single contiguous stretch of peptide chain. All unique residues in the selection will be chosen for shifting

release_all()

Release all restraints and clean up. Once this is run this object should no longer be used.

shift_register(nres)

Shift the atoms in register by the given number of residues. A positive nres yields a shift towards the C-terminus, while a negative nres gives a shift towards the N-terminus. Residues that fall off the end of the target region will become unrestrained, while residues that enter the start will become restrained.

Args:
  • nres:
    • an integer