Compound Driver

Similar to the Compound Mutator, a Compound Driver joins and sequentially calls a set of Driver and AbstractMutator instances, as well as custom sampling functions (the only difference to a CompoundMutator is the addition of Driver instances as callable objects).

ProtoSyn.Drivers.CompoundDriverType
CompoundDriver(drivers::Vector{Union{Function, AbstractMutator, Driver}}; [p::Float64 = 1.0])

A CompoundDriver Driver instance. As such, this object is callable as a functor with the following signature:

(driver::CompoundDriver)(pose::Pose)

A CompoundDriver Driver groups several Driver, AbstractMutator and custom functions, calling each of the components sequentially. Does not sync! changes, this task is left to each individual Driver or AbstractMutator instance. p defines the probability of running this CompoundDriver when called (From 0.0 to 1.0).

Note:

In contrast with CompoundMutator, this Driver does not accept an AbstractSelection modifier. This may change in future versions of ProtoSyn.

Examples

julia> ProtoSyn.Drivers.CompoundDriver([monte_carlo, monte_carlo])
⚒  CompoundDriver Driver (2 elements) (p: 1.0):
 ├── ⚒  Monte Carlo Driver:
 |    ├──  ●  Evaluator:
 |    |    └── 🗲  Energy Function (4 components):
 |    |        +----------------------------------------------------------------------+
 |    |        | Index | Component name                                | Weight (α)   |
 |    |        +----------------------------------------------------------------------+
 |    |        | 1     | TorchANI_ML_Model                             |      1.000   |
 |    |        | 2     | Caterpillar_Solvation                         |      0.010   |
 |    |        | 3     | Bond_Distance_Restraint                       |      1.000   |
 |    |        | 4     | Cα-Cα_Clash_Restraint                         |    100.000   |
 |    |        +----------------------------------------------------------------------+
 |    |   
 |    ├──  ● Sampler:
 |    |    └── ⚯  Dihedral Mutator:
 |    |        +----------------------------------------------------------------------+
 |    |        | Index | Field                       | Value                          |
 |    |        +----------------------------------------------------------------------+
 |    |        | 1     | angle_sampler               | Function randn                 |
 |    |        | 2     | p_mut                       | 0.0100                         |
 |    |        | 3     | step_size                   | 0.5000                         |
 |    |        +----------------------------------------------------------------------+
 |    |         ● Selection: Set
 |    |         └── FieldSelection › Atom.name = r"C|N"
 |    |   
 |    ├──  ○  Callback: Not set
 |    |   
 |    └──  ● Settings:
 |          Max steps: 10
 |        Temperature: linear_quench
 |   
 └── ⚒  Monte Carlo Driver:
      ├──  ●  Evaluator:
      |    └── 🗲  Energy Function (4 components):
      |        +----------------------------------------------------------------------+
      |        | Index | Component name                                | Weight (α)   |
      |        +----------------------------------------------------------------------+
      |        | 1     | TorchANI_ML_Model                             |      1.000   |
      |        | 2     | Caterpillar_Solvation                         |      0.010   |
      |        | 3     | Bond_Distance_Restraint                       |      1.000   |
      |        | 4     | Cα-Cα_Clash_Restraint                         |    100.000   |
      |        +----------------------------------------------------------------------+
      |   
      ├──  ● Sampler:
      |    └── ⚯  Dihedral Mutator:
      |        +----------------------------------------------------------------------+
      |        | Index | Field                       | Value                          |
      |        +----------------------------------------------------------------------+
      |        | 1     | angle_sampler               | Function randn                 |
      |        | 2     | p_mut                       | 0.0100                         |
      |        | 3     | step_size                   | 0.5000                         |
      |        +----------------------------------------------------------------------+
      |         ● Selection: Set
      |         └── FieldSelection › Atom.name = r"C|N"
      |   
      ├──  ○  Callback: Not set
      |   
      └──  ● Settings:
            Max steps: 10
          Temperature: linear_quench
source