====== SMARTS query filter ====== {{:smarts.png?700|}} The [[http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html|SMARTS]] language is designed to describe substructure patterns in molecules, and to overcome the limitations of simple substructure matching. The SMARTS query filter at [[https://mcule.com/|mcule.com]] provides nearly full SMARTS language support, based on the [[http://ggasoftware.com/opensource/indigo|Indigo]] implementation of SMARTS. Using the SMARTS query filter you can select or eliminate molecules containing specific SMARTS patterns. The filter allows multiple SMARTS queries. Molecules matching with ALL or ANY of the queries can be either included to or excluded from the result collection. ===== When to use ===== SMARTS query filter is a powerful and flexible tool to perform complex structural queries impossible to describe with a simple [[substructuresearch|Substructure search]]. For example, if you are seeking for molecules containing a phenol substituted with any halogen atoms at para position, you can easily define the corresponding SMARTS pattern, and do the search. Things become more interesting if you consider the batch functionalities. Using proper lists of SMARTS queries you can effectively eliminate problematic (non-druglike, toxic, reactive) molecules from a collection; thus you can use the SMARTS filter to build up your own [[REOS|REOS]] (Rapid Elimination of Swill) filter. Another use case is to generate a collection of specific structures, for example, strong acids or bases, using specific SMARTS. All you need is a list of SMARTS queries and to apply the appropriate settings. ===== How to use ===== To create a SMARTS query, you can either go through the [[http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html|Daylight documentation]], or use a molecule sketcher supporting the export of the SMARTS format (e.g. [[http://www.chemaxon.com/products/marvin/marvinsketch|MarvinSketch from ChemAxon]]). ==== Options ==== You can specify multiple SMARTS queries in one filter, and apply one of the following settings: INCLUDE molecules matching ANY of the SMARTS queries (default) INCLUDE molecules matching ALL of the SMARTS queries EXCLUDE molecules matching ANY of the SMARTS queries EXCLUDE molecules matching ALL of the SMARTS queries For example the first option returns all molecules that match any of the SMARTS patterns. To use a REOS-like setup, you should use the ‘EXCLUDE, ANY’ combination. ===== Results ===== Molecules satisfying search criteria ===== Limits ===== SMARTS filter available in the [[freepackage|Free package]] has the following limitations: - max 5 queries per filter - max 1 filter per workflow To get access to unlimited SMARTS query filter, [[subscriptionpackages|subscribe]] to our Library Design package. ===== SMARTS language limitations ===== Our implementation of SMARTS does not support the differentiation between explicit and implicit hydrogens. In addition, ‘up or unspecified’ and ‘down or unspecified’ notations (‘/?’ and ‘\?’), square-planar, triagonal-bipyramidal and octahedral stereo configurations are not supported. ===== Further information ===== If you would like to get further information on SMARTS format, visit the following web pages by [[http://www.daylight.com|Daylight]] (developer of the SMARTS language): [[http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html|SMARTS - A language describing molecular patterns]] [[http://www.daylight.com/dayhtml_tutorials/languages/smarts/index.html|SMARTS Tutorial]] [[http://www.daylight.com/dayhtml_tutorials/languages/smarts/smarts_examples.html|SMARTS Examples]] [[http://ggasoftware.com/opensource/indigo/concepts#substructure-and-smarts-matching|Additional information about the Indigo implementation of SMARTS]] [[http://ggasoftware.com/opensource/indigo/concepts#daylight-formats-with-chemaxon-and-curlysmiles-extensions|Indigo concepts - Daylight Formats]] [[http://ggasoftware.com/opensource/indigo/concepts#differences-between-smarts-and-query-smiles|Difference between SMILES and SMARTS matching in Indigo]]