Formats moléculaires: SMILES

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:

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 :

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

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
Retour en haut