Distance geometry-related classes and functions. More...
Data Structures | |
struct | Configuration |
A configuration object for distance geometry runs with sane defaults. More... | |
struct | MoleculeDGInformation |
Intermediate conformational data about a Molecule given by a spatial model. More... | |
class | DistanceBoundsMatrix |
struct | ChiralConstraint |
Data struct representing a chiral constraint. More... | |
struct | DihedralConstraint |
Data struct representing a dihedral constraint. More... | |
class | EigenRefinementProblem |
Eigen-based refinement error function. More... | |
struct | RefinementTraits |
This is for when you have a fully qualified Refinement typename but want to get the template arguments back. More... | |
class | ExplicitBoundsGraph |
BGL wrapper to help with distance bounds smoothing. More... | |
class | ImplicitBoundsGraph |
Simulates a graph from which triangle inequality bounds can be calculated by shortest-paths. More... | |
class | MetricMatrix |
class | SpatialModel |
Class performing spatial modeling of molecules. More... | |
struct | ValueBounds |
Data class for bounded values. More... | |
Enumerations | |
enum | Partiality { Partiality::FourAtom, Partiality::TenPercent, Partiality::All } |
Limit triangle inequality bounds smoothing to a subset of all atoms. More... | |
Functions | |
MoleculeDGInformation | gatherDGInformation (const Molecule &molecule, const Configuration &configuration) |
Collects intermediate conformational data about a Molecule using a spatial model. More... | |
Result< AngstromPositions > | refine (Eigen::MatrixXd embeddedPositions, const DistanceBoundsMatrix &distanceBounds, const Configuration &configuration, const std::shared_ptr< MoleculeDGInformation > &DgDataPtr) |
Distance Geometry refinement. | |
Result< AngstromPositions > | generateConformer (const Molecule &molecule, const Configuration &configuration, std::shared_ptr< MoleculeDGInformation > &DgDataPtr, bool regenerateDGDataEachStep, Random::Engine &engine) |
std::vector< Result < AngstromPositions >> | run (const Molecule &molecule, unsigned numConformers, const Configuration &configuration, boost::optional< unsigned > seedOption) |
Main and parallel implementation of Distance Geometry. Generates an ensemble of 3D structures of a given Molecule. More... | |
template<class RefinementType , typename PositionType > | |
bool | finalStructureAcceptable (const RefinementType &refinement, const DistanceBoundsMatrix &bounds, const PositionType &positions) |
Decides whether the final structure from a refinement is acceptable. More... | |
unsigned | tetrangleSmooth (Eigen::Ref< Eigen::MatrixXd > bounds) |
Smoothes the bounds matrix using tetrangle inequalities. More... | |
Distance geometry-related classes and functions.
Limit triangle inequality bounds smoothing to a subset of all atoms.
Usually, after choosing a single conformer's atom-pairwise distances from between the distance bounds that are generated from the spatial model, all other distance bounds are re-smoothed using the triangle inequality. However, the reduction in distance bounds slack all over the matrix diminishes with each successive chosen distance, yielding only diminishing returns.
With this option, you can choose to stop re-smoothing the entire matrix after a limited number of one-to-all distance choices. This has the following tradeoff effects:
bool Scine::Molassembler::DistanceGeometry::finalStructureAcceptable | ( | const RefinementType & | refinement, |
const DistanceBoundsMatrix & | bounds, | ||
const PositionType & | positions | ||
) |
Decides whether the final structure from a refinement is acceptable.
A final structure is acceptable if
Complexity \(\Theta(N^2)\) due to atom-pairwise distance bounds
refinement | The refinement functor |
bounds | The distance bounds |
positions | The final positions from a refinement |
MoleculeDGInformation Scine::Molassembler::DistanceGeometry::gatherDGInformation | ( | const Molecule & | molecule, |
const Configuration & | configuration | ||
) |
Collects intermediate conformational data about a Molecule using a spatial model.
Complexity At least \(O(P_2 + P_3 + P_4)\) where \(P_i\) is the number of distinct paths of length \(i\) in the graph. That should scale at least linearly in the number of vertices.
std::vector< Result<AngstromPositions>> Scine::Molassembler::DistanceGeometry::run | ( | const Molecule & | molecule, |
unsigned | numConformers, | ||
const Configuration & | configuration, | ||
boost::optional< unsigned > | seedOption | ||
) |
Main and parallel implementation of Distance Geometry. Generates an ensemble of 3D structures of a given Molecule.
Complexity Roughly \(O(C \cdot N^3)\) where \(C\) is the number of conformers and \(N\) is the number of atoms in molecule
unsigned Scine::Molassembler::DistanceGeometry::tetrangleSmooth | ( | Eigen::Ref< Eigen::MatrixXd > | bounds | ) |
Smoothes the bounds matrix using tetrangle inequalities.
bounds
has already been triangle inequality smoothedbounds | A square matrix with zeros on the diagonal and B(j, i) <= B(i, j) for all i < j (lower bounds on strictly lower triangle, upper bounds on strictly upper triangle) |
Complexity \(\Theta(N^4)\)