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. |