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.0ProtoSyn.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.49055441526123295ProtoSyn.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 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 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