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 thePoseposeis synched (seesync!); - Hydrogen bonding pattern: counts hydrogen bonds using
generate_hydrogen_bond_network. Make sure thePoseposehas charges (seeassign_default_charges!); - Flanking
Residuesecondary structure: flankingResidue's secondary structure "spills" over and influences neighboringResidueinstances. The influence amount can be set withblur_amount(0.5, by default); - Terminal
Residueinstances: TerminalResidueinstances 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"