Avogadro: pokročilý sémantický chemický editor, vizualizace a analytická platforma

Grafické uživatelské rozhraní

První, co většina lidí uvidí, je hlavní okno aplikace Avogadro, jak ukazuje obrázek 4. K dispozici jsou binární instalační programy pro systémy Apple Mac OS X a Microsoft Windows a balíčky pro všechny hlavní distribuce systému Linux. To znamená, že program Avogadro lze poměrně snadno nainstalovat na většinu operačních systémů. Pro odvážlivce nebo pro ty, kteří používají operační systém, který zatím není podporován, jsou na hlavní webové stránce Avogadro k dispozici také srozumitelné pokyny, jak zkompilovat nejnovější zdrojový kód.

Obrázek 4
obrázek4

Grafické uživatelské rozhraní Avogadro. Pořízeno v systému Mac OS X, ukazuje rozhraní pro úpravu molekuly.

Sada nástrojů Qt dává systému Avogadro nativní vzhled ve třech hlavních podporovaných operačních systémech – Linux, Apple Mac OS X a Microsoft Windows. Byly implementovány základní funkce očekávané od nástroje pro tvorbu a prohlížení molekul a několik méně obvyklých funkcí. Pro nové uživatele je velmi snadné nainstalovat Avogadro a sestavit své první molekuly během několika minut. Díky knihovně Open Babel , Avogadro podporuje velkou část běžně používaných formátů chemických souborů. Převážná většina těchto funkcí byla napsána pomocí rozhraní zpřístupněného autorům zásuvných modulů a je načtena za běhu. Tato rozhraní zásuvných modulů a popisy typů zásuvných modulů probereme později.

Sémantická chemie

Avogadro od počátku používalo jako výchozí formát souborů CML; ten byl vybrán místo jiných formátů souborů kvůli rozšiřitelné sémantické struktuře, kterou CML poskytuje, a podpoře dostupné v knihovně Open Babel . Formát CML nabízí oproti jiným běžně používaným formátům řadu výhod, včetně možnosti jeho rozšíření. To umožňuje programu Avogadro a dalším programům, aby byly odolné vůči budoucnosti a mohly později přidávat nové informace a funkce potřebné pro pokročilý sémanticky orientovaný editor, a přitom zůstaly čitelné ve starších verzích programu Avogadro.

Pomocí Open Babel , lze interpretovat velké množství formátů souborů. Při rozšiřování programu Avogadro pro čtení většího množství výstupů z kvantových kódů bylo nutné věnovat značné vývojové prostředky na pochopení a přidání sémantického významu výstupu kvantového kódu. Tato práce byla vyvinuta v zásuvném modulu, který byl později rozdělen do malé samostatné knihovny nazvané OpenQube . V poslední době bylo v rámci projektu Quixote , JUMBO-Converters a semináře Semantic Physical Science odvedeno velké množství práce na rozšíření kvantových kódů tak, aby bylo možné vyvést více těchto dat přímo z kódu. Vzhledem k tomu, že CML lze rozšířit, je možné znovu použít stávající konvence pro data o molekulové struktuře a přidat nové konvence pro další kvantová data.

Stavba molekuly: atom po atomu

Po otevření programu Avogadro se zobrazí okno, jaké je znázorněno na Obrázek 4. Ve výchozím nastavení je vybrán nástroj kreslení. Stačí kliknout levým tlačítkem myši na černou část displeje a uživatel může nakreslit atom uhlíku. Pokud uživatel stiskne levé tlačítko myši a táhne, nakreslí se vázaný atom uhlíku mezi počátečním bodem a konečnou polohou, kde je myš uvolněna.

Na vytvoření intuitivního nástroje pro kreslení malých molekul bylo vynaloženo velké úsilí. Běžné chemické prvky lze vybírat z rozevíracího seznamu nebo lze zobrazit periodickou tabulku pro výběr méně běžných prvků. Kliknutím na existující atom jej změníte na aktuálně vybraný prvek, tažením změníte atom zpět na předchozí prvek a nakreslíte nový atom vázaný na původní. Pokud na vazby kliknete levým tlačítkem myši, pak se pořadí vazeb cyklicky mění mezi jednoduchou, dvojitou a trojitou. K dispozici jsou také klávesové zkratky, např. zadáním atomového symbolu (např. „C-o“ pro kobalt) změníte vybraný prvek nebo zadáním čísel „1“, „2“ a „3“ změníte pořadí vazeb.

Klepnutím pravým tlačítkem myši na atomy nebo vazby je odstraníte. Pokud je zaškrtnuto políčko „Adjust Hydrogens“ (Upravit vodíky), počet vodíků vázaných k jednotlivým atomům se automaticky upraví tak, aby vyhovoval valenci. Alternativně to lze provést také na konci relace úprav pomocí rozšíření „Přidat hydrogeny“ v nabídce sestavení.

Kromě nástroje pro kreslení jsou k dispozici dva nástroje pro úpravu polohy atomů v existujících molekulách. Nástroj „manipulace s centrovaným atomem“ lze použít k přesunu atomu nebo skupiny vybraných atomů. Nástroj „bond centric manipulate“ lze použít k výběru vazby a následné úpravě polohy všech atomů vzhledem k vybrané vazbě různými způsoby (např. změnou délky vazby, vazebných úhlů nebo dihedrálních úhlů). Tyto tři nástroje umožňují velkou flexibilitu při interaktivním sestavování malých molekul na obrazovce.

Jakmile je struktura molekuly hotová, lze pomocí rozšíření silového pole provést optimalizaci geometrie. Kliknutím na „Extensions“ a „Optimize Geometry“ se provede rychlá optimalizace geometrie molekuly. Parametry silového pole a výpočtu lze upravit, ale výchozí hodnoty jsou pro většinu molekul dostačující. Tento pracovní postup je typický při sestavování malých molekulárních struktur pro použití jako vstup do kvantových výpočtů nebo obrázků v publikační kvalitě.

Alternativou je kombinace nástroje „Automatická optimalizace“ s nástrojem pro kreslení. To představuje jedinečný způsob tvarování molekuly, zatímco geometrie je neustále minimalizována na pozadí. Optimalizace geometrie je animovaná a účinek změny pořadí vazeb, přidání nových skupin nebo odebrání skupin lze sledovat interaktivně.

Je implementováno několik dialogových oken, která poskytují informace o vlastnostech molekuly a umožňují přesně měnit parametry, například kartézské souřadnice atomů v molekule.

Sestavení molekuly: z fragmentů

Kromě sestavování molekul atom po atomu mohou uživatelé vkládat předem sestavené fragmenty běžných molekul, ligandů nebo aminokyselinových sekvencí, jak je znázorněno na obrázku 5. Na obrázku 5 je znázorněno, jak se sestavují molekuly z fragmentů. Ve všech případech je po vložení fragmentu vybrán nástroj pro manipulaci s atomem, který umožňuje fragment snadno přesunout nebo otočit do správné polohy.

Obrázek 5
obrázek5

Dialogy pro vkládání předem sestavených fragmentů. Vlevo jsou zobrazeny molekuly a vpravo sekvence aminokyselin

Uživatelé mohou pro molekulu vložit také řetězec SMILES. V tomto případě se pomocí Open Babel a rychlé optimalizace silového pole vygeneruje hrubá 3D geometrie.

Příprava vstupů pro kvantové kódy

Pro Avogadro bylo vyvinuto několik rozšíření, která pomáhají uživateli při přípravě vstupních souborů pro populární kvantové kódy, jako jsou GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro a MOPAC200x . Grafická dialogová okna představují funkce potřebné ke spuštění základních kvantových výpočtů; některé příklady jsou uvedeny na obrázku 6.

Obrázek 6
obrázek6

Dialog pro generování vstupních souborů pro kvantové kódy. Dialogy pro generování vstupů pro Q-Chem, NWChem, Molpro a MOPAC200x. Všimněte si, že dialogy mají podobné rozhraní, což uživatelům umožňuje používat více balíčků výpočetní chemie.

Náhled vstupního souboru v dolní části každého dialogu se aktualizuje při změně možností. Tento přístup pomáhá novým uživatelům kvantových kódů naučit se syntaxi vstupních souborů pro různé kódy a při učení rychle generovat užitečné vstupní soubory. Vstupní soubor lze také ručně upravit v dialogovém okně před uložením a odesláním do kvantového kódu. Rozšíření MOPAC může také přímo spustit program MOPAC200x, pokud je na počítači uživatele k dispozici, a po dokončení výpočtu znovu načíst výstupní soubor do programu Avogadro. Tato funkce bude v budoucích verzích programu Avogadro rozšířena i na další kvantové kódy.

Přídavek GAMESS-US je jedním z nejpropracovanějších, obsahuje základní dialogové okno přítomné ve většině ostatních generátorů vstupních balíčků a také pokročilé dialogové okno odhalující mnoho neobvyklých a složitějších typů výpočtů. Kromě pokročilého dialogu lze vstupní balíček upravovat inline a je vybaven zvýrazněním syntaxe (obrázek 7), které se používá v mnoha populárních editorech určených pro vývojáře softwaru. To může indikovat jednoduché překlepy v klíčových slovech i hůře odhalitelné chyby v bílých znacích, které by jinak způsobily, že by ručně upravený vstupní balíček při čtení programem GAMESS-US selhal.

Obrázek 7
obrázek7

Generátor vstupního balíčku GAMESS-US. Tento generátor vstupů má pokročilý panel a zvýraznění syntaxe.

Zarovnání a měření

Jedním ze specializovaných nástrojů obsažených ve standardní distribuci Avogadro je nástroj pro zarovnání. Tento nástroj myši usnadňuje zarovnání molekulární struktury s počátkem souřadnic, pokud je vybrán jeden atom, a podél zadané osy, pokud jsou vybrány dva atomy. Nástroj pro zarovnání lze kombinovat s nástroji pro měření, výběr a manipulaci a vytvářet tak vstupy pro kvantové kódy, kde je důležitá poloha a orientace molekuly. Jedním z příkladů jsou výpočty, při nichž je na molekulu aplikováno vnější elektrické pole. Při těchto typech výpočtů může mít zarovnání molekuly velký vliv. Obrázek 8 ukazuje nástroj měření v akci s dialogovým oknem konfigurace nástroje zarovnání viditelným v levém dolním rohu.

Obrázek 8
obrázek8

Nástroj měření. Nástroj pro měření, který se používá k měření úhlů a délek vazeb (v Linuxu s prostředím KDE 4).

Mohly by být vytvořeny složitější nástroje pro zarovnání pro konkrétní úlohy. Nástroj pro zarovnávání byl vytvořen během několika hodin pro konkrétní výzkumný projekt. Jedná se o ukázkový příklad, kdy byla rozšiřitelnost velmi důležitá pro provádění výzkumu pomocí grafického nástroje výpočetní chemie. Nestálo by za to investovat do vytvoření nové aplikace jen pro zarovnávání molekulárních struktur na osu, ale vytvoření zásuvného modulu pro rozšiřitelný projekt není nerozumné.

Vizualizace

Aplikace Avogadro používá OpenGL k interaktivnímu vykreslování molekulárních reprezentací na obrazovku. OpenGL nabízí vysokoúrovňové multiplatformní rozhraní API pro vykreslování trojrozměrných obrazů pomocí hardwarově akcelerované grafiky. Ve většině vykreslovacího kódu se používá OpenGL 1.1 a nižší, takže aplikaci Avogadro lze používat i na starších počítačových systémech nebo na systémech bez modernější akcelerované grafiky. Je schopen využívat některé novější funkce dostupné v OpenGL 2.0, jak je popsáno níže, ale to bylo ponecháno jako volitelná funkce navíc při práci na nových vizualizacích molekulární struktury.

Standardní zobrazení

V chemii existuje několik standardních zobrazení molekulární struktury, původně založených na zobrazeních možných pomocí fyzikálních modelů. Aplikace Avogadro implementuje každou z těchto reprezentací zobrazených na obrázku 2 jako zásuvný modul. Jejich škála sahá od jednoduchého zobrazení drátěného rámu přes zobrazení tyčinky/lichvy, koule a tyčinky až po Van der Waalsovy sféry.

Je také možné kombinovat několik zobrazení, například kouli a tyčinku s vykreslením prstence (obrázek 2 (d)) a poloprůhledné zobrazení Van der Waalsovy výplně prostoru s reprezentací tyčinky k objasnění páteře molekul (obrázek 2 (f)).

Kvantové výpočty a elektronická struktura

Kvantové kódy byly původně vyvinuty pro řádkové tiskárny a od té doby se bohužel ve standardních logických souborech změnilo jen málo. Existuje několik formátů vyvinutých pro použití v jiných kódech a speciálně pro vizualizaci a analýzu, ale v komunitě počítačové kvantové chemie panuje jen malá shoda na nějakém standardním formátu souborů. V programu Avogadro byl vyvinut zásuvný modul pro vizualizaci výstupů různých kvantových kódů a pro získání dat do správného formátu pro další vizualizaci a analýzu.

Původně byla v programu Open Babel přidána a rozšířena podpora pro soubory Gaussovy kostky. Tento formát poskytuje atomové souřadnice a jednu nebo více pravidelně rozmístěných mřížek skalárních hodnot. Ty lze načíst a techniky, jako je algoritmus pochodových kostek, lze použít například k výpočtu trojúhelníkových sítí izoploch při hodnotách elektronové hustoty. Jakmile byl vyvinut kód pro vizualizaci těchto izopovrchů, ukázalo se, že by bylo užitečné mít možnost počítat tyto kostky za běhu, a to na různých úrovních podrobnosti v závislosti na zamýšleném použití.

Prvním formátem, který byl v době svého vývoje poněkud zdokumentován, je formát Gaussova kontrolního bodu. Tento formát je mnohem snadněji analyzovatelný než soubory protokolu generované za běhu programu a poskytuje všechny podrobnosti potřebné k výpočtu skalárních hodnot molekulového orbitalu nebo elektronové hustoty v libovolném bodě v prostoru. Jakmile byla vyvinuta třídní struktura pro orbitaly Gaussova typu, byl přístup rozšířen na čtení v několika dalších populárních formátech výstupních souborů včetně Q-Chem, GAMESS-US, NWChem a Molpro. Později byla přidána podpora MOPAC200x spolu s podporou formátu AUX a orbitalů Slaterova typu používaných v tomto kódu. Všechny tyto kódy vypisují své výsledné konfigurace pomocí standardní lineární kombinace atomových orbitalů, což znamená, že paralelizace je velmi jednoduchá.

Zásuvný modul byl vyvinut tak, aby využíval přístupu map-reduce, který nabízí QtConcurrent, s cílem využít všechna dostupná procesorová jádra. To nabízí téměř lineární škálování, protože každý bod v mřížce může být počítán nezávisle na všech ostatních bodech, jejichž výsledky lze vidět na obrázku 9. Alternativní přístup k výpočtu molekulových orbitalů byl vyvinut v druhém zásuvném modulu, který byl mezitím vyčleněn do samostatného projektu s názvem „OpenQube“. Knihovna „OpenQube“ byla také přidána jako volitelný backend do VTK během Google Summer of Code 2011, což přineslo podporu několika formátů výstupních souborů a výpočet souborů krychlí, které lze později vložit do pokročilejších datových pipeline.

Obrázek 9
obrázek9

Molekulární orbitaly a povrchy. Vykreslení izopovrchu molekulového orbitalu (vlevo) a elektrostatického povrchového potenciálu mapovaného na elektronovou hustotu (vpravo).

Pro kvantový výstup je k dispozici hierarchie tříd se standardním API. Přidání podpory pro nové kódy vyžadovalo vývoj nového analyzátoru a zajištění vyplnění Gaussovy nebo Slaterovy množiny se správným uspořádáním a očekávaným normalizačním schématem. Podporovány jsou Gaussovy orbitaly typu s, p a d, přičemž se plánuje podpora f a g, aby bylo možné podporovat rostoucí počet výpočtů využívajících tyto orbitaly vyššího řádu. Výměna základních sad, kterou hostuje EMSL, poskytuje přístup k běžně používaným základním sadám, ačkoli v současné době se tyto základní sady obvykle načítají přímo z výstupních souborů. Existuje několik souvisejících projektů pro přidání sémantického významu tomuto typu výstupu, včetně projektu JUMBO-Converters a Quixote. Doufáme, že v budoucnu přijme sémantický výstup více kódů, které budou používat společný formát, aby se usnadnila výměna dat, validace a analýza napříč několika kódy. To bylo předmětem nedávného setkání s několika kódy výpočetní chemie, které začaly používat FoX za účelem výstupu CML. Byl zahájen vývoj kódu pro čtení výstupu CML, a to buď přímo z kódů, nebo z konverze jiných formátů pomocí Open Babel nebo JUMBO-Converters. Pokud se podaří přidat do CML dostatečnou sémantickou strukturu a konvertory budou podporovat dostatečně velký rozsah výstupu, mohlo by to nahradit většinu kódu pro parsování přítomného v OpenQube. Sémantický význam je jedním z nejobtížněji získatelných významů ze souborů protokolů a spojení komunity pomůže projektům, jako je Avogadro, získat z výstupů těchto kódů více významů.

Sekundární biologická struktura

Avogadro používá ke čtení sekundární biologické struktury čtečku PDB z Open Babel. Pro zpracování a vykreslení těchto informací existují dva zásuvné moduly. Prvním je zásuvný modul, který vykresluje jednoduchou trubičku mezi atomy páteře biomolekuly. Druhý, pokročilejší zásuvný modul počítá sítě pro alfa šroubovice a beta listy. Zatímco první zásuvný modul je mnohem rychlejší, pokročilý zásuvný modul přesněji vytváří výstup očekávaný v terénu. To umožňuje uživatelům flexibilitu při vykreslování sekundárních biologických struktur.

GLSL, nová vizualizace

GLSL, neboli OpenGL Shader Language, je syntaxe podobná jazyku C, kterou lze použít k vývoji kódu, jenž poběží na grafických kartách a je součástí specifikace OpenGL 2.0. V tomto jazyce je možné vytvářet kód, který bude fungovat na grafických kartách. S velkým úspěchem se používá v herním průmyslu a také v mnoha oblastech vizualizace dat. Několik nedávných prací upozorňuje na jeho potenciál v oblasti chemie, například QuteMol při přidávání podpory funkcí, jako je ambient occlusion, které přidávají obrázkům hloubku.

Avogadro má podporu pro vertexové a fragmentové shadery a k balíčku je přiloženo několik příkladů. Pokud to grafická karta uživatele umožňuje, lze tyto programy načíst za běhu a použít je s velkým efektem k vizualizaci struktury. Některé z nich zahrnují shrnující techniky, jako je vykreslování izopovrchů, kdy jsou viditelné pouze hrany kolmé k rovině pohledu, což poskytuje mnohem lepší vykreslení molekulární i elektronické struktury (obrázek 10).

Obrázek 10
obrázek10

Vyobrazení molekulových orbitalů pomocí shaderů GLSL. Vykreslení izoplochy molekulárního orbitalu pomocí dvou shaderů GLSL pro zvýraznění okrajů ploch. Rentgenový efekt (vlevo) a červená a modrá barva (vpravo) zobrazující kladné a záporné tvary molekulových orbitalů.

Ray tracing

Avogadro používá abstrakci malíře, která vývojářům výrazně usnadňuje přidávání nových typů zobrazení. Abstrahuje také vykreslovač, což umožňuje přidat podporu pro alternativní backendy. V současné době jsou podporovány pouze OpenGL a POV-Ray. Díky abstrakci jsme schopni používat implicitní povrchy dostupné v ray tracerech k vykreslování molekulární struktury na velmi vysoké úrovni jasnosti a bez artefaktů trojúhelníků přítomných ve standardních vykreslovaných obrazech OpenGL. Mnohem vyšší kvalita průhlednosti a odrazu také umožňuje použití obrázků v posterových a ústních prezentacích i ve výzkumných článcích (Obrázek 11).

Obrázek 11
obrázek11

Ray-tracované izopovrchy HOMO s různou hustotou krychlí. Vykreslení izoplochy molekulového orbitalu pomocí POV-Ray s kostkami o nízké (vlevo) a vysoké (vpravo) hustotě

Tato funkce je implementována v rozšíření s další třídou malíře odvozenou od základní třídy a dialogem umožňujícím uživateli upravovat základní ovládací prvky vykreslování. Vstupní soubor POV-Ray lze také zachovat a upravit pro vytvoření složitějších obrázků nebo v případě potřeby umožnit mnohem jemnější kontrolu procesu vykreslování.

Použití knihovny Avogadro

Prvním použitím knihovny Avogadro byla aplikace Avogadro, těsně následovaná programem Kalzium pro periodickou tabulku, který je součástí sbírky softwaru KDE. Tato počáteční práce byla částečně financována z programu Google Summer of Code v roce 2007 a vyústila také v přidání několika dalších funkcí do knihovny Avogadro na podporu aplikace Kalzium a obecné vizualizace a úpravy struktury molekul (obrázek 12).

Obrázek 12
obrázek12

Aplikace Kalzium v prostředí KDE využívající knihovnu Avogadro k vykreslování molekulárních struktur.

V balíku Q-Chem bylo kolem Avogadra vyvinuto „QUI – Uživatelské rozhraní Q-Chem“, původně jako rozšíření Avogadra. Jedná se o pokročilejší verzi generátoru vstupů vyvinutého v Avogadro s mnohem těsnější integrací. Společnost Molpro také zveřejnila některé výsledky svého vývoje rozhraní Molpro využívajícího knihovnu Avogadro .

Packmol

Packmol je balíček třetí strany určený k vytváření počátečních „zabalených“ konfigurací molekul pro molekulovou dynamiku nebo jiné simulace . Příklady zahrnují obklopení proteinu rozpouštědlem, směsi rozpouštědel, lipidové dvojvrstvy, sférické micely, umístění protiiontů, přidání ligandů do nanočástic atd. Obvykle mohou mít uživatelé k dispozici ekvilibrované „krabice s rozpouštědly“, které byly spuštěny pro dlouhé simulace, aby byla zajištěna správná hustota a interakce na krátkou i dlouhou vzdálenost mezi molekulami rozpouštědel. Použití takových solvent boxů umožňuje umístit molekuly rozpuštěných látek, jako jsou proteiny, do přibližně správné počáteční struktury, jaká je znázorněna na obrázku 13. Rozpuštěná látka se přidá do boxu a molekuly rozpouštědla s překrývajícími se atomy se odstraní. Ačkoli tyto nástroje často stačí, vytvoření složitých vstupních souborů není vždy snadné. Pro složitější systémy může Packmol vytvořit počáteční konfiguraci na základě definovaných hustot, geometrií (např. koule, box atd.) a molekul, které mají být umístěny. Vývojář společnosti Avogadro napsal externí doplněk, který usnadňuje používání programu Packmol, včetně odhadu počtu molekul v daném objemu.

Obrázek 13
obrázek13

Lipidová vrstva PackMol vytvořená rozšířením PackMol.

Doplněk není v současné době distribuován se standardní funkcí Avogadro, ačkoli je plánována pro některou z budoucích verzí. Slouží jako příklad toho, jak může program Avogadro usnadnit pracovní postup s textově orientovaným balíčkem (Packmol), včetně ukládání souborů ve formátu PDB požadovaném programem Packmol, generování vstupního souboru a čtení výstupu pro vizualizaci, analýzu a další simulace.

XtalOpt

Softwarový balíček XtalOpt je implementován jako rozšíření programu Avogadro v jazyce C++ třetí strany a hojně využívá rozhraní API programu libavogadro. Rozšíření implementuje evoluční algoritmus přizpůsobený pro předpovídání krystalové struktury. Vývojový tým XtalOpt si vybral Avogadro jako platformu kvůli jeho open-source licenci, dobře navrženému API, výkonným vizualizačním nástrojům a intuitivnímu uživatelskému rozhraní. XtalOpt existuje jako dialogové okno (obrázek 14) a používá hlavní okno Avogadro pro vizualizaci kandidátních struktur v průběhu jejich vývoje. Rozhraní API dobře vyhovuje potřebám nástroje XtalOpt a poskytuje jednoduchý mechanismus umožňující uživateli prohlížet, upravovat a exportovat struktury vygenerované během vyhledávání. Díky využití multiplatformních možností systému Avogadro a jeho závislostí je XtalOpt k dispozici pro Linux, Windows a Mac.

Obrázek 14
obrázek14

Rozšíření XtalOpt. Rozšíření XtalOpt zobrazující graf závislosti stability na průběhu hledání pro supercelu TiO2.

.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.