Branches are specified in SMILES by enclosing them in parentheses, which may be nested or stacked.
The syntax for branching is:
branch : '(' <chain> ')' | '(' <chain> <branch> ')' | '(' <branch> <chain> ')' | '(' <chain> <branch> <chain> ')' ;
The SMILES language specifies no predefined limit to how deep branching may be nested. Most implementations define such a limit, typically between 10 and 50. It's rarely a problem in practice, since the average connectivity of real molecular graphs is very low.
Depiction | SMILES | Name | Remark | |
---|---|---|---|---|
CC(C)C(=O)O | isobutyric acid | If needed, bond symbols should appear inside branches. | ||
FC(F)F or C(F)(F)F |
fluoroform | Branches may be stacked. One can start with any atom equally well. | ||
O=Cl(=O)(=O)[O-] or Cl(=O)(=O)(=O)[O-] |
perchlorate anion | More branch stacking. | ||
CCCC(C(=O)O)CCC | 4-heptanoic acid | Branches may be nested. |