Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
FragmentationHelper.cpp File Reference
#include "FragmentationHelper.h"
#include <Core/Log.h>
#include <Molassembler/Graph.h>
#include <Molassembler/Interpret.h>
#include <Utils/Constants.h>
#include <Utils/Geometry/AtomCollection.h>
#include <Utils/Geometry/ElementInfo.h>
#include <Utils/Geometry/GeometryUtilities.h>
#include <Utils/IO/ChemicalFileFormats/ChemicalFileHandler.h>
Include dependency graph for FragmentationHelper.cpp:

Functions

std::mt19937 Scine::SwooseUtilities::FragmentationHelper::randomEngine (42)
 
void Scine::SwooseUtilities::FragmentationHelper::addAtomsUpToReasonableCut (Utils::AtomCollection &atomsToAdd, std::vector< int > &alreadyAddedAtoms, std::deque< bool > &isSaturatingAtom, int atomInside, int atomOutside, const Utils::AtomCollection &fullStructure, const std::vector< std::list< int >> &listsOfNeighbors, double probabilityToDivide, std::shared_ptr< std::mt19937 > randomEngine)
 This function recursively searches for the right places to cut a fragment out of the system starting from the bond atomInside - atomOutside. More...
 
void Scine::SwooseUtilities::FragmentationHelper::addMoreAtomsToSubsystem (const Utils::AtomCollection &atomsToAdd, Utils::AtomCollection &subsystem, const std::deque< bool > &isSaturatingAtom, bool addSaturatingAtoms)
 This function adds a set of atoms to an existing molecular structure. More...
 
void Scine::SwooseUtilities::FragmentationHelper::checkSizeOfSubsystem (int size, double &additionToRadius, bool &unsuccessfulFragmentation, int fragmentIndex, int fullStructureSize, int maximumSubsystemSize, Core::Log &log)
 Checks whether a fragment is too small or too large. If it is too small, the fragmentation is repeated with a larger radius, if it is too large, a warning is given.
 
bool Scine::SwooseUtilities::FragmentationHelper::atomIsCloseToExistingAtom (const Utils::Atom &atom, const Utils::AtomCollection &existingAtoms)
 Checks whether there is already an atom close to the given atom in the given molecular structure. More...
 
bool Scine::SwooseUtilities::FragmentationHelper::isDivisibleAtBond (int atomInside, int atomOutside, const Utils::AtomCollection &fullStructure, const std::vector< std::list< int >> &listsOfNeighbors, double probabilityToDivide, std::shared_ptr< std::mt19937 > randomEngine)
 Evaluates whether a bond connecting the two given atoms is a good place to cut. More...
 
void Scine::SwooseUtilities::FragmentationHelper::updateInformationForIndexMapping (const Utils::AtomCollection &subsystem, const Utils::AtomCollection &fullStructure, std::vector< int > &atomIndexMapping)
 Updates the information of how the indices map from the subsystem to the full structure for a given subsystem.
 
std::vector< int > Scine::SwooseUtilities::FragmentationHelper::calculateSubgraphSizes (const Utils::AtomCollection &fullStructure, const Utils::BondOrderCollection &bondOrders)
 Computes and returns a vector of size N (number of atoms in the full system) with the following value for each atom: the size of the molecular subgraph (individual molecule) it is in.
 
Utils::AtomCollection Scine::SwooseUtilities::FragmentationHelper::mergeSubsystems (std::vector< int > &atomIndexMapping, std::vector< Utils::AtomCollection > subsystems, std::vector< std::vector< int >> atomIndexMappings)
 Merges to subsystems that are generated separately, but should become one subsystem. More...
 

Detailed Description