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
.
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_ref15
— Functioncalc_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
Examples
julia> ProtoSyn.Calculators.REF15.calc_ref15(pose, nothing, false)
(574.367631516687, nothing)
ProtoSyn.Calculators.REF15.get_default_ref15
— Functionget_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
Settings
rosetta_pose::Opt{PyCall.PyObject}
- Defines the static Rosetta Pose to update cartesian coordinates. If set tonothing
, 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
ProtoSyn.Calculators.REF15.fixate_rosetta_pose!
— Functionfixate_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
Examples
julia> ProtoSyn.Calculators.REF15.fixate_rosetta_pose!(efc, pose)
PyObject <pyrosetta.rosetta.core.pose.Pose object at 0x7f89417d1ab0>