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}
- ThePose
secondary structure, either as a staticString
or a dynamic funtion that takes aPose
as 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"