LSD 3.5.2

Dernière modification: 26 avril 2022.

Table des matières

Passer des spectres aux données

Le but de LSD est d'aider l'utilisateur à proposer une ou plusieurs structures moléculaires à partir de données issues très majoritairement de la RMN 2D. Les spectres qui doivent nécessairement être enregistrés sont les spectres HMQC (ou HSQC), COSY et HMBC. Sans ces trois spectres, il n'est pas envisageable de vouloir utiliser LSD. LSD ne contient aucune base de données de déplacement chimique. Il n'y a par ailleurs aucun moyen de lui indiquer la liste des déplacements chimiques de la molécule étudiée, pour quel type de noyau que ce soit. LSD utilise les informations de déplacement chimique et de couplage que l'utilisateur voudra bien lui indiquer, que ce soit pour définir l'hybridation des atomes ou pour imposer à un atome d'avoir un nombre de voisins donné dans une liste d'atomes déterminée.

Le codage des données de RMN pour en faire un fichier texte traitable par LSD est un exercice un peu déroutant pour le débutant. Les paragraphes suivants essaieront de vous donner une méthode pour y arriver. Il n'est pas inutile de regarder dans le dossier Data les exemples qui s'y trouvent. Un fichier de données pour LSD est constitué de commandes ayant un plusieurs paramètres. Les commandes les plus utiles seront d'abord introduites, sachant qu'une description exhaustive du langage de commande est fournie au paragraphe Structure des fichiers données. L'interface de type texte peut sembler un peu démodée, mais il est parfois plus simple d'éditer un texte que de se perdre dans un dédale de menus et sous-menus dont les fonctions ne sont pas nécessairement explicites.

La première étape à franchir pour déterminer une structure inconnue consiste à faire l'hypothèse d'une formule brute et à déterminer le statut de tous les atomes, hydrogènes exceptés. Le statut est constitué d'un numéro, d'un symbole chimique, d'une hybridation (sp, sp2 ou sp3), d'un nombre d'hydrogènes portés par l'atome et d'une charge. Définir un statut est contraignant pour l'utilisateur. Il n'est pas toujours possible a priori de définir le statut des hétéroatomes, surtout lorsqu'il y en a de natures chimiques différentes. Même pour les carbones, le déplacement chimique ne suffit pas toujours pour déduire de manière non-ambigüe l'hybridation. Il faut alors créer plusieurs jeux de données et les essayer tous. Cette nécessité devrait être levée au moins partiellement dans un proche avenir, mais il faut faire avec pour l'instant.

La numérotation des atomes peut se faire de manière arbitraire. Une manière commode de procéder consiste par exemple à numéroter les carbones à partir de 1 par ordre décroissant de déplacement chimique du 13C, puis de donner les numéros suivants aux autres atomes (azotes, oxygènes, ...). Les numéros des carbones issus du spectre 1D seront reportés sur les projections des spectres 2D HMQC et HMBC. Il est possible d'avoir un autre type d'atome (X) à condition que sa valence soit définie par l'utilisateur.

La commande qui définit le statut s'appelle MULT (les majuscules sont importantes) et est suivie du numéro d'atome, de son symbole chimique, de 1, 2 ou 3 pour l'hybridation (sp, sp2 ou sp3), de la multiplicité, c'est-à-dire du nombre d'hydrogènes portés et de la charge (facultative). Ainsi, MULT 1 C 2 0 indique que l'atome 1 est un carbone (C) sp2 (2) quaternaire (0). Il y aura dans le fichier de données autant de lignes commençant par MULT que d'atomes dans la molécule, atomes d'hydrogène exceptés.

L'étape suivante consiste à numéroter sur les spectres les atomes d'hydrogène. Là encore la numérotation est arbitraire, mais il est préférable de donner à un hydrogène le même numéro que celui du carbone auquel il est lié. Le spectre HMQC (ou HSQC) sert à établir cette correspondance. Deux hydrogènes inéquivalents d'un groupe méthylène auront le même numéro. Les numéros ainsi attribués seront reportés sur les spectres 2D COSY et HMBC. Une corrélation dans un spectre 2D est caractérisée par le type du spectre, le numéro d'atome dans la dimension 1 (c'est-à-dire du carbone pour HMQC, HSQC et HMBC) puis du numéro d'atome en dimension 2 (toujours un numéro d'hydrogène). Ainsi HMQC 4 4 indique que le carbone 4 et l'hydrogène 4 sont liés ensemble. Les commandes HMQC et HSQC sont équivalentes. On code de manière similaire les commandes HMBC et COSY.

Toute liaison évidente à établir doit l'être par une commande BOND dont les deux paramètres sont les numéros des deux atomes à lier. Si le carbone 1 est celui d'une cétone et qu'un oxygène 22 a été déclaré sp2, il est possible d'établir dès le début une liaison entre 1 et 22 par la commande BOND 1 22.

En théorie et sauf exceptions, l'ordre des commandes dans un fichier n'est pas imposé. Le texte qui suit la commande EXIT est ignoré. En plus des commandes qui décrivent le problème, il en existe d'autres pour le contrôle de l'exécution. Il est préférable de les regrouper en début de fichier. Après elles, on trouve les commandes MULT, HMQC, COSY, HMBC et BOND. Cela forme le contenu minimum d'un fichier de données pour LSD.

Une partie moins évidente dans l'écriture de fichiers pour LSD est la définition de propriétés et des listes associées. Une propriété d'atome (commande PROP) est l'indication pour un atome ou une liste d'atomes d'un nombre (supérieur ou égal à 1) de voisins qui doivent appartenir à une autre liste d'atomes. On peut aussi indiquer le nombre 0, qui signifie alors "tous les voisins". Par exemple, les carbones 8, 9 et 10 ont un déplacement chimique vers 15 ppm et portent les protons 8, 9 et 10 de trois méthyles singulets aux environs de 1 ppm. Les carbones 8, 9 et 10 sont très probablement liés à des carbones quaternaires. Pour coder cela avec LSD, il faut définir deux listes : celle des atomes 8, 9 et 10 et celle des carbones quaternaires. Une liste d'atome est caractérisée par son numéro et par son contenu. Le contenu est définissable soit de manière explicite (en donnant les numéros de tous les atomes de la liste) soit à partir du statut des atomes. Il est aussi possible de combiner des listes entre elles par les opérations de la théorie des ensembles. Pour revenir à l'exemple, LIST L1 8 9 10 définit la liste 1 et y met les numéros 8, 9 et 10. QUAT L2 définit la liste 2 et y met tous les carbones quaternaires. Ceci étant fait, la restriction sur les atomes 8, 9 et 10 qui consiste à imposer à tous leurs voisins d'être quaternaires s'écrit PROP L1 0 L2. On aurait pu aussi écrire PROP L1 1 L2 sachant qu'un carbone de groupe méthyle ne possède toujours qu'un seul voisin. Les commandes de définition de listes et de propriétés sont traitées dans l'ordre où elles apparaissent dans le fichier de données. En changer l'ordre peut en changer la signification.

Un tentation fréquente consiste à vouloir sur-interpréter les spectres, c'est-à-dire de leur faire dire ce qu'ils ne disent pas. Introduire des propriétés fausses ou contradictoires conduit LSD à ne pas fournir de solutions et à produire un message qui indique le niveau de recherche le plus profond atteint par LSD au cours de sa recherche (le si détestable message "max stack level: "). De la même manière, introduire des corrélations nJ avec n supérieur à 3 dans une commande HMBC ou COSY conduira à l'échec de LSD, sauf incation contaire (voir ci aprè). Il veut mieux dans un premier temps mettre les commandes relatives aux corrélations COSY et HMBC de faible intensité en tant que commentaires, c'est-à-dire en les faisant précéder par un point-virgule. Si le nombre des solutions produites est trop grand, il faut alors tenter de le diminuer en rajoutant des correlations ou des propriétés aux atomes.

Nouveau avec la version 3.1.0 : élimination des corrélations HMBC invalides.
L'analyse d'une corrélation HMBC peut ne conduire à aucune solution pour deux raisons : soit la partie de la molécule qui a été construite sur la base des corrélations précédemment examinées est incompatible avec la nouvelle corrélation (cas 1), soit celle-ci est erronée (cas 2). Ceci arrive soit de manière fortuite (artefact dans le spectre HMBC, ou faute de frappe, par exemple) soit parce que la corrélation HMBC observée est issue d'un couplage à travers plus de 3 liaisons. Dans le cas 1, le mécanisme de résolution remettra en cause les choix précédents et devrait conduire à une solution si toutes les données sont correctes. Dans le cas 2, cette remise en cause sera incapable de fournir une solution. La corrélation en question peut être éliminée afin de vérifier si elle est la cause du blocage.

La commande ELIM permet de spécifier un nombre maximal de corrélations qu'il est possible d'éliminer pour obtenir au moins une solution. La commande ELIM permet aussi de spécifier le nombre maximal autorisé de liaisons entre les atomes qui interviennent dans toutes les corrélations éliminées. Cette contrainte peut être désactivé pour la détection des erreurs accidentelles.

Ce bref aperçu sur les fichiers de données de LSD permettra aux utilisateurs de prendre contact avec LSD, mais une lecture de la section Structure des fichiers de données reste indispensable.

Interpréteur de commandes

Pour traiter les informations contenues dans un fichier de données de LSD en tapant des commandes système, les utilisateurs(trices) de Linux ou de Mac doivent ouvrir une application "Terminal", qui s'appelle "Invite de commandes" sous Windows.

La syntaxe des commandes système n'est pas exactement la même sous Linux/Mac et Windows.

Les deux interpréteurs de commandes indiquent que l'utilisateur peut commencer à taper une commande en affichant une chaîne de caractères nommée "prompt".

Dans les paragraphes ci-dessous, UNIXprompt$ est le prompt affiché sous Linux/Mac et DOSprompt$ est le prompt de Windows. Les commandes qui suivent le simple prompt$ sont valides pour les deux types d'interpréteurs.

Dans les deux cas, il faut utiliser la commande cd pour que l'exécutable de LSD se trouve dans le dossier courant.

Les utilisateurs de Linux/Mac doivent avoir le dossier courant (nommé .) dans la liste des dossiers dans lesquels le Terminal recherche les exécutables. Cela peut être réalisé temporairement en tapant

UNIXprompt$ export PATH=.:$PATH

Passer des données aux structures

Un fichier de données nommé "pinene" est fourni dans le répertoire "Data" .
Son traitement par LSD est effectué par :

UNIXprompt$ cp Data/pinene .
DOSprompt$ copy Data\pinene.lsd .

UNIXprompt$ lsd pinene
DOSprompt$ lsd pinene.lsd

LSD indique qu'il a trouvé une solution.
Le fichier "pinene.sol" qui a été créé contient les informations de connectivité pour la solution au problème.
De manière générale un fichier de données abc ou abc.xyz fournit un fichier de solution nommé abc.sol ou abc.xyx.sol.
Un fichier de coordonées 2D peut ensuite être obtenu par:

prompt$ outlsd 6 < pinene.sol > pinene.coo

Le programme outlsd produit des coordonnées 2D à partir des connectivités.
Le résultat est visualisé par une visionneuse Postscript®.
Le dessin en langage Postscript est d'abord produit par :

prompt$ genpos < pinene.coo > pinene.ps

et affiché par :

prompt$ xpsview pinene.ps

si xpsview est le programme de visualisation Postscript de votre matériel (ce pourraît être open, gv ou gsview32).
Un double click sur l'icône du fichier pinene.ps montre aussi le résultat.

Pour les impatients

La commande :

prompt$ solve pinene

enchaîne toutes les étapes : résolution du problème de structure, création et affichage graphique de la solution.
Il n'est généralement pas souhaitable de procéder ainsi pour un nouveau jeu de données. Cela n'est envisageable que si lsd donne un nombre raisonnable de solutions (voir Passer des données aux structures).

Amélioration des dessins de molécules

Les coordonnées produites par outlsd fournissent parfois des dessins difficiles à interpréter.
Un programme simple nommé m_edit a été écrit pour améliorer la qualité des visuelle des structures moléculaires.
Il faut que Tcl/Tk et la commande wish soient installés pour pouvoir utiliser m_edit (version 8.0 ou plus récente).
La commande

prompt$ m_edit

lance m_edit.
Le menu File permet de lire et de sauvegarder des fichiers et de sortir du programme. Le menu View est utilisé pour naviguer en avant et en arrière dans un ensemble de structures groupées dans un même fichier. Les formats de fichiers supportés par m_edit sont ".coo" (le format spécifique de LSD) et ".sdf".

L'usage de m_edit est très simple : les atomes sont déplacés à l'aide du bouton gauche de la souris.
Il n'y a pas encore possibilité de sélectionner plusieurs atomes, désolé.

Les molécules sont toutes sélectionnées par défaut, comme indiqué par leur titre écrit en noir. Le menu Select permet de désélectionner (titre en rouge)/sélectionner des molécules. Le statut de la molécule courante peut être changé en cliquant sur le titre. Les molécules sélectionnées peuvent être gardées (et les autres supprimées) en utilisant l'item Keep du menu Select.

Les molécules sont inversées horizontalement ou verticalement à l'aide du menu Arrange.
Un buffer (menu Buffer) a été ajouté, de manière à ce qu'une situation antérieure préalablement sauvée (item Save To) puisse être rechargée (item Load From).

Structure des fichiers de données

Un fichier de données contient des commandes et des commentaires.
Le nombre de commandes par fichier est limité par défaut à 300.
Un commentaire est tout ce qui se trouve entre un ";" et la fin de la ligne.

Une commande est constituée d'un mnémonique de commande généralement suivi de 1 à 5 paramètres.
Les parties d'une commande sont séparées par des blancs. Les majuscules doivent être respectées.
A partir de la version 3.2.0 incluse, la commande EXIT peut être omise. Si elle existe, tout ce qui se trouve au delà est ignoré.

Tous les mnémoniques sont constitués de 4 caractères alphanumériques.
Certains se terminent par un ou deux blancs (^), comme CH^^.

Les mnémoniques sont suivis par des paramètres séparés par des blancs.
Les types possibles pour les paramètres sont décrits de la manière suivante :

Les paramètres d'une commande sont désignés par P1, P2, P3, P4 et P5 suivant leur position après le mnémonique.
La commande EXIT est la seule qui n'ait pas de paramètre.

Les commandes de base

Définition des listes d'atomes

Les commandes décrites dans cette section permettent de définir des listes d'atomes utilisées par la commande PROP.
Elle sont interprétées dans l'ordre où elles apparaissent dans le fichier de données.
Elles sont listées ci-dessous en fonction de leur nombre d'arguments :

Contrôle de l'exécution

Informations de sous-structure

Des solutions trouvées par LSD à l'issue de l'analyse des corrélations et de l'appariement des atomes encore incomplets peuvent n'être sélectionnées que si elles satisfont à une contrainte de sous-structure.
Une contrainte de sous-structure est fournie par des définitions de sous-structure et une recette pour combiner les résultats de leur recherche dans la structure.
Une sous-structure est soit native (définie dans le fichier du problème, comme c'est la cas avant la version 3.2.0) soit définie de manière externe.
Le fichier Data/pinene contient un exemple de codage d'une contrainte de sous-structure.

Une sous-structure est un ensemble de sous-atomes (commande SSTR) connectés par des sous-liaisons (commande LINK) et éventuellement pré-attribués (commande ASGN).

Une sous-structure externe est identifiée par un numéro de fragment et le nom (chemin) du fichier qui contient sa définition. Cette dernière est codée exactement comme l'est une sous-structure native.

Les résultats des recherches de sous-structure dans la structure courante sont combinés pour déterminer sa validité :

Les commandes DEFF, SKEL, PATH et FEXP implantent dans LSD la fonctionnalité du filtrage des solutions.
S'il n'y a pas de commande FEXP dans le fichier, la sous-structure native est seule prise en compte, si elle existe.
Si la commande FEXP est présente, la sous-structure native est accessible via F0 comme si une commande DEFF F0 "..." existait. Si aucune sous-structure native n'est définie, F0 est la sous-structure vide, celle qui est toujours présente dans une structure.
Si le paramètre de SUBS vaut 0, aucune recherche de sous-structure n'est effectuée. S'il vaut -1, le résultat final de l'évaluation de l'expression logique fournie par la commande FEXP est inversé.

La commande SKEL associe un numéro de fragment (comme DEFF) avec un nom de squelette, comme PINANE, qui fait référence à une sous-structure compatible avec la molécule de pinène, comme bien d'autres molécules.
LSD recherche dans une base de squelettes fournie par l'utilisateur un fichier qui décrit le squelette. En cas de succès, le numéro de fragment est alors associé avec ce fichier.
L'emplacement par défaut de la base de squelettes est le dossier Filters qui est fourni avec LSD. Une première commande PATH remplace l'emplacement par défaut par celui indiqué. Les commandes PATH suivantes définissent d'autres emplacements possibles où des définitions de squelettes sont recherchées.
Chaque fois qu'une commande SKEL est analysée tous les dossiers indiqués sont explorés ainsi que tous leurs sous-dossiers inclus. Chaque fois qu'un fichier nommé toc (Table of Contents) est trouvé au cours de cette exploration, son contenu est analysé. Si le nom du squelette recherché est trouvé à la ligne n d'un fichier toc, alors un fichier nommé filen doit exister dans le même dossier et doit être le fichier de description de sous-structure qui correspond au squelette recherché.
La commande PATH n'a pas d'influence sur le comportement de la commande DEFF. Un fichier toc ne doit contenir qu'un nom de squelette par ligne et un nom ne doit contenir ni blanc ou tabulation.
Un convertisseur nommé mol2ab est disponible pour traduire des fichiers MDL .mol en fichiers de description de sous-structure.

LSD est fourni avec une collection non-exhaustive de squelettes de substances naturelles. L'ensemble de ces squelettes est présent sous forme de fichiers MDL .mol dans le dossier MOL. L'utilisateur est libre de les utiliser pour créer des fichiers de sous-structure à sa convenance à l'aide de mol2ab. Le résultat de la conversion de tous les fichiers présents dans le dossier MOL est rangé dans le dossier Filters/TERPENES.

Créer des fichiers de sous-structure avec mol2ab

Le programme mol2ab convertit des structures au format .mol en sous-structures pour LSD.
L'utilisateur peut convertir les fichiers .mol distribués avec LSD ou ses propres fichiers édités à l'aide d'un logiciel usuel de dessin de structures.
Les règles suivantes s'appliquent durant la conversion :

Usage:
prompt$ mol2ab Dossier fichier-pilote

Chaque ligne du fichier-pilote doit contenir deux champs :

Le dossier "Dossier" doit exister et être vide. Il sera rempli avec les fichiers .mol initiaux (renommés en file1.mol ... filen.mol) et avec les fichiers de sous-structure équivalents (file1 ... filen), où n est le nombre de lignes dans le fichier-pilote.
Un fichier toc est également créé afin que LSD puisse retrouver les fichiers de sous-structure à partir des noms de squelettes.

Exemple: La fabrication de Filters/MONOTERP.
Les commandes qui suivent sont écrites pour un système de type UNIX. Le dossier courant de l'interpréteur de commandes est initialement celui de LSD.
Sous windows il suffit de remplacer les / par des \.

 prompt$  cd MOL
 prompt$  cd Monoterp_mol
 prompt$  mkdir MONOTERP
 prompt$  ../../mol2ab MONOTERP ../monoterp_mol.txt

Traiter les résultats avec outlsd

Pour utiliser outlsd, il ne faut pas que le fichier de données contienne la commande DISP 0.
Le programme outlsd lit sur l'entrée standard et écrit sur la sortie standard.
Il prend comme argument un entier entre 1 et 10.

prompt$ outlsd 7 < pinene.sol > pinene.sdf

Selon la valeur de l'argument n, le résultat produit par outlsd contient

Les options 2, 3 et 4 ne sont plus disponibles à partir de la version 3.4.1.

Visualiser les résultats avec genpos

L'option 6 de outlsd produit un texte qui commence avec DRAW sur la ligne 1, et dans un format utilisé par le programme genpos. Genpos lit sur l'entrée standard et écrit sur la sortie standard des instructions en langage Postscript.

prompt$ genpos < pinene.coo > pinene.ps

Le fichier résultant (pinene.ps) peut être ouvert par des visionneuses Postscript pour être analysé et imprimé.

Copyright(C)2000 CNRS-UMR 7312-Jean-Marc Nuzillard