Rotamer Mutator

One of the AbstractMutator types made available by the ProtoSyn.Peptides module is the RotamerMutator, allowing a user to sample the sidechain conformation of one or more Residue instances. This has, for example, applications in sidechain packaging, ligand adsorption stabilization or active site generation algorithms, among others. For more information, see the Rotamers submodule section.

ProtoSyn.Peptides.Mutators.RotamerMutatorType
RotamerMutator(rotamer_library::Dict{String, ProtoSyn.Peptides.BBD_RotamerLibrary}, p_mut::AbstractFloat, n_first::Int, selection::Opt{AbstractSelection}, random_inexistent_phi_psi::Bool)

Return a RotamerMutator instance. This AbstractMutator is a functor, called with the following signature:

(rotamer_mutator::RotamerMutator)(pose::Pose)

The RotamerMutator AbstractMutator loops through all Atom instances in the given Pose and applies a Rotamer conformation change if a random number (rand()) is bellow a given probability of mutation p_mut (will skip any Residue with unnaccessible phi or psi dihedral angles, such as the first and last Residue of a chain, unless randomize_inexistent_phi_psi flag is set to true, false by default. Is this case, will randomize the missing phi or psi dihedral angles in order to sample a semi-random Rotamer from rotamer_library). A Rotamer conformation change is a concerted rotation of all sidechain Atom instances in the Residue of the selected Atom (therefore for a single attempt at Rotamer change, unique Atom names should be selected, an"CA", for example). If an AbstractSelection selection is provided, only Atom instances marked as true in this selection are considered for Rotamer conformational change. The applied Rotamer is sampled from the RotamerMutator.rotamer_library, based on the name of the Residue and current phi and psi dihedral angle values. The n_first most likely Rotamer instances are taken into account during this sampling step. Note that the RotamerMutator syncs any pending cartesian to internal coordinate conversion (using the c2i! method). Requests internal to cartesian coordinates conversion (using request_i2c! method). Does not sync! the given Pose afterwards.

The RotamerMutator AbstractMutator can also be optionally called using the following signature, in which case only the provided list of Atom instances will be considered for the application of this AbstractMutator.

(rotamer_mutator::RotamerMutator)(pose::Pose, atoms::Vector{Atom})

Fields

  • rotamer_library::Dict{String, ProtoSyn.Peptides.BBD_RotamerLibrary} - A dictionary of BBD_RotamerLibrary instances, for each aminoacid type;
  • p_mut::AbtractFloat - Compared against a rand() call, applies this Mutator to Atom instances where rand() < p_mut;
  • n_first::Int - Take only the N most likely Rotamer instances from the rotamer library;
  • selection::Opt{AbstractSelection} - If given, this Mutator will only loop over the selected Atom instances;
  • random_inexistent_phi_psi::Bool - If set to true, any Residue instance whose phi or psi dihedral angle is unable to be determined will be randomized (example: last aminoacid in a chain);

See also

DesignMutator

Examples

julia> rm = ProtoSyn.Peptides.Mutators.RotamerMutator(rot_lib, 1.0, 10, an"CA" & !rn"PRO")
⚯  Rotamer Mutator:
+----------------------------------------------------------------------+
| Index | Field                       | Value                          |
+----------------------------------------------------------------------+
| 1     | rotamer_library             | Set ✓                          |
| 2     | p_mut                       | 1.000                          |
| 3     | n_first                     | 10                             |
+----------------------------------------------------------------------+
 ● Selection: Set
 └── BinarySelection ❯  & "and" (Atom)
      ├── FieldSelection › Atom.name = CA
      └── UnarySelection ❯ ! "not" (Residue)
           └── FieldSelection › Residue.name = PRO
source

ProtoSyn Rotamer Mutator Card

Figure 1 | Schematic description of the RotamerMutator.

ProtoSyn Rotamer Mutator

Figure 2 | Example of the application of RotamerMutator to simulateously change the conformation of all sidechain Atom instances (except in Proline Residue instances).