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.
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.
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:
-
“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.