SASA
SASA stands for Solvent Accessible Surface Area and is a measure of the total surface area of a given solute. Multiple approaches have been proposed for the accurate estimation of this property. ProtoSyn, by default, employs the Overlapping Spheres (OLS) algorithm, a variant of the Shrake and Rupley algorithm (for more details, see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2712621/ and the calc_sasa
docstring). This section includes the following topics:
SASA EnergyFunctionComponent
The following EnergyFunctionComponent
returns an energy value proportional to the system's SASA.
ProtoSyn.Calculators.SASA.calc_sasa
— Functioncalc_sasa([::Type{A}], pose::Pose, [selection::Opt{AbstractSelection} = an"CA"], [update_forces::Bool = false]; [probe_radius::T = 1.4], [n_points::Int = 100]) where {A <: ProtoSyn.AbstractAccelerationType, T <: AbstractFloat}
Approximates the given Pose
pose
Surface Accessible Surface Area (SASA) using the Overlapping Spheres (OLS) algorithm, a variant of the Shrake and Rupley algorithm (for more details, see https://www.ncbi.nlm.nih.gov/pmc/articles/PMC2712621/). In this algorithm, a sphere of points is generated around each Atom
instance (using the fibonacci_sphere
method). The spherical distance to the Atom
is given by probe_radius
(1.4 Å, by default) and the number of points is given by n_points
(100, by default). For all other considered Atom
instances, points from the generated sphere are removed if they are within probe_radius
cut-off. The SASA value is approximated by the number of remaining points in the generated sphere (not within probe_radius
of any other Atom
instance). If an AbstractSelection
selection
is provided, the subset of Atom
instances considered for the calculation is restricted to the selected atoms (selects atoms named "CA", by default; will promote
all provided AbstractSelection
instances to be of Atom
type). This Calculator does not calculate forces. As such, update_forces
has no effect and exists only in order to standardize calls between Calculators. An optional parameter Type{<: AbstractAccelerationType}
can be provided, stating the acceleration type used to calculate this energetic contribution (See ProtoSyn acceleration types, if not provided defaults to ProtoSyn.acceleration.active
). Besides the Pose
pose
energy and forces (set to nothing
on this Calculator), also returns the individually calculated SASA values (for each considered Atom
instance) and the cartesian coordinates of all remaining points in each considered Atom
sphere.
See also
get_default_sasa
calc_sasa_energy
Examples
julia> ProtoSyn.Calculators.SASA.calc_sasa(pose)
(36597.0, nothing, [...], [...])
ProtoSyn.Calculators.SASA.get_default_sasa
— Functionget_default_sasa(;[α::T = 1.0]) where {T <: AbstractFloat}
Return the default SASA EnergyFunctionComponent
. α
sets the component weight (on an EnergyFunction
instance, 1.0
by default). This function employs calc_sasa
as the :calc
function.
Settings
n_points::Int
- The number of points to generate in eachAtom
sphere (higher number of points leads to higher accuracy, at the expense of performance);probe_radius::T
- The distance of each point in a generated sphere to the centralAtom
instance. Any point withinprobe_radius
of any other atom is considered buriedResidue
name (where T <: AbstractFloat).
See also
Examples
julia> ProtoSyn.Calculators.SASA.get_default_sasa()
🞧 Energy Function Component:
+---------------------------------------------------+
| Name | SASA |
| Alpha (α) | 1.0 |
| Update forces | false |
| Calculator | calc_sasa |
+---------------------------------------------------+
| +----------------------------------------------------------------------------------+
├── ● Settings | Value |
| +----------------------------------------------------------------------------------+
| | probe_radius | 1.4 |
| | n_points | 100 |
| +----------------------------------------------------------------------------------+
|
└── ○ Selection: nothing
Modern implicit solvation models often employ a hybrid approach, dubbed "SASA/GB". In short, the Generalized Born model attempts to estimate the enthalpic contribution of solvating a given molecule, and the SASA model calculates the entropy contribution of "opening space" for the solvation of such a molecule. Both models act together to provide a more clear picture of the solvation potential of that system. Consider employing the get_default_sasa
EnergyFunctionComponent
in conjunction with the get_default_gb
EnergyFunctionComponent
.
SASA solvation EnergyFunctionComponent
In contrast with the get_default_sasa
EnergyFunctionComponent
, the SASA solvation EnergyFunctionComponent attempts to attribute a solvation energy value to each Residue
in the system, based on an hydrophobicity map. In sum, exposed hydrophobic Residue
instances are penalized while exposed hydrophilic Residue
instances are rewarded (and vice-versa for buried Residue
instances).
ProtoSyn.Calculators.SASA.calc_sasa_energy
— Functioncalc_sasa_energy([::Type{A}], pose::Pose, [selection::Opt{AbstractSelection} = an"CA"], [update_forces::Bool = false]; [probe_radius::T = 1.4], [n_points::Int = 100], [residue_selection::AbstractSelection = TrueSelection{Residue}()], [hydrophobicity_map::Opt{Dict{String, T}} = nothing], [max_sasas::Opt{Dict{String, T}} = nothing], [Ω::T = 0.0]) where {A <: ProtoSyn.AbstractAccelerationType, T <: AbstractFloat}
Approximates the given Pose
pose
Surface Accessible Surface Area (SASA) energy using the Overlapping Spheres (OLS) algorithm (See calc_sasa
for more information on how SASA is calculated). In this Calculator, the calculated SASA of a Residue
(using the n_points
sphere at probe_radius
from all considered Atom
instances) is compared to reference values (max_sasas
, define the maximum SASA value of a Residue
completly solvated). The average exposure value Ω
defines the average ratio of max_sasas
that is exposed in a given system. Any SASA value bellow the Ω * maxsasa is considered buried, and vice-versa. This burial/exposure scale is then multiplied by that Residue
specific hydrophobiciy index (provided in the `hydrophobicitymap). Hydrophilic/exposed and hydrophobic/buried [
Residue](@ref) instances should be rewarded and vice-versa. Since SASA approximation is [
Atom](@ref) based, any provided
AbstractSelectionselection
limits the subset of considered [
Atom](@ref) instances for SASA calculation. Each [
Atom](@ref) individual contribution is summed to the [
Residue](@ref) level, only for [
Residue](@ref) instances selected by
residueselection. This Calculator does not calculate forces. As such,
updateforceshas no effect and exists only in order to standardize calls between Calculators. An optional parameter
Type{<: AbstractAccelerationType}can be provided, stating the acceleration type used to calculate this energetic contribution (See [ProtoSyn acceleration types](@ref), if not provided defaults to
ProtoSyn.acceleration.active`).
See also
get_default_sasa_energy
calc_sasa
Examples
julia> ProtoSyn.Calculators.SASA.calc_sasa_energy(pose, hydrophobicity_map = ProtoSyn.Peptides.doolitle_hydrophobicity)
(-37074.2, nothing)
ProtoSyn.Calculators.SASA.get_default_sasa_energy
— Functionget_default_sasa_energy(;[α::T = 1.0]) where {T <: AbstractFloat}
Return the default SASA energy EnergyFunctionComponent
. α
sets the component weight (on an EnergyFunction
instance, 1.0
by default). This function employs calc_sasa
as the :calc
function.
Settings
n_points::Int
- The number of points to generate in eachAtom
sphere (higher number of points leads to higher accuracy, at the expense of performance);probe_radius::T
- The distance of each point in a generated sphere to the centralAtom
instance. Any point withinprobe_radius
of any other atom is considered buriedResidue
name (where T <: AbstractFloat);hydrophobicity_map::Dict{String, T}
- A dictionary of hydrophobicity values for eachResidue
name, positive values indicate hydrophobicity and vice-versa (where T <: AbstractFloat);max_sasas::Dict{String, T}
- A dictionary of max_sasa values (SASA values for fully-solvatedResidue
instances) for eachResidue
name (where T <: AbstractFloat);Ω::T
- The average exposure value (between 0.0 and 1.0), any SASA value bellow this percentage of max_sasa is considered buried (where T <: AbstractFloat).
See also
Examples
julia> ProtoSyn.Calculators.SASA.get_default_sasa_energy()
🞧 Energy Function Component:
+---------------------------------------------------+
| Name | SASA_Solvation |
| Alpha (α) | 1.0 |
| Update forces | false |
| Calculator | calc_sasa_energy |
+---------------------------------------------------+
| +----------------------------------------------------------------------------------+
├── ● Settings | Value |
| +----------------------------------------------------------------------------------+
| | max_sasas | Dict{String, Float64}(0 components) |
| | hydrophobicity_map | Dict{String, Float64}(22 components) |
| | Ω | 0.0 |
| | probe_radius | 1.4 |
| | n_points | 100 |
| +----------------------------------------------------------------------------------+
|
└── ○ Selection: nothing