Vizualizarea moleculară joacă un rol vital în construirea bazelor de date și a depozitelor, în pregătirea structurilor inițiale pentru calculele de dinamică cuantică și moleculară și în analiza coordonatelor traiectoriei în timp real. Vizualizarea și editarea interactivă a structurii moleculelor poate reduce în mod eficient pragul de simulare și poate îmbunătăți eficiența. Dezvoltarea recentă în domeniul calculului de înaltă performanță (HPC) și al calculului în cloud a dus la apariția multor platforme de calcul online. De exemplu, MatCloud , rescale , WebMO , și MolCalc , oferă servicii web pentru calculul materialelor și al chimiei. Aceste instrumente bazate pe web asigură controlul de la distanță al resurselor de calcul, iar accesibilitatea și compatibilitatea lor le fac extrem de populare. În prezent, este obișnuită utilizarea instrumentelor de vizualizare și de editare structurală 3D bazate pe web pentru a genera structuri model și pentru a pregăti fișierele de intrare pentru simulări.
Software-ul de vizualizare de ultimă generație în domeniul chimiei computaționale este dezvoltat în principal în mediul desktop, cum ar fi Avogadro , Materials Studio , și VESTA . Odată cu creșterea cererii de vizualizare bazată pe web, au apărut mai multe instrumente relevante. De exemplu, 3Dmol , JSmol și Web3DMol conțin capacități puternice de vizualizare, dar lipsește funcția de editare a structurii. Alte instrumente, cum ar fi ChemdoodleWeb , Kekule.js , JSME , pot edita doar structuri în 2 dimensiuni (2D). Instrumentele de editare a structurilor 3D (de exemplu, ChemMozart , CH5M3D ) sunt, de asemenea, raportate în literatura de specialitate. Cu toate acestea, aceste instrumente se concentrează pe modelarea moleculară organică și nu acceptă prelucrarea structurii cristaline. În plus, ChemMozart este implementat utilizând cadrul node.js și nu poate fi utilizat doar ca o bibliotecă ușoară.
Pentru a procesa informațiile chimice pe serverul web, am dezvoltat un program avansat de vizualizare și editare chimică cu următoarele caracteristici. În primul rând, atât molecula organică neperiodică, cât și structura cristalină pot fi vizualizate, construite și editate interactiv. În al doilea rând, este furnizată o gamă largă de algoritmi de cheminformatică pentru structura cristalină, cum ar fi despicarea suprafețelor, stabilirea straturilor de vid și crearea de supercelule. În al treilea rând, este o bibliotecă ușoară implementată folosind JavaScript și poate fi utilizată cu ușurință pentru a furniza servicii web în mod independent sau integrată în alte platforme web. În cele din urmă, fișierele inițiale de intrare pentru VASP și Gaussian pot fi generate prin interacțiunea cu casetele de dialog.
Implementare
La fel ca majoritatea programelor de interfață grafică cu utilizatorul (GUI) pentru calculul chimiei , 3DStructGen se concentrează pe generarea geometriei moleculare inițiale. După cum se arată în Fig. 1, modulele de bază ale moleculei, cristalului și plăcii de suprafață constau din mai multe metode pentru a trata molecula neperiodică, cristalul periodic, precum și sistemul de plăci de suprafață, respectiv. Pânza HTML5 este modulul central de afișare a structurilor 3D și de conectare a tuturor celorlalte module. Modulul mouse-ului oferă utilizatorilor o serie de operațiuni interactive cu ajutorul mouse-ului. Metodele de procesare pentru formatele generale de fișiere chimice (XYZ, SD, MOL, CIF) sunt acceptate în modulul IO, iar fișierul inițial de intrare pentru VASP și Gaussian poate fi produs cu ajutorul modulului de interfață. Modulul de explorare imprimă informațiile interactive (de exemplu, numele fișierului, parametrul de rețea, distanța atomică, coordonatele atomice etc.) pentru utilizatori în timp real. În plus, ChemKit API oferă extensii ale 3DStructGen prin integrarea altor instrumente de chimioformatică.
Element, atom și moleculă
Parametrii elementelor (de ex, numărul atomic, simbolul elementului, masa atomică, culoarea, razele covalente etc.) sunt definiți ca o listă în funcția „element ()”. Funcția „addElem ()” este utilizată pentru a adăuga un element specificat de utilizatori, iar modelul atomic corespunzător va fi vizualizat pe pânză. Toate elementele sunt afișate în aceeași culoare ca în programul VESTA. Molecula de metan este prezentată în canvas atunci când este inițializat 3DStructGen. Reprezentarea „ball-and-stick” a structurilor cu dimensiunea atomilor bazată pe razele lor covalente în mod implicit. În plus, modelele „stick-and-line” pot fi specificate și de utilizatori.
Funcțiile „addAtom ()” și „delAtom ()” sunt utilizate pentru a adăuga un nou atom și, respectiv, pentru a șterge un atom existent într-o moleculă. În mod implicit, se va adăuga un număr adecvat de atomi de hidrogen în conformitate cu regula teoriei octetului, iar unghiurilor de legătură li se atribuie o valoare bazată pe hibridizarea orbitală (sp3 în mod implicit) selectată de utilizatori.
Când se adaugă un nou atom, se creează o legătură în interiorul valorii sale a sumei razelor covalente ale atomilor legați. Legătura dintre perechile de atomi poate fi adăugată cu ajutorul operațiilor mouse-ului prin apelarea funcției „addBond ()”, definită în fișiere sau calculată de 3DStructGen. Funcția „createBond ()” descrie în detaliu regula de legătură: în primul rând, se construiește o listă de atomi posibili de legătură pe baza modelului de valență a legăturii și apoi se calculează distanța pentru acești atomi posibili de legătură. O legătură este creată dacă distanța se încadrează între 0,5 și 1,2 ori suma razei covalente pentru acești atomi de legătură. În acest caz, distanța de 0,5 ori este utilizată pentru a evita legarea între atomii închiși (poate atomi de suprapunere). Funcția „bondMatrix ()” definește o rutină publică pentru a stoca și returna lista de legături. Algoritmul de etichetare grafică (pseudocod în Fig. 2) utilizat pentru recunoașterea cadrului și a invitatului (inclusiv a moleculei de solvent) este dezvoltat pentru a trata cadrele metal-organice (MOF) din baza de date Cambridge structural database (CSD). Metoda noastră de legare a arătat rezultate satisfăcătoare pentru această sarcină, iar rezultatele vizualizării pot fi găsite în secțiunea „Vizualizarea structurii”.
Când se creează o structură, un atom sau un grup de atomi selectați de utilizatori pot fi mutați în sus, în jos, la stânga și la dreapta pe o distanță specificată de utilizator. O optimizare grosieră a geometriei este suportată pentru molecula neperiodică prin optimizarea lungimilor de legătură, a unghiurilor de legătură și a diedrului, urmând aceeași metodă din CH5M3D . O optimizare opțională a geometriei bazată pe metoda forței depuse este, de asemenea, furnizată prin utilizarea API ChemKit, care este explicată mai detaliat în secțiunea „ChemKit API”.
Cristal și placă de suprafață
Funcția „buildCrystal ()” este utilizată pentru a construi structura rețelei cristaline. Făcând clic pe caseta de dialog „build crystal”, grupurile spațiale de simetrie (230 în total), parametrii rețelei, tipurile de atomi și coordonatele pot fi selectate sau editate interactiv de către utilizatori. Când toate operațiile sunt terminate, o structură de cristal va fi afișată în pânza de desen.
Dala supercelulară este un model structural utilizat în simulările de dinamică cuantică sau moleculară pentru a studia proprietățile cinetice , termodinamice și electronice ale suprafeței. Funcția „cleaveSurf ()” prezintă un algoritm pentru a construi placa de suprafață cu orice orientare a indicelui Miller dintr-o celulă unitară masivă a oricărei rețele Bravais. O placă cu două suprafețe este încorporată cu regiuni de vid într-o supercelulă. Sun a propus un algoritm eficient pentru construirea suprafeței plăcii, iar aceeași metodă este utilizată pentru a găsi doi vectori de bază care acoperă o anumită orientare a suprafeței, \(\varvec{v}_{1}\) și \(\varvec{v}_{2}\). Descrierile detaliate sunt următoarele:
Dacă un indice Miller nu conține zerouri, luăm ca exemplu (hkl):
Dacă un indice Miller conține un zero, luăm ca exemplu (hk0):
Dacă un indice Miller conține două zerouri, luăm ca exemplu (h00):
Pentru o structură cristalină compusă dintr-o celulă unitară și un set de atomi sunt dispuși în așa fel încât atomii se repetă periodic în trei dimensiuni pe o rețea. Funcția „displayStyle ()” oferă mai multe metode de afișare a atomilor repetați, iar imaginile relevante sunt prezentate în Fig. 3. Următoarele opțiuni pot fi alese în 3DStructGen:
-
„Asimetric”: Se prezintă subunitatea minimă a unui cristal, formată din unul sau mai mulți atomi, ioni sau molecule, al căror aranjament geometric nu este legat prin simetrie cristalografică.
-
„Original”: Utilizând acest stil, fiecare atom va fi afișat în locația sa originală, împreună cu copiile formate prin aplicarea fiecăruia dintre operatorii din grupul de simetrie.
-
„In-cell”: Atomii sunt afișați în funcție de faptul dacă coordonatele lor, precum și copiile lor simetrice se află în celula rețelei.
-
„Packing”: Moleculele complete și copiile lor simetrice dintr-o celulă de rețea vor fi afișate în funcție de centrul geometric al seturilor conectate de atomi. Aceasta oferă o afișare a celulei convenționale pentru majoritatea tipurilor de sisteme cristaline.
Stilurile de mai sus permit utilizatorilor să vizualizeze atomii în manierele dorite pentru diferite scenarii. „Asimetric” poate fi util pentru a se concentra asupra detaliilor structurii minime atunci când toate copiile sunt invizibile, în special pentru modelele mari și complexe. Stilurile „Original” și „Packing” oferă copii ale unităților, care demonstrează informațiile simetrice ale unui cristal. Stilul „In-cell” surprinde o imagine a tuturor atomilor posibili din celula de rețea, care se potrivește cu scena reală de trunchiere a unei celule de rețea din întregul sistem periodic.
.