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_sasaFunction
calc_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, [...], [...])
source
ProtoSyn.Calculators.SASA.get_default_sasaFunction
get_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 each Atom 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 central Atom instance. Any point within probe_radius of any other atom is considered buried Residue name (where T <: AbstractFloat).

See also

calc_sasa

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
source
Note:

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_energyFunction
calc_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)
source
ProtoSyn.Calculators.SASA.get_default_sasa_energyFunction
get_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 each Atom 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 central Atom instance. Any point within probe_radius of any other atom is considered buried Residue name (where T <: AbstractFloat);
  • hydrophobicity_map::Dict{String, T} - A dictionary of hydrophobicity values for each Residue 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-solvated Residue instances) for each Residue 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

calc_sasa_energy

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
source