State
This section lists functions that work on the system State, as expansions to the Core methods (See State). Making use of the Secondary Structure types (in specific, the SecondaryStructureTemplate
instance), the setss!
method allows a user to quickly apply a given Secondary Structure to a Pose
or a subset of selected Residue
instances.
ProtoSyn.Peptides.setss!
— Functionsetss!(state::State, ss::SecondaryStructureTemplate{T}, residues::Vector{Residue}; [include_variation::Bool = false], [min_prob::T = 0.0]) where {T <: AbstractFloat}
Set the phi ϕ
, psi ψ
and omega ω
backbone angles of all Residue
instances in the given residues
vector to match the provided SecondaryStructureTemplate
. This function acts on the internal coordinates and does not update cartesian coordinates (using the sync!
method), although a request for conversion is made (by calling the request_i2c!
). If include_variation
is set to true
(false, by default
), the phi ϕ
, psi ψ
and omega ω
backbone angles are sampled from each distribution, instead of using the ideal angle. min_prob
defines the minimum probability of the sampled angle (from 0.0 to 1.0). Using higher min_prob
values results in variations conformationally closer to the ideal dihedral angle values.
setss!(pose::Pose, ss::SecondaryStructureTemplate; [include_variation::Bool = false], [min_prob::T = 0.0])
setss!(pose::Pose, ss::SecondaryStructureTemplate, sele::ProtoSyn.AbstractSelection; [include_variation::Bool = false], [min_prob::T = 0.0])
setss!(pose::Pose, ss::SecondaryStructureTemplate, residue::Residue; [include_variation::Bool = false], [min_prob::T = 0.0])
Set the phi ϕ
, psi ψ
and omega ω
backbone angles of all Residue
instances in the given Pose
pose
to match the provided SecondaryStructureTemplate
. If an optional AbstractSelection
sele
is provided, apply the transformation only to the selected Residue
instances. Optionally, a single Residue
instance can also be provided: any changes will only apply to the selected Residue
instance.
See also
Examples
julia> ProtoSyn.Peptides.setss!(pose, ProtoSyn.Peptides.SecondaryStructure[:helix])
State{Float64}:
Size: 343
i2c: true | c2i: false
Energy: Dict(:Total => Inf)
ProtoSyn.Peptides.read_ss_map
— Functionread_ss_map(pose::Pose, filename::String, ss_type::String)
Reads a SecondaryStructure
map from filename
into an AbstractSelection
of Residue
instances marked with the desired ss_type
in the map. The map is checked against the given Pose
for compatibility (number of Residue
instances, etc). The expected map format follows the DeepConCNF_SS3 format (3-mode categorization), as given by RaptorX prediction server.
Examples
julia> ProtoSyn.Peptides.read_ss_map("ss_map.txt", "H")
(...)
ProtoSyn.Peptides.categorize_ss_from_dihedral_angles
— Functioncategorize_ss_from_dihedral_angles(pose::Pose, [selection::Opt{ProtoSyn.AbstractSelection} = nothing]; [blur_amount::T = 0.5]) where {T <: AbstractFloat}
This method attempts to categorize the given Pose
pose
Residue
instances in a 3-mode categorization format: "H" for helix, "E" for beta sheets and "C" for coils. The categorization takes into account:
- Geometrical criteria: accordance of the current phi
ϕ
, psiψ
and omegaω
backbone angles to known potentials. Make sure thePose
pose
is synched (seesync!
); - Hydrogen bonding pattern: counts hydrogen bonds using
generate_hydrogen_bond_network
. Make sure thePose
pose
has charges (seeassign_default_charges!
); - Flanking
Residue
secondary structure: flankingResidue
's secondary structure "spills" over and influences neighboringResidue
instances. The influence amount can be set withblur_amount
(0.5, by default); - Terminal
Residue
instances: TerminalResidue
instances tend to adopt coil conformations.
In ProtoSyn 1.1, this method offers notoriously sub-par predictions. Using external tools such as DSSP or RaptorX secondary structure prediction server is recommended.
Examples
julia> ProtoSyn.Peptides.categorize_ss_from_dihedral_angles(pose)
"CHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHCCCHHHHHHHHHHHHHHHHHHHHHHHHC"