Adds the molecule to the index and returns the 0-based recordID
if the structure was successfully added, or a negative index if the structure
was unable to be indexed. Negative values can be used to retrieve
status information for indexing failures. The optional user-defined
recordID is provided to allow indexed fragments to be referenced
to externally maintained data structures. If the provided recordID is
less than zero, an autogenerated index is returned which is
an index greater than all ids seen so far.

A high performance version of OEMCSFragDatabase.AddConstMol
that eliminates molecule copy activities and modifies the passed molecule directly.
The state of the returned structure after indexing activities is undefined and
should generally be discarded or reinstantiated from the original source for
any subsequent activities.

Performs similarity calculations between a query molecule
and the fragment cores stored in the
OEMCSFragDatabase object.
It returns an iterator over the calculated similarity
scores (OEMCSMolSimScore).
Each OEMCSMolSimScore object holds a similarity score,
an index of database molecule and the fragment core in common between the hit and the query.

bgn, end

The bgn and end arguments define the segment of the
database on which the similarity calculation will take place.
If both of these parameters are omitted (or set to zero), then
the similarity calculation is performed on the entire
fragment database.

A class that computes the similarity score. By default this is
OEMCSTanimotoSim but an implementation of
OEMCSTverskySim is also provided.
By providing a class derived from OEMCSSimFuncBase
user-defined similarity measures other than the provided versions can be generated.

Performs similarity calculations between a query molecule
and the fragment cores stored in the
OEMCSFragDatabase object.
It returns an iterator over the calculated similarity
scores (OEMCSMolSimScore) in sorted order.
Each OEMCSMolSimScore object holds a similarity score
an index of database molecule and the fragment core in common between the hit and query.

limit

The value that defines the number of similarity scores
returned by the
OEMCSFragDatabase.GetSortedScores method.
If it is omitted (or set to zero) then all of the similarity
scores are returned.

bgn, end

The bgn and end arguments define the segment of the
database on which the similarity calculation will take place.
If both of these parameters are omitted (or set to zero), then
the similarity calculation is performed on the entire
fragment database.

descending

A boolean value that indicates the direction of the sort values where
true requests a descending sort and false requests ascending.

A class that computes the similarity score. By default this is
OEMCSTanimotoSim but an implementation of
OEMCSTverskySim is also provided.
By providing a class derived from OEMCSSimFuncBase
user-defined similarity measures other than the provided versions can be used.

Given a molecule, return the fragmentation cores using either the
provided fragmentation options, or using the fragmentation options from
the OEMCSFragDatabase instance. If the
permuteFragments argument is true, all unique combinations
of the generated fragmentation cores are generated, otherwise a unique series
of multi-fragment cores is returned representing all combinations
of bond fragmentations between the min and max cut limits.

Shown below are python versions for two type of examples - one that uses an
OEMCSFragDatabase instance so the database index options
are used to control the fragmentation behavior and the other uses the free function
and custom options.

Since the fragmentation engine used internally to generate the index modifies
the input structures (eg discarding all but the largest fragment of the input), this
method is provided to force the application of the indexing modifications on the input structure.
This is generally useful for depiction or reporting of the returned similarity results.