Un écosystème de formats chimiques

Il existe toute une variété de formats dédiés aux petites molécules organiques, avec différentes finalités : support de dessins (planches, réactions, publications), support pour des processus chemo-informatiques (calculs, collections moléculaires, bases de données), support pour des processus à l’interface avec d’autres disciplines (biochimie, biologie structurale, drug design). Comme la réalisation d’un document précis et exhaustif relève du livre et non de quelques articles dans un blog, ce guide portera sur les formats et quelques cas concrets que l’on rencontre usuellement dans un laboratoire orienté vers la chimie organique et médicinale.

Publication initiale sur buildblog.buidez.net (2014) – Article mis à jour en Janvier 2025.

Navigation dans le guide

Guide [ Formats moléculaires (chimie) ]




1. Une jungle

Pour avoir une idée de la variété et du nombre de formats moléculaires, l’image suivante résume les formats pris en charge par OpenBabel  (un outil de conversion) avec un classement par domaines (titres en gras):

Pour plus d’information consulter la page [ https://openbabel.org/docs/FileFormats/Overview.html ] dans le guide d’OpenBabel. Il va de soi que cette image ne prends pas en compte l’ensemble des formats existants, pour simplifier j’en ai omis pour certaines sections, et il en manque (par exemple le format DSV de Discovery Studio). Tous ne portent pas sur des structures de molécules (2D ou 3D) mais peuvent en inclure, par exemple dans le paramétrage de calculs. Dans ce guide il s’agira de parler essentiellement des formats pour la chemo-informatique, en rouge. Le format PDB (Protein Data Bank) est de son coté intensivement traité dans les articles liés au projet buildez.pdb.

2. Principes généraux

Nous allons encore une fois utiliser comme fil rouge le Triclosan. Il s’agit d’une molécule qui est utilisée au laboratoire en tant que référence dans la conception d’anti-tuberculeux (Kuo & coll., 2003) et qui nous a servi de base de conception à plusieurs familles de composés, par exemple en remplaçant un des deux cycles par un cycle triazole (click chemistry) et en substituant les deux cycles (Menendez & coll., 2011, 2012, 2013). Cette molécule inhibe la protéine InhA qui est une enzyme impliquée dans la biosynthèse des acides mycoliques chez des Mycobactéries. Le Triclosan possède d’autres propriétés antibactériennes ou antifongiques, et se retrouve dans beaucoup de produits ou d’usages, mais pose également des problèmes toxicologiques (perturbateur endocrinien).

Selon le format, différents cas de figures sont envisageables :

  • Des molécules en 2D (formule développée) ou en 3D (coordonnées tridimensionnelles).
  • Une édition en 2D (à plat) ou directement en 3D.
  • Des coordonnées atomiques cartésiennes,  des coordonnées internes, ou pas de coordonnées (ex: SMILES, InChI).
  • Une seule ou plusieurs molécules par fichier.
  • La possibilité ou non d’annotation: métadonnées, descripteurs, attributs …
  • Des spécifications : charges, stéréochimie, isomères …

Nous constaterons que la plupart du temps ce sont les coordonnées atomiques (cartésiennes: valeurs x,y,z pour chaque atome) et la topologie sous la forme d’une table de connexion (entre atomes) qui sont le support du format. Qu’il faudra compléter par le type de liaisons ou d’atomes (hybridation), puis les annotations ou spécifications. S’agissant d’un principe minimal pour décrire une molécule en 2D (ou 3D), la plupart des formats appliquent ce paradigme avec différentes syntaxes. Certains formats spécifient parfois coordonnées et topologie en fichiers indépendants. Il existe également des formats qui ne prennent pas en compte les coordonnées cartésiennes mais des longueurs de liaisons et des angles (liaisons, dièdres) pour décrire les molécules (coordonnées internes, matrices-Z), ce dernier type de format n’étant utilisé qu’en chimie calculatoire.

3. Des outils de dessin

Dans ce guide nous allons aussi jouer avec toute une variété d’outils pour dessiner des molécules en 2D ou 3D. Chaque logiciel étant plus ou moins capable d’importer ou d’exporter tel ou tel format. Il existe donc toute une variété de possibilités pour dessiner des molécules, certains logiciels pouvant faire beaucoup plus (calculs de descripteurs, modélisation, calculs de spectres, recherche dans des bases de données, édition de planches, etc). Des outils sont disponibles sous plusieurs OS (ex: OpenBabel), d’autres sont restreints à un type d’OS particulier. Comme nous utilisons majoritairement Microsoft Windows ou Linux Ubuntu dans nos processus, je me limite (sans être exhaustif) aux outils qui fonctionnent sous un de ces OS et qu’il est possible d’utiliser gratuitement.

Sachant que la plupart des chimistes organiciens utilisent ChemDraw (Cambridge Soft/Perkin Elmer) ou ChemWindows (Biorad/Wyley) qui sont commerciaux même pour les universitaires. Les codes vivent et meurent, il y a beaucoup d’outils qui ont disparu, certains sont vendus et revendus (par exemple ISIS/Draw) au fur et à mesure de la vie des compagnies qui les éditent. L’article Wikipedia [ https://en.wikipedia.org/wiki/Molecule_editor ] est plus exhaustif que ma liste.
Il s’agit ici d’outils de dessin 2D (sketchers) destinés à des formules développées, même si dans certains cas ils conservent les coordonnées tridimensionnelles, il existe aussi des outils capables de dessiner en 3D (Discovery Studio, Avogado).

4. Formats et interopérabilité

Nous pouvons utiliser des outils de dessin qui importent et exportent les molécules, mais il existe aussi des outils spécifiques de conversion. Par exemple OpenBabel qui peut s’utiliser en ligne de commande ou via une interface graphique (OpenBabel GUI) :

A gauche nous avons le Triclosan au format MDL Mol, et à droite nous avons la molécule convertie au format PDB. Ce qui est important a remarquer, c’est que au delà du format source (à gauche) vers le format destination (à droite), il existe toute une série d’options au centre.
Ce qui veut dire que convertir un format en un autre, ce n’est pas simplement réécrire des atomes et des coordonnées, il y a aussi des choix et des adaptations en fonction de la molécule et de l’utilisation que l’on faire du fichier après conversion. Par exemple pour certains calculs il faut passer de la molécule simplifiée (formule développée en 2D) à une molécule incluant explicitement tous les hydrogènes et optimisée en 3D.

Enfin, il ne faut pas oublier nos bon vieux éditeurs de texte ASCII, qui permettent parfois de nous sortir de situations difficiles en modifiant directement le fichier (coordonnées, topologies, nom d’atomes, etc). Dans ce cas il faudra envisager un éditeur ASCII/Unicode qui gère des fichiers sous différents OS et qui possède un mode colonne pour les sélections, recherches, remplacements. J’utilise souvent Scintilla/SciTE, un outil libre, simple et robuste, facile à prendre en main et qui me sert aussi pour coder.

L’interopérabilité en matière d’informatique liée à la chimie pose de vraies questions concernant des standards ouverts et les outils logiciels ou de bases de données. A titre d’illustration, l’image suivante provient d’une publication du consortium Blue Obelisk (O’Boyle & coll., 2011):

Nous constatons sur ce graphe qu’il n’y a pas que des programmes utilisateurs, il y a aussi des bibliothèques logicielles écrites en différents langages. La plupart du temps il s’agit d’API Java ou Python sur une base C++. On peut citer JOELib, CDK, RDKit, Cinfony, OpenBabel …

Interopérabilité, coté codes

Par exemple, OpenBabel expose ses objets/méthodes au travers de deux couches Python (openbabel et pybel) et permet de programmer la beaucoup de fonctionnalités fournies par OpenBabel GUI. Un autre outil comme Rdkit aura des fonctions en commun (ex: le calcul de masses moléculaires) ou des fonctions supplémentaires, mais au travers d’objets/méthodes et d’une API différente.
Pour utiliser ces toolkits dans la durée, une option est de passer par des paquetages d’interface, par exemple buildez.chem inclue pybel_interface et rdkit_interface. Ces paquetages d’interface sont conçus pour présenter 80% de fonctions qui sont similaires. Par exemple les fonctions pybel_mol2values (module pybel_interface.pybel_obj) et rdkit_mol2values (module rdkit_interface.rdkit_obj) font la même chose (extraient les attributs/propriétés d’une molécule) avec les mêmes arguments. Seul l’objet ‘molécule’ sous-jacent est différent (Pybel.Molecule ou Rdkit molecule) sans changer les arguments (ex: self)  des fonctions. Ce qui permet de minimiser les temps de programmation et de passer d’un toolkit chimique à l’autre en fonction des problématiques ou des évolutions des codes.
On peut multiplier cette approche, et l’étendre à d’autre toolkits qui utilisent un objet molécule associé à des descripteurs statiques (comme les attributs de OpenBabel/Pybel ou les propriétés de Rdkit) ou dynamiques. Les toolkits chimiques ont souvent des objets (atomes, liaisons, molécules …) et méthodes similaires, à nous d’en tirer partie en termes d’interopérabilité.

5. De la stratégie

La photo suivante montre une photo du tableau blanc de notre coin de laboratoire. Il s’agit d’un schéma fonctionnel concernant des transformations de molécules en différents formats. L’idée est d’optimiser la voie qui est la plus robuste, la plus courte, et la plus facile à être prise en compte par le(la) chimiste qui va éditer sa molécule, puis la faire transiter vers l’outil de calcul, puis exploiter les résultats. Les performances sont importances, mais le meilleur système de la planète ne sert à rien s’il n’est pas pratique à utiliser.

C’est à ce niveau qu’un processus d’intégration systèmes et données peut intervenir. Disposant de jeux de données test, des outils et sachant s’en servir, nous pouvons faire ce travail d’évaluation, et dans certains cas ajouter du soft maison pour compléter si nécessaire. Dans ce cadre, une activité développement orientée (vers des bibliothèques ou des composants logiciels réutilisables) est essentielle.

Dans le cas présent, ce qui s’est avéré le plus robuste est l’édition des molécules 2D sous Marvin Sketch, transformation/optimisation 3D sous Discovery Studio avec vérification interactive des hybridations, liaisons …. qui résultent de cette opération. Puis transfert de Windows à un système Linux, vers un logiciel qui sert d’interface à Gaussian, avec le choix de Gabedit capable d’importer un fichier MDL Mol et des coordonnées cartésiennes, et que l’on peut également utiliser sous Windows. Donc une chaine utilisable rapidement et en toute autonomie par (une) chimiste. Une fois le choix validé, la plateforme de calcul (hardware) est implémentée sous la forme d’une appliance Windows ou Linux, bornée par un firewall compagnon, pour garantir une intégration transparente et sécurisée dans un réseau de laboratoire.

Nous sommes donc partis des données, de ce que l’on pouvait en faire, comment on pouvait les connecter à une problématique chimique, à son implémentation (outils de calcul), aux opérateurs et à leurs compétences.

6. Conclusion

Discuter de formats de données signifie t’il que nous serions dans une sorte de cuisine chemo-informatique inintéressante par rapport aux questions de fond ? Qui va chercher les données au port, sans s’occuper de la pêche, ne voit jamais les problèmes (proverbe perso). Dans les articles de ce guide je montrerais ce qui peut se cacher dans les détails et peut nous ennuyer au quotidien. En fait nous sommes au cœur de l’action, j’ai souvent vu des experts bloqués dans leur processus de recherche ou de calculs, simplement par le fait qu’à un moment donné, ils ne maitrisaient pas la chaîne de production coté données.

Liens et lectures
Retour en haut