A molekuláris vizualizáció létfontosságú szerepet játszik az adatbázisok és adattárak létrehozásában, a kvantum- és molekuladinamikai számításokhoz szükséges kiindulási szerkezetek előkészítésében, valamint a pályakoordináták valós idejű elemzésében. A molekulák szerkezetének vizualizálása és interaktív szerkesztése hatékonyan csökkentheti a szimulációs küszöböt és javíthatja a hatékonyságot. A nagy teljesítményű számítástechnika (HPC) és a felhőalapú számítástechnika közelmúltbeli fejlődése számos online számítástechnikai platformot eredményezett. Például a MatCloud , a rescale , a WebMO és a MolCalc , webes szolgáltatásokat nyújtanak anyagok és kémiai számításokhoz. Ezek a webalapú eszközök távolról vezérelhető számítási erőforrásokat biztosítanak, és hozzáférhetőségük és kompatibilitásuk miatt rendkívül népszerűek. Napjainkban a modellszerkezetek generálásához és a szimulációkhoz szükséges bemeneti fájlok előkészítéséhez gyakran használják a webalapú 3D szerkezeti vizualizációs és szerkesztőeszközöket.
A számításos kémia területén a legkorszerűbb vizualizációs szoftvereket elsősorban asztali környezetre fejlesztik, mint például az Avogadro , Materials Studio , és VESTA . A webalapú vizualizáció iránti növekvő igényekkel számos releváns eszköz jelent meg. Például a 3Dmol , a JSmol és a Web3DMol erőteljes vizualizációs képességeket tartalmaz, de hiányzik a szerkezetszerkesztő funkció. Más eszközök, mint például a ChemdoodleWeb , Kekule.js , JSME , csak 2 dimenziós (2D) szerkezetek szerkesztésére képesek. Az irodalomban 3D szerkezetszerkesztő eszközökről (pl. ChemMozart , CH5M3D ) is beszámolnak. Ezek az eszközök azonban a szerves molekulamodellezésre összpontosítanak, és nem támogatják a kristályszerkezetek feldolgozását. Ráadásul a ChemMozartot node.js keretrendszerrel valósították meg, és önmagában nem használható könnyű könyvtárként.
A kémiai információk webszervereken történő feldolgozása érdekében egy fejlett kémiai vizualizációs és szerkesztő programot fejlesztettünk ki, amely a következő funkciókkal rendelkezik. Először is, mind a nem periodikus szerves molekula, mind a kristályszerkezet interaktívan vizualizálható, építhető és szerkeszthető. Másodszor, a kristályszerkezetre vonatkozó keminformatikai algoritmusok széles választéka áll rendelkezésre, mint például a felületek hasítása, vákuumrétegek létrehozása és szupercellák létrehozása. Harmadszor, ez egy könnyű, JavaScript segítségével megvalósított könyvtár, és könnyen használható webes szolgáltatás nyújtására önállóan vagy más webes platformokba integrálva. Végül a VASP és a Gaussian kezdeti bemeneti fájljai párbeszédpanelekkel való interakcióval generálhatók.
Implementáció
A legtöbb grafikus felhasználói felületű (GUI) programhoz hasonlóan a számítástechnikai kémiához , a 3DStructGen a kezdeti molekulageometria generálására összpontosít. Amint az 1. ábrán látható, a molekula, a kristály és a felületi lemez alapmoduljai több módszerből állnak a nem periodikus molekula, a periodikus kristály, valamint a felületi lemez rendszer kezelésére. A HTML5 vászon a központi modul a 3D szerkezetek megjelenítésére és az összes többi modul összekapcsolására. Az egérmodul számos interaktív műveletet biztosít az egérrel a felhasználók számára. Az IO modul támogatja az általános kémiai fájlformátumok (XYZ, SD, MOL, CIF) feldolgozási módszereit, és a VASP és a Gaussian kezdeti bemeneti fájlja az interfész modul segítségével állítható elő. Az explorer modul valós időben kiírja az interaktív információkat (pl. fájlnév, rácsparaméter, atomtávolság, atomkoordináta stb.) a felhasználók számára. Ezenkívül a ChemKit API más kéminformatikai eszközök integrálásával bővíti a 3DStructGen-t.
![](http://media.springernature.com/lw685/springer-static/image/art%3A10.1186%2Fs13321-020-0411-2/MediaObjects/13321_2020_411_Fig1_HTML.png)
Áttekintés a 3DStructGen alapvető moduljairól és funkcióiról
Elem, atom és molekula
Az elemek paraméterei (Pl, atomszám, elemszimbólum, atomtömeg, szín, kovalens sugarak stb.) az “element ()” függvényben listaként vannak definiálva. Az “addElem ()” függvény a felhasználók által megadott elem hozzáadására szolgál, és a megfelelő atommodell megjelenik a vásznon. Minden elem ugyanolyan színben jelenik meg, mint a VESTA programban. A metán molekula a 3DStructGen inicializálásakor jelenik meg a vásznon. A szerkezetek “gömb-pálcika” ábrázolása, az atomok mérete alapértelmezés szerint a kovalens sugarak alapján. Emellett a “stick-and-line” modelleket is megadhatják a felhasználók.
Az “addAtom ()” és a “delAtom ()” függvények egy új atom hozzáadására, illetve egy meglévő atom törlésére szolgálnak a molekulában. Alapértelmezés szerint megfelelő számú hidrogénatom kerül hozzáadásra az oktettelmélet szabálya szerint, a kötésszögek pedig a felhasználók által kiválasztott orbitális hibridizáció (alapértelmezésben sp3) alapján kapnak értéket.
Az új atom hozzáadásakor egy kötés jön létre a kötött atomok kovalens sugarainak összegének értékén belül. Az atompárok közötti kapcsolatot az egérrel végzett műveletekkel lehet hozzáadni az “addBond ()” függvény hívásával, a fájlokban definiálva vagy a 3DStructGen által kiszámítva. A “createBond ()” függvény részletesen leírja a kötési szabályt: először a kötés valencia modellje alapján összeállítjuk a lehetséges kötő atomok listáját, majd kiszámítjuk a lehetséges kötő atomok távolságát. Kötés akkor jön létre, ha a távolság e kötőatomok kovalens sugarainak összegének 0,5 és 1,2-szerese közé esik. Itt a 0,5-szeres távolságot a zárt atomok (esetleg átfedő atomok) közötti kötés elkerülésére használjuk. A “bondMatrix ()” függvény egy nyilvános rutint definiál a kötéslista tárolására és visszaadására. A váz és a vendég (beleértve az oldószer-molekulát is) felismerésére használt gráfcímkézési algoritmust (pszeudo kód a 2. ábrán) a Cambridge-i strukturális adatbázisban (CSD) található fém-szerves vázak (MOF) kezelésére fejlesztettük ki. A kötési módszerünk kielégítő eredményeket mutatott erre a feladatra, és a vizualizációs eredmények a “Struktúra vizualizáció” fejezetben találhatók.
![](http://media.springernature.com/lw685/springer-static/image/art%3A10.1186%2Fs13321-020-0411-2/MediaObjects/13321_2020_411_Fig2_HTML.png)
A gráfcímkéző algoritmus pszeudokódja
A szerkezet létrehozásakor a felhasználó által kiválasztott atom vagy atomcsoport a felhasználó által megadott távolsággal mozgatható felfelé, lefelé, balra és jobbra irányban. A nem periodikus molekulákhoz egy durva geometriaoptimalizálás is támogatott a kötéshosszok, kötésszögek és diéderek optimalizálásával, a CH5M3D-ben is alkalmazott módszert követve. A ChemKit API használatával egy opcionális, force filed módszeren alapuló geometriaoptimalizálás is rendelkezésre áll, amelyet részletesebben a “ChemKit API” fejezetben ismertetünk.
Kristály és felületi tábla
A “buildCrystal ()” függvényt a kristályrácsszerkezet felépítésére használjuk. A “build crystal” párbeszédpanelre kattintva a szimmetria tércsoportok (összesen 230), rácsparaméterek, atomtípusok és koordináták interaktívan kiválaszthatók vagy szerkeszthetők a felhasználók által. Ha minden művelet befejeződött, a kristályszerkezet megjelenik a vásznon.
A szupercellás lemez egy szerkezeti modell, amelyet kvantum- vagy molekuladinamikai szimulációkban használnak a felületi kinetikai , termodinamikai és elektronikus tulajdonságok tanulmányozására. A “cleaveSurf ()” függvény egy olyan algoritmust mutat be, amellyel tetszőleges Miller-index orientációjú felületi tábla konstruálható bármely Bravais-rács ömlesztett egységcellájából. A két felületű tábla vákuumterületekkel beágyazott szupercella. Sun egy hatékony algoritmust javasolt a födémfelület konstruálására, és ugyanezt a módszert használja egy adott felületi orientációt átfogó két bázisvektor, \(\varvec{v}_{1}\) és \(\varvec{v}_{2}\) megtalálására. A következők a részletes leírások:
Ha egy Miller-index nem tartalmaz nullákat, akkor (hkl) a példa:
Ha egy Miller-index egy nullát tartalmaz, akkor (hk0) a példa:
Ha egy Miller-index két nullát tartalmaz, akkor vegyük példának (h00):
Egy egységcellából álló kristályszerkezet esetén az atomok egy halmaza úgy van elrendezve, hogy az atomok periodikusan ismétlődnek három dimenzióban egy rácson. A “displayStyle ()” függvény több módszert is biztosít az ismétlődő atomok megjelenítésére, és a vonatkozó képek a 3. ábrán láthatók. A 3DStructGen-ben a következő lehetőségek választhatók:
![](http://media.springernature.com/lw685/springer-static/image/art%3A10.1186%2Fs13321-020-0411-2/MediaObjects/13321_2020_411_Fig3_HTML.png)
A kristályszerkezet (CSD kód: WAJZUE) különböző stílusokban van ábrázolva. a aszimmetrikus stílus; b eredeti stílus; c cellán belüli stílus; d csomagolási stílus. Ez a szerkezet az 1. kiegészítő fájlban
-
“Aszimmetrikus” című dokumentumban található: Egy kristály minimális alegységét mutatják be, amely egy vagy több atomból, ionból vagy molekulából áll, amelyek geometriai elrendeződését nem a kristályszimmetria köti össze.
-
“Eredeti”: Ezt a stílust használva minden atom az eredeti helyén jelenik meg, a szimmetriacsoport egyes operátorainak alkalmazásával létrehozott másolatokkal együtt.
-
“Sejtben”: Az atomok aszerint jelennek meg, hogy koordinátáik, valamint szimmetrikus másolataik a rácscellában vannak-e.
-
“Csomagolás”: A teljes molekulák és szimmetrikus másolataik a rácscellában attól függően jelennek meg, hogy az atomok összekapcsolt halmazainak geometriai középpontja milyen. Ez a legtöbb kristályrendszer-típus esetében a hagyományos cella megjelenítését adja.
A fenti stílusok lehetővé teszik a felhasználók számára, hogy az atomokat a különböző forgatókönyvekhez kívánt módon jelenítsék meg. Az “Aszimmetrikus” hasznos lehet a minimális szerkezet részleteire való összpontosításhoz, amikor az összes másolat láthatatlan, különösen nagy és összetett modellek esetén. Az “Eredeti” és a “Csomagolás” stílusok az egységek másolatait adják meg, amelyek egy kristály szimmetrikus információit mutatják be. Az “In-cell” stílus a rácscellában lévő összes lehetséges atomot megpillantja, ami megfelel a valós jelenetnek, amikor egy rácscellát a teljes periódusos rendszerből csonkolnak ki.