Avogadro: een geavanceerd semantisch chemisch editor-, visualisatie-, en analyseplatform

De grafische gebruikersinterface

Het eerste wat de meeste mensen zullen zien is het hoofdvenster van de Avogadro applicatie, zoals te zien is in Figuur 4. Er zijn binaire installatieprogramma’s voor Apple Mac OS X en Microsoft Windows, en pakketten voor alle belangrijke Linux distributies. Dit betekent dat Avogadro vrij gemakkelijk kan worden geïnstalleerd op de meeste besturingssystemen. Gemakkelijk te volgen instructies over hoe de laatste broncode te compileren worden ook gegeven op de Avogadro website voor de meer avontuurlijken, of diegenen die een besturingssysteem gebruiken dat nog niet wordt ondersteund.

Figuur 4
figuur 4

De grafische gebruikersinterface van Avogadro.

De Qt-toolkit geeft Avogadro een native look en feel op de drie belangrijkste ondersteunde besturingssystemen-Linux, Apple Mac OS X, en Microsoft Windows. De basisfunctionaliteit die verwacht wordt in een moleculaire bouwer en viewer is geïmplementeerd, samen met een aantal minder gebruikelijke functies. Het is zeer eenvoudig voor nieuwe gebruikers om Avogadro te installeren en binnen enkele minuten hun eerste moleculen te bouwen. Dankzij de Open Babel bibliotheek ondersteunt Avogadro een groot deel van de chemische bestandsformaten die algemeen gebruikt worden. Het overgrote deel van deze functionaliteit is geschreven met behulp van de interface die beschikbaar is gesteld aan plugin-schrijvers, en wordt tijdens runtime geladen. We zullen deze plugin interfaces en beschrijvingen van de plugin types later bespreken.

Semantische chemie

Avogadro heeft CML als standaard bestandsformaat gebruikt vanaf een zeer vroeg stadium; dit werd verkozen boven andere bestandsformaten vanwege de uitbreidbare, semantische structuur die CML biedt, en de beschikbare ondersteuning in Open Babel . De CML-indeling biedt een aantal voordelen ten opzichte van andere gangbare indelingen, zoals de mogelijkheid om de indeling uit te breiden. Hierdoor kunnen Avogadro en andere programma’s toekomstbestendig zijn, door nieuwe informatie en functies toe te voegen die nodig zijn voor een geavanceerde semantisch-bewuste editor op een later tijdstip, terwijl ze nog steeds leesbaar blijven in oudere versies van Avogadro.

Door het gebruik van Open Babel , kan een groot aantal bestandsformaten worden geïnterpreteerd. Bij het uitbreiden van Avogadro om grotere hoeveelheden output van quantum codes in te lezen, was het noodzakelijk om aanzienlijke ontwikkelingsmiddelen te besteden aan het begrijpen en toevoegen van semantische betekenis aan de quantum code output. Dit werk werd ontwikkeld in een plugin, die later werd opgesplitst in een kleine onafhankelijke bibliotheek genaamd OpenQube . Meer recentelijk is door het Quixote-project , JUMBO-Converters en de workshop Semantic Physical Science veel werk verricht om kwantumcodes uit te breiden zodat meer van deze gegevens rechtstreeks uit de code kunnen worden uitgevoerd. Aangezien CML kan worden uitgebreid, is het mogelijk om bestaande conventies voor moleculaire structuurgegevens te hergebruiken, en nieuwe conventies toe te voegen voor de extra kwantumgegevens.

Een molecuul bouwen: atoom voor atoom

Na het openen van Avogadro wordt een venster gepresenteerd zoals dat in Figuur 4. Standaard is het tekengereedschap geselecteerd. Door simpelweg met de linkermuisknop te klikken op het zwarte deel van het scherm kan de gebruiker een koolstofatoom tekenen. Als de gebruiker de linker muisknop indrukt en sleept, wordt een gebonden koolstofatoom getekend tussen het beginpunt en de eindpositie waar de muis wordt losgelaten.

Er is veel moeite gedaan om een intuïtief gereedschap te maken voor het tekenen van kleine moleculen. Veel voorkomende chemische elementen kunnen worden geselecteerd uit een drop-down lijst, of een periodiek systeem kan worden weergegeven om minder voorkomende elementen te selecteren. Klikken op een bestaand atoom verandert het in het op dat moment geselecteerde element, slepen verandert het atoom terug naar zijn vorige element en tekent een nieuw atoom gebonden aan het origineel. Als de bindingen met de linkermuisknop worden aangeklikt, dan wisselt de bindingsvolgorde tussen enkel, dubbel en drievoudig. Sneltoetsen zijn ook beschikbaar, b.v. het typen van het atoom symbool (b.v. “C-o” voor kobalt) verandert het geselecteerde element, of het typen van de nummers “1,” “2,” en “3” verandert de bindingsvolgorde.

Rechtsklikken op atomen of bindingen verwijdert ze. Als het vakje “Hydrogenen aanpassen” is aangevinkt, wordt het aantal hydrogenen dat aan elk atoom is gebonden automatisch aangepast om aan de valentie te voldoen. Als alternatief kan dit ook worden gedaan aan het eind van een bewerkingssessie door gebruik te maken van de “Voeg hydrogenen toe” extensie in het build menu.

Naast het tekengereedschap zijn er twee gereedschappen om de positie van atomen in bestaande moleculen aan te passen. Het “atoom centrisch manipuleren” gereedschap kan worden gebruikt om een atoom of een groep van geselecteerde atomen te verplaatsen. Het “bond centric manipulate” gereedschap kan worden gebruikt om een binding te selecteren, en dan de posities van alle atomen ten opzichte van de geselecteerde binding op verschillende manieren aan te passen (b.v. door de bindingslengte, bindingshoeken, of dihedraalhoeken te veranderen). Deze drie gereedschappen bieden veel flexibiliteit bij het interactief bouwen van kleine moleculen op het scherm.

Als de moleculaire structuur eenmaal compleet is, kan de krachtveld uitbreiding worden gebruikt om een geometrie optimalisatie uit te voeren. Door te klikken op “Extensions” en “Optimize Geometry” wordt een snelle geometrie optimalisatie uitgevoerd op het molecuul. Het krachtveld en de berekeningsparameters kunnen worden aangepast, maar de standaardwaarden zijn voldoende voor de meeste moleculen. Deze workflow is typisch voor het opbouwen van een kleine moleculaire structuur voor gebruik als input voor kwantum berekeningen, of voor publicatie kwaliteit figuren.

Een alternatief is om het “Auto Optimalisatie” gereedschap te combineren met het teken gereedschap. Dit is een unieke manier om het molecuul te modelleren terwijl de geometrie voortdurend wordt geminimaliseerd op de achtergrond. De geometrie-optimalisatie wordt geanimeerd, en het effect van het veranderen van bindingsvolgorde, het toevoegen van nieuwe groepen, of het verwijderen van groepen kan interactief worden bekeken.

Er zijn verschillende dialogen geïmplementeerd om informatie te verschaffen over molecuul-eigenschappen en om parameters, zoals de cartesische coördinaten van de atomen in het molecuul, nauwkeurig te wijzigen.

Een molecuul bouwen: uit fragmenten

Naast het atoom-voor-atoom bouwen van moleculen, kunnen gebruikers ook voorgebouwde fragmenten van gangbare moleculen, liganden of aminozuur-sequenties invoegen, zoals te zien is in figuur 5. In alle gevallen wordt na het invoegen van het fragment het atoom-gecentreerde manipulatiegereedschap geselecteerd, waarmee het fragment gemakkelijk in positie kan worden gebracht.

Figuur 5
figure5

Dialoogvensters voor het invoegen van vooraf gebouwde fragmenten. De linker toont moleculen, de rechter aminozuursequenties.

Gebruikers kunnen ook een SMILES-string voor een molecuul invoegen. In dit geval wordt een ruwe 3D geometrie gegenereerd met behulp van Open Babel en een snelle krachtveld optimalisatie.

Invoer voorbereiden voor kwantumcodes

Er zijn verschillende uitbreidingen ontwikkeld voor Avogadro die de gebruiker helpen bij het voorbereiden van invoerbestanden voor populaire kwantumcodes zoals GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro, en MOPAC200x . De grafische dialoogvensters bevatten de functies die nodig zijn om basiskwantumberekeningen uit te voeren; enkele voorbeelden worden getoond in Figuur 6.

Figure 6
figure6

Dialoogvenster voor het genereren van invoer voor kwantumcodes. Dialoogvensters voor het genereren van invoer voor Q-Chem, NWChem, Molpro en MOPAC200x. Merk op dat de dialoogvensters een vergelijkbare interface hebben, zodat gebruikers meerdere pakketten voor computationele chemie kunnen gebruiken.

De voorvertoning van het invoerbestand onderin elk dialoogvenster wordt bijgewerkt wanneer opties worden gewijzigd. Deze aanpak helpt nieuwe gebruikers van quantumcodes om de syntaxis van invoerbestanden voor verschillende codes te leren, en om snel bruikbare invoerbestanden te genereren terwijl ze leren. De invoer kan ook met de hand worden bewerkt in het dialoogvenster voordat het bestand wordt opgeslagen en aan de quantumcode wordt voorgelegd. De MOPAC-extensie kan ook direct het MOPAC200x-programma uitvoeren als dat beschikbaar is op de computer van de gebruiker, en dan het uitvoerbestand opnieuw in Avogadro laden zodra de berekening is voltooid. Deze functie zal in toekomstige versies van Avogadro worden uitgebreid naar andere kwantumcodes.

De GAMESS-US plugin is een van de meest hoogontwikkelde, met een basisdialoogvenster dat in de meeste andere input-deck-generators aanwezig is, en een geavanceerd dialoogvenster dat veel van de meer ongebruikelijke en complexe rekentypes blootlegt. Naast het geavanceerde dialoogvenster kan het input deck inline worden bewerkt en is het voorzien van syntax highlighting (Figuur 7) zoals gebruikt in veel populaire editors gericht op software ontwikkelaars. Hiermee kunnen eenvoudige tikfouten in trefwoorden worden aangegeven, maar ook moeilijker te herkennen spatiefouten die er anders voor zouden zorgen dat het met de hand bewerkte invoerscherm mislukt wanneer het door GAMESS-US wordt gelezen.

Figuur 7
figuur 7

De GAMESS-US inputdeck-generator. Deze input generator heeft een geavanceerd paneel en syntax highlighting.

Uitlijning en metingen

Eén van de gespecialiseerde tools die standaard in de Avogadro-distributie zit, is de uitlijntool. Dit muisgereedschap vergemakkelijkt de uitlijning van een moleculaire structuur met de coördinaat oorsprong als één atoom is geselecteerd, en langs de gespecificeerde as als twee atomen zijn geselecteerd. Het uitlijngereedschap kan worden gecombineerd met de gereedschappen meten, selecteren en manipuleren om invoer te creëren voor kwantumcodes waarbij de positie en oriëntatie van het molecuul belangrijk is. Een voorbeeld hiervan zijn berekeningen waarbij een extern elektrisch veld op het molecuul wordt toegepast. Bij dit soort berekeningen kan de uitlijning van het molecuul een groot effect hebben. Figuur 8 toont het meetgereedschap in actie, met het configuratiescherm van het uitlijningsgereedschap zichtbaar in de linkerbenedenhoek.

Figuur 8
figure8

Het meetgereedschap. Het meetgereedschap dat wordt gebruikt om hoeken en lengtes van verbindingen te meten (op Linux met KDE 4).

Er konden complexere uitlijningsgereedschappen voor specifieke taken worden gemaakt. Het uitlijningsgereedschap werd in slechts een paar uur gemaakt voor een specifiek onderzoeksproject. Dit is een uitstekend voorbeeld waarbij uitbreidbaarheid zeer belangrijk was voor het uitvoeren van onderzoek met behulp van een grafisch computationeel-chemisch hulpmiddel. Het zou de investering niet waard zijn om een nieuwe applicatie te maken voor het uitlijnen van moleculaire structuren op een as, maar het maken van een plugin voor een uitbreidbaar project is niet onredelijk.

Visualisatie

De Avogadro applicatie gebruikt OpenGL om moleculaire representaties interactief op het scherm te renderen. OpenGL biedt een hoog-niveau, cross-platform API voor het renderen van driedimensionale beelden met behulp van hardware versnelde graphics. OpenGL 1.1 en lager wordt gebruikt in het grootste deel van de rendercode, en dus kan Avogadro zelfs gebruikt worden op oudere computersystemen, of die zonder modernere grafische versnelling. Het is in staat om gebruik te maken van enkele van de nieuwere mogelijkheden van OpenGL 2.0, zoals hieronder beschreven, maar dit is een optionele extra mogelijkheid bij het werken aan nieuwe visualisaties van de moleculaire structuur.

Standaard voorstellingen

In de chemie zijn er verschillende standaard voorstellingen van de moleculaire structuur, oorspronkelijk gebaseerd op die mogelijk zijn met fysische modellen. De Avogadro-applicatie implementeert elk van deze voorstellingen, zoals weergegeven in figuur 2, als een plugin.

Het is ook mogelijk om verschillende representaties te combineren, zoals een bal en stok met ring rendering (figuur 2 (d)), en een semi-transparante Van der Waals ruimte-vullende representatie met een stok representatie om moleculaire ruggengraat te verduidelijken (figuur 2 (f)).

Kwantumberekeningen en elektronische structuur

Kwantumcodes zijn oorspronkelijk ontwikkeld voor lijnprinters, en helaas is er sindsdien weinig veranderd in de standaard logbestanden. Er zijn verschillende formaten ontwikkeld voor gebruik in andere codes en specifiek voor visualisatie en analyse, maar er is weinig overeenstemming over een standaard bestandsformaat in de computationele kwantumchemie gemeenschap. In Avogadro is een plugin ontwikkeld om de output van verschillende kwantumcodes te visualiseren, en de data in het juiste formaat te krijgen voor verdere visualisatie en analyse.

In eerste instantie is in Open Babel ondersteuning toegevoegd en uitgebreid voor Gaussian cube files. Dit formaat geeft atoomcoördinaten en een of meer regelmatig gespreide rasters van scalaire waarden. Deze kunnen worden ingelezen, en technieken zoals het marching cubes algoritme kunnen worden gebruikt om driehoekige mazen van isosurfaces te berekenen bij waarden van bijvoorbeeld elektronendichtheid. Toen de code eenmaal was ontwikkeld om deze isosurfaces te visualiseren, werd duidelijk dat het nuttig zou zijn om deze kubussen direct te kunnen berekenen, en op verschillende detailniveaus, afhankelijk van het beoogde gebruik.

Het eerste formaat, dat enigszins gedocumenteerd was toen het werd ontwikkeld, is het Gaussian-formaat met controlepunten. Dit formaat is veel eenvoudiger te ontleden dan de logbestanden die tijdens het programma worden gegenereerd, en bevat alle details die nodig zijn om de scalaire waarden van de moleculaire orbitaal of elektronendichtheid op elk punt in de ruimte te berekenen. Nadat een klassenstructuur was ontwikkeld voor orbitalen van het Gaussiaanse type, werd de aanpak uitgebreid om verschillende andere populaire uitvoerbestandsformaten in te lezen, waaronder Q-Chem, GAMESS-US, NWChem en Molpro. Later werd ondersteuning voor MOPAC200x toegevoegd, samen met ondersteuning voor het AUX-formaat en de Slater type orbitalen die in die code worden gebruikt. Al deze codes voeren hun uiteindelijke configuraties uit met behulp van de standaard lineaire combinatie van atomaire orbitalen, wat betekent dat parallellisatie uiterst eenvoudig is.

De plugin is ontwikkeld om gebruik te maken van de map-reduce aanpak die door QtConcurrent wordt geboden om alle beschikbare processorkernen te gebruiken. Dit biedt bijna lineaire schaling omdat elk punt in het raster onafhankelijk van alle andere punten kan worden berekend, waarvan de resultaten te zien zijn in figuur 9. Een andere benadering van de berekening van de moleculaire banen werd ontwikkeld in een tweede plugin, die inmiddels is afgesplitst in een apart project met de naam “OpenQube”. De “OpenQube”-bibliotheek is tijdens de Google Summer of Code van 2011 ook als optionele backend aan VTK toegevoegd, met ondersteuning voor verschillende uitvoerbestandsformaten en de berekening van kubusbestanden die later in meer geavanceerde gegevenspijplijnen kunnen worden ingevoerd.

Figuur 9
figuur 9

Moleculaire orbitalen en oppervlakken. Weergave van een moleculair orbitaal isosurface (links) en een elektrostatische oppervlaktepotentiaal in kaart gebracht op de elektronendichtheid (rechts).

Een klassehiërarchie met een standaard API is voorzien voor quantumuitvoer. Om ondersteuning voor nieuwe codes toe te voegen, moest een nieuwe parser worden ontwikkeld en moest ervoor worden gezorgd dat de Gaussische of Slater-verzameling met de juiste volgorde en het verwachte normalisatieschema wordt gevuld. De Gaussische banen van het s-, p- en d-type worden ondersteund, terwijl ondersteuning voor f- en g-banen is gepland om het toenemende aantal berekeningen met deze banen van hogere orde te ondersteunen. De Basis Set Exchange die door EMSL wordt gehost biedt toegang tot de basissets die veel worden gebruikt, hoewel deze basissets momenteel normaal gesproken direct uit de uitvoerbestanden worden ingelezen. Er zijn verschillende verwante projecten om semantische betekenis toe te voegen aan dit soort uitvoer, waaronder het JUMBO-Converters project en Quixote. Gehoopt wordt dat meer codes in de toekomst semantische uitvoer zullen invoeren, met gebruikmaking van een gemeenschappelijk formaat, zodat gegevensuitwisseling, validatie en analyse tussen verschillende codes gemakkelijker worden. Dit was het onderwerp van een recente bijeenkomst waarbij verschillende codes voor computationele chemie begonnen zijn FoX te gebruiken voor de uitvoer van CML. Er is begonnen met de ontwikkeling van code voor het inlezen van CML-uitvoer, hetzij rechtstreeks vanuit de codes, hetzij na conversie van andere formaten met behulp van Open Babel of de JUMBO-Converters. Als voldoende semantische structuur aan CML kan worden toegevoegd, en de converters een voldoende groot bereik van de uitvoer ondersteunen, zou dit het grootste deel van de in OpenQube aanwezige parseercode kunnen vervangen. Semantische betekenis is een van de moeilijkste zaken om uit logbestanden te halen, en door als gemeenschap samen te komen kunnen projecten als Avogadro meer betekenis ontlenen aan de output van deze codes.

Secundaire biologische structuur

Avogadro gebruikt de PDB-reader van Open Babel om de secundaire biologische structuur in te lezen. Er bestaan twee plugins om deze informatie te verwerken en te renderen. De eerste is een plugin die een eenvoudige buis tussen de biomolecuul ruggengraat atomen rendert. Een tweede, meer geavanceerde plugin berekent de meshes voor de alfa-helixen en beta-platen. Terwijl de eerste plugin veel sneller is, produceert de geavanceerde plugin nauwkeuriger de output die in het veld verwacht wordt. Dit geeft gebruikers flexibiliteit bij het renderen van secundaire biologische structuren.

GLSL, novel visualization

GLSL, of OpenGL Shader Language, is een C-achtige syntax die kan worden gebruikt om code te ontwikkelen die op grafische kaarten draait en die is opgenomen in de OpenGL 2.0 specificatie. Het wordt met veel succes gebruikt door de spelletjesindustrie, maar ook op veel gebieden van gegevensvisualisatie. Verscheidene recente papers benadrukken het potentieel in de chemie, zoals QuteMol in het toevoegen van ondersteuning voor functies zoals ambient occlusion om diepte aan afbeeldingen toe te voegen.

Avogadro heeft ondersteuning voor vertex en fragment shader programma’s, en verscheidene voorbeelden zijn gebundeld met het pakket. Als de grafische kaart van de gebruiker daartoe in staat is, kunnen deze programma’s tijdens runtime worden geladen en met groot effect worden gebruikt om structuur te visualiseren. Sommige daarvan bevatten samenvattende technieken zoals isosurface rendering waarbij alleen de randen loodrecht op het beeldvlak zichtbaar zijn, wat een veel betere weergave geeft van zowel de moleculaire als de elektronische structuur (figuur 10).

Figuur 10
figuur10

Moleculaire orbitalen renderen met behulp van GLSL shaders. Rendering van een moleculair orbitaal isosurface met behulp van twee GLSL shaders om de randen van de oppervlakken te benadrukken. Het röntgeneffect (links) en rood en blauw (rechts) tonen de positieve en negatieve moleculaire orbitaalvormen.

Ray tracing

Avogadro gebruikt een schilder-abstractie die het voor ontwikkelaars veel eenvoudiger maakt om nieuwe weergavetypen toe te voegen. Het abstraheert ook de renderer, waardoor het mogelijk wordt om ondersteuning voor alternatieve backends toe te voegen. Momenteel worden alleen OpenGL en POV-Ray ondersteund. Door de abstractie zijn we in staat om de impliciete oppervlakken te gebruiken die beschikbaar zijn in ray tracers om moleculaire structuur te renderen op zeer hoge niveaus van helderheid en zonder de driehoek artefacten die aanwezig zijn in standaard OpenGL gerenderde afbeeldingen. Door de veel hogere kwaliteit van transparantie en reflectie kunnen de afbeeldingen ook worden gebruikt in poster- en mondelinge presentaties en in onderzoeksartikelen (figuur 11).

Figuur 11
figure11

Ray-traced HOMO-isosurfaces van variërende kubusdichtheid. Rendering van een moleculair orbitaal isosurface met behulp van POV-Ray met kubussen van lage (links) en hoge (rechts) dichtheid.

Deze functie is geïmplementeerd in een uitbreiding, met een extra schilderklasse die is afgeleid van de basisklasse en een dialoogvenster waarmee de gebruiker de basis rendering controls kan bewerken. Het POV-Ray invoerbestand kan ook worden behouden en bewerkt om complexere afbeeldingen te produceren, of om een veel fijnere controle over het renderproces mogelijk te maken indien gewenst.

Avogadro bibliotheek in gebruik

Het eerste gebruik van de Avogadro bibliotheek was de Avogadro applicatie, op de voet gevolgd door het Kalzium periodiek systeem programma dat onderdeel is van de KDE software collectie. Dit eerste werk werd gedeeltelijk gefinancierd door het Google Summer of Code programma in 2007, en resulteerde ook in de toevoeging van verschillende andere functies in de Avogadro bibliotheek ter ondersteuning van Kalzium en algemene visualisatie en bewerking van moleculaire structuur (figuur 12).

Figuur 12
figuur12

De Kalzium-toepassing in KDE die Avogadro gebruikt om moleculaire structuren weer te geven.

Het Q-Chem pakket heeft “QUI – The Q-Chem User Interface” ontwikkeld rond Avogadro, oorspronkelijk als een Avogadro uitbreiding. Dit is een meer geavanceerde versie van de input-generator die in Avogadro is ontwikkeld, met een veel hechtere integratie. Molpro heeft ook enkele resultaten gepubliceerd van hun ontwikkeling van een Molpro interface die gebruik maakt van de Avogadro bibliotheek.

Packmol

Packmol is een pakket van derden dat is ontworpen om initiële “ingepakte” configuraties van moleculen te maken voor moleculaire dynamica of andere simulaties . Voorbeelden zijn het omringen van een eiwit met oplosmiddel, mengsels van oplosmiddelen, lipide bilayers, bolvormige micellen, het plaatsen van tegenionen, het toevoegen van liganden aan nanodeeltjes, enz. Meestal hebben gebruikers geëquilibreerde “oplosmiddelboxen” die gedurende lange simulaties zijn uitgevoerd om te zorgen voor de juiste dichtheid en zowel korte- als lange-afstandsinteracties tussen oplosmiddelmoleculen. Het gebruik van dergelijke “solvent boxes” maakt het mogelijk om moleculen, zoals eiwitten, in een ongeveer correcte beginstructuur te plaatsen, zoals die in figuur 13. Het oplosmiddel wordt toegevoegd in de box, en oplosmiddelmoleculen met overlappende atomen worden verwijderd. Hoewel deze hulpprogramma’s vaak voldoende zijn, is het niet altijd gemakkelijk om complexe invoerbestanden te maken. Voor meer ingewikkelde systemen kan Packmol een initiële configuratie creëren op basis van gedefinieerde dichtheden, geometrieën (bv. bol, doos, enz.) en de moleculen die moeten worden geplaatst. Een Avogadro-ontwikkelaar schreef een externe plugin om het gebruik van Packmol te vergemakkelijken, inclusief het schatten van het aantal moleculen in een bepaald volume.

Figure 13
figure13

De PackMol lipidenlaag zoals geproduceerd door de PackMol-extensie.

De plugin wordt momenteel niet standaard bij Avogadro gedistribueerd, hoewel dit wel is gepland voor een toekomstige versie. Het dient als voorbeeld van hoe Avogadro een workflow kan vergemakkelijken met een tekst-georiënteerd pakket (Packmol), inclusief het opslaan van bestanden in het PDB formaat dat Packmol nodig heeft, het genereren van een invoerbestand, en het lezen van de uitvoer voor visualisatie, analyse, en verdere simulaties.

XtalOpt

Het XtalOpt softwarepakket is geïmplementeerd als een C++ uitbreiding van een derde partij op Avogadro en maakt intensief gebruik van de libavogadro API. De uitbreiding implementeert een evolutionair algoritme op maat voor het voorspellen van kristalstructuren. Het XtalOpt ontwikkelingsteam koos Avogadro als platform vanwege zijn open-source licentie, goed ontworpen API, krachtige visualisatie gereedschappen, en intuïtieve gebruikers-interface. XtalOpt bestaat als een dialoog venster (Figuur 14) en gebruikt het Avogadro hoofdvenster voor het visualiseren van kandidaat structuren terwijl ze evolueren. De API is goed geschikt voor de behoeften van XtalOpt, en biedt een eenvoudig mechanisme waarmee de gebruiker de tijdens het zoeken gegenereerde structuren kan bekijken, bewerken en exporteren. Door gebruik te maken van de platformonafhankelijke mogelijkheden van Avogadro en zijn afhankelijkheden, is XtalOpt beschikbaar voor Linux, Windows en Mac.

Figure 14
figure14

De XtalOpt-extensie. De XtalOpt-uitbreiding toont een grafiek van de stabiliteit ten opzichte van de zoekvoortgang voor een TiO2-supercel.

Geef een antwoord

Het e-mailadres wordt niet gepubliceerd.