Wizualizacja molekularna odgrywa istotną rolę w konstruowaniu baz danych i repozytoriów, przygotowywaniu struktur wyjściowych do obliczeń kwantowych i dynamiki molekularnej oraz analizie współrzędnych trajektorii w czasie rzeczywistym. Wizualizacja i interaktywna edycja struktury molekuł może efektywnie zmniejszyć próg symulacji i poprawić wydajność. Niedawny rozwój w dziedzinie wysokowydajnych systemów obliczeniowych (HPC) i chmur obliczeniowych doprowadził do powstania wielu platform obliczeniowych online. Na przykład, MatCloud , rescale , WebMO i MolCalc , zapewniają usługi internetowe do obliczania materiałów i chemii. Te internetowe narzędzia umożliwiają zdalne sterowanie zasobami obliczeniowymi, a ich dostępność i kompatybilność sprawiają, że są niezwykle popularne. Obecnie powszechne jest używanie internetowych narzędzi do wizualizacji strukturalnej 3D i edytorów do generowania struktur modelowych i przygotowywania plików wejściowych do symulacji.
Najnowocześniejsze oprogramowanie wizualizacyjne w dziedzinie chemii obliczeniowej jest rozwijane głównie w środowisku desktopowym, takim jak Avogadro , Materials Studio i VESTA . Wraz z rosnącym zapotrzebowaniem na wizualizację opartą na sieci, pojawiło się kilka odpowiednich narzędzi. Na przykład, 3Dmol , JSmol i Web3DMol zawierają potężne możliwości wizualizacji, ale brakuje w nich funkcji edycji struktury. Inne narzędzia, takie jak ChemdoodleWeb , Kekule.js , JSME , mogą edytować tylko struktury dwuwymiarowe (2D). W literaturze opisywane są również narzędzia do edycji struktur 3D (np. ChemMozart , CH5M3D ). Jednak narzędzia te koncentrują się na modelowaniu molekularnym związków organicznych i nie wspierają przetwarzania struktury krystalicznej. Ponadto, ChemMozart jest zaimplementowany przy użyciu frameworka node.js, i nie może być używany tylko jako lekka biblioteka.
W celu przetwarzania informacji chemicznych na serwerze internetowym, opracowaliśmy zaawansowany program do wizualizacji i edytora chemicznego z następującymi funkcjami. Po pierwsze, zarówno nieperiodyczne cząsteczki organiczne jak i struktury krystaliczne mogą być wizualizowane, budowane i edytowane interaktywnie. Po drugie, dostępny jest szeroki zakres algorytmów cheminformatycznych dla struktury krystalicznej, takich jak rozszczepianie powierzchni, tworzenie warstw próżniowych i tworzenie superkomórek. Po trzecie, jest to lekka biblioteka zaimplementowana przy użyciu JavaScript, która może być łatwo wykorzystana do świadczenia usług internetowych niezależnie lub zintegrowana z innymi platformami internetowymi. Wreszcie, początkowe pliki wejściowe dla VASP i Gaussian mogą być generowane poprzez interakcję z oknami dialogowymi.
Implementacja
Tak jak większość programów z graficznym interfejsem użytkownika (GUI) dla chemii obliczeniowej, 3DStructGen skupia się na generowaniu początkowej geometrii molekularnej. Jak pokazano na Rys. 1, podstawowe moduły molekuły, kryształu i płyty powierzchniowej składają się z kilku metod radzenia sobie z nieperiodyczną molekułą, periodycznym kryształem, jak również systemem płyt powierzchniowych, odpowiednio. Płótno HTML5 jest centralnym modułem do wyświetlania struktur 3D i łączenia wszystkich innych modułów. Moduł myszy zapewnia użytkownikom szereg interaktywnych operacji wykonywanych za pomocą myszy. Metody przetwarzania dla ogólnych formatów plików chemicznych (XYZ, SD, MOL, CIF) są obsługiwane w module IO, a początkowy plik wejściowy dla VASP i Gaussian może być produkowany przy użyciu modułu interfejsu. Moduł eksploratora drukuje interaktywne informacje (np. nazwa pliku, parametr kraty, odległość atomu, współrzędne atomu, itp.) dla użytkowników w czasie rzeczywistym. Dodatkowo, ChemKit API zapewnia rozszerzenia 3DStructGen poprzez integrację innych narzędzi cheminformatycznych.
Element, atom i cząsteczka
Parametry elementów (np, numer atomu, symbol pierwiastka, masa atomowa, kolor, promienie kowalencyjne itp.) są zdefiniowane jako lista w funkcji „element ()”. Funkcja „addElem ()” służy do dodania elementu określonego przez użytkownika, a odpowiadający mu model atomu zostanie zwizualizowany na płótnie. Wszystkie elementy są wyświetlane w tym samym kolorze, co w programie VESTA. Cząsteczka metanu jest prezentowana na płótnie podczas inicjalizacji 3DStructGen. Domyślnie reprezentacja struktur typu „kula i patyk” z rozmiarami atomów opartymi na ich promieniach kowalencyjnych. Poza tym, modele typu „stick-and-line” mogą być również określone przez użytkowników.
Funkcje „addAtom ()” i „delAtom ()” są używane odpowiednio do dodania nowego atomu i usunięcia istniejącego atomu w cząsteczce. Domyślnie dodawana jest odpowiednia liczba atomów wodoru zgodnie z regułą teorii oktetu, a kąty wiązań są przypisywane do wartości opartej na hybrydyzacji orbitali (domyślnie sp3) wybranej przez użytkownika.
Gdy dodawany jest nowy atom, tworzone jest wiązanie w obrębie jego wartości sumy promieni kowalencyjnych wiązanych atomów. Połączenie pomiędzy parami atomów może być dodawane za pomocą operacji myszy poprzez wywołanie funkcji „addBond ()”, zdefiniowanej w plikach lub obliczonej przez 3DStructGen. Funkcja „createBond ()” opisuje szczegółową zasadę wiązania: najpierw budowana jest lista możliwych atomów wiążących na podstawie modelu walencyjnego wiązania, a następnie obliczana jest odległość dla tych możliwych atomów wiążących. Wiązanie jest tworzone, jeśli odległość mieści się między 0,5 i 1,2 sumy promieni kowalencyjnych dla tych atomów wiążących. Tutaj 0,5-krotna odległość jest używana, aby uniknąć wiązania między zamkniętymi atomami (może nakładać się na siebie atomy). Funkcja „bondMatrix ()” definiuje publiczną procedurę do przechowywania i zwracania listy wiązań. Algorytm etykietowania grafu (pseudokod na Rys. 2) używany do rozpoznawania szkieletu i gościa (w tym cząsteczki rozpuszczalnika) został opracowany do radzenia sobie z metaloorganicznymi szkieletami (MOF) w bazie danych Cambridge Structural Database (CSD). Nasza metoda wiązania wykazała zadowalające wyniki dla tego zadania, a wyniki wizualizacji można znaleźć w rozdziale „Wizualizacja struktury”.
Podczas tworzenia struktury atom lub grupa atomów wybranych przez użytkownika może być przesuwana w kierunkach góra, dół, lewo i prawo o określoną przez użytkownika odległość. Prymitywna optymalizacja geometrii jest obsługiwana dla nieperiodycznych molekuł poprzez optymalizację długości wiązań, kątów wiązań i dwuścianów zgodnie z tą samą metodą w CH5M3D. Opcjonalna optymalizacja geometrii oparta na metodzie force filed jest również dostarczana przez użycie ChemKit API, co jest wyjaśnione bardziej szczegółowo w sekcji „ChemKit API”.
Kryształ i płyta powierzchniowa
Funkcja „buildCrystal ()” jest używana do budowania struktury sieci krystalicznej. Klikając okno dialogowe „buduj kryształ”, grupy przestrzeni symetrii (w sumie 230), parametry sieci, typy atomów i współrzędne mogą być interaktywnie wybierane lub edytowane przez użytkowników. Gdy wszystkie operacje zostaną zakończone, struktura kryształu zostanie pokazana w płótnie.
Płyta superkomórkowa jest modelem strukturalnym używanym w symulacjach kwantowych lub symulacjach dynamiki molekularnej do badania kinetycznych powierzchni, termodynamicznych i elektronicznych właściwości. Funkcja „cleaveSurf ()” pokazuje algorytm konstruowania płyt powierzchniowych o dowolnej orientacji indeksu Millera z masowej komórki jednostkowej dowolnej siatki Bravaisa. Płyta z dwiema powierzchniami jest osadzona z regionami próżni w superkomórce. Sun zaproponował wydajny algorytm konstruowania powierzchni płyty i ta sama metoda jest używana do znalezienia dwóch wektorów bazowych, które obejmują daną orientację powierzchni, \(\varvec{v}_{1}\) i \(\varvec{v}_{2}\). Poniżej znajdują się szczegółowe opisy:
Jeżeli indeks Millera nie zawiera zer, bierzemy (hkl) jako przykład:
Jeżeli indeks Millera zawiera jedno zero, bierzemy (hk0) jako przykład:
Jeżeli indeks Millera zawiera dwa zera, za przykład weźmiemy (h00):
Dla struktury krystalicznej składającej się z komórki jednostkowej, a zestaw atomów jest ułożony w taki sposób, że atomy powtarzają się okresowo w trzech wymiarach na siatce. Funkcja „displayStyle ()” udostępnia kilka metod wyświetlania powtarzających się atomów, a odpowiednie obrazy pokazane są na Rys. 3. W 3DStructGen można wybrać następujące opcje:
-
„Asymmetric”: Przedstawiona jest minimalna podjednostka kryształu, składająca się z jednego lub więcej atomów, jonów lub molekuł, których układ geometryczny nie jest związany przez symetrię krystalograficzną.
-
„Oryginalny”: Używając tego stylu, każdy atom będzie wyświetlany w swojej oryginalnej lokalizacji, wraz z kopiami utworzonymi przez zastosowanie każdego z operatorów grupy symetrii.
-
„In-cell”: Atomy są wyświetlane na podstawie tego, czy ich współrzędne, jak również ich kopie symetryczne znajdują się w komórce kraty.
-
„Packing”: Kompletne molekuły i ich symetryczne kopie w komórce kratowej będą wyświetlane w zależności od geometrycznego środka połączonych zestawów atomów. Daje to wyświetlanie konwencjonalnej komórki dla większości typów układów krystalicznych.
Powyższe style pozwalają użytkownikom na wizualizację atomów w pożądany sposób dla różnych scenariuszy. Asymetryczny” może być przydatny do skupienia się na szczegółach minimalnej struktury, gdy wszystkie kopie są niewidoczne, szczególnie dla dużych i złożonych modeli. Style „Original” i „Packing” dostarczają kopii jednostek, które demonstrują symetryczne informacje o krysztale. Styl „In-cell” pozwala uchwycić wszystkie możliwe atomy w komórce kratowej, co odpowiada rzeczywistej scenie wycinania komórki kratowej z całego układu okresowego.
.