Special search types: R-group query structures
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-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 (or 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
R-group definitions are variable lists of ligands connected to specific positions of the root structure by their attachment points.
![]() |
![]() |
Conditions
- Occurrence
The occurrence condition defines the number of R-group sites to be occupied. For example, occurrence designation
>0for 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. This is the default value of the occurrence.The following specifications are valid:
- 3 : Exactly 3
- >3 : More than 3
- <3 : Less than 3
- 2-5 : 2 to 5
The occurrence can be specified as a comma separated list, 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. - If/Then
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 R2means 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. - RestH
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
target 
query 
default 
R1>1 
R2>1 
RestH
on R1

default 
if R1
then R3
if R2
then R3
Remarks
The following restrictions apply for R-group queries:- If s*(substitution as drawn) query property is used on an atom of an R-group definition that has attachment point defined, it is assumed that the attachment points go to non-H atoms (so it is counted to the substitutions of the query atom.) If you do not want this, please use an explicit number with the s query property. (For example, s3.)
- If rb*(ring bonds as drawn) query property is used on an atom in an R-group definition, it is assumed that the R-group is not occurring in a ring (so only ring bonds in the R-group definition are counted.) If you do not want this, please use an explicit number with the rb query property. (For example, rb2.)
- R-group definitions can have up to two attachments.
- Nesting of R-groups is not allowed.
R-group decomposition
For a description of R-group decomposition, see this separate document.Do you have a question? Would you like to learn more? Please browse among the related topics on our support forum or search the website. If you want to suggest modifications or improvements to our documentation email our support directly!





