Création de modèles structuraux avec LASE

Ce texte montre, sur quelques exemples, comment créer un modèle structural avec LASE (à partir de coordonnées cristallographiques, par exemple), comment utiliser ce modèle pour créer un modèle utilisable par FEFF et comment confronter les résultats de FEFF, les résultats d'ajustement et la structure tridimensionnelle entrée dans LASE pour faciliter la construction d'un modèle cohérent pour reproduire les spectres expérimentaux.

Cette présentation suppose implicitement que l'on travaille avec une version de LASE autorisant un affichage de la structure tridimensionnelle (compilation avec support Open-GL). Si tel n'est pas le cas, la plupart des opérations décrites ici restent possibles mais deviennent plus délicates et bien moins intuitives.

Ce document contient trois grandes parties :

Pour effectuer cette présentation, l'exemple choisi est le spectre d'absorption des rayons X du cisplatine solide, enregistré au seuil LIII du platine. Le fichiers EXAFS (brut) correspondant se trouve dans l'archive des exemples, sous le nom cispt_exf.txt.


Définition de la structure tridimensionnelle

La structure tridimensionnelle peut être définie dans LASE soit directement en entrant les coordonnées, soit en chargeant un fichier qui contient ces coordonnées. Les coordonnées peuvent être soit absolues (dans un repère orthonormé) --- comme on peut les trouver pour une molécule isolée ---, soit fractionnaires --- autorisant l'utilisation directe de données cristallographiques.

LASE peut actuellement charger trois types de fichiers : les fichiers PDB (Protein Data Bank), les fichiers de la Cambridge Crystallographic DataBank et des fichiers en « format libre » en ASCII.

L'unité structurale dans LASE est la molécule, terme à prendre au sens large comme l'ensemble des atomes formant une entité chimique suffisante pour reproduire le spectre d'absorption X. Ce peut donc être aussi bien une vraie molécule, au sens chimique du terme, qu'un lot d'une ou plusieurs mailles d'un cristal (moléculaire, ionique, covalent ou métallique). Il est possible de travailler avec plusieurs molécules simultanément.

Une molécule est constituée d'un ensemble de fragments, correspondant à un groupe d'atomes qu'il est pratique de grouper : une maille dans un ensemble de mailles, un acide aminé dans une chaîne polypeptidique, un ligand dans un complexe,... Elle comprend aussi des atomes absorbeurs qui sont assimilés aux atomes absorbant les photons X.

Les diverses fonctions permettant de construire et modifier le modèle structural sont regroupées dans le mode Structure, correspondant au menu LASE-4 représenté ci-dessous.

menu LASE-4

Chargement depuis un fichier

Les coordonnées cristallines du cisplatine étant connues, nous allons les utiliser pour générer une structure tridimensionnelle à partir de laquelle le modèle du spectre expérimental pourra être élaboré. Ces coordonnées sont dans le fichier cispt_coord.txt.

Pour charger ce fichier, il faut utiliser l'option fichier ASCII du menu Fichiers (en mode structural : menu LASE-4). La boîte de dialogue suivante apparaît alors.

import ASCII d'une structure

La partie gauche permet de définir le format du fichier. Ici, le fichier est composé de quatre colonnes. La première contient le symbole chimique de l'élément, les trois suivantes contiennent ses coordonnées. Les lignes de commentaire sont introduites par le symbole # et les paramètres de maille ne sont pas contenus dans le fichier.

La partie droite précise le type de coordonnées contenues dans le fichier. Ici, il s'agit de coordonnées fractionnaires se rapportant à une maille triclinique. Seule l'unité asymétrique est donnée, il faut donc préciser le groupe d'espace (ici P-1) pour générer l'ensemble de la maille. Pour obtenir les coordonnées orthonormées, il est nécessaire de préciser les paramètres de la maille. On demande de ne construire qu'une seule maille (la meille (0,0,0)). La molécule ainsi créée contient donc un seul fragment ; elle s'appelle « Cisplatine ».

Une fois les réglages effectués, cliquez sur Importer, puis choisissez le fichier dans le sélecteur qui apparaît.

Affichage de la structure

Pour afficher la molécule ainsi créée, utilisez l'option Vue en 3D du menu Structure. Il apparaît alors une fenêtre, similaire à celle représentée ci-dessous.

vue en 3D du cisplatine

Dans la moitié gauche est affichée la structure tridimensionnelle. La vue peut être modifiée à l'aide des touches du pavé numérique : + et - rapprochent l'observateur ; 1, 9 (resp. 4, 6 et 2, 8) permettent une rotation autour du premier (resp. deuxième et troisième) axe du repère. Pour un contrôle plus fin, ou pour modifier le point visé, il est possible en appuyant sur la touche espace d'appeler la boite de dialogue ci-dessous, qui permet de modifier tous ces paramètres. Dans la figure précédente, les paramètres sont ceux indiqués dans la figure ci-dessous.

paramètres de la vue 3D

Sur cette vue, les atomes sont représentés avec des couleurs conventionnelles : noir pour le carbone, blanc pour l'hydrogène, rouge pour l'oxygène, bleu pour l'azote, vert pour le chlore. Les autres atomes sont représentés en violet, tel le platine ici. En traits fins sont affichés les axes, en traits épais la maille élémentaire (suivant certains angles de vision, ces traits peuvent apparaître colorés, en bleu ciel pour la maille, par exemple).

Dans la moitié droite de la fenêtre, la partie haute permet de modifier certains paramètres d'affichage et la partie basse permet une comparaison des spectres expérimentaux et théoriques associés à la structure étudiée. Ces points seront repris par la suite.

Informations sur la structure

Avant d'aller plus loin, il est intéressant de repérer les divers atomes, les distances et angles entre ces atomes, de façon à contrôler la validité de la structure (pas d'erreur de frappe) et de commencer à distinguer les atomes proches de l'absorbeur ou les atomes presque alignés pouvant contribuer de façon notable par le jeu de la réflexion multiple.

Toutes ces opérations sont réalisables en cliquant sur les atomes affichés dans la vue en trois dimensions. Le type d'information affichée est choisi à l'aide du menu qui apparaît en cliquant avec le bouton du milieu sur la vue en 3 dimensions. Les principales options sont décrites dans le tableau suivant, les autres options seront présentées plus loin.

Option Informations fournies
Distance entre 2 atomes Distance entre le premier atome cliqué et le deuxième atome cliqué.
Distance (enchaînées) Distance entre le premier atome cliqué et le deuxième atome cliqué. Ce deuxième atome devient le premier atome, un clic sur un troisième atome donne donc directement la distance entre le deuxième atome et le troisième atome
Distance (rayonnante) Le premier atome cliqué sert de référence, donne ensuite la distance entre l'atome cliqué et cette référence
Angle formé par 3 atomes Si l'on clique sur les atomes 1, 2 puis 3, donne l'angle entre les liaisons 1-2 et 2-3 (angle 123). Cet angle est toujours compris entre 0 et 180°.
Angle (enchaînés) Si l'on clique sur les atomes 1, 2 puis 3, donne l'angle entre les liaisons 1-2 et 2-3 (angle 123). L'atome 2 devient ensuite 1, le 3 devient 2 et un clic sur un quatrième atome donne l'angle 234.
Choisir l'atome courant Un clic sur un atome affiche son type, ses coordonnées, le fragment auquel il appartient. C'est le mode par défaut. L'atome cliqué devient aussi l'atome courant, dont on peut modifier les paramètres (voir plus loin).
Informations structurales disponibles

Modifications de la structure

À la simple visualisation de cette structure, on constate que l'on dispose d'une molécule de cisplatine complète, en revanche il ne sera pas possible d'intégrer au modèle des contributions intermoléculaires car l'empilement n'est pas reproduit.

Pour remédier à cela, il est nécessaire de créer de nouvelles mailles de façon à étendre le modèle dans l'espace. Cela peut se faire à l'aide de l'option Créer une nouvelle maille du menu obtenu en cliquant avec le bouton du milieu sur la vue tridimensionnelle. Pour l'exemple choisi, obtenir une molécule complète encadrée par les deux molécules les plus proches (de l'atome de platine considéré) demande d'ajouter les mailles (0, 1, 1), (1, 1, 1), (0, 1, 0) et (0, 0, 1). Il peut être plus rapide de demander, lors de la création de la molécule, directement la création de toutes les mailles entre (0, 0, 0) et (1, 1, 1) --- tout dépend de la molécule et de la structure.

Après cette création de plusieurs mailles, certains atomes peuvent apparaître beaucoup trop loin. S'ils ne pertubent pas les calculs ni le traitement ultérieur, il peut être souhaitable (pour que la vue soit plus claire) de ne pas les utiliser. Deux méthodes permettent cela.

En premier lieu, il est possible d'effacer les atomes superflus. Pour cela, il faut choisir l'option Effacer un atome du menu Opérations sur les atomes qui apparaît en cliquant avec le bouton du milieu sur la vue tridimensionnelle. Ensuite, chaque atome cliqué sera effacé définitivement (après demande de confirmation).

Une solution moins radicale consiste à marquer certains atomes comme invisibles. Par défaut, l'affichage utilise de toute façon tous les atomes. Pour n'afficher que les atomes marqués comme visibles, il faut activer l'option Marqués visibles en haut, à gauche de la fenêtre de la vue tridimensionnelle.

Par défaut, tous les atomes sont marqués comme visibles. Pour sélectionner seulement certains atomes, il faut afficher la liste des atomes en choisissant l'option Liste des atomes dans le menu Structure. On obtient alors la fenêtre de la figure ci-dessous.

liste des atomes

Dans cette liste apparaissent tous les atomes actuellement en mémoire (pour toutes les molécules), par ordre de création. L'atome courant est indiqué en surbrillance, pour cet atome sont affichés le numéro atomique, les coordonnées et le rayon, utilisé pour dessiner les sphères (ces informations sont modifiables). Un atome est marqué visible s'il apparaît précédé d'un crochet dans la liste. On peut choisir l'atome courant en cliquant sur l'atome désiré dans la liste. Si l'on appuie sur Shift simultanément, on modifie le caractère visible ou non de l'atome (ce qui n'a d'effet que si le bouton Marqués visibles de la vue tridimensionnelle est activé). Le fonctionnement est donc similaire à celui de la liste des graphes.

Charger et sauver un modèle

Une fois la structure créée et modifiée, il est possible de la sauvegarder pour un usage ultérieur. Pour cela, il faut utiliser le bouton Sauver dans la boîte de dialogue présentant la liste des molécules en mémoire ; la molécule ainsi sauvée est la molécule courante. Pour la recharger, le bouton Charger de cette même fenêtre peut être utilisé.

Le fichier (binaire, donc utilisable uniquement sur le type d'ordinateur sur lequel il a été créé) contient l'ensemble des atomes de la molécule, ainsi que leur agencement en fragments ; les paramètres de maille, s'ils sont connus ; les atomes absorbeurs avec les informations associées, y compris les spectres et les chemins de diffusion (avec phases et amplitudes associées, ainsi que les couches correspondantes dans le modèle d'ajustement - voir plus loin)


Construction du modèle pour FEFF

Il serait possible de construire un modèle pour FEFF entièrement de la façon présentée dans la première partie de ce tutorial --- méthode qui reste de toute façon indispensable pour paramétrer finement les options de modélisation. Néanmoins, lorsque l'on dispose déjà de la structure tridimensionnelle, LASE propose divers outils qui facilitent la création de ce modèle.

Sélection des atomes absorbeurs

L'atome qui est considéré comme celui excité par les photons X absorbés (« atome absorbeur »)joue un rôle considérable, aussi LASE permet de définir certains atomes comme des atomes absorbeurs. Chaque molécule peut contenir un nombre quelconque d'atomes absorbeurs. Si un atome est défini comme absorbeur, LASE sait qu'il sert de point central autour duquel sera construit un modèle de spectre d'absorption (avec FEFF en particulier). Il est alors possible de lui associer diverses informations à propos de ce modèle (chemins de réflexion trouvés par FEFF, spectre expérimental de référence,...) qui facilitent l'analyse des résultats obtenus à l'issue d'un ajustement. Il est donc préférable d'indiquer, dans la structure, quels atomes peuvent être considérés comme des atomes absorbeurs.

La façon la plus simple d'indiquer qu'un atome est un absorbeur est de choisir l'option Choisir l'atome courant dans le menu Opérations sur les atomes. Dans ce mode, un clic simple sur un atome le définit comme atome courant. En revanche, si l'on appuie sur la touche Ctrl en même temps que l'on clique, on indique que l'atome choisit doit être un atome absorbeur. Après demande de confirmation, il apparaît alors la boîte de dialogue ci-dessous, qui permet de préciser les paramètres de cet atome absorbeur.

Paramètres d'un absorbeur

Il est en particulier possible de nommer cet absorbeur et de lui associer un spectre de référence : spectre EXAFS expérimental observé au seuil de cet atome. Ici, on peut lui assigner le spectre EXAFS brut présenté au début de ce document.

L'atome absorbeur actif est affiché en orange dans la vue tridimensionnelle. Si le bouton Expérience est activé et si un spectre de référence a été associé à l'absorbeur, il est affiché dans la partie inférieure droite de la fenêtre de visualisation tridimensionnelle (figure ci-dessous).

Vue 3D avec absorbeur

Création du modèle FEFF

Pour construire un modèle FEFF, il faut essentiellement définir les potentiels (correspondance entre le numéro du potentiel et le numéro atomique) et la disposition des atomes dans l'espace. Le principe de l'interface proposée dans LASE pour réaliser ces définitions a été présenté dans cette partie et ne sera pas repris ici.

Lorsqu'un ou plusieurs atomes absorbeurs ont été définis, ces deux étapes sont cependant grandement accélérées. En effet, l'atome absorbeur a nécessairement le potentiel 0 et sert de base à la construction du modèle. Aussi, lorsqu'un atome absorbeur existe, LASE peut l'utiliser directement pour créer le modèle, ce qui évite d'indiquer sa nature lors de la première étape de construction du modèle.

Une fois l'atome absorbeur choisi, le modèle est le plus souvent construit en intégrant tous les atomes qui se trouvent à moins d'une certaine distance de l'atome absorbeur, typiquement 5 Å. L'atome absorbeur mais aussi son environnement ayant été définis dans le modèle structural, LASE peut automatiquement construire cette liste d'atomes à partir de la structure tridimensionnelle. Pour cela, il suffit de cliquer sur le bouton Tout choisir de la boîte de dialogue permettant de définir la structure du modèle FEFF. Si un atome absorbeur a été défini, il apparaît alors la boîte de dialogue ci-dessous, qui permet de contrôler la façon dont sont ajoutés les atomes au modèle.

Choix de l'environnement de l'absorbeur FEFF

Ce contrôle permet d'ajouter soit tous les atomes de numéro atomique donné, soit tous les atomes à moins d'une certaine distance de l'atome absorbeur. Ces atomes appartiennent nécessairement à la même molécule que l'atome absorbeur. Au cours de cet ajout d'atomes, LASE s'occupe de créer de nouveaux potentiels (dans la limite des huit autorisés par FEFF) à chaque fois qu'un nouveau type d'atome est rencontré.

Pour l'exemple considéré, choisir tous les atomes à moins de 5 Å de l'atome de platine choisi comme absorbeur conduit à ajouter 19 atomes, correspondant à trois molécules complètes (appartenant à une même colonne) et des atomes des molécules des colonnes voisines.

Les atomes effectivement choisis pour le modèle FEFF peuvent être mis en évidence dans la vue tridimensionnelle en activant le bouton Modèle FEFF : dans ce cas, seuls les atomes effectivement utilisés sont affichés.

Attention ! LASE ne contrôle pas que la sphère indiquée est cohérente avec la structure indiquée. Ainsi, si l'on choisit un atome en bord de maille avec une seule maille définie, la sphère centrée sur cet atome peut inclure des mailles voisines qui sont absents du modèle. Comme, fondamentalement, la structure indiquée ou étudiée n'est pas forcément cristalline, LASE n'a aucun moyen sûr de contrôler que la sphère définie est bien « homogènement pleine », c'est à l'utilisateur de s'en assurer. Voir les atomes inclus au modèle FEFF permet souvent d'indiquer un problème, si la région occupée autour de l'absorbeur laisse manifestement un grand domaine spatial vide dans un angle solide donné.

Affiner manuellement le modèle FEFF

La sélection automatique permet de « dégrossir » la construction du modèle, mais il est parfois nécessaire d'affiner le modèle en ajoutant ou en ôtant manuellement certains atomes.

S'il est possible de le faire dans la boîte de dialogue définissant la structure pour le modèle FEFF, à partir de la liste des atomes, il est aussi faisable dans LASE d'indiquer directement sur la vue tridimensionnelle les atomes à ajouter ou enlever.

Pour cela, il faut sélectionner dans le menu Opérations sur les atomes apparaissant lorsque l'on clique avec le bouton du milieu sur la vue tridimensionnelle le mode Ajouter des atomes au modèle (pour ajouter des atomes) ou le mode Enlever des atomes au modèle (pour enlever des atomes). Lorsque l'on est dans ce mode, tout atome cliqué est ajouté ou enlevé du modèle.

Une fois le modèle structural achevé, le fichier feff.inp est créé suivant la méthode usuelle, puis le calcul lancé classiquement.

Utilisation des résultats pour l'ajustement

Dans le modèle d'une décomposition en chemins des oscillations EXAFS, les oscillations observées correspondent à la somme des contributions des divers chemins. Pour obtenir les paramètres structuraux par ajustement, il faut donc créer une « couche » par chemin trouvé dans le modèle FEFF (il y a équivalence entre couche et chemin pour les chemins de réflexion simple), chaque couche correspondant donc à un terme de la somme.

S'il est envisageable de construire manuellement, à partir des résultats de FEFF, les couches utilisées pour l'ajustement (en précisant pour chacune le déphasage et l'amplitude, ainsi que les valeurs initiales des paramètres), en utilisant la méthode décrite dans la première partie, la tache devient vite fastidieuse.

LASE permet donc de construire ce jeu de chemins directement à partir des fichiers de résultats créés par FEFF : fichier paths.dat décrivant les chemins trouvés et fichiers feffxxxx.dat décrivant, chemin par chemin, les déphasages et amplitudes.

Pour réaliser cette génération automatique des chemins, il faut commencer par appeler la liste des molécules (menu Structure), rappelée ci-dessous.

Liste des molécules

Le bouton Nouveau permet de créer un nouveau modèle pour l'absorbeur actif --- ou, si un modèle de même type existe déjà, de le remplacer. Un clic sur ce bouton appelle la boîte de dialogue suivante :

Charger paths.dat

qui permet de contrôler la façon dont sont créés les chemins de diffusion utilisés pour l'ajustement. Par défaut, tous les chemins trouvés par FEFF sont utilisés, avec une dégénérescence (« nombre de voisins ») fixée et une longueur de chemin variable, le terme de libre-parcours moyen étant inclus à l'amplitude de chaque chemin. Une fois ce paramétrage effectué, un clic sur Construire appelle le sélecteur de fichier pour indiquer la localisation du fichier paths.dat. Les fichiers feffxxxx.dat doivent se trouver au même endroit pour pouvoir générer les déphasages et amplitudes de ces chemins.

On obtient, à l'issue du chargement, un jeu de couches et de chemins prêts pour lancer un ajustement (à condition de régler les paramètres généraux).


Validation des ajustements

Avec un modèle structural un tantinet complexe, le nombre de chemins de réflexion trouvés par FEFF devient très rapidement important - en particulier lorsque les symétries autour de l'absorbeur ne sont pas conservées à cause de la « trop grande précision » des coordonnées cristallines. Si l'on autorise, pour chaque chemin, ne serait-ce que la longueur de chemin et le facteur de Debye-Waller à varier, on se retrouve très vite avec un nombre conséquent de variables, ce qui permet bien sûr une très bonne reproduction du signal expérimental, mais pose aussi des problèmes de validité physique des résultats ainsi obtenus et induit souvent une convergence vers un minimum physiquement absurde à cause des fortes corrélations entre variables.

Par suite, il est nécessaire de réduire ce nombre de chemins et de vérifier la validité physique du minimum obtenu. LASE propose quelques options en ce sens, que nous présentons ici, mais le choix d'une heuristique pour ajouter ou ôter des chemins est en dernier recours du ressort de l'utilisateur et reste la tache la plus délicate de la construction d'un modèle.

Utilisation des symétries

Considérons les chemins trouvés par FEFF pour le modèle du cisplatine indiqué. FEFF trouve 25 chemins, en se limitant aux trois molécules d'une même colonne (voir cette figure). Parmi ces 25 chemins, les chemins 3 et 4, par exemple, correspondent tous les deux à une réflexion simple sur l'atome de chlore lié à l'atome de platine absorbant les rayons X. FEFF trouve deux chemins car les coordonnées cristallines indiquées conduisent à deux distances platine-chlore, très proches, de 2,2844 Å et 2,2328 Å. Si l'on raisonne sur des atomes fixes, il est alors légitime de distinguer ces deux chemins ; toutefois, du fait de l'agitation thermique, ces deux atomes de chlore sont en fait indiscernables par EXAFS : il est donc plus correct de n'utiliser qu'un seul chemin de réflexion, mais avec une dégénérescence double.

En procédant à une analyse similaire sur l'ensemble des chemins, on arrive souvent à réduire de façon très importante le nombre de chemins à prendre en compte dans le modèle.

Pour faciliter cette analyse, LASE permet d'afficher chacun des chemins de diffusion sur la vue tridimensionnelle. En activant l'option Chemins dans la boîte en haut à gauche de la fenêtre, le chemin de réflexion actif est dessiné en trait vert épais sur la vue tridimensionnelle. Pour le rendre plus visible, il peut être souhaitable de diminuer la taille des sphères représentant les atomes, souvent jointives. Pour cela, cliquer sur Atomes : Sphères, taille réelle et, dans le menu qui apparaît, choisir Sphères, échelle 1:3. On obtient ainsi une représentation similaire à celle de la figure ci-dessous.

Vue 3D avec chemins

Ici, le chemin choisi part de l'absorbeur, passe par l'un des atomes d'azote puis l'autre avant de revenir à l'atome absorbeur. On peut choisir le chemin affiché avec le défileur en bas de la boîte de dialogue : les flèches passent au chemin précédent ou suivant ; un clic au centre (où est affiché le nom du chemin) affiche la liste de tous les chemins pour en choisir un directement.

En affichant successivement tous les chemins, il est possible de repérer assez rapidement les chemins identiques par symétrie, ce qui permet de réduire le nombre total de chemins. Pour l'exemple choisi, on passe ainsi de 25 chemins à 13 chemins (en regroupant au maximum).

En pratique, les chemins « en double » sont éliminés en désactivant le bouton Utiliser pour la couche associée (on n'utilise pas la couche lors de l'ajustement) et --- pour ne pas perdre d'atomes lors de cette condensation --- en modifiant le nombre de voisins pour les couches concernées. Par exemple, dans le modèle ci-dessus, les chemins 3 et 4 sont assimilables (réflexion simple sur un atome de chlore lié à l'atome absorbeur). On désactivera donc la couche associée au chemin 4 et on indiquera 2 voisins pour la couche associée au chemin 3 (les couches originelles comptant chacune 1 voisin).

Cette visualisation des chemins permet aussi d'éliminer des chemins sur d'autres critères structuraux  (réflexion sur plus de deux atomes légers sans alignement particulier, par exemple) en les repérant rapidement sur la vue tridimensionnelle.

Une fois ces opérations préalables effectuées, l'ajustement peut être lancé selon la procédure habituelle.

Validité des paramètres obtenus

À l'issue d'un ajustement, on peut très bien obtenir une bonne reproduction du spectre expérimental mais des paramètres physiques absurdes --- en particulier lorsque un grand nombre de paramètres a été utilisé pour réaliser cet ajustement.

L'incohérence des paramètres obtenus peut porter sur divers aspects, plus ou moins faciles à repérer. LASE peut signaler les plus manifestes. Pour cela, il faut afficher la fenêtre des paramètres généraux d'un modèle puis, dans la partie droite, cliquer sur le bouton de validité. Il apparaît alors un menu, qui propose en particulier de vérifier le sens physique du résultat, ainsi que la vérification des valeurs obtenues par rapport aux bornes de variation imposées (Bornes atteintes ?).

Lorsque l'option de sens physique du résultat est appelée, LASE signale :


et propose d'éliminer du modèle la couche incriminée.
Tutorial, partie 2 Sommaire

Emmanuel CURIS
Last modified: Wed Feb 5 13:25:17 CET 2003