# SMILES Notation

Key: `representation.scientific.smiles`

Simplified Molecular-Input Line-Entry System. Compact linear notation for describing chemical structures using ASCII characters. Atoms represented by element symbols, bonds by special characters. Widely used in cheminformatics and drug discovery databases.

Page: <https://meridian.online/docs/projects/finetype/types/representation/scientific/smiles>

Samples: `O`, `CCO`, `CC(=O)Oc1ccccc1C(=O)O`, `c1ccccc1`, `CC(=O)O`, `C(=O)(N)N`

## Background

### Origin

SMILES, the Simplified Molecular Input Line Entry System, is a line notation that uses printable characters for entering and representing molecules and reactions.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) Daylight's SMILES theory manual records that development of SMILES was initiated by David Weininger at the Environmental Research Laboratory of the U.S. EPA in Duluth, Minnesota.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) The SMILES design was completed at Pomona College in Claremont, California.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) The Environmental Protection Agency funded the initial project to develop SMILES.[[2]](https://en.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_System) David Weininger's paper "SMILES, a Chemical Language and Information System. 1. Introduction to Methodology and Encoding Rules" was published in the Journal of Chemical Information and Computer Sciences in 1988.[[3]](http://opensmiles.org/opensmiles.html) A second paper, "SMILES 2. Algorithm for Generation of Unique SMILES Notation", by David Weininger, Arthur Weininger and Joseph L Weininger, appeared in the same journal in 1989.[[3]](http://opensmiles.org/opensmiles.html)

The OpenSMILES specification says that since its introduction in the late 1980s, SMILES has become widely accepted as a de facto standard for exchange of molecular structures.[[3]](http://opensmiles.org/opensmiles.html) In 2007, an open standard called OpenSMILES was developed by the Blue Obelisk open-source chemistry community.[[2]](https://en.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_System) The OpenSMILES authors wrote that Daylight's specification, being proprietary, limits the universal adoption of SMILES and has no mechanism for contributions from the chemistry community.[[3]](http://opensmiles.org/opensmiles.html) The current OpenSMILES specification is version 1.0, dated 2016-05-15.[[3]](http://opensmiles.org/opensmiles.html)

### Use

Hydrogen atoms do not normally need to be specified when writing SMILES for most organic structures.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) In SMILES, atoms in aromatic rings are specified by lower case letters, so aromatic carbon is written c.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) SMILES branches are specified by enclosing them in parentheses, and can be nested or stacked.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) A SMILES ring closure is marked by a digit immediately following the atomic symbol at each end of the ring-closing bond.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) Disconnected compounds are written in SMILES as individual structures separated by a period.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) SMILES written with isotopic and chiral specifications are collectively known as isomeric SMILES.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html)

There are usually a large number of valid SMILES strings which represent a given structure.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) A canonicalisation algorithm exists to generate one special SMILES among all the valid possibilities.[[1]](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) RDKit's documentation shows the inputs C1=CC=CN=C1, c1cccnc1 and n1ccccc1 all being written back as the same canonical SMILES, c1ccncc1.[[4]](https://www.rdkit.org/docs/GettingStartedInPython.html) A canonical SMILES depends on the canonicalisation algorithm used to generate it.[[2]](https://en.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_System) The Daylight and OpenEye algorithms for generating canonical SMILES differ in their treatment of aromaticity.[[2]](https://en.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_System) OpenSMILES warns that a canonical SMILES should not be considered a universal, global identifier, because two systems may use different rules and one system's output can change as it is improved or has bugs fixed.[[3]](http://opensmiles.org/opensmiles.html) OpenSMILES advises that anyone considering canonical SMILES for a database system should also investigate InChI.[[3]](http://opensmiles.org/opensmiles.html) OpenSMILES notes that names for SMILES flavours such as isomeric SMILES conflict between vendors and toolkits.[[3]](http://opensmiles.org/opensmiles.html) When you join or deduplicate molecules from more than one source, re-canonicalise every string with one toolkit and one version, rather than comparing the strings as they arrived. (Meridian's view)

Under OpenSMILES, a SMILES string ends at a whitespace character (space, tab, newline or carriage return) or at the end of the string.[[3]](http://opensmiles.org/opensmiles.html) OpenSMILES allows other data, such as a name, properties or a registration number, to follow the SMILES on a line after the whitespace.[[3]](http://opensmiles.org/opensmiles.html) RDKit's MolFromSmiles returns None when it fails to parse a SMILES string, with an error message such as "Can't kekulize mol".[[4]](https://www.rdkit.org/docs/GettingStartedInPython.html) Short values such as O, CC or CCO read as ordinary text, so trust a SMILES column on its header and on whether its values parse in a chemistry toolkit, not on a character pattern alone. (Meridian's view) Keep SMILES as case-sensitive text through every step of a pipeline, and if a line from a .smi file holds more than one field, split it at the first whitespace before parsing. (Meridian's view)

### Where you'll meet it

ChEMBL's chembl\_37 release publishes chembl\_37\_chemreps.txt.gz, a tab-separated file containing SMILES, InChI and InChI Key representations of its compounds.[[5]](https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_37/README) ChEMBL's COMPOUND\_STRUCTURES table holds a CANONICAL\_SMILES column, generated using RDKit.[[6]](https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_37/schema_documentation.txt) ChEMBL's schema documentation declares CANONICAL\_SMILES as VARCHAR2(4000).[[6]](https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_37/schema_documentation.txt)

## Sources

1. [Daylight Theory: SMILES](https://www.daylight.com/dayhtml/doc/theory/theory.smiles.html) — documentation
2. [Simplified Molecular Input Line Entry System - Wikipedia](https://en.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_System) — secondary source
3. [OpenSMILES specification](http://opensmiles.org/opensmiles.html) — standard
4. [Getting Started with the RDKit in Python — The RDKit 2026.09.1 documentation](https://www.rdkit.org/docs/GettingStartedInPython.html) — documentation
5. [ChEMBL FTP Directory](https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_37/README) — dataset
6. [chembl\_37 Schema Documentation](https://ftp.ebi.ac.uk/pub/databases/chembl/ChEMBLdb/releases/chembl_37/schema_documentation.txt) — dataset
