Avogadro : un éditeur chimique sémantique avancé, une visualisation et une plateforme d’analyse

L’interface utilisateur graphique

La première chose que la plupart des gens verront est la fenêtre principale de l’application Avogadro, comme le montre la figure 4. Des installateurs binaires sont fournis pour Apple Mac OS X et Microsoft Windows, ainsi que des paquets pour toutes les principales distributions Linux. Cela signifie qu’Avogadro peut être installé assez facilement sur la plupart des systèmes d’exploitation. Des instructions faciles à suivre sur la façon de compiler le dernier code source sont également fournies sur le site web principal d’Avogadro pour les plus aventureux, ou ceux qui utilisent un système d’exploitation qui n’est pas encore supporté.

Figure 4
figure4

L’interface graphique d’Avogadro. Prise sous Mac OS X, montrant l’interface d’édition d’une molécule.

La boîte à outils Qt donne à Avogadro une apparence native sur les trois principaux systèmes d’exploitation pris en charge – Linux, Apple Mac OS X et Microsoft Windows. La fonctionnalité de base attendue dans un constructeur et un visualiseur moléculaire a été implémentée, ainsi que plusieurs fonctionnalités moins courantes. Il est très facile pour les nouveaux utilisateurs d’installer Avogadro et de construire leurs premières molécules en quelques minutes. Grâce à la bibliothèque Open Babel, Avogadro supporte une grande partie des formats de fichiers chimiques couramment utilisés. La grande majorité de cette fonctionnalité a été écrite en utilisant l’interface mise à la disposition des auteurs de plugins, et est chargée au moment de l’exécution. Nous discuterons de ces interfaces de plugins et des descriptions des types de plugins plus tard.

Chimie sémantique

Avogadro a utilisé CML comme format de fichier par défaut dès le début ; ce format a été choisi par rapport à d’autres formats de fichiers en raison de la structure extensible et sémantique fournie par CML, et du support disponible dans Open Babel . Le format CML offre un certain nombre d’avantages par rapport aux autres formats couramment utilisés, notamment la possibilité de l’étendre. Cela permet à Avogadro et à d’autres programmes d’être à l’épreuve du temps, en ajoutant ultérieurement de nouvelles informations et fonctionnalités nécessaires à un éditeur sémantique avancé, tout en restant lisibles dans les anciennes versions d’Avogadro.

Grâce à l’utilisation d’Open Babel , un large éventail de formats de fichiers peut être interprété. Lors de l’extension d’Avogadro pour lire de plus grandes quantités de la sortie des codes quantiques, il a été nécessaire de consacrer des ressources de développement importantes pour comprendre et ajouter une signification sémantique à la sortie du code quantique. Ce travail a été développé dans un plugin, qui a ensuite été séparé en une petite bibliothèque indépendante appelée OpenQube . Plus récemment, le projet Quixote, les convertisseurs JUMBO et l’atelier sur les sciences physiques sémantiques ont effectué un travail considérable pour améliorer les codes quantiques afin de produire davantage de données directement à partir du code. Puisque CML peut être étendu, il est possible de réutiliser les conventions existantes pour les données de structure moléculaire, et d’ajouter de nouvelles conventions pour les données quantiques supplémentaires.

Construire une molécule : atome par atome

Après avoir ouvert Avogadro, une fenêtre telle que celle présentée dans la figure 4 se présente. Par défaut, l’outil de dessin est sélectionné. Un simple clic gauche sur la partie noire de l’écran permet à l’utilisateur de dessiner un atome de carbone. Si l’utilisateur appuie sur le bouton gauche de la souris et fait glisser, un atome de carbone lié est dessiné entre le point de départ et la position finale où la souris est relâchée.

Une grande quantité d’efforts a été déployée pour créer un outil intuitif pour dessiner de petites molécules. Les éléments chimiques courants peuvent être sélectionnés dans une liste déroulante, ou un tableau périodique peut être affiché pour sélectionner des éléments moins courants. Un clic sur un atome existant le transforme en l’élément actuellement sélectionné, un glissement ramène l’atome à son élément précédent et dessine un nouvel atome lié à l’original. Si l’on clique avec le bouton gauche de la souris sur les liaisons, l’ordre des liaisons varie entre simple, double et triple. Des touches de raccourci sont également disponibles, par exemple, taper le symbole atomique (par exemple, « C-o » pour le cobalt) change l’élément sélectionné, ou taper les chiffres « 1 », « 2 » et « 3 » change l’ordre des liaisons.

Un clic droit sur les atomes ou les liaisons les supprime. Si la case « Ajuster les hydrogènes » est cochée, le nombre d’hydrogènes liés à chaque atome est automatiquement ajusté pour satisfaire la valence. Cela peut également être fait à la fin d’une session d’édition en utilisant l’extension « Ajouter des hydrogènes » dans le menu de construction.

En plus de l’outil de dessin, il existe deux outils pour ajuster la position des atomes dans les molécules existantes. L’outil « atom centric manipulate » peut être utilisé pour déplacer un atome ou un groupe d’atomes sélectionnés. L’outil « manipuler centré sur la liaison » peut être utilisé pour sélectionner une liaison, puis ajuster la position de tous les atomes par rapport à la liaison sélectionnée de différentes manières (par exemple, en modifiant la longueur de la liaison, les angles de liaison ou les angles dièdres). Ces trois outils permettent une grande flexibilité dans la construction interactive de petites molécules à l’écran.

Une fois que la structure moléculaire est complète, l’extension du champ de force peut être utilisée pour effectuer une optimisation de la géométrie. En cliquant sur « Extensions » et « Optimize Geometry », une optimisation rapide de la géométrie est effectuée sur la molécule. Le champ de force et les paramètres de calcul peuvent être ajustés, mais les valeurs par défaut sont suffisantes pour la plupart des molécules. Ce flux de travail est typique lors de la construction d’une petite structure moléculaire à utiliser comme entrée pour des calculs quantiques, ou des figures de qualité de publication.

Une alternative est de combiner l’outil « Auto Optimisation » avec l’outil de dessin. Cela présente une façon unique de sculpter la molécule alors que la géométrie est constamment minimisée en arrière-plan. L’optimisation de la géométrie est animée, et l’effet de la modification des ordres de liaison, de l’ajout de nouveaux groupes ou de la suppression de groupes peut être observé de manière interactive.

Plusieurs dialogues sont implémentés pour fournir des informations sur les propriétés de la molécule et pour modifier précisément des paramètres, tels que les coordonnées cartésiennes des atomes de la molécule.

Construire une molécule : à partir de fragments

En plus de construire des molécules atome par atome, les utilisateurs peuvent insérer des fragments préconstruits de molécules, de ligands ou de séquences d’acides aminés courants, comme le montre la figure 5. Dans tous les cas, après avoir inséré le fragment, l’outil de manipulation centré sur l’atome est sélectionné, ce qui permet de déplacer ou de faire pivoter le fragment en position facilement.

Figure 5
figure5

Dialogs pour insérer des fragments préconstruits. La gauche montre des molécules, et la droite des séquences d’amino-acides.

Les utilisateurs peuvent également insérer une chaîne SMILES pour une molécule. Dans ce cas, une géométrie 3D grossière est générée à l’aide d’Open Babel et d’une optimisation rapide du champ de force.

Préparation des entrées pour les codes quantiques

Plusieurs extensions ont été développées pour Avogadro qui aident l’utilisateur à préparer les fichiers d’entrée pour les codes quantiques populaires tels que GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro et MOPAC200x. Les dialogues graphiques présentent les fonctionnalités requises pour exécuter des calculs quantiques de base ; quelques exemples sont présentés dans la Figure 6.

Figure 6
figure6

Dialog pour générer des entrées pour les codes quantiques. Dialogues pour générer des entrées pour Q-Chem, NWChem, Molpro et MOPAC200x. Notez que les dialogues ont une interface similaire, permettant aux utilisateurs d’utiliser plusieurs progiciels de chimie computationnelle.

L’aperçu du fichier d’entrée au bas de chaque dialogue est mis à jour au fur et à mesure que les options sont modifiées. Cette approche aide les nouveaux utilisateurs de codes quantiques à apprendre la syntaxe des fichiers d’entrée pour différents codes, et à générer rapidement des fichiers d’entrée utiles au fur et à mesure de leur apprentissage. L’entrée peut également être modifiée manuellement dans le dialogue avant que le fichier ne soit enregistré et soumis au code quantique. L’extension MOPAC peut également exécuter directement le programme MOPAC200x s’il est disponible sur l’ordinateur de l’utilisateur, puis recharger le fichier de sortie dans Avogadro une fois le calcul terminé. Cette fonctionnalité sera étendue à d’autres codes quantiques dans les futures versions d’Avogadro.

Le plugin GAMESS-US est l’un des plus développés, présentant un dialogue de base présent dans la plupart des autres générateurs de jeux d’entrée, ainsi qu’un dialogue avancé exposant de nombreux types de calculs plus inhabituels et complexes. En plus de la boîte de dialogue avancée, le jeu de données d’entrée peut être édité en ligne et comporte une coloration syntaxique (Figure 7) comme celle utilisée dans de nombreux éditeurs populaires destinés aux développeurs de logiciels. Cela peut indiquer de simples erreurs de frappe dans les mots-clés, ainsi que des erreurs d’espacement plus difficiles à repérer qui, autrement, feraient échouer le jeu d’entrée édité à la main lors de sa lecture par GAMESS-US.

Figure 7
figure7

Le générateur d’input deck de GAMESS-US. Ce générateur de saisie dispose d’un panneau avancé et d’une coloration syntaxique.

Alignement et mesures

L’un des outils spécialisés inclus dans la distribution standard d’Avogadro est l’outil d’alignement. Cet outil de souris facilite l’alignement d’une structure moléculaire avec l’origine des coordonnées si un atome est sélectionné, et le long de l’axe spécifié si deux atomes sont sélectionnés. L’outil d’alignement peut être combiné avec les outils de mesure, de sélection et de manipulation pour créer des entrées pour les codes quantiques où la position et l’orientation de la molécule sont importantes. Les calculs dans lesquels un champ électrique externe est appliqué à la molécule en sont un exemple. Dans ces types de calculs, l’alignement de la molécule peut avoir un effet important. La figure 8 montre l’outil de mesure en action avec le dialogue de configuration de l’outil d’alignement visible dans le coin inférieur gauche.

Figure 8
figure8

L’outil de mesure. L’outil de mesure utilisé pour mesurer les angles et les longueurs de liaison (sous Linux avec KDE 4).

Des outils d’alignement plus complexes pour des tâches spécifiques pourraient être créés. L’outil d’alignement a été créé en quelques heures seulement pour un projet de recherche spécifique. C’est un excellent exemple où l’extensibilité était très importante pour effectuer des recherches à l’aide d’un outil graphique de chimie computationnelle. Il ne vaudrait pas la peine de créer une nouvelle application juste pour aligner des structures moléculaires sur un axe, mais créer un plugin pour un projet extensible n’est pas déraisonnable.

Visualisation

L’application Avogadro utilise OpenGL pour rendre les représentations moléculaires à l’écran de manière interactive. OpenGL offre une API de haut niveau et multiplateforme pour le rendu d’images tridimensionnelles à l’aide de graphiques accélérés par le matériel. OpenGL 1.1 et les versions inférieures sont utilisées dans la plupart du code de rendu, de sorte qu’Avogadro peut être utilisé même sur des systèmes informatiques plus anciens, ou ceux qui ne disposent pas de graphiques accélérés plus modernes. Il est capable de tirer parti de certaines des nouvelles fonctionnalités disponibles dans OpenGL 2.0, comme décrit ci-dessous, mais cela a été gardé comme une fonctionnalité supplémentaire optionnelle lors du travail sur des visualisations inédites de la structure moléculaire.

Représentations standard

En chimie, il existe plusieurs représentations standard de la structure moléculaire, basées à l’origine sur celles possibles avec des modèles physiques. L’application Avogadro met en œuvre chacune de ces représentations présentées dans la figure 2 sous forme de plugin. Celles-ci vont de la simple représentation filaire, au bâton/réglisse, à la boule et au bâton, et aux sphères de Van der Waals.

Il est également possible de combiner plusieurs représentations, comme la boule et le bâton avec un rendu d’anneau (figure 2 (d)), et une représentation semi-transparente de remplissage d’espace de Van der Waals avec une représentation de bâton pour élucider le squelette moléculaire (figure 2 (f)).

Calculs quantiques et structure électronique

Les codes quantiques ont été développés à l’origine pour les imprimantes de ligne, et malheureusement, peu de choses ont changé depuis dans les fichiers journaux standard. Il existe plusieurs formats développés pour être utilisés dans d’autres codes et spécifiquement pour la visualisation et l’analyse, mais il y a peu d’accord sur un format de fichier standard dans la communauté de la chimie quantique computationnelle. Un plugin a été développé dans Avogadro pour visualiser la sortie de divers codes quantiques, et obtenir les données dans le bon format pour une visualisation et une analyse ultérieures.

Dans un premier temps, un support a été ajouté et étendu dans Open Babel pour les fichiers de cubes gaussiens. Ce format fournit des coordonnées atomiques et une ou plusieurs grilles régulièrement espacées de valeurs scalaires. Ces fichiers peuvent être lus et des techniques telles que l’algorithme des cubes mobiles peuvent être utilisées pour calculer des mailles triangulaires d’isosurfaces pour des valeurs de densité électronique, par exemple. Une fois que le code a été développé pour visualiser ces isosurfaces, il est devenu clair qu’il serait utile de pouvoir calculer ces cubes à la volée, et à différents niveaux de détail en fonction de l’utilisation prévue.

Le premier format, qui était quelque peu documenté au moment de son développement, est le format gaussien de point de contrôle. Ce format est beaucoup plus facile à analyser que les fichiers journaux générés lors de l’exécution du programme, et fournit tous les détails nécessaires pour calculer les valeurs scalaires de l’orbitale moléculaire ou de la densité électronique en tout point de l’espace. Une fois qu’une structure de classe a été développée pour les orbitales de type gaussien, l’approche a été étendue pour lire plusieurs autres formats de fichiers de sortie populaires, y compris Q-Chem, GAMESS-US, NWChem et Molpro. Le support du MOPAC200x a été ajouté plus tard, ainsi que le support du format AUX et des orbitales de type Slater utilisées dans ce code. Tous ces codes sortent leurs configurations finales en utilisant la combinaison linéaire standard des orbitales atomiques, ce qui signifie que la parallélisation est extrêmement simple.

Le plugin a été développé pour profiter de l’approche map-reduce offerte par QtConcurrent afin d’utiliser tous les cœurs de processeur disponibles. Cela offre une mise à l’échelle presque linéaire car chaque point de la grille peut être calculé indépendamment de tous les autres points, dont les résultats sont visibles sur la figure 9. Une autre approche du calcul des orbitales moléculaires a été développée dans un deuxième plugin qui a depuis été séparé en un projet distinct appelé « OpenQube ». La bibliothèque « OpenQube » a également été ajoutée comme backend optionnel dans VTK au cours du Google Summer of Code 2011, apportant un support pour plusieurs formats de fichiers de sortie et le calcul de fichiers cube qui peuvent plus tard être introduits dans des pipelines de données plus avancés.

Figure 9
figure9

Orbitales et surfaces moléculaires. Rendu d’une isosurface d’orbitale moléculaire (gauche) et d’un potentiel de surface électrostatique cartographié sur la densité électronique (droite).

Une hiérarchie de classes avec une API standard est fournie pour la sortie quantique. L’ajout de la prise en charge de nouveaux codes a nécessité le développement d’un nouvel analyseur syntaxique et l’assurance que l’ensemble de Gaussien ou de Slater est peuplé avec l’ordre correct et le schéma de normalisation attendu. Les orbitales gaussiennes de type s, p et d sont prises en charge, la prise en charge de f et g étant prévue afin de prendre en charge le nombre croissant de calculs utilisant ces orbitales d’ordre supérieur. Le Basis Set Exchange hébergé par EMSL permet d’accéder aux jeux de base couramment utilisés, bien qu’actuellement ces jeux de base soient normalement lus directement dans les fichiers de sortie. Il existe plusieurs projets connexes visant à ajouter une signification sémantique à ce type de sortie, notamment le projet JUMBO-Converters et Quixote. On espère que davantage de codes adopteront la sortie sémantique à l’avenir, en utilisant un format commun afin de faciliter l’échange, la validation et l’analyse des données entre plusieurs codes. C’était le sujet d’une récente réunion avec plusieurs codes de chimie computationnelle qui ont commencé à utiliser FoX afin de sortir le CML. Le développement d’un code permettant de lire la sortie CML, soit directement à partir des codes, soit à partir de la conversion d’autres formats à l’aide d’Open Babel ou des convertisseurs JUMBO, a commencé. Si une structure sémantique suffisante peut être ajoutée au CML, et si les convertisseurs supportent une gamme suffisamment large de sorties, cela pourrait remplacer la plupart du code d’analyse syntaxique présent dans OpenQube. La signification sémantique est l’une des plus difficiles à extraire des fichiers journaux, et se rassembler en tant que communauté aidera des projets comme Avogadro à tirer plus de sens des sorties de ces codes.

Structure biologique secondaire

Avogadro utilise le lecteur PDB d’Open Babel pour lire la structure biologique secondaire. Deux plugins existent pour traiter et rendre cette information. Le premier est un plugin qui rend un simple tube entre les atomes du squelette de la biomolécule. Un second plugin plus avancé calcule les maillages des hélices alpha et des feuilles bêta. Bien que le premier plugin soit beaucoup plus rapide, le plugin avancé produit avec plus de précision les résultats attendus sur le terrain. Cela permet aux utilisateurs une certaine flexibilité pour le rendu des structures biologiques secondaires.

GLSL, visualisation inédite

GLSL, ou OpenGL Shader Language, est une syntaxe de type C qui peut être utilisée pour développer du code qui fonctionnera sur les cartes graphiques et incluse dans la spécification OpenGL 2.0. Il a été utilisé avec beaucoup d’efficacité par l’industrie des jeux, ainsi que dans de nombreux domaines de la visualisation de données. Plusieurs articles récents soulignent le potentiel en chimie, comme QuteMol dans l’ajout du support pour des fonctionnalités telles que l’occlusion ambiante pour ajouter de la profondeur aux images.

Avogadro a le support pour les programmes vertex et fragment shader, et plusieurs exemples sont regroupés avec le paquet. Si la carte graphique de l’utilisateur en est capable, ces programmes peuvent être chargés au moment de l’exécution et utilisés avec beaucoup d’effet pour visualiser la structure. Certains d’entre eux incluent des techniques de synthèse telles que le rendu isosurface où seuls les bords orthogonaux au plan de vue sont visibles, ce qui donne un bien meilleur rendu de la structure moléculaire et électronique (figure 10).

Figure 10
figure10

Rendu d’orbitales moléculaires à l’aide de shaders GLSL. Rendu d’une isosurface d’orbite moléculaire utilisant deux shaders GLSL pour mettre en évidence les bords des surfaces. L’effet de rayon X (à gauche) et le rouge et le bleu (à droite) montrant les formes d’orbitales moléculaires positives et négatives.

Ray tracing

Avogadro utilise une abstraction de peintre qui rend beaucoup plus facile pour les développeurs d’ajouter de nouveaux types d’affichage. Il fait également abstraction du moteur de rendu, ce qui permet d’ajouter le support de backends alternatifs. Actuellement, seuls OpenGL et POV-Ray sont supportés. Grâce à l’abstraction, nous sommes en mesure d’utiliser les surfaces implicites disponibles dans les traceurs de rayon pour rendre la structure moléculaire à des niveaux de clarté très élevés et sans aucun des artefacts de triangle présents dans les images rendues OpenGL standard. Une transparence et une réflexion de bien meilleure qualité permettent également d’utiliser les images dans des présentations d’affiches et orales ainsi que dans des articles de recherche (figure 11).

Figure 11
figure11

Isosurfaces HOMO tracées par rayons de densité cubique variable. Rendu d’une isosurface d’orbitale moléculaire à l’aide de POV-Ray avec des cubes de faible (gauche) et de forte (droite) densité.

Cette fonctionnalité est implémentée dans une extension, avec une classe de peintre supplémentaire dérivant de la classe de base et un dialogue permettant à l’utilisateur de modifier les contrôles de rendu de base. Le fichier d’entrée POV-Ray peut également être conservé et édité pour produire des images plus complexes, ou pour permettre un contrôle beaucoup plus fin du processus de rendu si on le souhaite.

La bibliothèque Avogadro en utilisation

La première utilisation de la bibliothèque Avogadro a été l’application Avogadro, suivie de près par le programme de tableau périodique Kalzium qui fait partie de la collection de logiciels KDE. Ce travail initial a été financé en partie par le programme Google Summer of Code en 2007, et a également donné lieu à l’ajout de plusieurs autres fonctionnalités dans la bibliothèque Avogadro pour prendre en charge Kalzium et la visualisation et l’édition générales de la structure moléculaire (Figure 12).

Figure 12
figure12

L’application Kalzium dans KDE utilisant Avogadro pour rendre les structures moléculaires.

Le paquet Q-Chem a développé « QUI – The Q-Chem User Interface » autour d’Avogadro, à l’origine comme une extension d’Avogadro. Il s’agit d’une version plus avancée du générateur d’entrée développé dans Avogadro, avec une intégration beaucoup plus étroite. Molpro a également publié quelques résultats de leur développement d’une interface Molpro utilisant la bibliothèque Avogadro .

Packmol

Packmol est un paquetage tiers conçu pour créer des configurations initiales « emballées » de molécules pour la dynamique moléculaire ou d’autres simulations . Les exemples incluent l’entourage d’une protéine avec un solvant, des mélanges de solvants, des bicouches lipidiques, des micelles sphériques, le placement de contre-ions, l’ajout de ligands à des nanoparticules, etc. En général, les utilisateurs peuvent disposer de « boîtes à solvant » équilibrées qui ont été utilisées pendant de longues simulations pour garantir une densité correcte et des interactions à courte et longue portée entre les molécules de solvant. L’utilisation de telles boîtes de solvant permet de placer des molécules de soluté, telles que des protéines, dans une structure initiale approximativement correcte, comme celle illustrée à la figure 13. Le soluté est ajouté dans la boîte, et les molécules de solvant dont les atomes se chevauchent sont supprimées. Bien que ces utilitaires soient souvent suffisants, la création de fichiers d’entrée complexes n’est pas toujours facile. Pour les systèmes plus compliqués, Packmol peut créer une configuration initiale basée sur des densités et des géométries définies (par exemple, sphère, boîte, etc.), ainsi que sur les molécules à placer. Un développeur Avogadro a écrit un plugin externe pour faciliter l’utilisation de Packmol, notamment pour estimer le nombre de molécules dans un volume donné.

Figure 13
figure13

La couche lipidique PackMol telle que produite par l’extension PackMol.

Le plugin n’est pas actuellement distribué avec Avogadro comme une fonctionnalité standard, bien qu’il soit prévu pour une certaine version future. Il sert d’exemple de la façon dont Avogadro peut faciliter un flux de travail avec un paquet orienté texte (Packmol), y compris l’enregistrement de fichiers au format PDB requis par Packmol, la génération d’un fichier d’entrée et la lecture de la sortie pour la visualisation, l’analyse et d’autres simulations.

XtalOpt

Le progiciel XtalOpt est mis en œuvre comme une extension C++ tierce à Avogadro et fait un usage intensif de l’API libavogadro. L’extension met en œuvre un algorithme évolutionnaire adapté à la prédiction de la structure cristalline. L’équipe de développement de XtalOpt a choisi Avogadro comme plateforme en raison de sa licence open-source, de son API bien conçue, de ses puissants outils de visualisation et de son interface utilisateur intuitive. XtalOpt existe sous la forme d’une fenêtre de dialogue (Figure 14) et utilise la fenêtre principale d’Avogadro pour visualiser les structures candidates au fur et à mesure de leur évolution. L’API est bien adaptée aux besoins de XtalOpt, fournissant un mécanisme simple pour permettre à l’utilisateur de visualiser, modifier et exporter les structures générées pendant la recherche. Profitant des capacités multiplateformes d’Avogadro et de ses dépendances, XtalOpt est disponible pour Linux, Windows et Mac.

Figure 14
figure14

L’extension XtalOpt. Extension XtalOpt montrant un tracé de la stabilité en fonction de la progression de la recherche pour une supercellule de TiO2.

.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.