Mappings
BiochemicalAlgorithms.AbstractAtomBijection
BiochemicalAlgorithms.AbstractRMSDMinimizer
BiochemicalAlgorithms.RMSDMinimizerCoutsias
BiochemicalAlgorithms.RMSDMinimizerKabsch
BiochemicalAlgorithms.RigidTransform
BiochemicalAlgorithms.TrivialAtomBijection
BiochemicalAlgorithms.atoms
BiochemicalAlgorithms.compute_rmsd
BiochemicalAlgorithms.compute_rmsd_minimizer
BiochemicalAlgorithms.map_rigid!
BiochemicalAlgorithms.rigid_transform!
BiochemicalAlgorithms.translate!
Atom bijections
BiochemicalAlgorithms.AbstractAtomBijection
— Typeabstract type AbstractAtomBijection{T}
Abstract base type for atom bijections.
BiochemicalAlgorithms.TrivialAtomBijection
— TypeTrivialAtomBijection{T} <: AbstractAtomBijection{T}
Bijection of atoms based on their order in the associated atom containers.
Constructors
TrivialAtomBijection(A::AtomTable{T}, B::AtomTable{T})
Creates a new TrivialAtomBijection{T}
from the given tables. Atom order is determined by row number.
TrivialAtomBijection(A::AbstractAtomContainer{T}, B::AbstractAtomContainer{T})
Creates a new TrivialAtomBijection{T}
with the atoms of the individual atom containers.
TrivialAtomBijection(A::AtomTable{T}, B::AbstractAtomContainer{T})
Creates a new TrivialAtomBijection{T}
by filtering B
for atom numbers contained in A
. Atom order after filtering must be the same as in A
.
BiochemicalAlgorithms.atoms
— Methodatoms(
ab::AbstractAtomBijection
) -> Tuple{AtomTable, AtomTable}
Returns the tuple of atom tables represented by this bijection.
Rigid mapping
BiochemicalAlgorithms.AbstractRMSDMinimizer
— Typeabstract type AbstractRMSDMinimizer
Abstract base type for RMSD minimizers.
BiochemicalAlgorithms.RMSDMinimizerCoutsias
— Typeabstract type RMSDMinimizerCoutsias <: AbstractRMSDMinimizer
Abstract base type for RMSD minimizers based on https://doi.org/10.1002/jcc.20110.
BiochemicalAlgorithms.RMSDMinimizerKabsch
— Typeabstract type RMSDMinimizerKabsch <: AbstractRMSDMinimizer
Abstract base type for RMSD minimizers based on https://doi.org/10.1107/S0567739476001873.
BiochemicalAlgorithms.RigidTransform
— Typestruct RigidTransform{T<:Real}
Rigid transformation represented by a single rotation (around a specific center of rotation) and translation.
Constructors
RigidTransform(r::RotMatrix3{T}, t::Vector3{T}, center::Vector3{T} = zeros(Vector3{T}))
RigidTransform(r::Matrix3{T}, t::Vector3{T}, center::Vector3{T} = zeros(Vector3{T}))
Creates a new RigidTransform{T}
from the given rotation r
, center
of rotation, and translation t
.
From the documentation of Rotations.jl:
The given
Matrix3{T}
should have the propertyI =RR^T
, but this isn't enforced by the constructor.
BiochemicalAlgorithms.compute_rmsd
— Functioncompute_rmsd(f::AbstractAtomBijection)
compute_rmsd(A::AbstractAtomContainer{T}, B::AbstractAtomContainer{T})
compute_rmsd(A::AtomTable{T}, B::AtomTable{T})
Computes the root mean square deviation (RMSD) of the given atom bijection. Defaults to TrivialAtomBijection
if arguments are atom containers or tables.
BiochemicalAlgorithms.compute_rmsd_minimizer
— Functioncompute_rmsd_minimizer(f::AbstractAtomBijection)
compute_rmsd_minimizer(A::AbstractAtomContainer{T}, B::AbstractAtomContainer{T})
compute_rmsd_miminizer(A::AtomTable{T}, B::AtomTable{T})
Computes the RMSD-minimizing rigid transformation for the given atom bijection. Defaults to TrivialAtomBijection
if arguments are atom containers or tables.
Supported keyword arguments
minimizer::Type{<: AbstractRMSDMinimizer} = RMSDMinimizerCoutsias
Method used for computing the optimal rotation matrix. SeeRMSDMinimizerCoutsias
andRMSDMinimizerKabsch
.
BiochemicalAlgorithms.map_rigid!
— Functionmap_rigid!(f::AbstractAtomBijection)
map_rigid!(A::AbstractAtomContainer{T}, B::AbstractAtomContainer{T})
map_rigid!(A::AtomTable{T}, B::AtomTable{T})
Computes, applies, and returns the RMSD-minimizing rigid transformation for the given atom bijection. Defaults to TrivialAtomBijection
if arguments are atom containers or tables. Only the first structure (A
) is modified, i.e. mapped onto the second one (B
).
Supported keyword arguments
heavy_atoms_only::Bool = false
Iftrue
, hydrogen atoms are ignored during the computation of the optimal transformation. Otherwise, all atoms are used.minimizer::Type{<: AbstractRMSDMinimizer} = RMSDMinimizerCoutsias
Seecompute_rmsd_minimizer
BiochemicalAlgorithms.rigid_transform!
— Functionrigid_transform!(at::AtomTable{T}, transform::RigidTransform{T})
rigid_transform!(ac::AbstractAtomContainer, transform::RigidTransform)
Applies the rotation and the translation represented by transform
(in this order) to all atoms of the given container.
BiochemicalAlgorithms.translate!
— Functiontranslate!(::AtomTable{T}, t::Vector3{T})
translate!(::AbstractAtomContainer{T}, t::Vector3{T})
Translates all atoms of the given container according to the given translation vector t
.