Chemists are most often interested in substructure search, that is, whether one molecular structure contains the other one as a substructure or not. By definition, the examined molecule is called a target, the structure we are looking for is called a query, and a target molecule matching the query structure is called a hit (Table 1).
If special molecular features are present on the query (eg. stereochemistry, charge, etc.), only those targets match which also contain the feature. However, if a feature is missing from the query, it is not checked by default.
An exact structure search finds molecules that are equal (in size) to the query structure. (No additional fragments or heavy atoms are allowed.) Molecular features (by default) are evaluated the same way as described above for substructure search.
Table 1. Exact structure search, substructure search
| query | target | hit | |
| exact structure search | substructure search | ||
|
|
|||
![]() |
|||
![]() |
|||
![]() |
![]() |
||
![]() |
![]() |
||
![]() |
|||
Similarity is only used in database searches, and its similarity concept is based on hashed binary chemical fingerprints with Tanimoto metrics. (For a more detailed description, see the Developers Guide.) For a more sophisticated approach of similarity, we provide the Screen package.
Perfect search is mainly used before database inserts to check whether the given molecule already appears in the database or not. All molecular features need to be equal here, eg. non-stereo query will only match non-stereo target, etc.
Superstructure search is the opposite of substructure search: It searches for those target molecules which can be found in the given superstructure query. (In this case the roles of the query and target molecules are simply exchanged, so query properties should be specified on the target!)
Exact fragment search is between substructure and exact search: the query must exactly match to a full fragment of the target. Other fragments may be present in the target, they are ignored. This search type is useful to perform an "Exact search" that ignores salts or solvents beside the main structure in the target.
Table 2. details the main differences amongst these search types.
Table 2. Search type differences
| Search type | Search feature | |||||||
| Similarity | Tests if target contains query |
Tests if query contains target |
Full fragment coverage |
Exact topology matching |
Exact stereo matching |
Exact atom features matching |
Exact bond matching |
|
| SUBSTRUCTURE | n/a | |||||||
| SUPERSTRUCTURE | n/a | |||||||
| EXACT_FRAGMENT | n/a | |||||||
| EXACT | n/a | |||||||
| PERFECT | n/a | |||||||
| SIMILARITY | n/a | n/a | n/a | n/a | n/a | n/a | n/a | |
The definition of the search features are:
Table 3. illustrates the most important differences between EXACT and PERFECT searches.
Table 3. EXACT and PERFECT search differences
| Query | Target | Hit | Remark | |
| EXACT | PERFECT | |||
|
![]() |
|||
![]() |
||||
![]() |
||||
![]() |
||||
![]() |
with option DoubleBondStereoMatching
set to DBS_MARKED (default) |
|||
![]() |
(A) denotes aliphatic query property | |||
|
![]() |
|||
![]() |
||||
The diagrams below show further examples of substructure, exact fragment, exact and perfect searches. The arrow between a query and target molecules denotes matching.




Graphs consist of nodes and edges. When we compare structures represented as graphs, the graph patterns must match. Atoms correspond to nodes and bonds are edges.
Even if both the topology and the type of the corresponding atoms and bonds are matching, we still have to examine the stereochemical configuration. Two molecules having the same kind of atoms connected by the same kind of bonds can be stereochemically different. The relative position of ligands connected to a chiral atom (R/S isomers), the enhanced stereo labels on chiral atoms and relative position of atoms located on rings or double bonds (cis/trans or E/Z isomers) determine the stereochemical configuration of the molecule.
For the different stereo features, see section Stereochemistry.