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_propensity — Functionload_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…)ProtoSyn.Peptides.Calculators.calc_aa_ss_propensity — Functioncalc_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).
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
Examples
julia> ProtoSyn.Peptides.Calculators.calc_aa_ss_propensity(pose, nothing, false)
(-86.07000000000001, nothing)ProtoSyn.Peptides.Calculators.get_default_aa_ss_propensity — Functionget_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}- ThePosesecondary structure, either as a staticStringor a dynamic funtion that takes aPoseas the single input and returns the secondary structureString.
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
ProtoSyn.Peptides.Calculators.fixate_secondary_structure! — Functionfixate_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
Examples
julia> ProtoSyn.Peptides.Calculators.fixate_secondary_structure!(efc, pose)
"CHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHHHC"