SASA
The Peptides module SASA section expands the Core module methods (See SASA) specifically to measure SASA values (and approximate energy values) on protein and peptide sequences.
ProtoSyn.Peptides.Calculators.SASA.calculate_max_sasa
— Functioncalculate_max_sasa(selection::AbstractSelection, residue_list::Vector{Char}; grammar::LGrammar = Peptides.grammar, probe_radius::T = 1.4, n_points::Int = 100) where {T <: AbstractFloat}
For each Residue
type in residue_list
, build a template from the provided LGrammar
grammar
(Peptides.grammar
, by default) and evaluate the maximum SASA (the single Residue
instance completly solvated by the implicit solvent). The the given AbstractSelection
selection
, probe_radius
and n_points
settings are used to calculate the SASA value (see calc_sasa
). Note that, when using the maximum SASA for comparison with the evaluated SASA in a complex and partially occluded system (such as a protein environment), the same settings should be employed (AbstractSelection
, probe_radius
and n_points
). Returns a dictionary with a maximum SASA value for each queried Residue
type.
This method is used to define default_sidechain_max_sasa
using the default settings from get_default_sasa_energy
:
AbstractSelection
: (SidechainSelection() & !as"H") | an"CA"probe_radius
: 2.8 Ån_points
: 100
See also
Examples
julia> ProtoSyn.Peptides.Calculators.SASA.calculate_max_sasa(((SidechainSelection() & !as"H") | an"CA"), ['R', 'G'], probe_radius = 2.8)
Dict{String, Float64} with 2 entries:
"GLY" => 100.0
"ARG" => 260.0
ProtoSyn.Peptides.Calculators.SASA.calculate_average_sasa
— Functioncalculate_average_sasa(pose::Pose, selection::AbstractSelection, max_sasas::Dict{String, T}; probe_radius::T = 1.4, n_points::Int = 100) where {T <: AbstractFloat}
Calculates the average SASA exposure of the given Pose
pose
(as a % in relation to the maximum SASA, as defined in max_sasas
- see calculate_max_sasa
). If an AbstractSelection
selection
is provided, only the selected Atom
instances will be considered for SASA calculation (using the given probe_radius
and n_points
). Note that for comparison, make sure the max_sasas
were calcualted using the same settings (selection
, probe_radius
and n_points
). If using an AbstractSelection
that only selects a given subset of Residue
instances (instead of a subset of Atom
instances in all Residue
instances), note that the SASA can only be occluded by all other selected Residue
instances. This generally tens to return a much higher average SASA value.
In the default Peptides SASA EnergyFunctionComponent
(see get_default_sasa_energy
), a Ω
value sets the average SASA value for a Residue
instance in the evaluated Pose
. calculate_average_sasa
can help setting this value.
Examples
julia> ProtoSyn.Peptides.Calculators.SASA.calculate_average_sasa(pose, ((SidechainSelection() & !as"H") | an"CA"), Peptides.Calculators.SASA.default_sidechain_max_sasa, probe_radius = 2.8)
0.49055441526123295
ProtoSyn.Peptides.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.
This EnergyFunctionComponent
is similar to the ProtoSyn.Calculators.SASA.get_default_sasa_energy
version, but adds the correct selection
and max_sasas
dictionary (specifically for peptides).
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 maxsasa is considered buried (where T <: AbstractFloat) (see [`calculateaverage_sasa`](@ref)).
See also
Examples
julia> ProtoSyn.Peptides.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}(22 components) |
| | hydrophobicity_map | Dict{String, Float64}(22 components) |
| | Ω | 0.5 |
| | probe_radius | 2.8 |
| | n_points | 100 |
| +----------------------------------------------------------------------------------+
|
└── ● Selection:
└── BinarySelection ❯ | "or" (Atom)
├── BinarySelection ❯ & "and" (Atom)
| ├── SidechainSelection › (Atom)
| └── UnarySelection ❯ ! "not" (Atom)
| └── FieldSelection › Atom.symbol = H
└── FieldSelection › Atom.name = CA