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
    Commented Sep 16, 2016 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.
    Commented Sep 16, 2016 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
    Commented Sep 16, 2016 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.
    Commented Sep 16, 2016 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.
    Commented Sep 17, 2016 at 2:14

2 Answers 2


It's now a mini graph network object but works in a simple way. Has no dependencies, and if you want you can copy and paste the smiles however.


Code wise, you can follow the tutorial - something like this:

gc = GlobalChem()
node = gc.get_node('open_smiles')


Here's the repository: https://github.com/Sulstice/global-chem


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$ Commented Oct 10, 2021 at 20:17

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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