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 eachAtomsphere (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 centralAtominstance. Any point withinprobe_radiusof any other atom is considered buriedResiduename (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: nothingModern 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 providedAbstractSelectionselectionlimits 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 byresidueselection. This Calculator does not calculate forces. As such,updateforceshas no effect and exists only in order to standardize calls between Calculators. An optional parameterType{<: AbstractAccelerationType}can be provided, stating the acceleration type used to calculate this energetic contribution (See [ProtoSyn acceleration types](@ref), if not provided defaults toProtoSyn.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 eachAtomsphere (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 centralAtominstance. Any point withinprobe_radiusof any other atom is considered buriedResiduename (where T <: AbstractFloat);hydrophobicity_map::Dict{String, T}- A dictionary of hydrophobicity values for eachResiduename, 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-solvatedResidueinstances) for eachResiduename (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