Molekyylien visualisoinnilla on elintärkeä rooli tietokantojen ja arkistojen rakentamisessa, alkurakenteiden valmistelemisessa kvanttitietokanta- ja molekyylidynamiikkalaskentoja varten sekä ratakoordinaattien analysoinnissa reaaliajassa. Molekyylien rakenteen visualisoinnilla ja interaktiivisella muokkaamisella voidaan tehokkaasti pienentää simuloinnin kynnystä ja parantaa tehokkuutta. Viimeaikainen kehitys suurteholaskennan (HPC) ja pilvilaskennan alalla on johtanut moniin online-laskenta-alustoihin. Esimerkiksi MatCloud , rescale , WebMO ja MolCalc tarjoavat verkkopalveluja materiaalien ja kemian laskentaa varten. Nämä verkkopohjaiset työkalut mahdollistavat laskentaresurssien etähallinnan, ja niiden saavutettavuus ja yhteensopivuus tekevät niistä erittäin suosittuja. Nykyään on yleistä käyttää verkkopohjaisia 3D-rakenteiden visualisointi- ja editointityökaluja mallirakenteiden luomiseksi ja syöttötiedostojen valmistelemiseksi simulaatioita varten.
Laskennallisen kemian alan uusimmat visualisointiohjelmistot on kehitetty pääasiassa työpöytäympäristöön, kuten Avogadro , Materials Studio ja VESTA . Verkkopohjaisen visualisoinnin kysynnän kasvaessa on syntynyt useita asiaankuuluvia työkaluja. Esimerkiksi 3Dmol , JSmol ja Web3DMol sisältävät tehokkaita visualisointiominaisuuksia, mutta rakenteiden muokkaustoiminto puuttuu. Toiset työkalut, kuten ChemdoodleWeb , Kekule.js , JSME , voivat muokata vain kaksiulotteisia (2D) rakenteita. Kirjallisuudessa on myös raportoitu 3D-rakenteiden muokkaustyökaluja (esim. ChemMozart , CH5M3D ). Nämä työkalut keskittyvät kuitenkin orgaaniseen molekyylimallinnukseen, eivätkä ne tue kiderakenteen käsittelyä. Lisäksi ChemMozart on toteutettu käyttäen node.js-kehystä, eikä sitä voi käyttää pelkästään kevyenä kirjastona.
Kemiallisen tiedon käsittelemiseksi verkkopalvelimella kehitimme kehittyneen kemiallisen visualisointi- ja editointiohjelman, jolla on seuraavat ominaisuudet. Ensinnäkin sekä ei-periodista orgaanista molekyyliä että kiderakennetta voidaan visualisoida, rakentaa ja muokata interaktiivisesti. Toiseksi kiderakennetta varten on tarjolla laaja valikoima kemian tietotekniikan algoritmeja, kuten pintojen pilkkominen, tyhjiökerrosten perustaminen ja supersolujen luominen. Kolmanneksi se on kevyt kirjasto, joka on toteutettu JavaScriptillä, ja sitä voidaan helposti käyttää tarjoamaan verkkopalveluja itsenäisesti tai integroida muihin verkkoalustoihin. Lopuksi VASP:n ja Gaussianin alustavat syöttötiedostot voidaan luoda vuorovaikutuksessa valintaikkunoiden kanssa.
Toteutus
Samoin kuin useimmat graafisen käyttöliittymän (GUI) ohjelmat kemian laskentaan , 3DStructGen keskittyy molekyylien alustavan geometrian tuottamiseen. Kuten kuvassa 1 on esitetty, molekyylin, kiteen ja pintalaatan perusmoduulit koostuvat useista menetelmistä, joilla käsitellään ei-jaksollista molekyyliä, jaksollista kristallia sekä pintalaattajärjestelmää. HTML5-kangas on keskeinen moduuli 3D-rakenteiden näyttämiseen ja kaikkien muiden moduulien yhdistämiseen. Hiirimoduuli tarjoaa käyttäjille useita interaktiivisia toimintoja hiirellä. Yleisten kemiallisten tiedostomuotojen (XYZ, SD, MOL, CIF) käsittelymenetelmiä tuetaan IO-moduulissa, ja VASP:n ja Gaussianin alkuperäinen syöttötiedosto voidaan tuottaa käyttöliittymämoduulin avulla. Explorer-moduuli tulostaa interaktiiviset tiedot (esim. tiedoston nimi, ristikkoparametri, atomin etäisyys, atomikoordinaatti jne.) käyttäjille reaaliajassa. Lisäksi ChemKit API tarjoaa 3DStructGenin laajennuksia integroimalla muita kemianinformatiikan työkaluja.
Elementti, atomi ja molekyyli
Elementtien parametrit (esim, atomin numero, alkuaineen symboli, atomimassa, väri, kovalenttiset säteet jne.) määritellään luettelona funktiossa ”elementti ()”. ”addElem ()”-funktiota käytetään käyttäjien määrittelemän elementin lisäämiseen, ja vastaava atomimalli visualisoidaan kankaalle. Kaikki elementit näytetään samalla värillä kuin VESTA-ohjelmassa. Metaanimolekyyli esitetään kankaalla, kun 3DStructGen alustetaan. Rakenteiden ”pallo ja keppi” -esitys, jossa atomien koko perustuu oletusarvoisesti niiden kovalenttisäteisiin. Lisäksi käyttäjät voivat määrittää myös ”sauva-ja-viiva”-mallit.
Funktioita ”addAtom ()” ja ”delAtom ()” käytetään vastaavasti uuden atomin lisäämiseen ja olemassa olevan atomin poistamiseen molekyylissä. Oletusarvoisesti lisätään sopiva määrä vetyatomeja oktettiteorian säännön mukaisesti, ja sidoskulmille annetaan käyttäjien valitsemaan orbitaalihybridisaatioon (oletusarvoisesti sp3) perustuva arvo.
Kun uusi atomi lisätään, luodaan sidos sidottujen atomien kovalenttisten säteiden summan arvonsa sisällä. Atomiparien välinen sidos voidaan lisätä hiiren operaatioilla kutsumalla ”addBond ()”-funktiota, joka on määritelty tiedostoissa tai laskettu 3DStructGenillä. Funktio ”createBond ()” kuvaa yksityiskohtaisesti sidossäännön: ensin muodostetaan luettelo mahdollisista sidosatomeista sidosvalanssimallin perusteella ja sitten lasketaan näiden mahdollisten sidosatomien etäisyys. Sidos luodaan, jos etäisyys on 0,5-1,2 kertaa näiden sidosatomien kovalenttisäteiden summa. Tässä käytetään 0,5-kertaista etäisyyttä, jotta vältetään suljettujen atomien (ehkä päällekkäisten atomien) väliset sidokset. Funktio ”bondMatrix ()” määrittelee julkisen rutiinin, joka tallentaa ja palauttaa sidosluettelon. Graafi-merkintäalgoritmi (pseudokoodi kuvassa 2), jota käytetään kehyksen ja vieraan (myös liuotinmolekyylin) tunnistamiseen, on kehitetty käsittelemään metalli-orgaanisia kehyksiä (MOF) Cambridgen rakennetietokannassa (CSD). Sidontamenetelmämme on osoittanut tyydyttäviä tuloksia tässä tehtävässä, ja visualisointitulokset löytyvät kohdasta ”Structure visualization”.
Kun rakennetta luodaan, voidaan käyttäjän valitsemaa atomia tai atomiryhmää siirtää ylös-, alas-, vasempaan- ja oikeaan suuntaan käyttäjän määrittelemän etäisyyden verran. Karkeaa geometrian optimointia tuetaan ei-periodiselle molekyylille optimoimalla sidospituudet, sidoskulmat ja dihedraalit samaa menetelmää noudattaen kuin CH5M3D:ssä. Valinnainen voimakenttämenetelmään perustuva geometrian optimointi tarjotaan myös käyttämällä ChemKit API:ta, joka selitetään tarkemmin kohdassa ”ChemKit API”.
Kide ja pintalaatta
Funktiota ”buildCrystal ()” käytetään kiderakenteen rakentamiseen. Klikkaamalla ”build crystal” -valintaikkunaa, käyttäjät voivat interaktiivisesti valita tai muokata symmetria-avaruusryhmiä (yhteensä 230), ristikkoparametreja, atomityyppejä ja koordinaatteja. Kun kaikki operaatiot on suoritettu loppuun, kiderakenne näkyy kankaalla.
Superkennolaatta on rakennemalli, jota käytetään kvantti- tai molekyylidynamiikkasimulaatioissa pintakineettisten , termodynaamisten ja elektronisten ominaisuuksien tutkimiseen. Funktio ”cleaveSurf ()” näyttää algoritmin, jolla voidaan rakentaa pintalaatta millä tahansa Miller-indeksin orientaatiolla minkä tahansa Bravais-ristikon bulk-yksikkösolusta. Kahdella pinnalla varustettu laatta on upotettu tyhjiöalueiden kanssa supersoluun. Sun ehdotti tehokasta algoritmia laatan pinnan rakentamiseksi, ja samaa menetelmää käytetään löytämään kaksi perusvektoria, jotka kattavat tietyn pintaorientaation, \(\varvec{v}_{1}\) ja \(\varvec{v}_{2}\). Seuraavassa on yksityiskohtaiset kuvaukset:
Jos Miller-indeksi ei sisällä yhtään nollaa, otetaan esimerkkinä (hkl):
Jos Miller-indeksi sisältää yhden nollan, otetaan esimerkkinä (hk0):
Jos Miller-indeksi sisältää kaksi nollaa, otamme esimerkkinä (h00):
Yksikkösolusta koostuvalle kiderakenteelle ja joukolle atomeja, jotka on järjestetty siten, että atomit toistuvat jaksoittain kolmiulotteisesti ristikon päällä. Funktio ”displayStyle ()” tarjoaa useita menetelmiä toistuvien atomien näyttämiseen, ja vastaavat kuvat on esitetty kuvassa 3. 3DStructGenissä voidaan valita seuraavat vaihtoehdot:
-
”Asymmetric”: Esitetään kiteen minimaalinen alayksikkö, joka koostuu yhdestä tai useammasta atomista, ionista tai molekyylistä, joiden geometriseen järjestelyyn ei liity kiteistä symmetriaa.
-
”Alkuperäinen”: Tätä tyyliä käytettäessä kukin atomi näytetään alkuperäisessä paikassaan yhdessä kopioiden kanssa, jotka on muodostettu soveltamalla kutakin symmetriaryhmän operaattoria.
-
”Solussa”: Atomit näytetään sen perusteella, ovatko niiden koordinaatit sekä niiden symmetriset kopiot ristikon solussa.
-
”Packing”: Täydelliset molekyylit ja niiden symmetriset kopiot ristikkosolussa näytetään sen mukaan, mikä on yhdistettyjen atomijoukkojen geometrinen keskus. Tämä antaa tavanomaisen solun näytön useimmille kidejärjestelmätyypeille.
Yllä mainittujen tyylien avulla käyttäjät voivat visualisoida atomit halutulla tavalla eri skenaarioita varten. ”Epäsymmetrinen” voi olla hyödyllinen, kun halutaan keskittyä minimirakenteen yksityiskohtiin, kun kaikki kopiot ovat näkymättömissä, erityisesti suurissa ja monimutkaisissa malleissa. ”Original”- ja ”Packing”-tyylit tarjoavat yksiköiden kopiot, jotka havainnollistavat kiteen symmetristä tietoa. ”In-cell”-tyyli nappaa silmäyksen kaikista mahdollisista atomeista ristikkosolussa, mikä vastaa todellista kohtausta, jossa ristikkosolu typistetään koko jaksollisesta järjestelmästä.