Molécules LaTeX (chemfig) à partir du format SMILES

Générer des formules chimiques complexes pour LaTeX, à partir de bases de données web.

Le format SMILES permet de représenter une structure chimique sous forme d’un chaîne de caractères.

Voici par exemple la structure de la caféine :

CN1C=NC2=C1C(=O)N(C(=O)N2C)C

Il existe plusieurs logiciels et outils en ligne capables d’interpréter de telles séquences pour générer une image comme celle-ci :

Une page wikipedia explique le principe de la syntaxe SMILES :

Par Original by Fdardel, slight edit by DMacks — Travail personnel, CC BY-SA 3.0, https://commons.wikimedia.org/w/index.php?curid=2556784

Quelques pages web utiles pour rechercher une structure SMILES à partir du nom de la molécule, et de générer une image :

Comment utiliser ces chaînes de caractère SMILES pour insérer une molécule dans un document LaTeX ?

Le package LaTeX le plus répandu pour éditer les molécules organiques est le package chemfig. D’ailleurs, il a été conçu par le français Christian Tellechea, et par conséquent la documentation du package existe en français !

Je suis tombé sur le package pour Python appelé mol2chemfig. Si Python est installé sur votre poste, ce package peut convertir une chaîne SMILES en code chemfig :

installation du package mol2chemfig :

pip install -U mol2chemfigPy3

Après installation, un exemple de commande à exécuter dans un terminal :

mol2chemfig -zw -i direct "C1=CC=C(C=C1)O"

et le résultat fourni en sortie :

\chemfig{OH-[:180,,1]=_[:240]-[:180]=_[:120]-[:60]=_(-[:300])}

Dans un fichier LaTeX, ce code génère l’image suivante :

Les sites web fournissant les formats SMILES proposent parfois plusieurs structures différentes pour une même molécule ; il est alors préférable de sélectionner la structure recherchée, plutôt que de personnaliser le tracé avec mol2chemfig, dont les options sont plus limitées.

Le code chemfig obtenu est assez facile à lire et à modifier, si on est habitué à l’utiliser. On peut donc personnaliser le code dans le fichier LaTeX.

Soyez le premier à commenter

Laisser un commentaire