OEFastROCSOrientation¶
The FastROCS TK search algorithm performs an optimization to maximize
the overlap between the query and the database molecule. This namespace
defines a set of initial orientations for the optimization that are also
referred to as alternative starts. The default orientation is
OEFastROCSOrientation::Inertial
, which can also
be accessed via OEFastROCSOrientation::Default
.
As the optimization has a limited number of iterations, it may be
beneficial to use alternative starting coordinates for some molecular
systems. To set an alternative initial orientation
use OEShapeDatabaseOptions::SetInitialOrientation
.
At present there are 7 initial orientations available:
See also
Default
The default orientation is
OEFastROCSOrientation::Inertial
.
Inertial
The query and the database molecule are aligned to the inertial frame and optimizations are performed for 4 inertial orientations of the database molecule, by rotating about its 2 major moments of inertia.
UserInertialStarts
The database molecule is translated to each user-defined starting
position and optimizations are performed for 4 inertial starts for
each translation. See
OEShapeDatabaseOptions::SetInitialOrientation
and
OEShapeDatabaseOptions::SetUserStarts
for
more details on setting the starting coordinates.
Warning
Currently, error checking is not performed for user-defined starting coordinates that fall out of scope of the molecule’s coordinate range therefore, bad starting coordinates will yield zero shape/color overlap.
InertialAtHeavyAtoms
The database molecule is translated to each heavy atom of the query
molecule and optimizations are performed for 4 inertial starts
for each translation.
See
OEShapeDatabaseOptions::SetInitialOrientation
and
OEShapeDatabaseOptions::GetInitialOrientation
InertialAtColorAtoms
The database molecule is translated to each color atom of the
query molecule and
optimizations are performed for 4 inertial starts for each translation.
This method works for combo and shape-only searches. The only
requirement is that the query molecule has color atoms. If the query
molecule does not have color atoms the search will default to
OEFastROCSOrientation::Inertial
.
See OEShapeDatabaseOptions::SetInitialOrientation
,
OEShapeDatabaseOptions::GetInitialOrientation
and
OEShapeDatabaseOptions::GetNumColorAtomStarts
.
AsIs
The query and database molecules are left AsIs
. It is presumed
that the conformers are already positioned in space (perhaps through
docking) therefore they are not centered or set to the inertial frame
of reference. This method carries out a single
optimization at the query and database molecule’s original coordinates.
No inertial orientations are optimized.
Warning
In order to use this method on a database the entire database is
required to be reloaded with the
OEShapeDatabase::Open
or
OEShapeDatabase::AddMol
routine using
unsigned int orient=OEFastROCSOrientation::AsIs
as the
last argument.
Warning
In order to use the
OEShapeDatabaseScore::Constructors
with
this method it is required that the final argument to the constructor
be unsigned int orient=OEFastROCSOrientation::AsIs
.
See OEShapeDatabaseOptions::SetInitialOrientation
,
OEShapeDatabaseOptions::GetInitialOrientation
,
OEShapeDatabase::Open
and
OEShapeDatabaseScore::Constructors
.
Random
N random starts are generated by randomly orientating the database molecule
N times. This method includes the ability to set the maximum random
translation via the OEShapeDatabaseOptions::SetMaxRandomTranslation
,
option. The default maximum is 2
angstroms.
The number of random starts can be set using the
OEShapeDatabaseOptions::SetNumRandomStarts
option. The default number
of random starts is 10
.
The random seed can be set using the OEShapeDatabaseOptions::SetRandomSeed
.
The default random seed is based on the time.
Warning
The random API point is only deterministic when using the same seed if only
one thread is set to open the database using OEShapeDatabase::SetNumOpenThreads
between calls to GetScores or GetScores is called on the same opened database object.
See OEShapeDatabaseOptions::SetInitialOrientation
OEShapeDatabaseOptions::GetInitialOrientation
OEShapeDatabaseOptions::SetMaxRandomTranslation
OEShapeDatabaseOptions::GetMaxRandomTranslation
OEShapeDatabaseOptions::SetNumRandomStarts
OEShapeDatabaseOptions::GetNumRandomStarts
OEShapeDatabaseOptions::SetRandomSeed
OEShapeDatabaseOptions::GetRandomSeed
Subrocs
Optimizations are carried for each inertial orientation at each heavy atom of the molecule with the
most heavy atoms regardless of whether it is the query or the database molecule. This method is synonymous
with OEFastROCSOrientation::InertialAtHeavyAtoms
.
See OEShapeDatabaseOptions::SetInitialOrientation
OEShapeDatabaseOptions::GetInitialOrientation
See the Starting positions for optimization section in the Shape TK theory documentation for a description of alternative starts.