Limitations of the Open Babel SMARTS Implementation
The Open Babel implementation of SMARTS is not bug-free, nor does it support everything in the Daylight Toolkit. In particular, it is known to not currently support:
- Component-level grouping (i.e., "(C).(C)") Feature Request
- Use of non-tetrahedral chirality Feature Request
- Unspecified chirality (i.e., "@?") Bug Report
- New v4.9 primitive "x#" for number of ring connections Feature Request
- [H] does not match explicit hydrogen atoms Bug Report
- A workaround for this exists -- [#1] should be equivalent to [H] in this respect (i.e., element number 1).
This list may not be complete. Please e-mail the openbabel-discuss mailing list if you have questions about the SMARTS support in Open Babel.
Open Babel Extensions to SMARTS Syntax
In addition to the Daylight Toolkit syntax, Open Babel also offers the following extensions to SMARTS which are not currently supported by Daylight:
- Atom hybridization matching "^". For example [#6^3] matches a carbon atom (atomic number 6) with sp3 hybridization. Accepted hybridizations include:
- 1 - sp e.g., [#6^1][#7]
- 2 - sp2 e.g., [#6^2][#6^2]
- 3 - sp3 e.g., [#8^3]