JChem Query Guide

Version 5.0.6

Contents

Introduction

Organic chemistry grew rapidly during the 20th century, as evidenced by the increase in the number of known organic compounds from approximately 12,000 in 1880 to one million in 1960. Today, this number has grown over tens of millions. The big bang of information technology starting at the end of the last century brought about revolutionary changes in chemical data handling methods. The enormous rise in the number of known chemical structures has been multiplied by the new virtual chemistry methods which erased barriers limiting chemists' imaginations. Applying fast and intelligent structure searching software programs has become vital for the competing pharmaceutical and biotech industries.

The molecule structures found in the examples of this document are drawn using MarvinSketch, the integrated structure drawing tool of JChem.

Search Types

Exact structure search, substructure search

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

Other search types

Besides the above, JChem supports similarity, perfect, superstructure and exact fragment type searches.

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.

The following table details the main differences amongst these search types.

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:

The following table illustrates the most important differences between EXACT and PERFECT searches.

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.


 

 

 
 

Searching in the database

Searching in the database contains a rapid prefiltering step, which screens out many of the targets not matching the query. This step uses chemical hashed fingerprints. To learn more about this step and how to fine-tune fingerprint generation to your needs, see the following document: Parameters for Generating Chemical Hashed Fingerprints

Comparison levels

Graph topology

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.

Atom types

In the case of molecular structures, it is certainly not enough to simply compare the graph patterns, the type of atoms and bonds must be checked as well.

Stereo configuration

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.

Query features

Query atoms

Organic chemists often look for molecules that can not be represented by a single structure. Although it is possible to run multiple structure searches in cascade, it is much more efficient to run a search only once using a well designed query structure. This structure often contains query features, possibly including complex conditional expressions for atoms and bonds.

Atom lists, not lists

It is possible to define the type of an atom in a custom atom list. If the type of the corresponding atom in the target molecular structure is a member of the list, it is considered a matching atom (Table 2). Not lists can be used to specify atoms to be excluded (Table 3). Please note that the matching of not list atoms may depend on the input format of the query molecule. See details.

Table 2 Atom lists
  target
query

Table 3 Atom not lists
  target
query

Generic query atoms

Applying atom lists and not lists is a practical solution when the number of included or excluded atoms is small. However, generic query atom types are helpful to avoid long atom lists. JChem handles at the moment the following generic query atom types.

 A           Any (any atom except hydrogen. Neither matches to explicit nor
                 implicit hydrogens. Please note that in JChem the SMARTS
                 primitive "*" is imported as any atom and does not match to
                 plain hydrogens. (Neither explicit nor implicit.)
                 For differences between matching any atoms appearing in
                 different file formats, see here )
 AH          Any atom, including hydrogen.
 Q           Hetero (any atom except hydrogen and carbon)
 QH          Hetero atom or hydrogen (any atom except carbon)
 M           Metal (contains alkali metals, alkaline earth metals, transition metals, actinides, lanthanides, poor(basic) metals, Ge, Sb and Po)
 MH          Metal or hydrogen
 X           Halogen (F,Cl,B or I)
 XH          Halogen or hydrogen
 Gn          Member of group (column) n in the periodic system (n = 1..18)
                 Attention: G17 is NOT the same as X, as it contains At!

Table 4 Generic query atoms
  target
query

Atom properties

The chemical neighborhood of an atom is sometimes as important as its type. Conditions for the chemical environment of an atom can be defined by atom properties (Table 5). Some of these require a value (connections, smallest ring size) others don't (aromatic). The smallest set of smallest rings (SSSR) is used for the evaluation of ring properties.
    a           aromatic (has aromatic bond)
    A           aliphatic (does not have aromatic bond)
    D<n>        degree (number of explicit connections; default for "n" is one)
    H<n>        total hydrogens (total number of hydrogen substituents)
    h<n>        implicit hydrogens (number of implicit hydrogen substituents*)
    R<n>        rings (number of rings the atom is a member of)
    r<n>        smallest ring size (size of the smallest ring the atom is a member of)
    R           ring membership (whether atom is part of a ring or not)
    v<n>        valence (total bond order)
    X<n>        connections (number of substituents including hydrogens)
    s<n>        substitution count (number of non-H substituents)
                s0-s5:exact substitution count; s6: 6 or more substitutions
    s*          substitution as drawn (no extra non-H substituents)
    rb<n>       ring bond count (number of ring bonds next to the atom)
                rb0-rb3:exact ring bond count; rb4: 4 or more ring bonds
    rb*         ring bond count as drawn (no extra ring bonds)
    u           unsaturated atom (atom has double, triple or aromatic bond)
* Corresponds to both ISIS and Daylight behaviours, depending on the source of the Molecule object. For details, see below at the differences section.

Table 5 Atom properties
  target
query

Isotopes, charges, radicals

Isotopes, charges and radicals are atom properties which can be found not only on the query structure, but on a target as well. They are considered during the search. This includes that an atom without isotope, charge and radical information will match to atoms with information about those properties. However, this behavior can be fine-tuned using the following options: (All constants above are defined in class chemaxon.sss.SearchConstants.)

The following tables show some examples.

  target
setOption(OPTION_CHARGE_MATCHING, CHARGE_MATCHING_DEFAULT) (Default)
query
setOption(OPTION_CHARGE_MATCHING, CHARGE_MATCHING_EXACT)
query
setOption(OPTION_CHARGE_MATCHING, CHARGE_MATCHING_IGNORE)
query

  target
setOption(OPTION_ISOTOPE_MATCHING, ISOTOPE_MATCHING_DEFAULT) (Default)
query
setOption(OPTION_ISOTOPE_MATCHING, ISOTOPE_MATCHING_EXACT)
query
setOption(OPTION_ISOTOPE_MATCHING, ISOTOPE_MATCHING_IGNORE)
query

  target
setOption(OPTION_RADICAL_MATCHING, RADICAL_MATCHING_DEFAULT) (Default)
query
setOption(OPTION_RADICAL_MATCHING, RADICAL_MATCHING_EXACT)
query
setOption(OPTION_RADICAL_MATCHING, RADICAL_MATCHING_IGNORE)
query

Link nodes (link atoms)

Link nodes are atoms which may occur one or more times defining a variable length chain or ring. The link node is denoted by its brackets and the repetition range. All bonds not crossed by the brackets (and connecting parts) are also repeated together with the link node. See examples below.

Query Possible meanings

SMARTS atoms

JChem's search supports all valid SMARTS atom expressions. (See Daylight's SMARTS theory manual.)

SMARTS atoms are depicted the following way in marvin:

The following additional query features are handled as part of this:

Logical operators between query elements

This query feature allows the use of logical operators: the two "and" operators, "or" and "not" to combine queries into complex expressions. The following table shows the operators in the order of their precedence ("!" evaluated first):

Operator Name
! not (unary operator)
& high precedence and (default operator, i.e. can be omitted between two query expressions)
, or
; low precedence and

Examples:

Query Target
NCC(O)=O [N+]CC([O-])=O [H]OC(=O)N([H])C COC
[OX2H,OX1-]
[O&X2&H,O&X1&-]
[NX3;H2,H1]
[OX2!-]

Recursive SMARTS

One of the most powerful feature of SMARTS atoms is recursive SMARTS. It can be used to describe an environment of an atom with the syntax "$( <<SMARTS expression>> )". The first atom of the <<SMARTS expression>> will be matched to the atom in question, and the rest to its environments. It evaluates true if the expression matches.

For example:

SMARTS Meaning
[OX2$(OaaN)] Aliphatic oxygen with two connections, next to an aromatic ring having an aliphatic N in ortho position.
[OX2$(*aaN)] Same as above.
[$([OX2]aaN)] Same as above.
[NX3;H2,H1;!$(NC=O)] Primary or secondary amine, not amide.
[$(N~*~*~[O!$(O([C,c])[C,c])])] Aliphatic N three bonds away to a non-ether aliphatic O.

Examples:

Query Target
[OX2$(OaaN)]
[$(OCC),$(OCN)]
[$(O([C,c])[C,c])]
[$(N~*~*~[O!$(O([C,c])[C,c])])]

Please note that uppercase atom symbols only match to aliphatic atoms and lowercase only to aromatic.

Further information regarding SMARTS

In JChem explicit and implicit hydrogens in the target are treated the same, and hence the presence or absence of plain hydrogens does not affect the result of the search.

In JChem the SMARTS primitive "*" (any atom) does not match to plain hydrogens. (Neither explicit nor implicit.) However, it matches deuterium and charged H. See below.

Further SMARTS examples can be found on Daylight's page.

Pseudo atoms

Pseudo atoms have user-defined atom types, and they only match another pseudo atom of the same name (case insensitive). Commonly used pseudo atoms include "Resin" and "Pol".

Examples:

Query Target

It should be noted that there is no chemical intelligence associated with pseudo atoms. This means that if a common abbreviation is used as pseudo atom, it will not match the corresponding molecular group. To achieve this, correct abbreviations (Superatom S-groups) must be used.

Lone pairs

JChem search can handle query and target atoms having lone pairs associated with them. Lone pairs on the query side match explicit and implied lone pairs, but please note that lone pairs are only considered when attached to an atom, ie isolated lone pairs will not match anything.

Examples:

Query Target

Querying bonds

Generic bonds

Querying against bonds can determine if a bond in the target molecule is one of the four basic types (single, double, triple, aromatic)or one of the generic types that are available for fine tuning query structures (Table 6). The line style represents the type of a bond.
any
single or double
single or aromatic
double or aromatic

Table 6 Generic bond types
  target
query

Note on aromatic bonds

For the correct use of aromatic bonds and aromatic systems in general, see the Aromatization section under Standardization.

Stereo bonds (tetrahedral chirality and cis/trans configuration)

See section Stereochemistry

Chain/ring bond attributes

In addition to the bond type discussed above, a bond topology query attribute can be assigned to bonds. This expresses that the bond must be part of a ring or must not. See the examples below.

  target
query

SMARTS bonds

SMARTS bond expressions are also supported. (See Daylight's SMARTS theory manual.)

SMARTS bonds are depicted the following way in marvin:

Like at SMARTS atoms, SMARTS logical operators "!" (not), "&", ";" (high and low precedence and), "," (or) can be used. "&" is the default operator, hence "and" is assumed if there is no operator between two SMARTS primitives. Furthermore, the following characters have valid meanings:

Bond expression Meaning
- Single bond
= double bond
# triple bond
: aromatic bond
@ any ring bond
/ directional bond: single "up" (used at cis/trans)
\ directional bond: single "down" (used at cis/trans)

Examples:

SMARTS Meaning
C-,=,#C Two aliphatic carbons connected by single, double or triple bond.
*-!@* Two atoms connected by a nonring single bond.
*@-,!@&/*=*@-,!@&/* Double bond between two single bonds in ring or not in ring but in trans configuration.

Matching examples:
Query Target
C-,=,#C
*-!@*
*@-,!@&/*=*@-,!@&/*

Further SMARTS examples can be found on Daylight's page.

Coordinate bonds

Coordination compounds can be registered and searched for in JChem structure databases. Both "atom to atom" and "multicenter" (involving more than two atoms) representations are supported.

Atom to atom coordinate bonds

Matching of "atom to atom" coordinate bonds is similar to matching other bond types. The direction of the coordinate bond arrow is not checked. See examples below. (Q stands for hetero atom, M for any metal atom. The thin dotted bond represents an ANY query bond.)

Query Target

Multicenter coordinate bonds

Multicenter coordinate bonds are handled the way as if each atom at opposite ends of the coordinate bond had individual coordinate bonds in between them. This means that the following molecule pairs are equivalent (The used molecule representation conforms to IUPAC recommendation: atom to atom coordinate bonds are displayed by an arrow and multicenter coordinate bonds are denoted by thick dashed line.)

So individual and multicenter representations can both be used during searching, in all combinations. See examples below. (The thin dotted bonds represent ANY query bond types.)

Query Target

Components

This section describes the feautures related to different types of components. Component = set of connected atoms in a molecular drawing. The connection can be: The handling of these different types of components are described below.

SMARTS component level grouping

This feature uses components as atoms connected by bonds. In SMARTS queries it can be specified whether different components (fragments) of the query should appear in the same or different components in the target. It is represented by grouping parentheses around the component in the SMARTS string. Please note that there are no graphical representation of this feature in Marvin.
SMARTS representation Meaning
C.C No restrictions.
(C.C) The two carbons must appear in the same component.
(C).(C) The two carbons must appear in different components.

Examples:

Query Target
C.C
(C.C)
(C).(C)
(C).(C).C

Component, Mixture and Formulation brackets

This feature relates to the use of brackets (S-groups) of type COM (component), FOR (formulation) and MIX (mixture). A component here is a set of atoms contained by a component bracket.

Ordered and unordered mixtures

An unordered mixture (MIX type S-group) consists of several unordered components. For these types of mixtures, the order of addition during the preparation is not important. Example:

Ordered mixtures (FOR type S-groups), on the other hand contain ordered components, which define the order of addition. Example:

Matching of mixture and component brackets

The component grouping of component brackets is considered during the matching, so all atoms drawn inside component brackets in the query can only match atoms that are contained in the same component brackets in the target and separate components can only match separate components.

Component brackets without surrounding mix or for brackets are considered as being in mix (unordered mixture) brackets and molecules not drawn in any component brackets are considered to be in the same component.

Examples:

Query Target

Matching of formulation brackets

Unordered mixture (mix) queries match both unordered (mix) and ordered (for) mixtures. However, ordered (for) mixtures only match ordered mixtures, and the component numbering must keep order. Examples:

Query Target

Other component features

During reaction searching, reaction component grouping is maintained, see at the reaction component handling section.

Exact fragment matching ensures that all query components (atoms connected by bonds) match only full components. See its description in the Search types section.

Explicit hydrogens

For the sake of simplicity, organic chemists usually do not draw hydrogen atoms on molecules, but in some models used to represent molecules the hydrogens are shown implicitly or explicitly. Whatever display mode one prefers, all free valences of the atoms are considered to be filled with hydrogens. In case of query structures, explicit query hydrogens have a significant importance. An explicitly drawn query hydrogen defines that the target must contain a hydrogen in that position (Table 8).

Table 8 Explicit hydrogens
  target
query

Filtering expressions

It is possible to filter search hits, in which case only those hits are accepted that satisfy the filtering expression. The filtering expression is formulated in ChemAxon's Chemical Terms language, the syntax is described in the Chemical Terms Reference. Search specific functions contained in the search context provide access to the query and the target molecules, the search hit array and its elements:

The default input molecule is the target molecule (e.g. mass() is the same as mass(target()), both refer to the molecule mass of the target molecule).

The filtering expression can be set by

the latter specifies a configuration XML with function/plugin definitions to be used in addition to those provided by the built-in evaluator.xml.

The following table shows some examples (pKa values are shown at target atoms).

  target
setFilter("pka(hm(1)) > 2")
query
setFilter("pka('acidic', hm(1)) > 2 && mass() > 100")
query

A set of working examples is also available.

Stereochemistry

Biological systems are highly stereoselective, thus, a chemical structure search engine has to be geared with stereospecific query tools. JChem handles tetrahedral and double bond E/Z stereochemistry. Furthermore, relative tetrahedral stereo configuration and different stereo models can be used. There are also various search options that modify search beaviour related to stereochemistry.

When the query does not contain stereo information, the hits will include results both with and without stereo information. Otherwise, the stereo information is taken into account during the search.

Search options may modify the above behaviour. For example, when the stereo search option is switched off, all stereo information is ignored. And when the exact stereo option is switched on, all stereo information is tested for equality, meaning that a non-stereo query only matches non-stereo targets.

Tetrahedral stereochemistry

Tetrahedral stereochemistry information is derived from different molecular features, depending on dimensionality:

The table below depicts a few examples of tetrahedral stereo matching, assuming absolute stereochemistry (see next section for further details):

  target
query

Relative configuration of tetrahedral stereo centers

In the case of stereogenic centers absolute and relative stereo configurations are both supported. We support both MDL stereo representations(chiral flag and enhanced stereo representation) and the Daylight stereo representation. All molecules originating from Daylight SMILES represent absolute stereo configuration, as SMILES does not support relative configuration.

MDL Enhanced Stereo Representation

In MDL's enhanced stereo representation all stereo center atoms are labeled with one of the following:
  1. ABS
  2. ORn
  3. ANDn
They define a grouping of the stereogenic centers.

Stereogenic centers belonging to ABS represent absolute stereochemistry, i.e. chirality. (All unlabeled stereo centers are also thought to belong to the ABS group by default. Unlabelled stereo centers may be interpreted as an independent AND group only if (1) chiral flag is not set AND (2) the absolute stereo search options ( Query/TargetAbsoluteStereo, AbsoluteStereo) are set to false. See the following sections for further explanation.)

Stereogenic centers belonging to an ORn group (e.g. OR1) represents one stereoisomer that is either the structure as drawn (R, S) OR the epimer in which the stereogenic centers have the opposite configuration (S, R).

Stereogenic centers belonging to an ANDn group (e.g. AND1) represents a mixture of two enantiomers: the structure as drawn AND the epimer in which the stereogenic centers have the opposite configuration. (e.g. Racemic mixture.)

For example,

molecule interpretation
A pure sample of one stereoisomer:
A pure sample of one of these enantiomers:
or
A pure sample of one of these enantiomers:
or
A sample that is a mixture of the two enantiomers:
and
A pure sample of one of these diastereomers:
or or
or

Matching rules of the enhanced representation

For example:

  target


(No stereo info)
query


(No stereo info)

For down wedge query bonds:

  target


(No stereo info)
query

At AND and OR groups’ the relative configuration of the group must match: (i.e. All match as drawn or all match the opposite way.) There is no restrictions when the chiral centers belong to different groups. (Bottom row.)

  target
query

MDL old stereo representation (chiral flag)

By default, the chiral flag representation of MDL is not considered and all molecules are treated as chiral:

  target
query

However, when the absolute stereo options (Query/TargetAbsoluteStereo, AbsoluteStereo) are set to false, the Chiral flags in MDL molfiles and sdfiles are considered. In this case, molecules lacking the chiral flag are considered as if their unlabeled stereogenic centers were in an AND group hence expressing relative stereo configuration:

  target

Chiral

Chiral

Chiral

Chiral
query
Chiral

E/Z stereochemistry of double bonds

Ligand pairs of a stereo double bond define a stereo configuration. (Referred to as cis/trans or E/Z configuration.) In 2D and 3D molecules this configuration is derived from the atomic coordinates, and for molecules without coordinates (0D, like smiles) stereo double bonds are distinguished in other ways. (For example, smiles uses the directional bonds: / and \ for the ligand, and CML and MRV formats use a bond flag in the 0D case - the <bondStereo> tag.)

There is a search option which controls the behaviour regarding double bond cis/trans isomerism: setDoubleBondStereoMatchingMode(). It can set three different search states:

In case of DBS_MARKED, a small box should be placed on the query double bond to indicate the stereo search flag. This means that those double bonds will be considered as stereo during the search. In this case, the corresponding double bond in the target molecule structure must have the same stereo configuration as drawn in the query (Table 7).

cis (the two atoms are on the same side of the double bond)
trans (the two atoms are on the opposite sides of the double bond)
cis or trans (stereo bond with either cis or trans configuration)
cis or trans (stereo bond with either cis or trans configuration)
not trans
not cis
Table 7 Stereo double bonds

Examples(DBS_MARKED):

  target
query

Stereo models

The stereo model defines how stereochemistry should be evaluated at symmetrical parts of the query and target, with stereochemistry possibly incompletely defined.

Local stereo model

This method is the default. It instructs the search to use local stereo information only (local parity, local double bond stereo configuration, etc). In other words it accepts all given stereochemistry information, and does not check ligand equivalences, etc. When a symmetric atom/bond in the query is specified, this method only matches target atoms/bonds with specified stereochemistry. (For example, query C[C@](C)(C)C does not match CC(C)(C)C.)

Global stereo model

It instructs the search to use global stereo information (global parity, global double bond stereo configuration, etc). This means that stereo centers with symmetrical ligands are assumed to have no stereo information at all, both in the query and target. This value is suitable for Perfect, exact and exact fragment searches, as in these cases the full stereospecific environment is always available for both the query and target structures. (Therefore a symmetrical atom/bond with stereo configuration may match to an unspecified strereo atom/bond. For example, C[C@](C)(C)C matches CC(C)(C)C.)

Comprehensive stereo model

It combines the advantages of local and global stereo models. This setting is suitable for all search types. In principle, it is similar to the local stereo model, except when the target is symmetrical. In the symmetrical target case the matching is accepted, regardless of stereo information. For example, substructure query C[C@](C)(C)C matches both CC(C)(C)C , C[C@@](C)(C)C and CCC[C@@](C)(CC)C(C)C.

Special search types

R-group query structures

Atom lists proved to be useful tools for creating query structures with variable atoms. JChem provides a similar variability feature of functional groups or other substructures in queries for molecule or reaction targets (tables) through the use of R-groups.

If you are interested in searching combinatorial Markush library targets (tables) described by R-group notation, see this following section.

Root structure

An R-group query structure consists of three components, a root structure (often referred to as scaffold), a set of R-groups and R-group conditions. The root structure contains the portion of the query structure that does not vary among the structures retrieved. R-groups (or R-groups) are attached as substituents to the root and their sites are marked with R1, R2, R3, etc. symbols respectively. It is possible to attach multiple R-groups to one root, even to a single atom of the structure. One R-group can be attached multiple times to the same root, but it does not mean that all these attachments should be filled by the same definition (see occurrence conditions below for further information).

R-groups

R-groups are variable lists of ligands connected to specific positions of the root structure by their attachment points.

Conditions

Remarks

The following restrictions apply for R-group queries:

R-group decomposition

For a description of R-group decomposition, see this separate document.

Searching in combinatorial Markush targets/tables

Certain combinatorial libraries can be described by Markush structures that contain generic features to express variable structural features. The library of a Markush structure is the total set of specific molecules that are described by the Markush structure.

JChem allows searching in combinatorial libraries described as Markush structures, without the need to explicitly enumerate all molecules of the Markush library. The searching can handle the same generic features as the Markush Enumeration Plugin.

Generic Markush features in combinatorial Markush targets

Currently, JChem supports the following generic features that describe Markush structures in combinatorial libraries:

Name Description Example Example Markush library member
R-groups R-groups (also referred to as "substituent variation") are the most widely known Markush generic features. The variable part of th