Secondary Structure Propensity

“Propensity for secondary structures represents an intrinsic property of an amino acid (…)” - Susan Contantini, 2006

The Secondary Structure Propensity Calculators module introduces a measure of how likely a given peptide sequence is based on the natural distribution of aminoacids in nature for the assessed secondary structure, according to Constantini et al. (See this paper).

ProtoSyn.Peptides.Calculators.load_default_aa_ss_propensityFunction
load_default_aa_ss_propensity([::Type{T}]) where {T <: AbstractFloat}

Load the default aminoacid secondary structure propensity map from ProtoSyn.Peptides.aa_ss_propensity_filename. Set the values to be of type T (ProtoSyn.Units.defaultFloat, by default). ProtoSyn automatically loads this map to ProtoSyn.Peptides.Calculators.default_aa_ss_propensity during loading. The values are extracted from Contantini et al. work (See https://www.sciencedirect.com/science/article/pii/S0006291X06002543.

Examples

julia> ProtoSyn.Peptides.Calculators.load_default_aa_ss_propensity()
Dict{Char, Dict{Char, Float64}} with 3 entries:
  'H' => Dict('P'=>0.50, 'M'=>1.21, 'K'=>1.11, 'F'=>1.01…)
  'E' => Dict('P'=>0.44, 'M'=>0.99, 'K'=>0.83, 'F'=>1.43…)
  'C' => Dict('P'=>1.72, 'M'=>0.83, 'K'=>1.00, 'F'=>0.76…)
source
ProtoSyn.Peptides.Calculators.calc_aa_ss_propensityFunction
calc_aa_ss_propensity([::Type{A}], pose::Pose, selection::Opt{AbstractSelection}, update_forces::Bool; [secondary_structure::Union{Function, String} = ProtoSyn.Peptides.categorize_ss_from_dihedral_angles], [aa_ss_propensity_map::Dict{Char, Dict{Char, T}} = default_aa_ss_propensity]) where {A <: ProtoSyn.AbstractAccelerationType, T <: AbstractFloat}

Calculates the Pose pose energy in accordance to the aa_ss_propensity_map. This map correlates aminoacid nature to secondary structure propensity. The Pose pose secondary structure is given by the secondary_structure argument (either a String using the 3-mode categorization - "H" for helix, "E" for beta sheets and "C" for coils; or a Function that takes the given Pose pose as a single input argument and returns the 3-mode categorization - ProtoSyn.Peptides.categorize_ss_from_dihedral_angles, by default). Read ProtoSyn.Peptides.categorize_ss_from_dihedral_angles documentation for more details on Pose requirements. If an AbstractSelection selection is given, only the selected Residue instances are considered for the energy calculation (any given selection will be promoted to Residue type, see ProtoSyn.promote). This method does not calculate forces. As such, the update_forces flag has no effect and serves only for standardization purposes between Calculators methods. 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).

Note:

In ProtoSyn version 1.1, the ProtoSyn.Peptides.categorize_ss_from_dihedral_angles is notoriously weak. Therefore, manually assigning a secondary structure from a third-party categorization software (such as DSSP) or a ML prediction server (such as RaptorX) is preferable. This may change in future versions of ProtoSyn.

See also

get_default_aa_ss_propensity

Examples

julia> ProtoSyn.Peptides.Calculators.calc_aa_ss_propensity(pose, nothing, false)
(-86.07000000000001, nothing)
source
ProtoSyn.Peptides.Calculators.get_default_aa_ss_propensityFunction
get_default_aa_ss_propensity(;[α::T = 1.0]) where {T <: AbstractFloat}

Return the default aminoacid secondary structure propensity energy EnergyFunctionComponent. α sets the component weight (on an EnergyFunction instance, 1.0 by default). This function employs calc_aa_ss_propensity as the :calc function.

Settings

  • aa_ss_propensity_map::Dict{Char, Dict{Char, T}} - The secondary structure map, correlates a 3-mode category ("H", "E" or "C") to a propensity value, for each aminoacid type (in 1-letter convention).
  • secondary_structure::Union{Function, String} - The Pose secondary structure, either as a static String or a dynamic funtion that takes a Pose as the single input and returns the secondary structure String.

See also

calc_aa_ss_propensity fixate_secondary_structure!

Examples

```jldoctest julia> ProtoSyn.Peptides.Calculators.getdefaultaasspropensity() 🞧 Energy Function Component: +–––––––––––––––––––––––––-+ | Name | AASSPropensity | | Alpha (α) | 1.0 | | Update forces | true | | Calculator | calcaasspropensity | +–––––––––––––––––––––––––-+ | +–––––––––––––––––––––––––––––––––––––––––+ ├── ● Settings | Value | | +–––––––––––––––––––––––––––––––––––––––––+ | | aasspropensitymap | Dict{Char, Dict{Char, Float64}}(3 components) | | | secondarystructure | categorizessfromdihedral_angles | | +–––––––––––––––––––––––––––––––––––––––––+ | └── ○ Selection: nothing

source
ProtoSyn.Peptides.Calculators.fixate_secondary_structure!Function
fixate_secondary_structure!(efc::EnergyFunctionComponent, pose::Pose)

If the given EnergyFunctionComponent efc is of type AASSPropensity and its current :secondary_structure setting is a dynamic Function, apply this method to the given Pose pose to set a static secondary structure String. This increases the EnergyFunctionComponent efc performace.

See also

get_default_aa_ss_propensity

Examples

julia> ProtoSyn.Peptides.Calculators.fixate_secondary_structure!(efc, pose)
"CHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHHHC"
source