Une formule dĂ©veloppĂ©e peut ĂŞtre exprimĂ©e sous une forme simple (en apparence) basĂ©e sur une chaine de caractères. Les lettres correspondant aux atomes sont ordonnancĂ©es d’une manière particulière pour conserver l’information topologique dĂ©finissant la formule dĂ©veloppĂ©e de la molĂ©cule. Il s’agit d’une manière d’Ă©crire un graphe qui peut ĂŞtre ramifiĂ© et comporter des cycles. Dans cette catĂ©gorie de formats on trouve SMILES et InChI. Les autres formats spĂ©cifient des coordonnĂ©es atomiques (les nĹ“uds du graphe) et une table de connexion explicite entre chaque nĹ“uds (atomes).
Publication initiale sur buildblog.buidez.net (2013) – Article mis Ă jour en Mai 2026.
Navigation dans le guide
Guide [ Formats moléculaires (chimie) ]
1. Un cas concret
En SMILES, le cyclohexane va s’Ă©crire ‘C1CCCCC1’ et le benzène ‘c1ccccc1’ dans les deux cas on reconnait un cycle a 6 carbones avec 2 carbones de connexion (C1 ou c1), l’aromaticitĂ© du benzène s’Ă©crivant avec des minuscules par rapport au cycle saturĂ© du cyclohexane. Si on a choisi de dessiner le benzène avec les doubles liaisons, la chaine SMILES sera encore diffĂ©rente: ‘C1=CC=CC=C1’.
![]() |
Prenons le cas du Triclosan, les mĂŞmes options se prĂ©senteront en fonction de l’Ă©criture de la molĂ©cule, donc du graphe qui va ĂŞtre transformĂ© en SMILES, on obtiendra les chaines suivantes.
![]() |
Nous pouvons donc produire plusieurs formes valides de SMILES, pour cette raison le SMILES gĂ©nĂ©rique est complĂ©tĂ© par un SMILES canonique (canonical SMILES) qui vise Ă reprĂ©senter la molĂ©cule sous une forme unique. L’exemple classique est celui de l’Ă©thanol CH3-CH2-OH. On peut l’Ă©crire CCO, mais aussi avec l’oxygène Ă gauche OCC , ou encore avec l’oxygène affectĂ© Ă un atome de carbone : C(O)C … la forme canonique sera Ă©crite CCO. Sous sa forme gĂ©nĂ©rique, SMILES ne prends pas en compte la chiralitĂ©, isotopes, isomères … il existe donc des extensions (ex: isomeric SMILES). Selon l’algorithme utilisĂ© on peut aussi trouver des variantes (OpenEye, CACTUS) incluant ou non la stĂ©rĂ©ochimie …
2. SMILES et tables de molécules
SMILES Ă©tant une chaine de caractères, le format va très bien entrer dans une table de donnĂ©es, par exemple une table CSVM. L’exemple (F. Rodriguez, 2012) suivant montre une table de 80 molĂ©cules (P. Hoffmann & coll., 2007, 2009) :
![]() |
Nous constatons la prĂ©sence de quelques descripteurs (ident, lab, vrac, rprod, rlab) qui sont destinĂ©s Ă identifier les molĂ©cules dans une version assez ancienne du format de la chimiothèque nationale. La colonne smi contient la molĂ©cule au format SMILES. La colonne molfile contient un pointeur (le nom du fichier correspondant) vers une structure de la mĂŞme molĂ©cule mais au format MDL Mol. Nous pouvons ainsi combiner (ex: pour des raisons de redondance) plusieurs formats dans une mĂŞme table. L’implĂ©mentation de la table au format CSVM donnera:
![]() |
Dans ce cas nous utilisons les tabulations (flèches rouges) comme caractères dĂ©limiteurs pour le bloc de donnĂ©es (haut) et mĂ©tadonnĂ©es (bas). Si le fichier est transformĂ© en table SDF, il sera possible d’obtenir l’affichage suivant sous Chemaxon Marvin View:
![]() |
Coté informatique
Les toolkits OpenBabel/Pybel et Rdkit permettent de manipuler les SMILES. Lorsque les molĂ©cules sont incluses dans des tables, nous avons gĂ©nĂ©ralement une ligne par molĂ©cule, une colonne pour la structure (formule dĂ©veloppĂ©e). Les autres colonnes correspondent souvent Ă des propriĂ©tĂ©s et des descripteurs pour chaque molĂ©cule. Lorsqu’on utilise des formats pivots comme CSVM qui peuvent embarquer des molĂ©cules au format texte SMILES mais aussi MLD Mol, il est possible de prendre en compte toute la table et de l’exporter en CSV ou en SDF. ForcĂ©ment, les paquetages buildez.chem.pybel_interface et buildez.chem.rdkit_interface comportent les fonctions pour rĂ©aliser ce type de conversion. Par exemple les fonctions (du module pybel_interface.pybel_csvm) pybel_extended_csvmfile2mols (opère sur un fichier CSVM) et pybel_extended_csvm2mols (opère sur un objet csvm_ptr) transforment la table de molĂ©cules en une liste (Python) d’objets molĂ©cules (dans le cas prĂ©cis Pybel.Molecule) qui incluent des attributs (titre et contenu des autres colonnes). Cette liste pourra ĂŞtre transformĂ©e en fichier SDF par la fonction pybel_mols2sdf (du module pybel_interface.pybel_sdf. La fonction pybel_csvm2sdf du module pybel_sdf rĂ©alise Ă©galement directement la conversion CSVM vers SDF sous rĂ©serve que le nom de la colonne incluant les structures molĂ©culaires soit connu et comprĂ©hensible (mdl, smi, structure …) par la fonction. D’autres fonctions de pybel_interface (ou rdkit_interface) permettent Ă©galement de sauver les molĂ©cules de la table dans des fichiers individuels (par exemple MDL Mol, SMI) ou des images PNG.
3. Fichiers SMILES multi-moléculaires
En principe SMILES est multi-molĂ©culaire mais la manière dont les logiciels vont traiter un fichier peut ĂŞtre diffĂ©rente. Dans un premier temps nous allons prendre un fichier CSV qui reprends les 13 molĂ©cules prĂ©cĂ©dentes et possède l’extension .smiles ou l’extension .smi :
![]() |
Les chaines SMILES sont sĂ©parĂ©es par un caractère de fin de ligne et embarquent des champs d’information, on reconnait le contenu des colonnes ident et vrac de la table prĂ©cĂ©dente. Nous allons charger ces molĂ©cules avec diffĂ©rents logiciels, mais d’abord prĂ©cisons comment nous les chargeons. Nous utilisons la mĂ©thode standard, soit: la cascade de menus File > Open. En effet selon la manière dont on fait l’opĂ©ration (‘drag and drop’, ‘double click’ sur le fichier …) les rĂ©sultats pourront ĂŞtre diffĂ©rents (par exemple on ne chargera que la première molĂ©cule de la bibliothèque SMILES).
Avec les extensions .smiles ou .smi, Marvin Sketch et Marvin View reconnaissent le fichier. Marvin View va charger l’ensemble de la collection molĂ©culaire et Marvin Sketch va demander quelle molĂ©cule charger. Marvin Sketch considère par contre qu’il ne s’agit plus d’une table mais d’une planche. Nous le vĂ©rifions bien en introduisant l’intervalle ‘1-14’ correspondant Ă l’ensemble des molĂ©cules: toutes les molĂ©cules sont dans la planche. Chaque molĂ©cule de la planche est Ă©ditable individuellement, mais Ă la sauvegarde dans un format multi-molĂ©culaire, toutes les molĂ©cules seront fusionnĂ©es sous la forme de n fragments (possiblement consĂ©cutifs) de la mĂŞme molĂ©cule, donc on perds une partie de l’information immĂ©diatement accessible dans la table.
Nous remarquerons aussi que MarvinSketch propose 1-14 molĂ©cules au lieu de 13 molĂ©cules. En fait c’est la dernière ligne (vide) du bloc de donnĂ©es qui est prise en compte car le caractère de fin de ligne est utilisĂ© en tant que sĂ©parateur, on le voit Ă©galement dans le cas de Marvin View, la molĂ©cule 14 n’a pas de formule dĂ©veloppĂ©e.
![]() |
![]() |
![]() |
| MarvinView | MarvinSketch | MarvinSketch |
La première colonne du fichier doit impĂ©rativement correspondre aux chaines SMILES, sinon dès la première molĂ©cule, il n’y aura pas de reconnaissance des formules. Nous constatons aussi que les valeurs des colonnes sont conservĂ©es mais pas le titre des colonnes. Comme il n’est jamais très bon sur le long terme de perdre des mĂ©tadonnĂ©es, on peut tout Ă fait utiliser la version CSVM (en ajoutant une extension .smiles ou .smi) Ă la place du fichier CSV:
![]() |
Le fichier sera interprĂ©tĂ© de la mĂŞme manière que dans le cas prĂ©cĂ©dent, d’ailleurs les images affichĂ©es prĂ©cĂ©demment correspondent au cas CSVM. Mais dans ce cas, sur du long terme, il n’y a aucune information perdue, un humain ou un programme peuvent en ajouter (manuellement, automatiquement) et le fichier peut ĂŞtre indexĂ© (grâce aux mĂ©tadonnĂ©es). Si nous nous intĂ©ressons Ă un autre logiciel (il y en a peu) capable d’importer ces collections molĂ©culaires, nous pouvons essayer la mĂŞme manipulation avec Discovery Studio (Accelrys, Biovia, Dassaut 3DS). Dans ce cas il y aura un diffĂ©rentiel en fonction de l’extension (.smi ou .smiles) du fichier CSV ou CSVM. Avec l’extension .smiles , le fichier sera lu comme du texte, avec l’extension .smi , le fichier sera interprĂ©tĂ©:
![]() |
![]() |
| .smiles | .smi |
De la mĂŞme manière qu’avec Marvin Sketch ou Marvin View, la première colonne doit correspondre aux chaines SMILES. Les champs sont lus mais Ă©galement plus ou moins bien interprĂ©tĂ©s, par exemple la colonne vrac se retrouve associĂ©e Ă la colonne ident dans les noms de molĂ©cules. Clairement SDF conserve l’avantage dans le cas de fichiers multimolĂ©culaires incluant des donnĂ©es.
4. Fichiers SMILES incluant des groupes moléculaires
Le fait d’utiliser un . en tant que caractère sĂ©parateur produit un groupe. Par exemple si nous exprimons les chaines SMILES de l’exemple prĂ©cĂ©dent sous cette forme, Marvin View et Marvin Sketch les chargeront sous la forme de fragments d’une mĂŞme molĂ©cule, soit une planche (non Ă©ditable pour Marvin View) Ă la place d’une table:
![]() |
![]() |
| Fichier avec 1 groupe | MarvinView |
Nous pouvons exploiter ce rĂ©sultat pour dĂ©finir des groupes en combinant ‘.‘ et caractères de fin de ligne.
![]() |
Dans ce cas on va obtenir une planche classique sous Marvin Sketch (pas de groupes) et des groupes correspondant à la combinaison du fichier CSV ou CSVM sous Marvin View, par exemple avec le fichier précédent:
![]() |
Nous constatons la prĂ©sence d’un caractère # dans une ligne du bloc de donnĂ©es du fichier CSVM. Ce masquage de ligne est tout Ă fait compatible avec la spĂ©cification CSVM, mais il est Ă©galement compatible avec Marvin View, qui n’a pas pris cette ligne. En effet on constate sur l’affichage de la table qu’il n’y a plus que 5 groupes Ă la place de 6 groupes et qui explique le fait que le bloc de mĂ©tadonnĂ©es (#TITLE, #HEADER …) de CSVM soit ‘digĂ©rĂ©’ sans problèmes par Marvin View.
5. Chaines SMARTS
Quand on parle de SMILES on parle Ă©galement de SMARTS (Smiles Arbitrary Target Specification). Il s’agit d’un système d’interrogation dĂ©rivĂ© de SMILES et disposant d’une syntaxe Ă©tendue. Si on dispose d’un outil adĂ©quat on pourra utiliser une chaine SMARTS pour rĂ©aliser des requĂŞtes dans une sĂ©rie de chaines SMILES ou … un fichier SDF. Un exemple très simple pour fixer les idĂ©es: La commande suivante (OpenBabel en ligne de commande) porte sur 4 molĂ©cules (aspirine, acide salicylique, triclosan, Ă©thanol) au format SMILES et recherche avec la chaine c1ccccc1 (option -s) la prĂ©sence de noyaux aromatiques:
|
1 |
obabel -:"O=C(O)c1ccccc1OC(=O)C aspirin" -:"Oc1ccccc1C(=O)O salicylic acid" -:"OC1=C(OC2=CC=C(Cl)C=C2Cl)C=CC(Cl)=C1 triclosan" -:"CCO ethanol" -ocan -s "c1ccccc1" |
Ce qui nous donnera seulement 3 molĂ©cules comme rĂ©sultat, après conversion en canonical SMILES (option -ocan) puisque la quatrième molĂ©cule correspond Ă de l’Ă©thanol :
|
1 2 3 4 |
CC(=O)Oc1ccccc1C(=O)O aspirin OC(=O)c1ccccc1O salicylic acid Clc1ccc(c(c1)O)Oc1ccc(cc1Cl)Cl triclosan 3 molecules converted |
PoussĂ© assez loin SMARTS permet beaucoup plus que des recherches par structures ou sous-structures. Il permet d’ajouter des descripteurs ou d’en enlever dans des fichiers SDF. L’article [ Pybel – Hack the SD file ] sur le blog de Noel O’Boyle donne une idĂ©e en calculant les descripteurs HBD et HBD (par exemple P.D. Leeson & S.A. St-Gallay, 2011) des RO5 (Rule of Five) de Lipinski.
Comme SMARTS est un format texte, plusieurs opĂ©rations de filtrage ou de requĂŞtes peuvent ĂŞtre codĂ©es … dans un fichier CSVM, Ă©ventuellement avec des donnĂ©es supplĂ©mentaires (Ă©tiquettes, commentaires, annotations …) dans le bloc de donnĂ©es. Par exemple, accoler des Ă©tiquettes a des chaines SMARTS permettrait de les intĂ©grer en tant que variables dans des opĂ©rations conditionnelles et de diminuer la complexitĂ© (donc augmenter la lisibilitĂ©) des chaines SMARTS et pour rĂ©aliser des requĂŞtes très complexes.
Plus sur SMARTS
- Smiles arbitrary target specification (SMARTS) [ http://en.wikipedia.org/wiki/Smiles_arbitrary_target_specification ].
- SMARTS – A Language for Describing Molecular Patterns [ http://www.daylight.com/dayhtml/doc/theory/theory.smarts.html ].
- SMARTS Tutorial [ http://www.daylight.com/dayhtml_tutorials/languages/smarts/ ].
- Lipinski’s rule of five [ http://en.wikipedia.org/wiki/Lipinski%27s_Rule_of_Five ].
- The influence of the ‘organizational factor’ on compound quality in drug discovery. P.D. Leeson, S.A. St-Gallay. Nature Reviews Drug Discovery (2011) 10, 749-765.
6. Conclusion
Cet article montre quelques subtilitĂ©s de SMILES, peu Ă©voquĂ©es en gĂ©nĂ©ral dans la littĂ©rature, simplement car beaucoup de collègues se focalisent sur les molĂ©cules uniques ou les bases de donnĂ©es, mais peu d’entre eux se focalisent sur les collections de donnĂ©es. SMILES malgrĂ© ses dĂ©fauts, en particulier la diversitĂ© des graphes possibles, reste une valeur intĂ©ressante, car le format reste simple. AssociĂ© avec SMARTS, SMILES constitue un Ă©cosystème riche et peut expliquer pourquoi le format n’est pas encore dĂ©laissĂ© (par exemple au profit de dĂ©rivĂ©s d’InChI). A noter qu’il existe aussi un langage de spĂ©cification de transformations molĂ©culaires: SMIRKS.
Plus sur SMILES
- Simplified Molecular Input Line Entry Specification (SMILES) [ http://fr.wikipedia.org/wiki/Simplified_Molecular_Input_Line_Entry_Specification ].
- Simplified Molecular Input Line Entry Specification (SMILES) [ http://en.wikipedia.org/wiki/Simplified_molecular-input_line-entry_system ].
- SMILES 2. Algorithm for Generation of Unique SMILES Notation. D. Weininger & coll. (1989) J. Chem. Inf. Comput. Sci. 29, 97-101. DOI [ 10.1021/ci00062a008 ].
- A New Effective Algorithm for the Unambiguous Identification of the Stereochemical Characteristics of Compounds During Their Registration in Databases ; T. Cieplak and J.L. Wisniewski (2001) Molecules 6, 915-926. DOI [Â 10.3390/61100915 ].
- SMILES – A Simplified Chemical Language [ http://www.daylight.com/dayhtml/doc/theory/theory.smiles.html ].
- SMIRKS – A Reaction Transform Language [ http://www.daylight.com/dayhtml/doc/theory/theory.smirks.html ].
- Versatile Cyclization of Aminoanilino Lactones: Access to Benzotriazoles and Condensed Benzodiazepin-2-thione. L. Hammal & coll. (2007) Synthetic Commun. 37:3, 501-511.
- Synthesis of Imidazoles from Ketimines Using Tosylmethyl Isocyanide (TosMIC) Catalyzed by Bismuth Triflate. M .Fodili & coll. (2009) Lett. Org. Chem. 6, 354-358.
- Technical report: CSVM Ecosystem. F. Rodriguez (2012) [ http://arxiv.org/abs/1209.2946 ].
- ChemAxon Marvin : consulter la page ressources [ Catalogues : logiciels tiers ] sur ce blog.
- Accelrys Discovery Studio [ Wikipedia_EN ] – https://en.wikipedia.org/wiki/Discovery_Studio ].















