Internals

How did you get here?!

The following docstrings are a dump for non-exported private & internal functions. These provide basic internal functionality that should rarely be employed by an end-user. In either case, docstrings exist to explain the inner-workings of methods for potential developers.

ProtoSyn.Calculators.TorchANI.r_xml_travel!Function
r_xml_travel!(xml::Union{XMLDocument, XMLElement}, query::String, results::Vector{T}) where {T <: AbstractFloat}

Recursively travel the XMLDocument or XMLElement and gather all entrys of label type query, pushing them to the results vector (a parse for the correct T type is attempted).

source
ProtoSyn.Clustering.dunn_indexFunction
dunn_index(intra::Vector{T}, inter::Vector{T}) where {T <: AbstractFloat}

Given a vector with all intra-distances of all clusters considered and an inter-distance matrix between all clusters considered, return the Dunn Index. Note: The higher the Dunn Index, the better is the clustering.

Examples

julia> ProtoSyn.Clustering.dunn_index(intra, inter)
1.0097267039046134

See also

ProtoSyn.Clustering.davies_bouldin_index

source
ProtoSyn.Calculators.get_available_energy_function_componentsFunction
get_available_energy_function_components([m::Module = ProtoSyn.Calculators])

Returns all available EnergyFunctionComponent instances in the provided Module m (defaults to ProtoSyn.Calculators). Recursivelly searches any inner Module.

See also

show_available_energy_function_components

Examples

julia> ProtoSyn.Calculators.get_available_energy_function_components(ProtoSyn.Calculators) 14-element Vector{Function}: get_default_custom_ref_energy (generic function with 1 method) get_default_coulomb (generic function with 1 method) (...)

source
Base.resize!Method
resize!(verlet_list::VerletList, n::Int)

    Resize a Verlet list to hold 'n' particles. If 'n' is higher than the
    current length of the list, appends 0's.

Example:

    resize!(vl, 8)
source
ProtoSyn.CommonModule
The Common module stores functions with higher levels of abstraction and
that are common practice in ProtoSyn algorithms.
source
ProtoSyn.Peptides.Calculators.Caterpillar.nc_scalling_exposed_onlyFunction
nc_scalling_exposed_only(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all buried residues contributions are set to 0.0. The exposed residues contribution is a scaled difference between the given Ωi and the cut-off , multiplied by the hydrophobicity_map_value.

See also

nc_non_scalling_exposed_only nc_scalling_all_contributions nc_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nc_scalling_exposed_only(10.0, hydrophobicity_map_value = 1.0, Ω = 5.0)
5.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nv_scalling_exposed_onlyFunction
nv_scalling_exposed_only(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all buried residues contributions are set to 0.0. The exposed residues contribution is a scaled difference between the given Ωi and the cut-off , multiplied by the hydrophobicity_map_value.

See also

nv_non_scalling_exposed_only nv_scalling_all_contributions nv_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nv_scalling_exposed_only(10.0, hydrophobicity_map_value = 1.0, Ω = 5.0)
5.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nc_non_scalling_exposed_onlyFunction
nc_non_scalling_exposed_only(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all buried residues contributions are set to 0.0. The exposed residues contribution is the non scaled hydrophobicity_map_value.

See also

nc_scalling_exposed_only nc_scalling_all_contributions nc_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nc_non_scalling_exposed_only(10.0, hydrophobicity_map_value = 1.0, Ω = 5.0)
1.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nv_non_scalling_exposed_onlyFunction
nv_non_scalling_exposed_only(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all buried residues contributions are set to 0.0. The exposed residues contribution is the non scaled hydrophobicity_map_value.

See also

nv_scalling_exposed_only nv_scalling_all_contributions nv_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nv_non_scalling_exposed_only(10.0, hydrophobicity_map_value = 1.0, Ω = 5.0)
1.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nc_scalling_all_contributionsFunction
nc_scalling_all_contributions(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all residue contributions are considered. Both the exposed and buried residues contributions are a scaled difference between the given Ωi and the cut-off , multiplied by the hydrophobicity_map_value.

See also

nc_scalling_exposed_only nc_non_scalling_exposed_only nc_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nc_scalling_all_contributions(10.0, hydrophobicity_map_value = 1.0, Ω = 20.0)
-10.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nv_scalling_all_contributionsFunction
nv_scalling_all_contributions(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all residue contributions are considered. Both the exposed and buried residues contributions are a scaled difference between the given Ωi and the cut-off , multiplied by the hydrophobicity_map_value.

See also

nv_scalling_exposed_only nv_non_scalling_exposed_only nv_non_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nv_scalling_all_contributions(10.0, hydrophobicity_map_value = 1.0, Ω = 20.0)
-10.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nc_non_scalling_all_contributionsFunction
nc_non_scalling_all_contributions(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all residue contributions are considered. Both the exposed and buried residues contributions are the non scaled hydrophobicity_map_value.

See also

nc_scalling_exposed_only nc_non_scalling_exposed_only nc_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nc_non_scalling_all_contributions(10.0, hydrophobicity_map_value = 1.0, Ω = 20.0)
-1.0
source
ProtoSyn.Peptides.Calculators.Caterpillar.nv_non_scalling_all_contributionsFunction
nv_non_scalling_all_contributions(Ωi::Union{Int, T}; hydrophobicity_map_value::T = 0.0, Ω::Union{Int, T} = 0.0) where {T <: AbstractFloat}

Return the hydrophobicity weight w2 where all residue contributions are considered. Both the exposed and buried residues contributions are the non scaled hydrophobicity_map_value.

See also

nv_scalling_exposed_only nv_non_scalling_exposed_only nv_scalling_all_contributions

Examples

julia> ProtoSyn.Peptides.Calculators.Caterpillar.nv_non_scalling_all_contributions(10.0, hydrophobicity_map_value = 1.0, Ω = 20.0)
-1.0
source
ProtoSyn.cross2dFunction
cross2d(m1::Mask{T}, m2::Mask{T}) where {T <: AbstractContainer}

Combine both the provided Mask instances m1 and m2, so that the returned result is a 2D Mask where each position (N, M) is the result of combining m1[N] & m2[M].

cross2d(m1::Mask{T}) where {T <: AbstractContainer}

If only 1 Mask m1 is provided, return the cross2d result of m1 and m1' (m1 transpose).

See also

tile

Examples

julia> m = ProtoSyn.Mask{Atom}(4); m[1] = m[3] = true; m
ProtoSyn.Mask{Atom}(4,)
4-element BitArray{1}:
 1
 0
 1
 0

julia> ProtoSyn.cross2d(m)
ProtoSyn.Mask{Atom}(4, 4)
4×4 BitArray{2}:
 1  0  1  0
 0  0  0  0
 1  0  1  0
 0  0  0  0
source
ProtoSyn.@crossMacro

@macroexpand @cross u outu au b_u

quote out1 = a2 * b3 - a3 * b2 out2 = a3 * b1 - a1 * b3 out3 = a1 * b2 - a2 * b_1 end

source
ProtoSyn.Calculators.@reduceMacro
@reduce(n::Int, op::Symbol, ex::Expr)

    Wrapping macro for @ncall. Is equivalent and generates
    op(ex_1, ..., ex_n)

Example:

    @reduce 2 (+) u -> v_u^2
    > Generates +(v_1^2, v_2^2)
source
ProtoSyn.get_leadFunction
get_lead(level_code::Opt{LevelCode} = nothing)

Auxiliary function, uses level codes to show inheritance in the terminal for complex types.

source
ProtoSyn.Clustering.complete_diameter_distancesFunction
complete_diameter_distances([T], assignments::Vector{Int}, rm::Matrix{T}) where {T <: AbstractFloat}

Given an assignment vector (see Clustering package) and a RMSD matrix (see ProtoSyn.Clustering.rmsd_matrix), return the intra- and inter-cluster complete diameter distances. Note: The complete diameter distance is the distance between the two most remote objects is the same cluster (intra-distance) or in two clusters (inter-distance).

Examples

julia> intra, inter = ProtoSyn.Clustering.complete_diameter_distances(clusters.assignments, rmsd_matrix)
([8.611851425604167, 13.379156063323348], [0.0 13.509291152844908; 0.0 0.0])

See also

ProtoSyn.Clustering.average_diameter_distances

source
ProtoSyn.Clustering.davies_bouldin_indexFunction
davies_bouldin_index(intra::Vector{T}, inter::Vector{T}) where {T <: AbstractFloat}

Given a vector with all intra-distances of all clusters considered and an inter-distance matrix between all clusters considered, return the Davies-Bouldin Index. Note: The lower the Davies-Bouldin Index, the better is the clustering.

Examples

julia> ProtoSyn.Clustering.davies_bouldin_index(intra, inter)
0.8139215907082012

See also

ProtoSyn.Clustering.davies_bouldin_index

source
ProtoSyn.Clustering.rmsd_matrixFunction
rmsd_matrix([T], poses::Vector{Pose})
rmsd_matrix([T], poses::Vector{Pose}, selection::AbstractSelection)

Given a vector of Poses, calculate the pairwise RMSD (see ProtoSyn.rmsd) values between all members, after alignment (see ProtoSyn.align! for more information). If an optional type T <: AbstractFloat is given, use this type. Otherwise, will use ProtoSyn.Units.defaultFloat. If an AbstractSelection (selection) is given, use that sub-set of atoms for the alignment and RMSD calculation.

Examples

julia> a = ProtoSyn.Clustering.rmsd_matrix(poses, an"CA")
3×3 Array{Float64,2}:
0.0      7.18633  9.9984
7.18633  0.0      7.01093
9.9984   7.01093  0.0

See also

ProtoSyn.align! ProtoSyn.rmsd ProtoSyn.Clustering.complete_diameter_distances ProtoSyn.Clustering.average_diameter_distances

source
ProtoSyn.Clustering.average_diameter_distancesFunction
average_diameter_distances([T], assignments::Vector{Int}, rm::Matrix{T}) where {T <: AbstractFloat}

Given an assignment vector (see Clustering package) and a RMSD matrix (see ProtoSyn.Clustering.rmsd_matrix), return the intra- and inter-cluster average diameter distances. Note: The average diameter distance is the average linkage distance between all the objects is the same cluster (intra-distance) or all the objects in two clusters (inter-distance).

Examples

julia> intra, inter = ProtoSyn.Clustering.average_diameter_distances(clusters.assignments, rmsd_matrix)
([6.19984080693077, 7.566813059033408], [0.0 8.551225161132669; 0.0 0.0])

See also

ProtoSyn.Clustering.complete_diameter_distances

source
ProtoSyn.tileFunction
tile(m::Mask{T}) where {T <: AbstractContainer}

Repeat and return the content of the provided Mask m N times, where N is the length of m, along the horizontal dimension. Note that this function expects a 1D Mask as input, otherwise will just return the received Mask.

See also

tile!

Examples

julia> m = ProtoSyn.Mask{Atom}(4); m[1] = true; m
ProtoSyn.Mask{Atom}(4,)
4-element BitArray{1}:
 1
 0
 0
 0

julia> ProtoSyn.tile(m)
ProtoSyn.Mask{Atom}(4, 4)
4×4 BitArray{2}:
 1  1  1  1
 0  0  0  0
 0  0  0  0
 0  0  0  0
source
ProtoSyn.tile!Function
tile!(m::Mask{T}) where {T <: AbstractContainer}

Repeat the content of the provided Mask m N times, where N is the length of m. Note that this function expects a 1D Mask as input, otherwise will just return the received Mask. Overwrite the contents of the input Mask with the output.

See also

tile

Examples

julia> m = ProtoSyn.Mask{Atom}(4); m[1] = true; m
ProtoSyn.Mask{Atom}(4,)
4-element BitArray{1}:
 1
 0
 0
 0

julia> ProtoSyn.tile!(m)
ProtoSyn.Mask{Atom}(4, 4)
4×4 BitArray{2}:
 1  1  1  1
 0  0  0  0
 0  0  0  0
 0  0  0  0
source
ProtoSyn.MutatorsModule
Mutators

Mutators are complex functions that perform 1 specific change in a system. Currently, ProtoSyn-base makes available the following mutators:

  • DihedralMutator
  • CrankshaftMutator
  • RotationRigidBodyMutator
  • TranslationRigidBodyMutator
  • BackrubMutator
  • CompoundMutator
source
ProtoSyn.Peptides.MutatorsModule
Mutators

Mutators are complex functions that perform 1 specific change in a system. Besides the list of available Mutators at ProtoSyn.Mutators, the Peptides module adds the following Mutators:

  • RotamerMutator
  • DesignMutator
source
ProtoSyn.PeptidesModule
Peptides

The Peptides modules introduces Calculators, Mutators and Drivers (among other methods) specific for proteins and peptides.

source
ProtoSyn.MaterialsModule
Materials

The Materials modules introduces several methods related to different types of materials (such as atomic lattices, etc).

source
ProtoSyn.GMXModule
GMX (Module)

Holds utilitary methods for preparing and launching GROMCAS simulations.

source
ProtoSyn.Peptides.GMXModule
GMX (module)

Holds auxiliary methods for generating .itp, .top and other necessary files for GROMACS simulations.

source
ProtoSyn.GMX.check_installationFunction
check_installation()

Checks the current machine for necessary packages: gmx, antechamber & acpype. Make sure these programs are in the system's PATH.

Examples

julia> ProtoSyn.GMX.check_installation()
✓ All necessary packages were found!
source
ProtoSyn.Calculators.neighboursFunction
neighbours(verlet_list::VerletList, atom_index::Int)

Return a list of the neighbouring Atom instances of Atom with :index atom_index, according to the provided VerletList verlet_list.

Examples

julia> ProtoSyn.Calculators.neighbours(vl, 1)
11-element Vector{Int64}:
  2
  3
  4
  5
  6
  7
  8
 10
 11
 12
 13
source
ProtoSyn.print_diagnose_resultsFunction
print_diagnose_results(title::String, issues::Vector{String}, init_level_code::LevelCode, level::Int)

Prints a list of issues (under the scop of title grouping) in a stylized way (uses init_level_code and adds inner LevelCode instances at level).

Note:

This function is intended to be employed from diagnose, and not as a standalone.

Examples

julia> ProtoSyn.print_diagnose_results("Charges", ["Missing charges", "Charges sum is not 0.0"], LevelCode(), 4)
 |
 └──  • Charges (2 issues identified)
      ├── Missing charges
      └── Charges sum is not 0.0
source
ProtoSyn.XMLRPC.ClientProxyType
ClientProxy(host::String, port::Int)

Instantiate a client proxy listening on hostand port. This object is meant to act as a proxy to a remote service implementing the XML/RPC protocol, and was designed to work with Python and PyMOL. For more detailed information, please read:

https://blog.papercut.com/write-xml-rpc-clients/

https://wiki.python.org/moin/XmlRpc

Examples

julia> ProtoSyn.XMLRPC.ClientProxy("http://localhost", 50000)
ProtoSyn.XMLRPC.ClientProxy("http://localhost", 50000, "http://localhost:50000")
source
ProtoSyn.read_ymlFunction
read_yml(_filename::String)

Open and read the contents of a .yml file.

Examples

julia> ProtoSyn.read_yml("resources/Peptides/grammars.yml")
Dict{Any, Any} with 2 entries:
 (...)
source
ProtoSyn.gpu_allocationFunction
gpu_allocation()

Return the current fraction of the GPU memory allocated (in range [0, 1]).

Examples

julia> ProtoSyn.gpu_allocation()
0.07821749405343822
source
ProtoSyn.promoteFunction
promote(sele::AbstractSelection, ::Type{T2}, [aggregator::Function = any]) where {T2 <: AbstractContainer}

Return a PromoteSelection instance for selection sele, promoting to the requested type T2 <: AbstractContainer. If this is an upwards promotion, use the given aggregator function (default: any).

Examples

julia> ProtoSyn.promote(rn"ALA", Atom)
PromoteSelection ❯ From Residue to Atom
 └── FieldSelection › Residue.name = ALA
source
promote(m1::Mask{T1}, m2::Mask{T2}, container::AbstractContainer) where {T1, T2}

Promote one of the 2 given Masks (m1 and m2) to the lowest ranking common type (Ex. promote(m1::Mask{Residue}, m2::Mask{Atom}) => (Mask{Atom}, Mask{Atom)).

Examples

julia> m1 = an"CB"(pose);

julia> m2 = rn"LEU"(pose);

julia> ProtoSyn.promote(m1, m2, pose.graph);
source
promote(mask::Mask{T1}, ::Type{T2}, container::AbstractContainer, f::Function = any)::Mask where {T1 <: AbstractContainer, T2 <: AbstractContainer}

Cast a Mask of type T1 to be of type T2, in the context of the given container. If casting to a higher ranking type (upwards promotion - Ex. Atom -> Residue), a function f establishes the grouping operation (any occurrence (by default) or all occurrences of lower ranking type must be true to set the higher ranking entry to true.)

Examples

julia> m1 = an"CB"(pose);

julia> ProtoSyn.promote(m1, Residue, pose.graph);
source