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.
Description of the use of undefined R-atoms in query structures can be found in this section.
An R-group query structure consists of three components, a root structure (often referred to as scaffold), a set of R-group definitions, and R-group conditions. The root structure contains the portion of the query structure that does not vary among the structures retrieved. R-groups are attached as substituents to the root and their sites are marked with R1, R2, R3, etc. symbols. 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). An R-group without definitions is called undefined.
R-group definitions are variable lists of ligands connected to specific positions of the root structure by their attachment points.
The following figure displays an R-group query structure (root structure + R-group definitions) without R-group conditions.
R-logic conditions can be set by using by Marvin JS or by Marvin Sketch. As for Marvin JS, see the description of the necessary steps to be executed here.
As for Marvin Sketch, the necessary steps are described here below.
Conditions of R-group search can be set on the R-logic window of Marvin Sketch (available from menu: Structure > Attribute > R-logic...).
When in Marvin Sketch, the View > Misc > R-logic is switched on, R-logic settings are displayed, too. By default, when R-groups are defined in the structure, and Structure > Attributes > R-logic has its default settings,
R2 *, etc. are displayed.
Modification of the R-logic settings to
results the following display.
The occurrence condition defines the number of R-group sites to be occupied. For example, occurrence designation
>0 for R1 specifies that the target molecule must contain at least one of the R1 substituents listed in the R1 group definition on its corresponding atom. If this condition is not specified (the default case), all occurrences are considered as mandatory ligands. (However, different occurrences of the same R-group can be substituted with different definitions.)
Examples of valid R-group occurrence specifications:
The occurrence can also be specified as a comma separated list, in which there is OR relation between the elements. Example: "
0,2-5,>6" means the specified R-group may occur zero, two to five, or more than six times (i.e., any occurrence but 1 and 6 is accepted).
Note: If the smallest number of the specified possible occurrences of an R-group is equal to the number of corresponding R-atoms actually drawn in the structure, then it is treated the same way as the unspecified condition: all substitutions are mandatory.
If conditions for an R-group have to be satisfied only when conditions of another R-group are satisfied, use the If/Then conditions. For example,
If R1 then R2 means that if the conditions for R1 are satisfied, then the conditions for R2 must also be satisfied. If the conditions for R1 are not satisfied, the conditions for R2 are ignored. This If/Then condition implies that the molecule may be retrieved even though R1 is not satisfied.
If the RestH condition is set for an R-group, the hit molecules do not contain ligands on that atom other than hydrogen or those specified as R-group. If RestH condition is false, then R-group sites can contain any additional non-hydrogen ligands as well.
Table 1. R-group query structures
default R1 * R2 *
R1 >0 R2 >0
R1 >1 R2 *
R1 * R2 >0
R1 *, RestH R2 1
if R1 then R3
if R2 then R3
R-group definitions may also contain other R-groups, that is, R-groups may be nested (to any depth). See an example below:
In nested R-groups, the occurrence conditions are interpreted the same way as in the root, but separately and locally for each definition of each R-group. See examples below:
The following restrictions apply to R-group queries.