Rosetta
Public Member Functions | Private Member Functions | Private Attributes | List of all members
protocols::drug_design::ConformationSelectionToRDMol Class Reference

#include <ConformationSelectionToRDMol.hh>

Public Member Functions

 ConformationSelectionToRDMol (core::conformation::Conformation const &conf, utility::vector1< core::Size > const &res, bool neutralize=true, bool keep_hydro=false)
 Convert ResidueType to an RDKit RWMol object. More...
 
::RDKit::RWMOL_SPTR Mol ()
 Return an RDKit RWMol object which represents the residue type. More...
 

Private Member Functions

 ConformationSelectionToRDMol ()
 

Private Attributes

core::conformation::Conformation const & conf_
 
utility::vector1< core::Sizeres_
 
bool neutralize_
 
bool keep_hydro_
 

Constructor & Destructor Documentation

◆ ConformationSelectionToRDMol() [1/2]

protocols::drug_design::ConformationSelectionToRDMol::ConformationSelectionToRDMol ( core::conformation::Conformation const &  conf,
utility::vector1< core::Size > const &  res,
bool  neutralize = true,
bool  keep_hydro = false 
)

Convert ResidueType to an RDKit RWMol object.

If neutralize is true, attempt to reprotonate into a neutral (non-formally charged) molecule. (Charges due to heavy atoms, like quaternary amines, will still be present.)

If keep_hydro is true, represent hydrogens as physical atoms, rather than "explicit" annotations (see below).

Note that due to implementation details, "neutralize = true" will not play well with "keep_hydro = true".

RDKit is "aware" of three types of hydrogens.

1) Physical hydrogens: actual atoms in the atom graph and can have coordinates. 2) "Explicit" hydrogens: don't have existence in the atom graph or coordinates, but are instead represented by a field on the heavy atom ("This atom has 3 hydrogens attached to it") 3) "Implicit" hydrogens: aren't annotated anywhere, but instead are implied by the difference in the expected valence of the heavy atom and the number of valences which are currently occupied by bonds and/or "explicit" hydrogens.

Most of RDKit is written around the assumption of non-physical hydrogens, the exception being things like energy minimization which needs coordinates. On the other hand, "implicit" hydrogens cause issues in certain cases with kekulization. Because of this, the default conversion here is to remove the physical hydrogens, and replace them with "explicit" hydrogen annotations.

Much of RDKit (especially the metric calculations) assumes neutral protonation. (e.g. what you'd see in an aprotic organic solvent), which is why we neutralize the residues by default.

References keep_hydro_, and neutralize_.

◆ ConformationSelectionToRDMol() [2/2]

protocols::drug_design::ConformationSelectionToRDMol::ConformationSelectionToRDMol ( )
private

Member Function Documentation

◆ Mol()

RDKit::RWMOL_SPTR protocols::drug_design::ConformationSelectionToRDMol::Mol ( )

Member Data Documentation

◆ conf_

core::conformation::Conformation const& protocols::drug_design::ConformationSelectionToRDMol::conf_
private

Referenced by Mol().

◆ keep_hydro_

bool protocols::drug_design::ConformationSelectionToRDMol::keep_hydro_
private

◆ neutralize_

bool protocols::drug_design::ConformationSelectionToRDMol::neutralize_
private

◆ res_

utility::vector1< core::Size > protocols::drug_design::ConformationSelectionToRDMol::res_
private

Referenced by Mol().


The documentation for this class was generated from the following files: