Molekylær visualisering spiller en afgørende rolle ved opbygning af databaser og repositorier, forberedelse af indledende strukturer til kvante- og molekylærdynamiske beregninger og analyse af banekoordinater i realtid. Visualisering og interaktiv redigering af molekylernes struktur kan effektivt reducere simuleringstærsklen og forbedre effektiviteten. Den seneste udvikling inden for high-performance computing (HPC) og cloud computing har ført til mange online computing-platforme. F.eks. MatCloud , rescale , WebMO og MolCalc , som tilbyder webtjenester til beregning af materialer og kemi. Disse webbaserede værktøjer giver mulighed for fjernstyring af beregningsressourcer, og deres tilgængelighed og kompatibilitet gør dem yderst populære. I dag er det almindeligt at bruge de webbaserede 3D-strukturvisualiserings- og editorværktøjer til at generere modelstrukturerne og forberede inputfilerne til simuleringer.
Den nyeste visualiseringssoftware inden for beregningskemi er hovedsagelig udviklet på desktopmiljøet, såsom Avogadro , Materials Studio , og VESTA . Med den stigende efterspørgsel efter webbaseret visualisering er der opstået flere relevante værktøjer. For eksempel indeholder 3Dmol , JSmol og Web3DMol kraftfulde visualiseringsfunktioner, men strukturredigeringsfunktionen mangler. Andre værktøjer, såsom ChemdoodleWeb , Kekule.js , JSME , kan kun redigere 2-dimensionelle (2D) strukturer. Der er også rapporteret om værktøjer til redigering af 3D-strukturer (f.eks. ChemMozart , CH5M3D ) i litteraturen. Disse værktøjer fokuserer imidlertid på organisk molekylær modellering og understøtter ikke behandling af krystalstrukturer. Desuden er ChemMozart implementeret ved hjælp af node.js framework, og det kan ikke bruges som et letvægtsbibliotek alene.
For at behandle kemiske oplysninger på webserver har vi udviklet et avanceret kemisk visualiserings- og redigeringsprogram med følgende funktioner. For det første kan både ikke-periodiske organiske molekyler og krystalstrukturer visualiseres, opbygges og redigeres interaktivt. For det andet leveres en bred vifte af cheminformatiske algoritmer til krystalstruktur, såsom kløvning af overflader, etablering af vakuumlag og oprettelse af superceller. For det tredje er det et letvægtsbibliotek, der er implementeret ved hjælp af JavaScript, og det kan let bruges til at levere webtjenester uafhængigt eller integreres i andre webplatforme. Endelig kan de indledende inputfiler til VASP og Gaussian genereres ved at interagere med dialogbokse.
Implementering
Som de fleste programmer med grafisk brugergrænseflade (GUI) til beregning af kemi , fokuserer 3DStructGen på generering af indledende molekylær geometri. Som vist i fig. 1 består de grundlæggende moduler for molekyle, krystal og overfladeplade af flere metoder til håndtering af henholdsvis ikke-periodiske molekyler, periodiske krystaller og overfladepladesystemer. HTML5-canvas er det centrale modul til visning af 3D-strukturer og til at forbinde alle andre moduler. Musemodulet giver brugerne en række interaktive operationer med musen. Behandlingsmetoderne for generelle kemiske filformater (XYZ, SD, MOL, CIF) understøttes i IO-modulet, og den indledende inputfil til VASP og Gaussian kan produceres ved hjælp af grænseflademodulet. Explorer-modulet udskriver de interaktive oplysninger (f.eks. filnavn, gitterparameter, atomafstand, atomkoordinat osv.) for brugerne i realtid. Derudover giver ChemKit API udvidelser af 3DStructGen ved at integrere andre cheminformatikværktøjer.
Element, atom og molekyle
Parametrene for elementer (f.eks, atomnummer, grundstofsymbol, atommasse, farve, kovalente radier osv.) defineres som en liste i “element ()”-funktionen. Funktionen “addElem ()” bruges til at tilføje et element, der er angivet af brugerne, og den tilsvarende atommodel vil blive visualiseret på lærredet. Alle elementer vises i samme farve som i VESTA-programmet. Metanmolekylet præsenteres på lærredet, når 3DStructGen initialiseres. “Ball-and-stick”-repræsentation af strukturerne med størrelsen af atomerne baseret på deres kovalente radier som standard. Desuden kan “stick-and-line”-modellerne også specificeres af brugerne.
Funktionerne “addAtom ()” og “delAtom ()” bruges til henholdsvis at tilføje et nyt atom og slette et eksisterende atom i et molekyle. Som standard vil et passende antal hydrogenatomer blive tilføjet i henhold til reglen for oktetteori, og bindingsvinklerne tildeles en værdi baseret på orbitalhybridisering (sp3 som standard) valgt af brugere.
Når et nyt atom tilføjes, oprettes en binding inden for dens værdi af summen af de kovalente radier for de bundne atomer. Forbindelsen mellem atompar kan tilføjes ved hjælp af museoperationer ved at kalde “addBond ()”-funktionen, defineret i filer eller beregnet af 3DStructGen. Funktionen “createBond ()” beskriver den detaljerede bindingsregel: først opbygges en liste over mulige bindingsatomer baseret på bindingsvalancemodellen, og dernæst beregnes afstanden for disse mulige bindingsatomer. Der oprettes en binding, hvis afstanden ligger mellem 0,5 og 1,2 gange summen af de kovalente radier for disse bindingsatomer. Her anvendes 0,5 gange afstanden for at undgå bindinger mellem de lukkede atomer (måske overlappende atomer). Funktionen “bondMatrix ()” definerer en offentlig rutine til lagring og returnering af bindingslisten. Grafmærkningsalgoritmen (pseudokode i fig. 2), der anvendes til at genkende rammeværk og gæst (herunder opløsningsmiddelmolekyle), er udviklet til at behandle metal-organiske rammeværker (MOF) i Cambridge structural database (CSD) databasen. Vores bindingsmetode har vist tilfredsstillende resultater til denne opgave, og visualiseringsresultaterne kan findes i afsnittet “Strukturvisualisering”.
Når en struktur oprettes, kan et atom eller en gruppe af atomer, der er valgt af brugerne, flyttes i opadgående, nedadgående, venstre og højre retning med en brugerspecificeret afstand. En grov geometrioptimering understøttes for ikke-periodiske molekyler ved at optimere bindingslængder, bindingsvinkler og dihedral efter den samme metode som i CH5M3D . En valgfri geometrioptimering baseret på force filed-metoden leveres også ved hjælp af ChemKit API, som forklares nærmere i afsnittet “ChemKit API”.
Krystal og overfladeplade
Funktionen “buildCrystal ()” bruges til at opbygge en krystalgitterstruktur. Ved at klikke på dialogboksen “build crystal” kan symmetrirumgrupper (230 i alt), gitterparametre, atomtyper og koordinater vælges interaktivt eller redigeres af brugerne. Når alle operationer er færdige, vises en krystalstruktur i lærredet.
Supercellepladen er en strukturel model, der anvendes i kvante- eller molekylærdynamiske simuleringer til at studere overfladekinetiske , termodynamiske , og elektroniske egenskaber. Funktionen “cleaveSurf ()” viser en algoritme til at konstruere en overfladeplade med en hvilken som helst Miller-indeksorientering fra en bulk-enhedscelle i et hvilket som helst Bravais-gitter. En plade med to overflader er indlejret med vakuumområder i en supercelle. Sun foreslog en effektiv algoritme til at konstruere en overfladeplade, og den samme metode anvendes til at finde to basisvektorer, der dækker en given overfladeorientering, \(\varvec{v}_{1}\) og \(\varvec{v}_{2}\). Følgende er de detaljerede beskrivelser:
Hvis et Miller-indeks ikke indeholder nogen nuller, tager vi (hkl) som et eksempel:
Hvis et Miller-indeks indeholder et nul, tager vi (hk0) som et eksempel:
Hvis et Miller-indeks indeholder to nuller, tager vi (h00) som et eksempel:
For en krystalstruktur, der består af en enhedscelle, og et sæt af atomer er arrangeret på en sådan måde, at atomerne gentages periodisk i tre dimensioner på et gitter. Funktionen “displayStyle ()” giver flere metoder til at vise de gentagne atomer, og de relevante billeder er vist i fig. 3. Følgende muligheder kan vælges i 3DStructGen:
-
“Asymmetrisk”: Den mindste underenhed i en krystal præsenteres, som består af et eller flere atomer, ioner eller molekyler, hvis geometriske arrangement ikke er relateret af krystallografisk symmetri.
-
“Original”: “Asymmetrisk”: Ved brug af denne stil vises hvert atom på sin oprindelige placering sammen med kopier, der dannes ved at anvende hver af symmetrigruppens operatorer.
-
“In-cell”: Atomerne vises på baggrund af, om deres koordinater samt deres symmetriske kopier befinder sig i gittercellen.
-
“Packing”: Atomer vises på baggrund af, om deres koordinater samt deres symmetriske kopier befinder sig i gittercellen.
-
De komplette molekyler og deres symmetriske kopier i en gittercelle vises afhængigt af det geometriske centrum af forbundne sæt af atomer. Dette giver en visning af konventionel celle for de fleste typer krystalsystemer.
De ovennævnte stilarter giver brugerne mulighed for at visualisere atomer på ønskede måder for forskellige scenarier. “Asymmetrisk” kan være nyttig til at fokusere på detaljerne i den minimale struktur, når alle kopierne er usynlige, især for store og komplekse modeller. Stilene “Original” og “Packing” giver kopier af enheder, som viser symmetriske oplysninger om en krystal. Stilen “In-cell” fanger et glimt af alle mulige atomer i gittercellen, hvilket svarer til den virkelige scene med afkortning af en gittercelle fra hele det periodiske system.