OEAltLocationFactory¶
class OEAltLocationFactory
This class represents OEAltLocationFactory, a class to perceive and manage alternate locations in a molecule and generate new subset molecules for specific sets of OEAltLocation selections.
Constructors¶
OEAltLocationFactory(const OEAltLocationFactory &fact)
OEAltLocationFactory(const OEChem::OEMolBase &src, unsigned int options=OEBio::OEAltLocFactOption::None)
Default and copy constructors.
If an OEMolBase is supplied, the constructed factory will describe alternate locations
in the input molecule and generate new single-conformation molecules on demand for any set
of alternate location selections. The initial selection state of this factory is as if
SetPrimaryAlt
has been called.
Note
When reading a molecule from a PDB file that will be used to construct an
OEAltLocationFactory
be sure to specify the input flavor:
OEIFlavor_PDB_ALTLOC
so that all the alternate location atoms will be retained.
The options argument provides control over how the factory is constructed. The set of unsigned values
for this parameter is specified
by the OEAltLocFactOption
namespace.
If an OEAltLocationFactory is supplied, an object is constructed that matches the input.
operator=¶
OEAltLocationFactory &operator=(const OEAltLocationFactory &fact)
Assignment – sets this alternate location factory to be identical to the input.
GetAltAtoms¶
OESystem::OEIterBase<OEChem::OEAtomBase> *GetAltAtoms()
OESystem::OEIterBase<const OEChem::OEAtomBase> *GetAltAtoms() const
OESystem::OEIterBase<OEChem::OEAtomBase> *GetAltAtoms(const OEAltGroup &grp)
OESystem::OEIterBase<OEChem::OEAtomBase> *GetAltAtoms(const OEAltLocation &loc)
OESystem::OEIterBase<const OEChem::OEAtomBase> * GetAltAtoms(const OEAltGroup &grp) const
OESystem::OEIterBase<const OEChem::OEAtomBase> * GetAltAtoms(const OEAltLocation &loc) const
OESystem::OEIterBase<OEChem::OEAtomBase> *
GetAltAtoms(const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred)
OESystem::OEIterBase<const OEChem::OEAtomBase> *
GetAltAtoms(const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred) const
OESystem::OEIterBase<const OEChem::OEAtomBase> *
GetAltAtoms(const OEAltLocation &loc,
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred) const
OESystem::OEIterBase<OEChem::OEAtomBase> *
GetAltAtoms(const OEAltGroup &grp,
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred)
OESystem::OEIterBase<OEChem::OEAtomBase> *
GetAltAtoms(const OEAltLocation &loc,
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred)
OESystem::OEIterBase<const OEChem::OEAtomBase> *
GetAltAtoms(const OEAltGroup &grp,
const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred) const
Returns an OEAtomBase iterator over the atoms with alternate locations.
Both const
and non-const
versions are supplied for each iterator.
If no arguments are supplied, the iterator is over all alternate location atoms.
If an OEAltGroup or OEAltLocation is supplied, the iterator is only over the atoms in the specified group or location.
If an OEUnaryPredicate is supplied, the iterator will return those alternate location atoms that also match the predicate.
GetAtomMapSize¶
unsigned int GetAtomMapSize() const
Returns the minimum size of the array of OEAtomBase pointers
the user must supply to one of the
MakePrimaryAltMol
,
MakeCurrentAltMol
, or
MakeAltMol
methods
if an atom map is to be returned. Atom maps are pointers to atoms
in the generated molecule at locations in the
array equal to the internal index of atoms in the molecule returned by
GetSourceMol
, or 0 for atoms not included
in the generated molecule.
GetBondMapSize¶
unsigned int GetBondMapSize() const
Returns the minimum size of the array of OEBondBase pointers
the user must supply to one of the
MakePrimaryAltMol
,
MakeCurrentAltMol
, or
MakeAltMol
methods
if a bond map is to be returned. Bond maps are arrays of pointers to bonds
in the generated molecule at locations in the
array equal to the internal index of bonds in the molecule returned by
GetSourceMol
, or 0 for bonds not included
in the generated molecule.
GetCurrentAtoms¶
OESystem::OEIterBase<OEChem::OEAtomBase> *GetCurrentAtoms()
OESystem::OEIterBase<const OEChem::OEAtomBase> *GetCurrentAtoms() const
OESystem::OEIterBase<OEChem::OEAtomBase> *
GetCurrentAtoms(const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred)
OESystem::OEIterBase<const OEChem::OEAtomBase> *
GetCurrentAtoms(const OESystem::OEUnaryPredicate<OEChem::OEAtomBase> &pred) const
Returns an OEAtomBase iterator over the atoms in the current selection – atoms in
selected locations in each group plus atoms that are not in any alternate location group.
Both const
and non-const
versions are supplied for each iterator.
If an OEUnaryPredicate is supplied, the iterator will return those selected atoms that also match the predicate.
GetCurrentLocations¶
OESystem::OEIterBase<const OEAltLocation> *GetCurrentLocations() const
OESystem::OEIterBase<const OEAltLocation> *GetCurrentLocations(const OEAltGroup &grp) const
OESystem::OEIterBase<const OEAltLocation> *GetCurrentLocations(int grpNum) const
Returns an iterator over currently selected OEAltLocations
.
If no argument is supplied, every selected location is returned, otherwise only the
selected location(s) for the specified OEAltGroup
is returned.
Unless SetAlt
has been called with multiLoc
set to true
, only a single
OEAltLocation
will be returned per
OEAltGroup
.
GetGroup¶
OEAltGroup GetGroup(const OEChem::OEAtomBase *selAtom) const
OEAltGroup GetGroup(const OEAltLocation &loc) const
If an OEAtomBase pointer is supplied, the method returns
the OEAltGroup
that includes the residue of the atom provided as input.
If the input atom residue is not in any of the alternate location groups, a warning will be thrown,
the OEAltGroup
will be uninitialized and will return false
when operator bool
is called.
If an OEAltLocation
is supplied, the method returns the
OEAltGroup
the location is associated with.
GetGroupCount¶
unsigned int GetGroupCount() const
Returns the total number of OEAltGroups
identified by this
OEAltLocationFactory
.
GetGroups¶
OESystem::OEIterBase<const OEAltGroup> *GetGroups() const
Returns an iterator over all OEAltGroups
managed by this
OEAltLocationFactory
.
GetLocation¶
OEAltLocation GetLocation(const OEChem::OEAtomBase *selAtom, char confCode,
bool caseSensitive=true) const
Returns the OEAltLocation
that includes the residue of
the selected atom and the
conformation code provided as input. The user can select whether or not
the conformation code match is case sensitive.
If the input atom residue is not in any of the alternate location groups,
a warning will be thrown, the OEAltLocation
will be uninitialized and will return false
when operator bool
is called.
GetLocationCodes¶
std::string GetLocationCodes(const OEAltGroup &grp) const
std::string GetLocationCodes(const OEAltLocation &loc) const
Returns a string listing all the alternate location characters in the input OEAltGroup
or OEAltLocation
.
Although most OEAltLocations
will return a string containing
only a single character,
some that are more complicated will return a string with more than one character.
GetSourceMol¶
const OEChem::OEMolBase &GetSourceMol() const
Returns a constant reference to a copy of the OEMolBase supplied to the
Constructor
.
GetState¶
OEAltLocationState GetState() const
void GetState(OEAltLocationState &state) const
Returns an OEAltLocationState
that represents
the current selection state of this
OEAltLocationFactory
.
See also
MakeAltMol¶
bool MakeAltMol(OEChem::OEMolBase &dst, const OEAltLocation &loc,
OEChem::OEAtomBase **atomMap=0, OEChem::OEBondBase **bondMap=0,
unsigned int options=OEBio::OEMakeAltMolOption::None)
bool MakeAltMol(OEChem::OEMolBase &dst, const OEChem::OEAtomBase *selAtom,
char confCode, bool caseSensitive=true,
OEChem::OEAtomBase **atomMap=0, OEChem::OEBondBase **bondMap=0,
unsigned int options=OEBio::OEMakeAltMolOption::None)
bool MakeAltMol(OEChem::OEMolBase &dst, const OEAltLocationState &state,
OEChem::OEAtomBase **atomMap=0, OEChem::OEBondBase **bondMap=0,
unsigned int options=OEBio::OEMakeAltMolOption::None)
Sets the selection state of this OEAltLocationFactory
and generates a new subset molecule (dst
) for this state, returning a value indicating
whether the selection was valid.
Unless SetAlt
has been called with multiLoc
set to true
,
the subset mol will represent a single conformation.
If either a location or an atom selection is supplied
(see GetLocation
),
the selection state of only one group is set.
If an OEAltLocationState
is supplied,
the selection state of all groups may be affected
(see GetState
).
If either a location or an atom selection is supplied and cannot be found in any
alternation group, the dst
molecule is not updated and false
is returned.
If an array of OEAtomBase pointers is provided, this method will fill
it with an atom map: pointers to atoms in the generated molecule at locations in the
array equal to the internal index of atoms in the molecule returned by
GetSourceMol
, or 0 for atoms not included
in the generated molecule.
If an array of OEBondBase pointers is provided, this method will fill
it with a bond map: pointers to bonds in the generated molecule at locations in the
array equal to the internal index of bonds in the molecule returned by
GetSourceMol
, or 0 for bonds not included
in the generated molecule.
The options argument provides control over how the molecule is constructed.
The set of unsigned values for this parameter is specified
by the OEMakeAltMolOption
namespace.
MakeCurrentAltMol¶
void MakeCurrentAltMol(OEChem::OEMolBase &dst,
OEChem::OEAtomBase **atomMap=0, OEChem::OEBondBase **bondMap=0,
unsigned int options=OEBio::OEMakeAltMolOption::None) const
Generates a new subset molecule (dst
) for the current selection state.
Unless SetAlt
has been called with multiLoc
set to true
,
the subset mol will represent a single conformation.
If an array of OEAtomBase pointers is provided, this method will fill
it with an atom map: pointers to atoms in the generated molecule at locations in the
array of the internal index of atoms in the molecule returned by
GetSourceMol
, or 0 for atoms not included
in the generated molecule.
If an array of OEBondBase pointers is provided, this method will fill
it with a bond map: pointers to bonds in the generated molecule at locations in the
array of the internal index of bonds in the molecule returned by
GetSourceMol
, or 0 for bonds not included
in the generated molecule.
The options argument provides control over how the molecule is constructed.
The set of unsigned values for this parameter is specified
by the OEMakeAltMolOption
namespace.
MakePrimaryAltMol¶
void MakePrimaryAltMol(OEChem::OEMolBase &dst,
OEChem::OEAtomBase **atomMap=0, OEChem::OEBondBase **bondMap=0,
unsigned int options=OEBio::OEMakeAltMolOption::None)
Resets the selection state of this OEAltLocationFactory
to the primary location (see SetPrimaryAlt
)
and generates a new subset molecule (dst
) for this state.
Unless SetAlt
has been called with multiLoc
set to true
,
the subset mol will represent a single conformation.
If an array of OEAtomBase pointers is provided, this method will fill
it with an atom map: pointers to atoms in the generated molecule at locations in the
array of the internal index of atoms in the molecule returned by
GetSourceMol
, or 0 for atoms not included
in the generated molecule.
If an array of OEBondBase pointers is provided, this method will fill
it with a bond map: pointers to bonds in the generated molecule at locations in the
array of the internal index of bonds in the molecule returned by
GetSourceMol
, or 0 for bonds not included
in the generated molecule.
The options argument provides control over how the molecule is constructed.
The set of unsigned values for this parameter is specified
by the OEMakeAltMolOption
namespace.
SetAlt¶
bool SetAlt(const OEAltLocation &loc, bool multiLoc=false)
bool SetAlt(const OEChem::OEAtomBase *selAtom, char confCode,
bool caseSensitive=true)
If an OEAltLocation
is supplied,
the selection state of the OEAltGroup
containing the location is set to select that location, with a return value
indicating whether the location was found. If the optional multiLoc
parameter has the (default) value of false
, the function acts like a
toggle: the previous location for
this group is unselected before the new location is selected.
For a description of the atom selection form,
see GetLocation
.
Warning
If this method is called with the multiLoc
parameter set to true
, the
OEAltLocationFactory
may be left in a state
where MakeCurrentAltMol
no longer generates a single-conformation molecule.
SetPrimaryAlt¶
void SetPrimaryAlt()
Resets the selection state of this OEAltLocationFactory
to the first location for each group – the location with the highest average occupancy.
SetState¶
bool SetState(const OEAltLocationState &state)
Resets the selection state of this OEAltLocationFactory
to that represented by the input OEAltLocationState
,
with a return value indicating whether the state was valid.
See also