BALL
1.4.79
|
#include <BALL/STRUCTURE/addHydrogenProcessor.h>
Public Member Functions | |
AddHydrogenProcessor () | |
Default constructor. More... | |
virtual | ~AddHydrogenProcessor () |
Destructor. More... | |
virtual bool | start () |
virtual Processor::Result | operator() (Composite &composite) |
Size | getConnectivity (const Atom &atom) const |
void | setRings (const vector< vector< Atom * > > &rings) |
Size | getNumberOfAddedHydrogens () const |
Public Member Functions inherited from BALL::UnaryProcessor< Composite > | |
UnaryProcessor () | |
UnaryProcessor (const UnaryProcessor &) | |
virtual | ~UnaryProcessor () |
virtual bool | finish () |
Protected Member Functions | |
Processor::Result | placePeptideBondH_ (Residue *res) |
Size | countBondOrders (const Atom &atom) const |
void | addHydrogen_ (Atom &atom, Vector3 position) |
bool | isRingAtom_ (const Atom &atom) const |
vector< Atom * > | getPartners_ (Atom &atom) const |
Vector3 | getNormal_ (const Vector3 &v) const |
bool | normalize_ (Vector3 &v) const |
bool | hasMultipleBond_ (const Atom &atom) const |
float | getBondLength_ (Position element) const |
Additional Inherited Members | |
Public Types inherited from BALL::UnaryFunctor< Composite, Processor::Result > | |
typedef Processor::Result | result_type |
typedef Composite | argument_type |
typedef Composite & | argument_reference |
typedef const Composite & | const_argument_reference |
typedef Composite * | argument_pointer |
typedef const Composite * | const_argument_pointer |
Saturate atoms with hydrogen atoms.
This processor only works for main group elements. The formal charge of the atoms are taken into account. The placement of the hydrogen atoms only depends on the direct neighbour atoms.
No additional optimization of the atom placement is performed. The optimal bond lengths are calculated by a modified Schomaker-Stevenson rule (adapted from the MMFF94 Force Field.). For hydrogen atoms located in a peptide bond the atom is placed taking the planarity of the bond into account. In this case bond length is taken from the rules used by DSSP (Kabsch-Sander) as implemented by the HydrogenBondProcessor.
Keep in mind that the hydrogen positions obtained by using this method are usually not optimal. For better better Atom placment when adding hydrogens to Proteins and DNA you should use the ReconstructFragmentProcessor. Nevertheless in both cases it is recommended to optimize the obtained hydrogen atom positions using a force field (e.g. BALL::AmberFF, BALL::CharmmFF, BALL::MMFF94)
Definition at line 58 of file addHydrogenProcessor.h.
BALL::AddHydrogenProcessor::AddHydrogenProcessor | ( | ) |
Default constructor.
|
virtual |
Destructor.
Adds a single hydrogen an atom.
atom | The Atom to which a hydrogen should be added |
position | The position of the newly added hydrogen |
Computes the number of connections of a provided Atom the computation is solely based on the formal charge of the molecule as obtained from its group in the PTE. Hence only one connectivity is computed for every element.
atom | The Atom for which the connectivity shoudl be computed |
Computes a vector orthogonal to the input. It uses the x-axis as reference. If the input is colinear to the x-axis, the y-axis is used.
v | A vector for which an orthogonal vector shoudl be computed |
|
inline |
Returns the number of added hydrogen atoms. This value will accumulate over multiple calls of operator()
Definition at line 118 of file addHydrogenProcessor.h.
Returns whether the atom is in the internal list of ring atoms
atom | The Atom that should be checked |
Normalizes a vector.
v | The vector that should be normalized. Normalization is performed in-place. |
|
virtual |
Adds hydrogen atoms to the specified composite. If composite is a Residue it uses the peptide bond rule to place hydrogens. Otherwise the placement heuristic based on the modified Schomaker-Stevenson rule is used.
composite | The composite that should be saturated with hydrogens |
Reimplemented from BALL::UnaryProcessor< Composite >.
|
protected |
Place peptide bond H-atoms according to Kabsch-Sander
res | A pointer to a Residue for which a peptide bond hydrogen should be placed |
void BALL::AddHydrogenProcessor::setRings | ( | const vector< vector< Atom * > > & | rings | ) |
Sets the internal list of ring atoms. This is necessary computing a better estimate of the hydrogen position.
rings | A set of rings. A suitable input for this method can be computed by using RingPerceptionProcessor::calculateSSSR |
|
virtual |
Initialize the processor. Resets the number of added hydrogens.
Reimplemented from BALL::UnaryProcessor< Composite >.