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_sasaFunction
calculate_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.

Note:

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

calculate_average_sasa

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
source
ProtoSyn.Peptides.Calculators.SASA.calculate_average_sasaFunction
calculate_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.

Note:

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
source
ProtoSyn.Peptides.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.

Note:

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 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 maxsasa is considered buried (where T <: AbstractFloat) (see [`calculateaverage_sasa`](@ref)).

See also

calc_sasa_energy

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
source