![]() |
Rosetta
2021.16
|
A helper class by which AtomTypes can return all possible atom types for a given atom in a structure that is easily accessed by orbital type. More...
#include <GasteigerAtomTyper.hh>

Public Member Functions | |
| PossibleAtomTypesForAtom () | |
| default constructor More... | |
| void | gasteiger_atom_type_set (GasteigerAtomTypeSetCOP GASTEIGER_ATOM_TYPE_SET) |
| bool | CouldHaveHybridization (const GasteigerAtomTypeData::HybridOrbitalType HYBRID) const |
| tell whether a particular hybrid orbital type is possible given what we know about this atom More... | |
| core::Size | GetNumberPossibleTypes () const |
| return the number of types that the atom has the potential to become More... | |
| GasteigerAtomTypeDataCOP | GetMostStableType () const |
| return the most stable type More... | |
| void | AddAtomType (GasteigerAtomTypeDataCOP ATOM_TYPE) |
| add an atom type to be considered More... | |
| void | SetToType (GasteigerAtomTypeDataCOP ATOM_TYPE) |
| set this object to only consider the given atom type More... | |
| void | Finalize (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| set the final type based on the given atom and smallest ring size More... | |
| core::Size | hybridization_rank (GasteigerAtomTypeData::HybridOrbitalType const hybrid) |
| void | RemoveHybridization (const GasteigerAtomTypeData::HybridOrbitalType HYBRID) |
| remove a particular hybrid orbital type from the possible types, unless that would remove all possibilities More... | |
| void | AddAromaticAtomType (GasteigerAtomTypeDataCOP ATOM_TYPE, const int DESIRED_CHARGE) |
| add an atom type to the search using a set of rules for atom types in aromatic rings More... | |
| void | Finalize () |
| Select the best choice for the atom type wherever possible. More... | |
| void | FinalizeUnhybridized () |
| choose the preferred atom type (using VSEPR theory) assuming that the orbitals do not hybridize More... | |
| void | FinalizeAromatic (const int DESIRED_CHARGE) |
| only keep the most stable types for the atom that span the set of desired pi orbital electrons (0-2) More... | |
| void | FinalizeNitrogenTwoSingle (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for Nitrogen with two single bonds More... | |
| void | FinalizeNitrogenSingleDouble (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for a nitrogen with a single and a double bond More... | |
| void | FinalizeNitrogenThreeSingle (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for Nitrogen with three single bonds More... | |
| void | FinalizeOxygenTwoSingle (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for Oxygen with two single bonds More... | |
| void | FinalizeOxygenSingleDouble (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for Oxygen with a single and a double bond More... | |
| void | FinalizeOxygenThreeSingle (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) |
| choose the final atom type for Oxygen with three single bonds More... | |
| bool | IsUnsaturated (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) const |
| test whether a particular atom is unsaturated, without relying on atom types having already been set More... | |
| core::Size | CountUnsaturatedNeighbors (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) const |
| count unsaturated neighbors More... | |
| bool | IsBondedToAHalogen (const core::chemical::RealResidueGraph &graph, const core::chemical::RealResidueVD &atomVD) const |
| test whether atom is bonded to any halogens More... | |
Static Public Member Functions | |
| static PossibleAtomTypesForAtom | FindPossibleAtomTypesForAtom (GasteigerAtomTypeSetCOP GASTEIGER_ATOM_TYPE_SET, const Element &ELEMENT, const core::Size NUMBER_ELECTRONS_IN_BONDS, const core::Size NUMBER_BONDS, const int SUSPECTED_CHARGE, const bool IN_AROMATIC_RING) |
| constructor from the known information about the atom More... | |
Static Private Member Functions | |
| static std::map< std::string, PossibleAtomTypesForAtom > | CreateAtomicEnvironmentToTypesMap (const bool IN_AROMATIC_RING, GasteigerAtomTypeSetCOP GASTEIGER_ATOM_TYPE_SET) |
| Create the map from atom environment string to possible atom types. More... | |
Private Attributes | |
| GasteigerAtomTypeSetCOP | gasteiger_atom_type_set_ |
| < Number of atom types with each hybridization More... | |
| std::map< std::string, PossibleAtomTypesForAtom > | s_atomic_env_outside_arom_ring_to_types_map |
| std::map< std::string, PossibleAtomTypesForAtom > | s_element_bonds_in_arom_ring_to_types_map |
| utility::vector0< core::Size > | m_NumberAtomTypesWithHybridization |
| std::list < GasteigerAtomTypeDataCOP > | m_AtomTypesByDecreasingStability |
| Most stable types first. More... | |
| core::Size | m_NumberConjugatedTypes |
| Number of conjugated types in the list. More... | |
| void(PossibleAtomTypesForAtom::* | m_FinalizeFunction )(core::chemical::RealResidueGraph const &, core::chemical::RealResidueVD const &) |
A helper class by which AtomTypes can return all possible atom types for a given atom in a structure that is easily accessed by orbital type.
| core::chemical::gasteiger::PossibleAtomTypesForAtom::PossibleAtomTypesForAtom | ( | ) |
default constructor
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::AddAromaticAtomType | ( | GasteigerAtomTypeDataCOP | ATOM_TYPE, |
| const int | DESIRED_CHARGE | ||
| ) |
add an atom type to the search using a set of rules for atom types in aromatic rings
| ATOM_TYPE | the type of atom to consider |
| DESIRED_CHARGE | the charge desired The atom type will be ordered using the distance from the desired charge as the first sort key, second by the stability. Unlike AddAtomType, AddAromaticAtomType always adds the type to the considered list |
References hybridization_rank(), m_AtomTypesByDecreasingStability, m_NumberAtomTypesWithHybridization, and m_NumberConjugatedTypes.
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::AddAtomType | ( | GasteigerAtomTypeDataCOP | ATOM_TYPE | ) |
add an atom type to be considered
| ATOM_TYPE | the type of atom to consider |
References CouldHaveHybridization(), m_AtomTypesByDecreasingStability, m_NumberAtomTypesWithHybridization, m_NumberConjugatedTypes, and core::chemical::gasteiger::GasteigerAtomTypeData::Unhybridized.
| bool core::chemical::gasteiger::PossibleAtomTypesForAtom::CouldHaveHybridization | ( | const GasteigerAtomTypeData::HybridOrbitalType | HYBRID | ) | const |
tell whether a particular hybrid orbital type is possible given what we know about this atom
| HYBRID | the type of hybrid orbital |
References m_NumberAtomTypesWithHybridization.
Referenced by AddAtomType().
| core::Size core::chemical::gasteiger::PossibleAtomTypesForAtom::CountUnsaturatedNeighbors | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) | const |
count unsaturated neighbors
| ATOM | the atom of interest |
Virtual atoms are treated like ordinary atoms.
References IsUnsaturated().
Referenced by FinalizeNitrogenThreeSingle(), and FinalizeOxygenTwoSingle().
|
staticprivate |
Create the map from atom environment string to possible atom types.
store the atomic environment for each atom type in a map for fast lookup when determining atom types
| IN_AROMATIC_RING | whether to only include types that could be in an aromatic ring |
References core::id::to_string(), core::chemical::gasteiger::TR(), and core::chemical::gasteiger::GasteigerAtomTypeData::Unhybridized.
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::Finalize | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
set the final type based on the given atom and smallest ring size
| ATOM | the atom of interest |
| SMALLEST_RING_SIZE | the size of the smallest ring this atom is part of |
References m_FinalizeFunction.
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::Finalize | ( | ) |
Select the best choice for the atom type wherever possible.
the link above contains the statistics and models used to select the current set of rules
References core::chemical::element::B, core::chemical::element::C, FinalizeNitrogenSingleDouble(), FinalizeNitrogenThreeSingle(), FinalizeNitrogenTwoSingle(), FinalizeOxygenSingleDouble(), FinalizeOxygenThreeSingle(), FinalizeOxygenTwoSingle(), FinalizeUnhybridized(), GetMostStableType(), m_AtomTypesByDecreasingStability, m_FinalizeFunction, core::chemical::element::N, core::chemical::element::O, RemoveHybridization(), core::chemical::gasteiger::GasteigerAtomTypeData::SP, core::chemical::gasteiger::GasteigerAtomTypeData::SP2, core::chemical::gasteiger::GasteigerAtomTypeData::SP3, core::chemical::gasteiger::TR(), and core::chemical::gasteiger::GasteigerAtomTypeData::Unhybridized.
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeAromatic | ( | const int | DESIRED_CHARGE | ) |
only keep the most stable types for the atom that span the set of desired pi orbital electrons (0-2)
| DESIRED_CHARGE | the preferred charge used during construction of the maps when there is no part of standardization that should edit this class |
References hybridization_rank(), m_AtomTypesByDecreasingStability, m_NumberConjugatedTypes, and core::chemical::gasteiger::GasteigerAtomTypeData::ZeroOrTwo.
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeNitrogenSingleDouble | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for a nitrogen with a single and a double bond
choose the final atom type for a single and a double bond
| ATOM | the atom of interest |
| SMALLEST_RING_SIZE | the size of the smallest ring this atom is part of |
References gasteiger_atom_type_set_, and SetToType().
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeNitrogenThreeSingle | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for Nitrogen with three single bonds
References core::chemical::element::C, CountUnsaturatedNeighbors(), gasteiger_atom_type_set_, IsBondedToAHalogen(), core::chemical::element::O, and SetToType().
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeNitrogenTwoSingle | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for Nitrogen with two single bonds
References gasteiger_atom_type_set_, core::chemical::element::N, core::chemical::element::S, and SetToType().
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeOxygenSingleDouble | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for Oxygen with a single and a double bond
| ATOM | the atom of interest |
| SMALLEST_RING_SIZE | the size of the smallest ring this atom is part of |
References gasteiger_atom_type_set_, and SetToType().
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeOxygenThreeSingle | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for Oxygen with three single bonds
References gasteiger_atom_type_set_, and SetToType().
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeOxygenTwoSingle | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) |
choose the final atom type for Oxygen with two single bonds
| ATOM | the atom of interest |
| SMALLEST_RING_SIZE | the size of the smallest ring this atom is part of |
References core::chemical::element::C, CountUnsaturatedNeighbors(), gasteiger_atom_type_set_, core::chemical::element::H, core::chemical::IsAromaticBond, IsUnsaturated(), core::chemical::element::N, core::chemical::element::O, core::chemical::element::S, SetToType(), and core::chemical::element::Si.
Referenced by Finalize().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::FinalizeUnhybridized | ( | ) |
choose the preferred atom type (using VSEPR theory) assuming that the orbitals do not hybridize
This is used for elements in group 1, 2, & 7, which do hybridize in the gasteiger scheme
References m_AtomTypesByDecreasingStability, RemoveHybridization(), SetToType(), core::chemical::gasteiger::GasteigerAtomTypeData::SP, core::chemical::gasteiger::GasteigerAtomTypeData::SP2, core::chemical::gasteiger::GasteigerAtomTypeData::SP3, and core::id::swap().
Referenced by Finalize().
|
static |
constructor from the known information about the atom
| ELEMENT | element type, |
| NUMBER_ELECTRONS_IN_BONDS | number of electrons in bonds for the atom type |
| NUMBER_BONDS | number of bonds for the atom |
| SUSPECTED_CHARGE; | expected charge, ignored if no atom type matching the other criteria if found |
| IN_AROMATIC_RING | true iff the atom has bonds of the aromatic unspecified type |
| ELEMENT | element type, |
| NUMBER_ELECTRONS_IN_BONDS | number of electrons in bonds for the atom type; for atom in declared aromatic environment, number of exocyclic bonds |
| NUMBER_BONDS | number of bonds for the atom |
| SUSPECTED_CHARGE; | expected charge, ignored if no atom type matching the other criteria if found |
| IN_AROMATIC_RING | true iff the atom has bonds of the aromatic unspecified type |
References core::chemical::Element::get_chemical_name(), core::chemical::Element::get_chemical_symbol(), core::id::to_string(), and core::chemical::gasteiger::TR().
Referenced by core::chemical::gasteiger::GetPossibleTypesForAtom().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::gasteiger_atom_type_set | ( | GasteigerAtomTypeSetCOP | GASTEIGER_ATOM_TYPE_SET | ) |
References gasteiger_atom_type_set_.
| GasteigerAtomTypeDataCOP core::chemical::gasteiger::PossibleAtomTypesForAtom::GetMostStableType | ( | ) | const |
return the most stable type
References m_AtomTypesByDecreasingStability.
Referenced by core::chemical::gasteiger::assign_gasteiger_atom_types(), and Finalize().
| core::Size core::chemical::gasteiger::PossibleAtomTypesForAtom::GetNumberPossibleTypes | ( | ) | const |
return the number of types that the atom has the potential to become
References m_AtomTypesByDecreasingStability.
Referenced by RemoveHybridization().
| core::Size core::chemical::gasteiger::PossibleAtomTypesForAtom::hybridization_rank | ( | GasteigerAtomTypeData::HybridOrbitalType const | hybrid | ) |
References core::chemical::gasteiger::GasteigerAtomTypeData::SP, core::chemical::gasteiger::GasteigerAtomTypeData::SP2, core::chemical::gasteiger::GasteigerAtomTypeData::SP3, core::chemical::gasteiger::TR(), and core::chemical::gasteiger::GasteigerAtomTypeData::Unhybridized.
Referenced by AddAromaticAtomType(), and FinalizeAromatic().
| bool core::chemical::gasteiger::PossibleAtomTypesForAtom::IsBondedToAHalogen | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) | const |
test whether atom is bonded to any halogens
| ATOM | the atom of interest |
Referenced by FinalizeNitrogenThreeSingle().
| bool core::chemical::gasteiger::PossibleAtomTypesForAtom::IsUnsaturated | ( | const core::chemical::RealResidueGraph & | graph, |
| const core::chemical::RealResidueVD & | atomVD | ||
| ) | const |
test whether a particular atom is unsaturated, without relying on atom types having already been set
test whether a particular atom is unsaturated
Virtual atoms are treated like ordinary atoms.
References core::chemical::DoubleBondOrder, core::chemical::IsAromaticBond, protocols::forge::methods::order(), and core::chemical::TripleBondOrder.
Referenced by CountUnsaturatedNeighbors(), and FinalizeOxygenTwoSingle().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::RemoveHybridization | ( | const GasteigerAtomTypeData::HybridOrbitalType | HYBRID | ) |
remove a particular hybrid orbital type from the possible types, unless that would remove all possibilities
| HYBRID | the type of hybrid orbital to remove |
References GetNumberPossibleTypes(), m_AtomTypesByDecreasingStability, m_NumberAtomTypesWithHybridization, and m_NumberConjugatedTypes.
Referenced by Finalize(), and FinalizeUnhybridized().
| void core::chemical::gasteiger::PossibleAtomTypesForAtom::SetToType | ( | GasteigerAtomTypeDataCOP | ATOM_TYPE | ) |
set this object to only consider the given atom type
| ATOM_TYPE | the atom type desired |
References m_AtomTypesByDecreasingStability, m_FinalizeFunction, m_NumberAtomTypesWithHybridization, m_NumberConjugatedTypes, core::chemical::gasteiger::GasteigerAtomTypeData::NumberHybridOrbitalType, and core::chemical::gasteiger::TR().
Referenced by FinalizeNitrogenSingleDouble(), FinalizeNitrogenThreeSingle(), FinalizeNitrogenTwoSingle(), FinalizeOxygenSingleDouble(), FinalizeOxygenThreeSingle(), FinalizeOxygenTwoSingle(), and FinalizeUnhybridized().
|
private |
< Number of atom types with each hybridization
Referenced by FinalizeNitrogenSingleDouble(), FinalizeNitrogenThreeSingle(), FinalizeNitrogenTwoSingle(), FinalizeOxygenSingleDouble(), FinalizeOxygenThreeSingle(), FinalizeOxygenTwoSingle(), and gasteiger_atom_type_set().
|
private |
Most stable types first.
Referenced by AddAromaticAtomType(), AddAtomType(), Finalize(), FinalizeAromatic(), FinalizeUnhybridized(), GetMostStableType(), GetNumberPossibleTypes(), RemoveHybridization(), and SetToType().
|
private |
Function used to resolve the final atom type; only used in a few ambiguous cases such as trigonal vs. tetrahedral nitrogen with 3 bonds, otherwise NULL Parameters are
Referenced by Finalize(), and SetToType().
|
private |
Referenced by AddAromaticAtomType(), AddAtomType(), CouldHaveHybridization(), RemoveHybridization(), and SetToType().
|
private |
Number of conjugated types in the list.
Referenced by AddAromaticAtomType(), AddAtomType(), FinalizeAromatic(), RemoveHybridization(), and SetToType().
|
private |
|
private |
1.8.7