La visualisation moléculaire joue un rôle essentiel dans la construction de bases de données et de référentiels, la préparation des structures initiales pour les calculs quantiques et de dynamique moléculaire, et l’analyse des coordonnées de la trajectoire en temps réel. La visualisation et l’édition interactive de la structure des molécules peuvent réduire efficacement le seuil de simulation et améliorer l’efficacité. Le développement récent dans le domaine du calcul haute performance (HPC) et de l’informatique en nuage a donné naissance à de nombreuses plateformes de calcul en ligne. Par exemple, MatCloud , rescale , WebMO et MolCalc fournissent des services web pour le calcul des matériaux et de la chimie. Ces outils basés sur le web permettent de contrôler à distance les ressources informatiques, et leur accessibilité et leur compatibilité les rendent extrêmement populaires. De nos jours, il est courant d’utiliser les outils de visualisation et d’édition de structures 3D basés sur le Web pour générer les structures modèles et préparer les fichiers d’entrée pour les simulations.
Les logiciels de visualisation de pointe dans le domaine de la chimie computationnelle sont principalement développés sur un environnement de bureau, tels que Avogadro , Materials Studio , et VESTA . Avec la demande croissante de visualisation sur le Web, plusieurs outils pertinents ont vu le jour. Par exemple, 3Dmol , JSmol et Web3DMol offrent de puissantes capacités de visualisation, mais la fonction d’édition de structure est absente. D’autres outils, tels que ChemdoodleWeb , Kekule.js , JSME , ne peuvent modifier que les structures en deux dimensions (2D). Des outils d’édition de structures en 3D (par exemple, ChemMozart , CH5M3D ) sont également mentionnés dans la littérature. Cependant, ces outils se concentrent sur la modélisation moléculaire organique et ne prennent pas en charge le traitement de la structure cristalline. En outre, ChemMozart est mis en œuvre en utilisant le cadre node.js, et il ne peut pas être utilisé comme une bibliothèque légère seule.
Afin de traiter les informations chimiques sur le serveur Web, nous avons développé un programme avancé de visualisation et d’édition chimique avec les caractéristiques suivantes. Premièrement, les molécules organiques non périodiques et les structures cristallines peuvent être visualisées, construites et éditées de manière interactive. Deuxièmement, un large éventail d’algorithmes chimico-informatiques pour la structure cristalline est fourni, comme le clivage des surfaces, l’établissement de couches de vide et la création de supercellules. Troisièmement, il s’agit d’une bibliothèque légère mise en œuvre à l’aide de JavaScript, et elle peut être facilement utilisée pour fournir un service web de manière indépendante ou intégrée à d’autres plateformes web. Enfin, les fichiers d’entrée initiaux pour VASP et Gaussian peuvent être générés en interagissant avec les boîtes de dialogue.
Mise en œuvre
Comme la plupart des programmes d’interface utilisateur graphique (GUI) pour la chimie informatique , 3DStructGen se concentre sur la génération de la géométrie moléculaire initiale. Comme le montre la figure 1, les modules de base de la molécule, du cristal et de la dalle de surface consistent en plusieurs méthodes pour traiter respectivement la molécule non périodique, le cristal périodique, ainsi que le système de dalle de surface. Le canevas HTML5 est le module central permettant d’afficher les structures 3D et de connecter tous les autres modules. Le module de la souris fournit un certain nombre d’opérations interactives par la souris pour les utilisateurs. Les méthodes de traitement des formats de fichiers chimiques généraux (XYZ, SD, MOL, CIF) sont prises en charge dans le module IO, et le fichier d’entrée initial pour VASP et Gaussian peut être produit à l’aide du module d’interface. Le module d’exploration imprime les informations interactives (par exemple, le nom du fichier, le paramètre du réseau, la distance entre les atomes, les coordonnées des atomes, etc.) pour les utilisateurs en temps réel. De plus, l’API ChemKit fournit des extensions de 3DStructGen en intégrant d’autres outils de chimioformatique.
Elément, atome et molécule
Les paramètres des éléments (par ex, numéro d’atome, symbole de l’élément, masse atomique, couleur, rayons covalents, etc.) sont définis sous forme de liste dans la fonction « element () ». La fonction « addElem () » est utilisée pour ajouter un élément spécifié par les utilisateurs, et le modèle atomique correspondant sera visualisé sur le canevas. Tous les éléments sont affichés dans la même couleur que dans le programme VESTA. La molécule de méthane est présentée dans le canevas lorsque 3DStructGen est initialisé. La représentation « boule et bâton » des structures avec la taille des atomes basée sur leurs rayons covalents par défaut. En outre, les modèles « bâton et ligne » peuvent également être spécifiés par les utilisateurs.
Les fonctions « addAtom () » et « delAtom () » sont utilisées pour ajouter un nouvel atome et supprimer un atome existant dans une molécule, respectivement. Par défaut, un nombre approprié d’atomes d’hydrogène sera ajouté selon la règle de la théorie de l’octuor, et les angles de liaison se voient attribuer une valeur basée sur l’hybridation orbitale (sp3 par défaut) sélectionnée par les utilisateurs.
Lorsqu’un nouvel atome est ajouté, une liaison est créée dans sa valeur de la somme des rayons covalents des atomes liés. La liaison entre les paires d’atomes peut être ajoutée à l’aide des opérations de la souris en appelant la fonction « addBond () », définie dans les fichiers ou calculée par le 3DStructGen. La fonction « createBond () » décrit en détail la règle de liaison : tout d’abord, une liste d’atomes de liaison possibles basée sur le modèle de valence de la liaison est établie, puis la distance pour ces atomes de liaison possibles est calculée. Une liaison est créée si la distance est comprise entre 0,5 et 1,2 fois la somme des rayons covalents de ces atomes de liaison. Ici, la distance de 0,5 fois est utilisée pour éviter la liaison entre les atomes fermés (peut-être des atomes de chevauchement). La fonction « bondMatrix () » définit une routine publique pour stocker et retourner la liste des liaisons. L’algorithme d’étiquetage du graphe (pseudo-code dans la Fig. 2) utilisé pour reconnaître le cadre et l’invité (y compris la molécule de solvant) est développé pour traiter les cadres métallo-organiques (MOF) dans la base de données Cambridge structural database (CSD). Notre méthode de liaison a montré des résultats satisfaisants pour cette tâche, et les résultats de visualisation peuvent être trouvés dans la section « Visualisation de la structure ».
Lorsqu’une structure est créée, un atome ou un groupe d’atomes sélectionnés par les utilisateurs peuvent être déplacés dans les directions haut, bas, gauche et droite par une distance spécifiée par l’utilisateur. Une optimisation grossière de la géométrie est supportée pour les molécules non périodiques en optimisant les longueurs de liaison, les angles de liaison et le dièdre en suivant la même méthode dans CH5M3D . Une optimisation facultative de la géométrie basée sur la méthode du champ de force est également fournie par l’utilisation de l’API ChemKit, qui est expliquée plus en détail dans la section « API ChemKit ».
Cristal et dalle de surface
La fonction « buildCrystal () » est utilisée pour construire la structure du réseau cristallin. En cliquant sur la boîte de dialogue de « build crystal », les groupes d’espace de symétrie (230 au total), les paramètres de treillis, les types d’atomes et les coordonnées peuvent être interactivement sélectionnés ou édités par les utilisateurs. Lorsque toutes les opérations sont terminées, une structure cristalline sera affichée dans le canevas.
La dalle supercellulaire est un modèle structurel utilisé dans les simulations quantiques ou de dynamique moléculaire pour étudier la surface cinétique , thermodynamique , et les propriétés électroniques. La fonction « cleaveSurf () » montre un algorithme pour construire une dalle de surface avec n’importe quelle orientation de l’indice de Miller à partir d’une cellule unitaire de n’importe quel réseau de Bravais. Une dalle à deux surfaces est intégrée à des régions de vide dans une supercellule. Sun a proposé un algorithme efficace pour construire la surface de la dalle, et la même méthode est utilisée pour trouver deux vecteurs de base qui couvrent une orientation de surface donnée, \(\varvec{v}_{1}\) et \(\varvec{v}_{2}\). Voici les descriptions détaillées :
Si un indice de Miller ne contient pas de zéro, on prend (hkl) comme exemple :
Si un indice de Miller contient un zéro, on prend (hk0) comme exemple :
Si un indice de Miller contient deux zéros, nous prenons (h00) comme exemple:
Pour une structure cristalline composée d’une cellule unitaire, et un ensemble d’atomes sont disposés de telle sorte que les atomes sont périodiquement répétés en trois dimensions sur un réseau. La fonction « displayStyle () » propose plusieurs méthodes pour afficher les atomes répétés, et les images correspondantes sont présentées sur la figure 3. Les options suivantes peuvent être choisies dans le 3DStructGen:
-
« Asymétrique » : On présente la sous-unité minimale d’un cristal, constituée d’un ou plusieurs atomes, ions ou molécules, dont l’arrangement géométrique n’est pas lié par la symétrie cristallographique.
-
« Original » : En utilisant ce style, chaque atome sera affiché dans son emplacement original, ainsi que des copies formées en appliquant chacun des opérateurs du groupe de symétrie.
-
« En cellule » : Les atomes sont affichés selon que leurs coordonnées, ainsi que leurs copies symétriques sont dans la cellule du treillis.
-
« Packing » : Les molécules complètes et leurs copies symétriques dans une cellule de treillis seront affichées en fonction du centre géométrique des ensembles connectés d’atomes. Cela donne un affichage de cellule conventionnelle pour la plupart des types de système cristallin.
Les styles ci-dessus permettent aux utilisateurs de visualiser les atomes de la manière souhaitée pour différents scénarios. L' »Asymétrique » peut être utile pour se concentrer sur les détails de la structure minimale lorsque toutes les copies sont invisibles, en particulier pour les grands modèles complexes. Les styles « Original » et « Packing » fournissent les copies des unités, qui démontrent l’information symétrique d’un cristal. Le style « In-cell » donne un aperçu de tous les atomes possibles dans la cellule du réseau, ce qui correspond à la scène réelle de la troncature d’une cellule du réseau à partir du système périodique entier.