Scine::Swoose  2.1.0
This is the SCINE module Swoose.
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Pages
StructurePreparationHelper.h
Go to the documentation of this file.
1 
8 #ifndef PDBPREPARATION_PDBPREPARATIONHELPER_H
9 #define PDBPREPARATION_PDBPREPARATIONHELPER_H
10 
12 #include "boost/filesystem.hpp"
14 #include <list>
15 #include <memory>
16 #include <string>
17 #include <vector>
18 
19 namespace Scine {
20 namespace Utils {
21 class Settings;
22 enum class ElementType : unsigned;
23 class AtomCollection;
24 
25 } // namespace Utils
26 namespace Core {
27 struct Log;
28 }
29 
30 namespace StructurePreparation {
31 struct ProteinAtom;
32 struct TitrableSite;
33 
34 namespace StructurePreparationHelper {
40 void performInitialCheck(const StructurePreparationFiles& files, int mode, std::shared_ptr<Utils::Settings> settings);
45 void performGraphAnalysisOnStructure(StructurePreparationData& data, const Utils::AtomCollection& structure);
49 void mergeProteinAndNonRegContainer(StructurePreparationData& data, const StructurePreparationFiles& files);
54 void reevaluateConnectivityForAminoAcids(StructurePreparationData& data);
59 void handleBoundariesBetweenProteinAndNonRegContainer(StructurePreparationData& data);
63 Utils::AtomCollection addSolvation(StructurePreparationData& data, std::shared_ptr<Utils::Settings> settings);
67 void updatePdbPreparationData(StructurePreparationData& data, Utils::AtomCollection& structure);
68 /*
69  * @brief Updates the information regarding the nonRegContainer.
70  */
71 void updateNonRegContainerVector(StructurePreparationData& data);
75 std::vector<TitrableSite> collectTitrableSites(StructurePreparationData& data);
79 void removeAtomsFromStructure(Utils::AtomCollection& structure, std::list<int> atomsToRemove);
84 void determineChargedSites(std::vector<int>& listOfNegatives, std::vector<int>& listOfPositives,
85  const StructurePreparationData& data);
86 /*
87  * @brief This functions extracts all atoms that are part of the amino acid side chain by recursively following the
88  * bonds starting from CA.
89  * @param atomIndex The Index of the CA atom in the amino acid.
90  * @param atomsToAdd This list is filled with all indices that belong to this amino acid.
91  */
92 void getSideChainNeighbors(StructurePreparationData& data, int atomIndex, std::list<int>& atomsToAdd);
93 /*
94  * @brief Detects C-Termini in the structure and moves the corresponding residue to the protein substructure.
95  */
96 void findTermini(StructurePreparationData& data, std::list<int>& atomsToTransferToNonRegContainer);
97 /*
98  * @brief This function maps the indices of protein and nonRegContainer to the indices in the full structure.
99  */
100 void mapSubsystemIndicesToFullStructure(const Utils::AtomCollection& fullStructure,
101  const Utils::AtomCollection& structure, std::vector<int>& indicesInStructure,
102  std::vector<std::vector<int>>& subsystemMapping);
103 /*
104  * @brief Internally transfers atoms from the protein substructure to the nonRegContainer substructure.
105  */
106 void moveAtomsFromProteinToNonRegContainer(StructurePreparationData& data, const std::list<int>& atomsToMove);
107 bool compareByIndex(const ProteinAtom& a, const ProteinAtom& b);
108 
109 } // namespace StructurePreparationHelper
110 } // namespace StructurePreparation
111 } // namespace Scine
112 
113 #endif // PDBPREPARATION_PDBPREPARATIONHELPER_H