- Die grafische Benutzeroberfläche
- Semantische Chemie
- Aufbau eines Moleküls: Atom für Atom
- Aufbau eines Moleküls: aus Fragmenten
- Vorbereitung von Eingaben für Quantencodes
- Ausrichtung und Messungen
- Visualisierung
- Standarddarstellungen
- Quantenberechnungen und elektronische Struktur
- Sekundäre biologische Struktur
- GLSL, neuartige Visualisierung
- Ray tracing
- Avogadro-Bibliothek im Einsatz
- Packmol
- XtalOpt
Die grafische Benutzeroberfläche
Das erste, was die meisten Menschen sehen werden, ist das Hauptfenster der Avogadro-Anwendung, wie in Abbildung 4 dargestellt. Binäre Installationsprogramme werden für Apple Mac OS X und Microsoft Windows sowie Pakete für alle wichtigen Linux-Distributionen bereitgestellt. Dies bedeutet, dass Avogadro auf den meisten Betriebssystemen recht einfach installiert werden kann. Auf der Avogadro-Hauptseite finden sich auch leicht verständliche Anleitungen zum Kompilieren des aktuellen Quellcodes für die Abenteuerlustigen oder für diejenigen, die ein noch nicht unterstütztes Betriebssystem verwenden.
Das Qt-Toolkit verleiht Avogadro ein natives Aussehen und Gefühl auf den drei wichtigsten unterstützten Betriebssystemen – Linux, Apple Mac OS X und Microsoft Windows. Die grundlegenden Funktionen, die man von einem Molecular Builder und Viewer erwartet, wurden implementiert, zusammen mit einigen weniger verbreiteten Funktionen. Für neue Benutzer ist es sehr einfach, Avogadro zu installieren und innerhalb weniger Minuten ihre ersten Moleküle zu erstellen. Dank der Open Babel-Bibliothek unterstützt Avogadro einen großen Teil der gängigen chemischen Dateiformate. Der überwiegende Teil dieser Funktionalität wurde unter Verwendung der den Plugin-Autoren zur Verfügung gestellten Schnittstelle geschrieben und wird zur Laufzeit geladen. Wir werden diese Plugin-Schnittstellen und die Beschreibungen der Plugin-Typen später besprechen.
Semantische Chemie
Avogadro hat von Anfang an CML als Standard-Dateiformat verwendet; dies wurde wegen der erweiterbaren, semantischen Struktur von CML und der Unterstützung durch Open Babel gewählt. Das CML-Format bietet eine Reihe von Vorteilen gegenüber anderen gebräuchlichen Formaten, darunter die Möglichkeit, das Format zu erweitern. Dadurch sind Avogadro und andere Programme zukunftssicher und können zu einem späteren Zeitpunkt neue Informationen und Funktionen hinzufügen, die für einen fortgeschrittenen semantischen Editor erforderlich sind, während sie in älteren Versionen von Avogadro lesbar bleiben.
Durch die Verwendung von Open Babel kann eine große Anzahl von Dateiformaten interpretiert werden. Bei der Erweiterung von Avogadro zum Einlesen größerer Mengen der Ausgabe von Quantencodes war es notwendig, erhebliche Entwicklungsressourcen für das Verständnis und die semantische Bedeutung der Quantencode-Ausgabe aufzuwenden. Diese Arbeit wurde in einem Plugin entwickelt, das später in eine kleine unabhängige Bibliothek namens OpenQube aufgeteilt wurde. In jüngster Zeit wurde im Rahmen des Quixote-Projekts, des JUMBO-Converters und des Semantic Physical Science Workshop viel Arbeit geleistet, um Quantencodes so zu erweitern, dass mehr dieser Daten direkt aus dem Code ausgegeben werden. Da CML erweitert werden kann, ist es möglich, bestehende Konventionen für Molekülstrukturdaten wiederzuverwenden und neue Konventionen für die zusätzlichen Quantendaten hinzuzufügen.
Aufbau eines Moleküls: Atom für Atom
Nach dem Öffnen von Avogadro erscheint ein Fenster, wie es in Abbildung 4 dargestellt ist. Standardmäßig ist das Zeichenwerkzeug ausgewählt. Mit einem einfachen Linksklick auf den schwarzen Teil der Anzeige kann der Benutzer ein Kohlenstoffatom zeichnen. Wenn der Benutzer die linke Maustaste drückt und zieht, wird ein gebundenes Kohlenstoffatom zwischen dem Startpunkt und der Endposition, an der die Maus losgelassen wird, gezeichnet.
Es wurde viel Aufwand betrieben, um ein intuitives Werkzeug zum Zeichnen kleiner Moleküle zu schaffen. Gängige chemische Elemente können aus einer Dropdown-Liste ausgewählt werden, oder es kann ein Periodensystem angezeigt werden, um weniger gängige Elemente auszuwählen. Durch Klicken auf ein vorhandenes Atom wird es in das aktuell ausgewählte Element umgewandelt, durch Ziehen wird das Atom wieder in sein vorheriges Element umgewandelt und ein neues Atom gezeichnet, das an das ursprüngliche gebunden ist. Wenn die Bindungen mit der linken Maustaste angeklickt werden, wechselt die Bindungsreihenfolge zwischen Einfach-, Doppel- und Dreifachbindung. Es stehen auch Tastenkombinationen zur Verfügung, z. B. die Eingabe des Atomsymbols (z. B. „C-o“ für Kobalt) ändert das ausgewählte Element, oder die Eingabe der Zahlen „1“, „2“ und „3“ ändert die Bindungsreihenfolge.
Durch Rechtsklick auf Atome oder Bindungen werden diese gelöscht. Wenn das Kästchen „Hydrogene anpassen“ markiert ist, wird die Anzahl der an jedes Atom gebundenen Wasserstoffatome automatisch angepasst, um die Wertigkeit zu erfüllen. Alternativ kann dies auch am Ende einer Bearbeitungssitzung mit der Erweiterung „Wasserstoff hinzufügen“ im Erstellungsmenü erfolgen.
Zusätzlich zum Zeichenwerkzeug gibt es zwei Werkzeuge, um die Position von Atomen in bestehenden Molekülen anzupassen. Mit dem Werkzeug „Atomzentrisches Manipulieren“ kann ein Atom oder eine Gruppe von ausgewählten Atomen verschoben werden. Mit dem Werkzeug „Bindungszentriertes Manipulieren“ können Sie eine Bindung auswählen und dann die Position aller Atome in Bezug auf die ausgewählte Bindung auf verschiedene Weise anpassen (z. B. durch Änderung der Bindungslänge, der Bindungswinkel oder der Flächenwinkel). Diese drei Werkzeuge ermöglichen ein hohes Maß an Flexibilität beim interaktiven Aufbau kleiner Moleküle am Bildschirm.
Ist die Molekülstruktur fertiggestellt, kann mit der Kraftfelderweiterung eine Geometrieoptimierung durchgeführt werden. Durch Anklicken von „Erweiterungen“ und „Geometrie optimieren“ wird eine schnelle Geometrieoptimierung des Moleküls durchgeführt. Das Kraftfeld und die Berechnungsparameter können angepasst werden, aber die Standardeinstellungen sind für die meisten Moleküle ausreichend. Dieser Arbeitsablauf ist typisch für den Aufbau kleiner Molekülstrukturen zur Verwendung als Input für Quantenberechnungen oder für Abbildungen in Publikationsqualität.
Eine Alternative besteht darin, das Werkzeug „Automatische Optimierung“ mit dem Zeichenwerkzeug zu kombinieren. Dies stellt eine einzigartige Möglichkeit dar, das Molekül zu formen, während die Geometrie im Hintergrund ständig minimiert wird. Die Geometrieoptimierung ist animiert, und die Auswirkung einer Änderung der Bindungsreihenfolge, des Hinzufügens neuer Gruppen oder des Entfernens von Gruppen kann interaktiv beobachtet werden.
Es sind verschiedene Dialoge implementiert, die Informationen über die Moleküleigenschaften liefern und eine präzise Änderung von Parametern wie den kartesischen Koordinaten der Atome im Molekül ermöglichen.
Aufbau eines Moleküls: aus Fragmenten
Neben dem Aufbau von Molekülen Atom für Atom kann der Benutzer auch vorgefertigte Fragmente gängiger Moleküle, Liganden oder Aminosäuresequenzen einfügen, wie in Abbildung 5 gezeigt. In allen Fällen wird nach dem Einfügen des Fragments das atomzentrierte Manipulationswerkzeug ausgewählt, mit dem das Fragment leicht in die richtige Position bewegt oder gedreht werden kann.
Benutzer können auch eine SMILES-Zeichenkette für ein Molekül einfügen. In diesem Fall wird mit Open Babel und einer schnellen Kraftfeldoptimierung eine grobe 3D-Geometrie erzeugt.
Vorbereitung von Eingaben für Quantencodes
Für Avogadro wurden mehrere Erweiterungen entwickelt, die den Benutzer bei der Vorbereitung von Eingabedateien für gängige Quantencodes wie GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro und MOPAC200x unterstützen. Die grafischen Dialoge stellen die Funktionen vor, die für die Durchführung grundlegender Quantenberechnungen erforderlich sind; einige Beispiele sind in Abbildung 6 dargestellt.
Die Vorschau der Eingabedatei am unteren Rand jedes Dialogs wird aktualisiert, wenn Optionen geändert werden. Dieser Ansatz hilft neuen Benutzern von Quantencodes, die Syntax der Eingabedateien für verschiedene Codes zu erlernen und schnell nützliche Eingabedateien zu erzeugen, während sie lernen. Die Eingaben können auch von Hand im Dialogfeld bearbeitet werden, bevor die Datei gespeichert und an den Quantencode übermittelt wird. Die MOPAC-Erweiterung kann auch das Programm MOPAC200x direkt ausführen, wenn es auf dem Computer des Benutzers verfügbar ist, und dann die Ausgabedatei in Avogadro zurückladen, sobald die Berechnung abgeschlossen ist. Diese Funktion wird in zukünftigen Versionen von Avogadro auf andere Quantencodes ausgeweitet werden.
Das GAMESS-US-Plugin ist eines der am weitesten entwickelten, mit einem Basisdialog, der in den meisten anderen Eingabedeck-Generatoren vorhanden ist, sowie einem erweiterten Dialog, der viele der ungewöhnlicheren und komplexeren Berechnungstypen zeigt. Zusätzlich zum erweiterten Dialog kann das Eingabedeck inline bearbeitet werden und verfügt über eine Syntaxhervorhebung (Abbildung 7), wie sie in vielen gängigen Editoren für Softwareentwickler verwendet wird. Dadurch können einfache Tippfehler in Schlüsselwörtern sowie schwer erkennbare Leerzeichenfehler angezeigt werden, die andernfalls dazu führen würden, dass der von Hand bearbeitete Eingabedeck beim Lesen durch GAMESS-US fehlschlägt.
Ausrichtung und Messungen
Eines der speziellen Werkzeuge, die in der Standarddistribution von Avogadro enthalten sind, ist das Ausrichtungswerkzeug. Dieses Mauswerkzeug erleichtert die Ausrichtung einer Molekülstruktur mit dem Koordinatenursprung, wenn ein Atom ausgewählt ist, und entlang der angegebenen Achse, wenn zwei Atome ausgewählt sind. Das Ausrichtungswerkzeug kann mit den Mess-, Auswahl- und Manipulationswerkzeugen kombiniert werden, um Eingaben für Quantencodes zu erstellen, bei denen die Position und Ausrichtung des Moleküls wichtig ist. Ein Beispiel hierfür sind Berechnungen, bei denen ein externes elektrisches Feld an das Molekül angelegt wird. Bei dieser Art von Berechnungen kann die Ausrichtung des Moleküls eine große Wirkung haben. Abbildung 8 zeigt das Messwerkzeug in Aktion mit dem Konfigurationsdialog des Ausrichtungswerkzeugs in der linken unteren Ecke.
Komplexere Ausrichtungswerkzeuge für spezielle Aufgaben könnten erstellt werden. Das Alignment-Tool wurde in nur wenigen Stunden für ein bestimmtes Forschungsprojekt erstellt. Dies ist ein Paradebeispiel dafür, wie wichtig die Erweiterbarkeit für die Durchführung von Forschungsarbeiten mit einem grafischen Tool für computergestützte Chemie ist. Es würde sich nicht lohnen, eine neue Anwendung zu erstellen, nur um Molekülstrukturen an einer Achse auszurichten, aber die Erstellung eines Plugins für ein erweiterbares Projekt ist nicht unvernünftig.
Visualisierung
Die Avogadro-Anwendung verwendet OpenGL, um Moleküldarstellungen interaktiv auf den Bildschirm zu übertragen. OpenGL ist eine plattformübergreifende High-Level-API für die Darstellung dreidimensionaler Bilder mit hardwarebeschleunigter Grafik. Der Großteil des Rendering-Codes basiert auf OpenGL 1.1 und darunter, so dass Avogadro auch auf älteren Computersystemen oder solchen ohne modernere Grafikbeschleunigung verwendet werden kann. Avogadro ist in der Lage, einige der neueren Funktionen von OpenGL 2.0 zu nutzen, wie unten beschrieben, aber dies wurde als optionale Zusatzfunktion bei der Arbeit an neuartigen Visualisierungen der Molekülstruktur beibehalten.
Standarddarstellungen
In der Chemie gibt es mehrere Standarddarstellungen der Molekülstruktur, die ursprünglich auf denen basieren, die mit physikalischen Modellen möglich sind. Die Avogadro-Anwendung implementiert jede dieser in Abbildung 2 gezeigten Darstellungen als Plugin. Diese reichen von der einfachen Drahtgitterdarstellung über Stab/Lakritz, Kugel und Stab bis hin zu Van-der-Waals-Kugeln.
Es ist auch möglich, mehrere Darstellungen zu kombinieren, wie z. B. Kugel und Stab mit Ringdarstellung (Abbildung 2 (d)) und eine halbtransparente Van-der-Waals-Raumfüllungsdarstellung mit einer Stabdarstellung, um das molekulare Rückgrat zu verdeutlichen (Abbildung 2 (f)).
Quantenberechnungen und elektronische Struktur
Quantencodes wurden ursprünglich für Zeilendrucker entwickelt, und leider hat sich seither an den Standard-Protokolldateien wenig geändert. Es gibt mehrere Formate, die für die Verwendung in anderen Codes und speziell für die Visualisierung und Analyse entwickelt wurden, aber in der Gemeinschaft der Quantenchemie gibt es kaum eine Einigung auf ein Standarddateiformat. In Avogadro wurde ein Plugin entwickelt, um die Ausgabe verschiedener Quantencodes zu visualisieren und die Daten in das richtige Format für die weitere Visualisierung und Analyse zu bringen.
Zunächst wurde in Open Babel die Unterstützung für Gauß-Würfel-Dateien hinzugefügt und erweitert. Dieses Format liefert Atomkoordinaten und ein oder mehrere regelmäßig verteilte Gitter von Skalarwerten. Diese können eingelesen werden, und Techniken wie der Marching-Cubes-Algorithmus können verwendet werden, um Dreiecksnetze von Isoflächen zu berechnen, z. B. bei Werten der Elektronendichte. Nachdem der Code zur Visualisierung dieser Isoflächen entwickelt worden war, wurde klar, dass es nützlich wäre, diese Würfel im laufenden Betrieb und je nach Verwendungszweck in verschiedenen Detailstufen berechnen zu können.
Das erste Format, das zum Zeitpunkt seiner Entwicklung einigermaßen dokumentiert war, ist das Gaußsche Kontrollpunktformat. Dieses Format ist viel einfacher zu analysieren als die Protokolldateien, die bei der Ausführung des Programms erzeugt werden, und liefert alle Details, die für die Berechnung von Skalarwerten des Molekularorbitals oder der Elektronendichte an jedem beliebigen Punkt im Raum erforderlich sind. Nachdem eine Klassenstruktur für Orbitale vom Gauß-Typ entwickelt worden war, wurde der Ansatz erweitert, um verschiedene andere gängige Ausgabedateiformate einzulesen, darunter Q-Chem, GAMESS-US, NWChem und Molpro. Die Unterstützung von MOPAC200x wurde später hinzugefügt, zusammen mit der Unterstützung des AUX-Formats und der in diesem Code verwendeten Slater-Orbitale. Alle diese Codes geben ihre endgültigen Konfigurationen unter Verwendung der standardmäßigen linearen Kombination von Atomorbitalen aus, was bedeutet, dass die Parallelisierung extrem einfach ist.
Das Plugin wurde entwickelt, um den von QtConcurrent angebotenen Map-Reduce-Ansatz zu nutzen, um alle verfügbaren Prozessorkerne zu verwenden. Dies ermöglicht eine nahezu lineare Skalierung, da jeder Punkt des Gitters unabhängig von allen anderen Punkten berechnet werden kann. Die Ergebnisse sind in Abbildung 9 zu sehen. Ein alternativer Ansatz zur Berechnung der Molekülorbitale wurde in einem zweiten Plugin entwickelt, das inzwischen in ein separates Projekt namens „OpenQube“ ausgegliedert wurde. Die „OpenQube“-Bibliothek wurde während des Google Summer of Code 2011 auch als optionales Backend in VTK hinzugefügt und bietet Unterstützung für mehrere Ausgabedateiformate und die Berechnung von Würfeldateien, die später in fortgeschrittenere Datenpipelines eingespeist werden können.
Für die Quantenausgabe wird eine Klassenhierarchie mit einer Standard-API bereitgestellt. Um die Unterstützung für neue Codes hinzuzufügen, musste ein neuer Parser entwickelt und sichergestellt werden, dass die Gauß- oder Slater-Menge mit der richtigen Reihenfolge und dem erwarteten Normalisierungsschema gefüllt wird. Die Gaußschen Orbitale des s-, p- und d-Typs werden unterstützt; die Unterstützung von f und g ist geplant, um die wachsende Zahl von Berechnungen mit diesen Orbitalen höherer Ordnung zu unterstützen. Der von EMSL gehostete Basis Set Exchange bietet Zugang zu den gebräuchlichen Basissätzen, obwohl diese Basissätze derzeit normalerweise direkt aus den Ausgabedateien eingelesen werden. Es gibt mehrere verwandte Projekte, um dieser Art von Ausgabe eine semantische Bedeutung zu verleihen, darunter das Projekt JUMBO-Converters und Quixote. Man hofft, dass in Zukunft mehr Codes die semantische Ausgabe übernehmen und ein gemeinsames Format verwenden werden, so dass der Datenaustausch, die Validierung und die Analyse über mehrere Codes hinweg einfacher werden. Dies war das Thema eines kürzlichen Treffens, bei dem mehrere Codes der Computerchemie begannen, FoX für die Ausgabe von CML zu verwenden. Die Entwicklung von Code zum Einlesen von CML-Ausgaben hat begonnen, entweder direkt aus den Codes oder durch Konvertierung anderer Formate mit Open Babel oder den JUMBO-Konvertern. Wenn CML eine ausreichende semantische Struktur hinzugefügt werden kann und die Konverter einen ausreichend großen Bereich der Ausgabe unterstützen, könnte dies den größten Teil des in OpenQube vorhandenen Parsing-Codes ersetzen. Die semantische Bedeutung ist eine der schwierigsten, die aus Protokolldateien zu extrahieren ist, und das Zusammenkommen als Gemeinschaft wird Projekten wie Avogadro helfen, mehr Bedeutung aus den Ausgaben dieser Codes abzuleiten.
Sekundäre biologische Struktur
Avogadro verwendet den PDB-Reader von Open Babel, um die sekundäre biologische Struktur einzulesen. Es gibt zwei Plugins zur Verarbeitung und Darstellung dieser Informationen. Das erste ist ein Plugin, das eine einfache Röhre zwischen den Biomolekül-Rückgratatomen darstellt. Ein zweites, fortschrittlicheres Plugin berechnet die Netze für die Alpha-Helices und Beta-Sheets. Während das erste Plugin viel schneller ist, erzeugt das erweiterte Plugin eine genauere Ausgabe, die in der Praxis erwartet wird.
GLSL, neuartige Visualisierung
GLSL, oder OpenGL Shader Language, ist eine C-ähnliche Syntax, die verwendet werden kann, um Code zu entwickeln, der auf Grafikkarten läuft und in der OpenGL 2.0 Spezifikation enthalten ist. Sie wurde mit großem Erfolg von der Spieleindustrie und in vielen Bereichen der Datenvisualisierung eingesetzt. Mehrere kürzlich erschienene Veröffentlichungen heben das Potenzial in der Chemie hervor, wie z.B. QuteMol, das Funktionen wie Ambient Occlusion unterstützt, um Bildern Tiefe zu verleihen.
Avogadro bietet Unterstützung für Vertex- und Fragment-Shader-Programme, und mehrere Beispiele sind in dem Paket enthalten. Wenn die Grafikkarte des Benutzers dazu in der Lage ist, können diese Programme zur Laufzeit geladen und mit großem Erfolg zur Visualisierung von Strukturen eingesetzt werden. Einige dieser Programme enthalten zusammenfassende Techniken wie das Isoflächen-Rendering, bei dem nur die orthogonal zur Betrachtungsebene verlaufenden Kanten sichtbar sind, was eine wesentlich bessere Darstellung sowohl der molekularen als auch der elektronischen Struktur ermöglicht (Abbildung 10).
Ray tracing
Avogadro verwendet eine Shader-Abstraktion, die es Entwicklern viel einfacher macht, neue Anzeigetypen hinzuzufügen. Es abstrahiert auch den Renderer, so dass es möglich ist, Unterstützung für alternative Backends hinzuzufügen. Derzeit werden nur OpenGL und POV-Ray unterstützt. Dank der Abstraktion können wir die impliziten Oberflächen, die in Raytracern verfügbar sind, nutzen, um molekulare Strukturen mit einem sehr hohen Maß an Klarheit und ohne die Dreiecksartefakte zu rendern, die in standardmäßig mit OpenGL gerenderten Bildern auftreten. Die wesentlich bessere Qualität der Transparenz und der Reflexion ermöglicht auch die Verwendung der Bilder in Postern und Vorträgen sowie in Forschungsartikeln (Abbildung 11).
Dieses Feature ist in einer Erweiterung implementiert, mit einer zusätzlichen Painter-Klasse, die von der Basisklasse abgeleitet ist, und einem Dialog, der es dem Benutzer erlaubt, die grundlegenden Rendering-Kontrollen zu bearbeiten. Die POV-Ray-Eingabedatei kann auch beibehalten und bearbeitet werden, um komplexere Bilder zu erzeugen oder um eine viel feinere Kontrolle des Rendering-Prozesses zu ermöglichen, falls dies gewünscht wird.
Avogadro-Bibliothek im Einsatz
Die Avogadro-Bibliothek wurde zuerst in der Avogadro-Anwendung eingesetzt, dicht gefolgt vom Kalzium-Programm für das Periodensystem, das Teil der KDE-Software-Sammlung ist. Diese anfängliche Arbeit wurde zum Teil durch das Google Summer of Code-Programm im Jahr 2007 finanziert und führte auch zur Hinzufügung mehrerer anderer Funktionen in der Avogadro-Bibliothek, um Kalzium und die allgemeine Visualisierung und Bearbeitung der Molekularstruktur zu unterstützen (Abbildung 12).
Das Q-Chem Paket hat „QUI – The Q-Chem User Interface“ um Avogadro herum entwickelt, ursprünglich als Avogadro Erweiterung. Dabei handelt es sich um eine erweiterte Version des in Avogadro entwickelten Eingabegenerators mit einer wesentlich engeren Integration. Molpro hat auch einige Ergebnisse aus der Entwicklung einer Molpro-Schnittstelle unter Verwendung der Avogadro-Bibliothek veröffentlicht.
Packmol
Packmol ist ein Paket von Drittanbietern, das entwickelt wurde, um erste „gepackte“ Konfigurationen von Molekülen für Molekulardynamik- oder andere Simulationen zu erstellen. Beispiele hierfür sind die Umhüllung eines Proteins mit einem Lösungsmittel, Lösungsmittelmischungen, Lipiddoppelschichten, kugelförmige Mizellen, die Platzierung von Gegenionen, das Hinzufügen von Liganden zu Nanopartikeln usw. In der Regel verfügen die Benutzer über äquilibrierte „Lösemittelboxen“, die für lange Simulationen verwendet wurden, um die richtige Dichte und sowohl kurz- als auch langreichweitige Wechselwirkungen zwischen den Lösemittelmolekülen sicherzustellen. Die Verwendung solcher Lösemittelboxen ermöglicht es, gelöste Moleküle, wie z. B. Proteine, in einer annähernd korrekten Ausgangsstruktur zu platzieren, wie sie in Abbildung 13 dargestellt ist. Der gelöste Stoff wird in die Box eingefügt, und Lösungsmittelmoleküle mit überlappenden Atomen werden entfernt. Während diese Hilfsprogramme oft ausreichen, ist die Erstellung komplexer Eingabedateien nicht immer einfach. Für kompliziertere Systeme kann Packmol eine Anfangskonfiguration erstellen, die auf definierten Dichten, Geometrien (z. B. Kugel, Kasten usw.) und den zu platzierenden Molekülen basiert. Ein Avogadro-Entwickler hat ein externes Plugin geschrieben, um die Verwendung von Packmol zu erleichtern, einschließlich der Schätzung der Anzahl der Moleküle in einem bestimmten Volumen.
Das Plugin wird derzeit nicht standardmäßig mit Avogadro ausgeliefert, obwohl es für eine zukünftige Version geplant ist. Es dient als Beispiel dafür, wie Avogadro einen Arbeitsablauf mit einem textorientierten Paket (Packmol) erleichtern kann, einschließlich des Speicherns von Dateien im PDB-Format, das von Packmol benötigt wird, des Erzeugens einer Eingabedatei und des Lesens der Ausgabe für die Visualisierung, Analyse und weitere Simulationen.
XtalOpt
Das Softwarepaket XtalOpt ist als C++-Erweiterung eines Drittanbieters für Avogadro implementiert und macht intensiven Gebrauch von der libavogadro API. Die Erweiterung implementiert einen evolutionären Algorithmus, der auf die Vorhersage von Kristallstrukturen zugeschnitten ist. Das XtalOpt-Entwicklungsteam hat sich für Avogadro als Plattform entschieden, weil es unter einer Open-Source-Lizenz steht, über eine gut gestaltete API verfügt, leistungsstarke Visualisierungswerkzeuge bietet und über eine intuitive Benutzeroberfläche verfügt. XtalOpt besteht aus einem Dialogfenster (Abbildung 14) und verwendet das Avogadro-Hauptfenster zur Visualisierung der sich entwickelnden Kandidatenstrukturen. Die API ist für die Bedürfnisse von XtalOpt gut geeignet und bietet einen einfachen Mechanismus, mit dem der Benutzer die während der Suche erzeugten Strukturen anzeigen, bearbeiten und exportieren kann. XtalOpt nutzt die plattformübergreifenden Fähigkeiten von Avogadro und seinen Abhängigkeiten und ist für Linux, Windows und Mac verfügbar.