REF-15

The Rosetta ( and python wrapper PyRosetta) software has been on the forefront of technological advances in the scope of molecular simulations and energy function development in the past few decades. One such leap was the development of REF-15, an all-atom energy function for macromolecular modeling and design. ProtoSyn directly links to PyRosetta to make use of the REF-15 energy function in its simulations, as an EnergyFunctionComponent.

Note:

Given the natural differences between the way the ProtoSyn and PyRoseta packages handle a Pose, currently, the only way to convert between the two data structures in through the file system. This process, as expected, carries a high computational cost. If no mutation/design process is being performed, it's possible to re-use the sabe PyRosetta pose by simply updating the atomic coordinates. Consider employing the fixate_rosetta_pose! method.

ProtoSyn.Calculators.REF15.calc_ref15Function
calc_ref15(::Type{<: ProtoSyn.AbstractAccelerationType}, pose::Pose, selection::Opt{AbstractSelection}, update_forces::Bool = false; rosetta_pose::Opt{PyCall.PyObject} = nothing)

Calculate the Pose pose energy according to the external REF15 energy function from the PyRosetta Python package. calc_ref15 uses the filesystem to write the given Pose pose to a file and load it using PyRosetta, for the calculation. This is performed each call. Optionally, a static PyCall.PyObject rosetta_pose can be provided. In this case, if the number of Atom instances match, only the cartesian coordinates are updated (improved performance, note that any design effort prevents the usage of the same rosetta_pose). The AbstractSelection in this Calculator doesn't have any effect, and exists only for standardization with other Calculators. The parameter A (Type{<: AbstractAccelerationType}) doesn't have any effect in this Calculator doesn't have any effect, and exists only for standardization with other Calculators.

See also

get_default_ref15

Examples

julia> ProtoSyn.Calculators.REF15.calc_ref15(pose, nothing, false)
(574.367631516687, nothing)
source
ProtoSyn.Calculators.REF15.get_default_ref15Function
get_default_ref15(;[α::T = 1.0]) where {T <: AbstractFloat}

Return the default PyRosetta's REF15 EnergyFunctionComponent. α sets the component weight (on an EnergyFunction instance). This component employs the calc_ref15 method, therefore defining a Pose energy based on PyRosetta's REF15 energy function. By default, this EnergyFunctionComponent uses the filesystem to write the current Pose to a file and load in PyRosetta. Optionally, a static PyCall.Object can be used by setting efc.settings[:rosetta_pose] = static_pose, where static_pose is a previously loaded PyRosetta Pose. Any subsequent calculation only updates the cartesian coordinates (the number of Atom instances must, therefore, match).

See also

fixate_rosetta_pose!

Settings

  • rosetta_pose::Opt{PyCall.PyObject} - Defines the static Rosetta Pose to update cartesian coordinates. If set to nothing, will use filesystem to create a new PyRosetta Pose;

Examples

julia> ProtoSyn.Calculators.REF15.get_default_ref15()
🞧  Energy Function Component:
+---------------------------------------------------+
| Name           | REF15                            |
| Alpha (α)      | 1.0                              |
| Update forces  | true                             |
| Calculator     | calc_ref15                       |
+---------------------------------------------------+
 |    +----------------------------------------------------------------------------------+
 ├──  ● Settings                      | Value                                            |
 |    +----------------------------------------------------------------------------------+
 |    | rosetta_pose                  | nothing                                          |
 |    +----------------------------------------------------------------------------------+
 |    
 └──  ○  Selection: nothing
source
ProtoSyn.Calculators.REF15.fixate_rosetta_pose!Function
fixate_rosetta_pose!(efc::EnergyFunctionComponent{T}, pose::Pose) where {T <: AbstractFloat}

Uses the filesystem to write the given Pose pose to a file and load as a PyRosetta Pose. Sets the provided EnergyFunctionComponent efc :rosetta_pose setting to this newly defined PyCall.Object.

See also

get_default_ref15

Examples

julia> ProtoSyn.Calculators.REF15.fixate_rosetta_pose!(efc, pose)
PyObject <pyrosetta.rosetta.core.pose.Pose object at 0x7f89417d1ab0>
source