Does a resource exist that has the SMILES formula of the generalized pattern that represents the group?

For instance: I have the aldehydes group, which has the pattern: -CHO. Is there a resource that lists each functional group with the generic pattern that defines the group and its SMILES representation?

I'm hoping for, at the very least, getting the SMILES formula for the functional groups represented in this pdf: EPA Chemical Compatibility Chart

Follow up question: Is SMILES still relevant or are there better ways to represent chemicals?

  • 1
    $\begingroup$ Aldehyde is just C=O $\endgroup$
    – DHMO
    Sep 16 '16 at 4:59
  • 1
    $\begingroup$ @user34388 Except that C=O matches ketones and carboxylates in addition to aldehydes. The trick with functional group specification is in excluding things that shouldn't be matched, rather than forming things which do. This is why SMARTS, rather than SMILES, tends to be better for substructure searching. SMARTS is basically just SMILES with additions which help in querying. $\endgroup$
    – R.M.
    Sep 16 '16 at 18:13
  • $\begingroup$ Thanks @R.M., would you like to post this as an answer so I can give you credit (and build upon it in the comments?) $\endgroup$
    – lilott8
    Sep 16 '16 at 19:27
  • $\begingroup$ @lilott8 It's not an answer to your question, though, only some comments about the sort of answers which are likely to be useful. $\endgroup$
    – R.M.
    Sep 16 '16 at 19:59
  • 1
    $\begingroup$ @user34388 I think I understand your confusion. Text searching is a lousy way to look for SMILES-based substructures. While many ketone SMILES do contain C(=O), they don't need to: C1CCCCC1=O is a perfectly valid SMILES for cyclohexanone. Likewise, while aldehydes often contain C=O, they don't need to: O=CC is a valid SMILES for acetaldehyde, as is CC(=O)[H]. Conversely, CCOC=O (ethyl formate) is not an aldehyde. As such, pretty much any decent substructure search program that takes SMILES does not do text searches, and will give back ketones, esters, etc. for a query of C=O. $\endgroup$
    – R.M.
    Sep 17 '16 at 2:14

I'm currently working on a content store for a resource like this because I've realized I need this as well (and came across your question ~2 weeks ago).

Content Vairable Store

I am writing a python package called global-chem to actively support variable common storage (especially for SMILES/SMARTS) strings that can be easily distributed via pip.


The code is fairly simple and can be a one-liner:

from global_chem import GlobalChem
functional_groups = GlobalChem().functional_groups_smiles

GlobalChem is a class and properties on that class correspond to different sets of SMILES/SMARTS strings.

As of right now, I have

  • 93 functional group for SMILES
  • 85 functional groups for SMARTS
  • 19 Amino Acid SMILES strings

I suspect it will grow more over time and probably as I, and others, contribute to it.

If you want to read the docs: https://globalchem.readthedocs.io/en/latest/?badge=latest

Update 2021

I'll update my answer since it's been awhile, turns out I needed this in a capacity of common vs rare. So I added a lot more with v0.5.1 with as many as 1200 entries organized appropriately.

  • Common Organic Solvents: 42 entries
  • Open Smiles Manual: 94 entries
  • Rings in Drugs: 92 entries (Missing Some)
  • IUPAC Blue Book: 222 entries
  • Vitamins: 13 entries
  • Amino Acids: 20 entries
  • Regex Patterns: 1 entry


have fun.


I personally find it educational (even cathartic) to type out my own SMILES and make my own resources to fit my own purpose. For example, I have written out all 20 amino acids in such a way that I could just append them to generate full peptides, proteins from the AA letter sequences, simply by appending the SMILES blocks ("macros") that I made for myself.

If you want patterns to detect (match) them in bigger molecules, you have a problem because you can't really use regex like pattern matching on SMILES strings. SMARTS was invented for that (see other answer above, which was right on and, to the comment, which I can't reply to, the provided link explains the relationship between SMARTS and SMILES).

But anyway all structural chemical pattern matching requires recreating the graph model of the molecule.

SMILES is great for writing out structures and it's really educational to just write out your own "macros" that you can then put together to larger structures.

  • 2
    $\begingroup$ I actually think this should be part of the curriculum taught in organic chemistry $\endgroup$ Oct 10 at 20:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.