Avogadro: zaawansowany semantyczny edytor chemiczny, wizualizacja i platforma analityczna

Graficzny interfejs użytkownika

Pierwszą rzeczą, jaką większość ludzi zobaczy, jest główne okno aplikacji Avogadro, jak pokazano na Rysunku 4. Dostępne są binarne instalatory dla systemów Apple Mac OS X i Microsoft Windows, a także pakiety dla wszystkich głównych dystrybucji Linuksa. Oznacza to, że program Avogadro można dość łatwo zainstalować na większości systemów operacyjnych. Łatwe do wykonania instrukcje, jak skompilować najnowszy kod źródłowy, są również dostępne na głównej stronie Avogadro dla bardziej odważnych lub używających systemu operacyjnego, który nie jest jeszcze obsługiwany.

Figure 4
figure4

Graficzny interfejs użytkownika Avogadro. Wykonane na Mac OS X, pokazujące interfejs edycji cząsteczki.

Zestaw narzędzi Qt nadaje Avogadro natywny wygląd i odczucia na trzech głównych obsługiwanych systemach operacyjnych-Linux, Apple Mac OS X i Microsoft Windows. Podstawowa funkcjonalność oczekiwana w programie do budowania i przeglądania molekularnego została zaimplementowana, wraz z kilkoma mniej popularnymi funkcjami. Dla nowych użytkowników instalacja Avogadro jest bardzo prosta i pozwala na zbudowanie pierwszych cząsteczek w ciągu kilku minut. Dzięki bibliotece Open Babel, Avogadro obsługuje dużą część formatów plików chemicznych, które są powszechnie używane. Zdecydowana większość tej funkcjonalności została napisana przy użyciu interfejsu udostępnionego autorom pluginów i jest ładowana w czasie pracy programu. Omówimy te interfejsy wtyczek i opisy typów wtyczek później.

Semantyczna chemia

Avogadro używa CML jako domyślnego formatu plików od bardzo wczesnego etapu; został on wybrany zamiast innych formatów plików z powodu rozszerzalnej, semantycznej struktury dostarczanej przez CML i wsparcia dostępnego w Open Babel . Format CML ma wiele zalet w porównaniu z innymi powszechnie używanymi, w tym możliwość rozszerzania formatu. Dzięki temu Avogadro i inne programy mogą być odporne na przyszłość, dodając nowe informacje i funkcje niezbędne dla zaawansowanego edytora semantycznego w późniejszym czasie, jednocześnie zachowując czytelność w starszych wersjach Avogadro.

Dzięki użyciu Open Babel można interpretować wiele formatów plików. Podczas rozszerzania Avogadro do odczytu większych ilości danych wyjściowych z kodów kwantowych, konieczne było poświęcenie znacznych zasobów na zrozumienie i dodanie znaczenia semantycznego do danych wyjściowych kodów kwantowych. Praca ta była rozwijana w pluginie, który później został podzielony na małą niezależną bibliotekę o nazwie OpenQube . Ostatnio wiele pracy zostało wykonane w ramach projektu Quixote, JUMBO-Converters i warsztatów Semantic Physical Science w celu rozszerzenia kodów kwantowych, aby uzyskać więcej takich danych bezpośrednio z kodu. Ponieważ CML może być rozszerzony, możliwe jest ponowne wykorzystanie istniejących konwencji dla danych struktury molekularnej i dodanie nowych konwencji dla dodatkowych danych kwantowych.

Budujemy cząsteczkę: atom po atomie

Po otwarciu Avogadro pojawia się okno takie jak na Rysunku 4. Domyślnie wybrane jest narzędzie do rysowania. Kliknięcie lewym przyciskiem myszy na czarnej części ekranu pozwala na narysowanie atomu węgla. Jeśli użytkownik naciśnie lewy przycisk myszy i będzie przeciągał, zostanie narysowany związany atom węgla pomiędzy punktem początkowym a końcową pozycją, w której mysz zostanie zwolniona.

Wielki wysiłek został włożony w stworzenie intuicyjnego narzędzia do rysowania małych cząsteczek. Popularne pierwiastki chemiczne można wybrać z rozwijanej listy lub wyświetlić układ okresowy, aby wybrać mniej popularne pierwiastki. Kliknięcie na istniejący atom zmienia go na aktualnie wybrany pierwiastek, przeciągnięcie zmienia atom z powrotem na poprzedni pierwiastek i rysuje nowy atom połączony z oryginałem. Jeśli wiązania są kliknięte lewym przyciskiem myszy, to kolejność wiązań zmienia się cyklicznie pomiędzy pojedynczym, podwójnym i potrójnym. C-o” dla kobaltu) zmienia wybrany element, a wpisanie liczb „1”, „2” i „3” zmienia kolejność wiązań.

Kliknięcie prawym przyciskiem myszy na atomy lub wiązania usuwa je. Jeśli zaznaczone jest pole „Dopasuj hydrogeny”, liczba hydrogenów związanych z każdym atomem jest automatycznie dopasowywana do wartościowości. Alternatywnie, można to również zrobić na końcu sesji edycyjnej, używając rozszerzenia „Dodaj hydrogeny” w menu budowy.

Oprócz narzędzia rysowania, istnieją dwa narzędzia do dostosowywania pozycji atomów w istniejących cząsteczkach. Narzędzie „manipulacja atomocentryczna” może być użyte do przesunięcia atomu lub grupy wybranych atomów. Narzędzie „bond centric manipulate” może być użyte do wybrania wiązania, a następnie dostosowania pozycji wszystkich atomów względem wybranego wiązania na różne sposoby (np. zmieniając długość wiązania, kąty wiązania lub kąty dwuścienne). Te trzy narzędzia pozwalają na dużą elastyczność w interaktywnym budowaniu małych cząsteczek na ekranie.

Gdy struktura molekularna jest gotowa, rozszerzenie pola siłowego może być użyte do przeprowadzenia optymalizacji geometrii. Klikając na „Extensions” i „Optimize Geometry” przeprowadzana jest szybka optymalizacja geometrii cząsteczki. Parametry pola siłowego i obliczeń mogą być dostosowane, ale domyślne parametry są wystarczające dla większości cząsteczek. Ten tok pracy jest typowy przy tworzeniu małych struktur molekularnych, które mają być wykorzystane jako dane wejściowe do obliczeń kwantowych lub jako dane do publikacji.

Alternatywą jest połączenie narzędzia „Automatyczna optymalizacja” z narzędziem do rysowania. Przedstawia to unikalny sposób rzeźbienia cząsteczki, podczas gdy geometria jest stale minimalizowana w tle. Optymalizacja geometrii jest animowana, a efekt zmiany kolejności wiązań, dodawania nowych grup lub usuwania grup można obserwować interaktywnie.

Zaimplementowano kilka okien dialogowych dostarczających informacji o właściwościach cząsteczki i umożliwiających precyzyjną zmianę parametrów, takich jak współrzędne kartezjańskie atomów w cząsteczce.

Budowanie molekuły: z fragmentów

Oprócz budowania molekuł atom po atomie, użytkownicy mogą wstawiać wstępnie zbudowane fragmenty popularnych molekuł, ligandów lub sekwencji aminokwasów, jak pokazano na Rysunku 5. We wszystkich przypadkach, po wstawieniu fragmentu, wybierane jest narzędzie manipulacyjne skupione na atomie, pozwalające na łatwe przesuwanie lub obracanie fragmentu do pozycji.

Figure 5
figure5

Dialogi do wstawiania wstępnie zbudowanych fragmentów. Po lewej stronie pokazane są molekuły, a po prawej sekwencje aminokwasów.

Użytkownicy mogą również wstawić ciąg SMILES dla molekuły. W tym przypadku, przybliżona geometria 3D jest generowana przy użyciu Open Babel i szybkiej optymalizacji pola siłowego.

Przygotowanie danych wejściowych dla kodów kwantowych

Dla Avogadro opracowano kilka rozszerzeń, które pomagają użytkownikowi w przygotowaniu plików wejściowych dla popularnych kodów kwantowych, takich jak GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro i MOPAC200x . Graficzne okna dialogowe prezentują funkcje wymagane do przeprowadzenia podstawowych obliczeń kwantowych; kilka przykładów pokazano na rysunku 6.

Figure 6
figure6

Dialog do generowania danych wejściowych dla kodów kwantowych. Okna dialogowe do generowania danych wejściowych dla Q-Chem, NWChem, Molpro i MOPAC200x. Zauważ, że okna dialogowe są podobne w interfejsie, pozwalając użytkownikom na korzystanie z wielu pakietów chemii obliczeniowej.

Podgląd pliku wejściowego na dole każdego okna dialogowego jest aktualizowany w miarę zmiany opcji. Takie podejście pomaga nowym użytkownikom kodów kwantowych nauczyć się składni plików wejściowych dla różnych kodów i szybko generować użyteczne pliki wejściowe w trakcie nauki. Dane wejściowe mogą być również edytowane ręcznie w oknie dialogowym, zanim plik zostanie zapisany i przesłany do kodu kwantowego. Rozszerzenie MOPAC może również uruchomić program MOPAC200x bezpośrednio, jeśli jest on dostępny na komputerze użytkownika, a następnie przeładować plik wyjściowy do Avogadro po zakończeniu obliczeń. Ta funkcja zostanie rozszerzona na inne kody kwantowe w przyszłych wersjach Avogadro.

Wtyczka GAMESS-US jest jedną z najbardziej rozwiniętych, posiada podstawowe okno dialogowe obecne w większości innych generatorów pokładów wejściowych, jak również zaawansowane okno dialogowe odsłaniające wiele bardziej niezwykłych i złożonych typów obliczeń. Oprócz zaawansowanego okna dialogowego, panel wejściowy może być edytowany w trybie inline i posiada podświetlanie składni (Rysunek 7), stosowane w wielu popularnych edytorach przeznaczonych dla programistów. Może to wskazać proste błędy w słowach kluczowych, jak również trudniejsze do zauważenia błędy w białych przestrzeniach, które w przeciwnym razie spowodowałyby, że ręcznie edytowany zestaw danych nie zostałby odczytany przez GAMESS-US.

Figure 7
figure7

Generator talii wejściowej GAMESS-US. Ten generator danych wejściowych posiada zaawansowany panel i kolorowanie składni.

Wyrównanie i pomiary

Jednym ze specjalistycznych narzędzi zawartych w standardowej dystrybucji Avogadro jest narzędzie do wyrównania. Narzędzie to ułatwia wyrównanie struktury molekularnej do współrzędnych początkowych, jeśli wybrany jest jeden atom, oraz wzdłuż określonej osi, jeśli wybrane są dwa atomy. Narzędzie wyrównywania może być połączone z narzędziami mierzenia, wybierania i manipulowania w celu utworzenia danych wejściowych dla kodów kwantowych, gdzie pozycja i orientacja cząsteczki jest ważna. Jednym z przykładów są obliczenia, w których do cząsteczki przyłożone jest zewnętrzne pole elektryczne. W tego typu obliczeniach ułożenie cząsteczki może mieć duży wpływ. Rysunek 8 przedstawia narzędzie pomiarowe w działaniu z oknem dialogowym konfiguracji narzędzia wyrównania widocznym w lewym dolnym rogu.

Figure 8
figure8

Narzędzie pomiarowe. Narzędzie pomiarowe używane do pomiaru kątów i długości wiązań (na Linuxie z KDE 4).

Możliwe jest stworzenie bardziej złożonych narzędzi wyrównujących do konkretnych zadań. Narzędzie do wyrównywania zostało stworzone w ciągu zaledwie kilku godzin dla konkretnego projektu badawczego. Jest to doskonały przykład, gdzie rozszerzalność była bardzo ważna dla prowadzenia badań przy użyciu graficznego narzędzia chemii obliczeniowej. Tworzenie nowej aplikacji tylko po to, by wyrównać struktury molekularne do osi nie byłoby warte inwestycji, ale tworzenie wtyczki do rozszerzalnego projektu nie jest nierozsądne.

Wizualizacja

Aplikacja Avogadro używa OpenGL do interaktywnego renderowania molekularnych reprezentacji na ekranie. OpenGL oferuje wysokopoziomowe, wieloplatformowe API do renderowania trójwymiarowych obrazów przy użyciu grafiki akcelerowanej sprzętowo. OpenGL 1.1 i niższe są używane w większości kodu renderującego, więc Avogadro może być używany nawet na starszych systemach komputerowych lub tych bez nowoczesnych akceleratorów graficznych. Jest on w stanie wykorzystać niektóre z nowszych funkcji dostępnych w OpenGL 2.0, jak opisano poniżej, ale zostało to zachowane jako opcjonalna dodatkowa funkcja podczas pracy nad nowymi wizualizacjami struktury molekularnej.

Standardowe reprezentacje

W chemii istnieje kilka standardowych reprezentacji struktury molekularnej, pierwotnie opartych na tych możliwych w modelach fizycznych. Aplikacja Avogadro implementuje każdą z tych reprezentacji pokazanych na Rysunku 2 jako plugin. Począwszy od prostej reprezentacji szkieletowej, poprzez patyk/licoryt, kulę i patyk, aż po sfery Van der Waalsa.

Możliwe jest również połączenie kilku reprezentacji, takich jak kula i patyk z renderowaniem pierścienia (Rysunek 2 (d)), oraz półprzezroczysta reprezentacja wypełnienia przestrzeni Van der Waalsa z reprezentacją patyka w celu wyjaśnienia szkieletu molekularnego (Rysunek 2 (f)).

Obliczenia kwantowe i struktura elektronowa

Kody kwantowe zostały pierwotnie opracowane dla drukarek wierszowych i niestety niewiele się od tego czasu zmieniło w standardowych plikach dziennika. Istnieje kilka formatów opracowanych do użytku w innych kodach i specjalnie do wizualizacji i analizy, ale nie ma zgody na standardowy format pliku w społeczności obliczeniowej chemii kwantowej. Wtyczka została opracowana w Avogadro w celu wizualizacji danych wyjściowych z różnych kodów kwantowych i uzyskania danych w odpowiednim formacie do dalszej wizualizacji i analizy.

Początkowo wsparcie zostało dodane i rozszerzone w Open Babel dla plików Gaussian cube. Format ten dostarcza współrzędne atomowe i jedną lub więcej regularnie rozmieszczonych siatek wartości skalarnych. To może być wczytane i techniki takie jak algorytm kostek marszowych mogą być użyte do obliczenia trójkątnych siatek izopowierzchni przy wartościach gęstości elektronów na przykład. Gdy kod został opracowany do wizualizacji tych izopowierzchni, stało się jasne, że byłoby użyteczne, aby być w stanie obliczyć te sześciany w locie, i na różnych poziomach szczegółowości w zależności od zamierzonego użycia.

Pierwszym formatem, który był nieco udokumentowany w czasie, gdy został opracowany, jest format punktu kontrolnego Gaussian. Format ten jest znacznie łatwiejszy do odczytania niż pliki dziennika generowane w trakcie działania programu i dostarcza wszystkich szczegółów potrzebnych do obliczenia skalarnych wartości orbitali molekularnych lub gęstości elektronów w dowolnym punkcie przestrzeni. Po opracowaniu struktury klasy dla orbitali typu Gaussian, podejście zostało rozszerzone do odczytu w kilku innych popularnych formatach plików wyjściowych, w tym Q-Chem, GAMESS-US, NWChem i Molpro. Obsługa MOPAC200x została dodana później, wraz z obsługą formatu AUX i orbitali typu Slatera używanych w tym kodzie. Wszystkie te kody wypisują swoje końcowe konfiguracje używając standardowej liniowej kombinacji orbitali atomowych, co oznacza, że paralelizacja jest niezwykle prosta.

Wtyczka została opracowana tak, aby wykorzystać podejście map-reduce oferowane przez QtConcurrent w celu wykorzystania wszystkich dostępnych rdzeni procesora. Oferuje to niemal liniowe skalowanie, ponieważ każdy punkt siatki może być obliczany niezależnie od wszystkich innych punktów, czego wyniki można zobaczyć na rysunku 9. Alternatywne podejście do obliczania orbitali molekularnych zostało opracowane w drugim pluginie, który od tego czasu został wydzielony do osobnego projektu o nazwie „OpenQube”. Biblioteka „OpenQube” została również dodana jako opcjonalny backend w VTK podczas Google Summer of Code 2011, przynosząc wsparcie dla kilku formatów plików wyjściowych i obliczania plików sześcianów, które mogą być później wykorzystane w bardziej zaawansowanych potokach danych.

Figure 9
figure9

Orbitale i powierzchnie molekularne. Rendering izopowierzchni orbitali molekularnych (po lewej) i elektrostatycznego potencjału powierzchniowego odwzorowanego na gęstość elektronową (po prawej).

Hierarchia klas ze standardowym API jest dostarczana dla wyjścia kwantowego. Dodanie wsparcia dla nowych kodów wymagało opracowania nowego parsera i zapewnienia, że zestaw Gaussa lub Slatera jest wypełniony prawidłowym uporządkowaniem i oczekiwanym schematem normalizacji. Obsługiwane są orbitale Gaussa typu s, p i d, z planowaną obsługą f i g w celu wsparcia rosnącej liczby obliczeń wykorzystujących te orbitale wyższego rzędu. Basis Set Exchange hostowany przez EMSL zapewnia dostęp do powszechnie używanych zestawów bazowych, chociaż obecnie te zestawy bazowe są zwykle odczytywane bezpośrednio z plików wyjściowych. Istnieje kilka powiązanych projektów mających na celu dodanie semantycznego znaczenia do tego typu danych wyjściowych, w tym projekt JUMBO-Converters i Quixote. Jest nadzieja, że więcej kodów przyjmie w przyszłości wyjście semantyczne, używając wspólnego formatu, tak aby wymiana danych, walidacja i analiza stały się łatwiejsze w kilku kodach. Było to tematem ostatniego spotkania z kilkoma kodami chemii obliczeniowej, które zaczęły używać FoX do wyprowadzania CML. Rozpoczęto prace nad kodem do odczytu danych wyjściowych CML, albo bezpośrednio z kodów, albo z konwersji innych formatów przy użyciu Open Babel lub JUMBO-Converters. Jeśli do CML zostanie dodana wystarczająca struktura semantyczna, a konwertery będą obsługiwać wystarczająco duży zakres danych wyjściowych, może to zastąpić większość kodu parsującego obecnego w OpenQube. Semantyczne znaczenie jest jednym z najtrudniejszych do wydobycia z plików logów, a zebranie się razem jako społeczność pomoże projektom takim jak Avogadro wydobyć więcej znaczenia z danych wyjściowych tych kodów.

Podstawowa struktura biologiczna

Avogadro używa czytnika PDB z Open Babel do odczytu wtórnej struktury biologicznej. Istnieją dwa pluginy do przetwarzania i renderowania tych informacji. Pierwszy z nich to plugin, który renderuje prostą tubę pomiędzy atomami szkieletu biomolekuły. Drugi, bardziej zaawansowany plugin, oblicza siatki dla heliksów alfa i arkuszy beta. Podczas gdy pierwszy plugin jest znacznie szybszy, zaawansowany plugin dokładniej odwzorowuje dane oczekiwane w terenie. Pozwala to użytkownikom na elastyczność w renderowaniu drugorzędowych struktur biologicznych.

GLSL, nowa wizualizacja

GLSL, lub OpenGL Shader Language, jest składnią podobną do języka C, która może być używana do tworzenia kodu, który będzie działał na kartach graficznych i został włączony do specyfikacji OpenGL 2.0. Język ten jest wykorzystywany z dużym powodzeniem przez przemysł gier, jak również w wielu dziedzinach wizualizacji danych. Kilka ostatnich prac podkreśla jego potencjał w chemii, np. QuteMol w dodawaniu obsługi takich funkcji jak ambient occlusion, aby dodać głębi obrazom.

Avogadro posiada wsparcie dla programów shaderów wierzchołków i fragmentów, a kilka przykładów jest dołączonych do pakietu. Jeśli karta graficzna użytkownika jest do tego zdolna, programy te mogą być ładowane w czasie pracy i używane do wizualizacji struktury. Niektóre z nich zawierają techniki podsumowujące, takie jak renderowanie izopowierzchni, gdzie widoczne są tylko krawędzie ortogonalne do płaszczyzny widoku, co daje znacznie lepsze odwzorowanie zarówno struktury molekularnej jak i elektronicznej (Rysunek 10).

Rysunek 10
figure10

Renderowanie orbitali molekularnych przy użyciu shaderów GLSL. Rendering izopowierzchni orbitali molekularnych z wykorzystaniem dwóch shaderów GLSL do podświetlenia krawędzi powierzchni. Efekt X-ray (po lewej) oraz czerwony i niebieski (po prawej) pokazujący dodatnie i ujemne kształty orbitali molekularnych.

Ray tracing

Avogadro używa abstrakcji malarza, która znacznie ułatwia programistom dodawanie nowych typów wyświetlania. Abstrahuje również od renderera, dzięki czemu możliwe jest dodanie wsparcia dla alternatywnych backendów. Obecnie obsługiwane są tylko OpenGL i POV-Ray. Dzięki abstrakcji, jesteśmy w stanie używać powierzchni implicite dostępnych w ray tracerach do renderowania struktury molekularnej na bardzo wysokim poziomie przejrzystości i bez artefaktów trójkątów obecnych w standardowo renderowanych obrazach OpenGL. Znacznie wyższa jakość przezroczystości i odbicia pozwala również na wykorzystanie tych obrazów w prezentacjach plakatowych i ustnych, jak również w artykułach naukowych (Rysunek 11).

Figure 11
figure11

Ray-traced HOMO isosurfaces of varying cube density. Rendering izopowierzchni orbitali molekularnych przy użyciu POV-Ray z kostkami o niskiej (po lewej) i wysokiej (po prawej) gęstości.

Ta funkcja jest zaimplementowana w rozszerzeniu, z dodatkową klasą malarza wywodzącą się z klasy bazowej i oknem dialogowym pozwalającym użytkownikowi na edycję podstawowych kontrolek renderingu. Plik wejściowy POV-Ray może być również zachowany i edytowany w celu uzyskania bardziej złożonych obrazów, lub w celu umożliwienia znacznie dokładniejszej kontroli procesu renderowania, jeśli jest to pożądane.

Biblioteka Avogadro w użyciu

Pierwszym zastosowaniem biblioteki Avogadro była aplikacja Avogadro, zaraz po niej program układu okresowego Kalzium, który jest częścią kolekcji oprogramowania KDE. Ta początkowa praca została sfinansowana częściowo przez program Google Summer of Code w 2007 roku, a także zaowocowała dodaniem kilku innych funkcji w bibliotece Avogadro w celu wsparcia Kalzium oraz ogólnej wizualizacji i edycji struktury molekularnej (Rysunek 12).

Figure 12
figure12

Aplikacja Kalzium w KDE wykorzystująca Avogadro do renderowania struktur molekularnych.

Pakiet Q-Chem opracował „QUI – The Q-Chem User Interface” wokół Avogadro, pierwotnie jako rozszerzenie Avogadro. Jest to bardziej zaawansowana wersja generatora danych wejściowych opracowana w Avogadro, z dużo ściślejszą integracją. Molpro opublikowało również niektóre wyniki z ich rozwoju interfejsu Molpro używając biblioteki Avogadro .

Packmol

Packmol jest pakietem innej firmy zaprojektowanym do tworzenia wstępnych „spakowanych” konfiguracji cząsteczek dla dynamiki molekularnej lub innych symulacji. Przykłady obejmują otaczanie białka rozpuszczalnikiem, mieszaniny rozpuszczalników, dwuwarstwy lipidowe, micele sferyczne, umieszczanie przeciwjonów, dodawanie ligandów do nanocząstek, itp. Zazwyczaj użytkownicy mogą posiadać zrównowazone „pudełka rozpuszczalnika”, które były uruchamiane przez długie symulacje w celu zapewnienia odpowiedniej gęstości oraz zarówno krótko- jak i długozasięgowych oddziaływań pomiędzy cząsteczkami rozpuszczalnika. Użycie takich skrzynek rozpuszczalnika pozwala na umieszczenie cząsteczek rozpuszczalnika, takich jak białka, w przybliżonej poprawnej strukturze początkowej, takiej jak ta pokazana na Rysunku 13. Solut jest dodawany do pudełka, a cząsteczki rozpuszczalnika z nakładającymi się atomami są usuwane. Chociaż te narzędzia są często wystarczające, tworzenie złożonych plików wejściowych nie zawsze jest łatwe. W przypadku bardziej skomplikowanych układów, Packmol może utworzyć początkową konfigurację na podstawie zdefiniowanych gęstości, geometrii (np. sfera, pudełko, itp.) i cząsteczek, które mają być umieszczone. Programista Avogadro napisał zewnętrzną wtyczkę ułatwiającą korzystanie z Packmol, w tym szacowanie liczby cząsteczek w danej objętości.

Figure 13
figure13

Warstwa lipidowa PackMol wytworzona przez rozszerzenie PackMol.

Wtyczka nie jest obecnie dystrybuowana z Avogadro jako standardowa funkcja, chociaż jest planowana dla jakiejś przyszłej wersji. Służy jako przykład tego, jak Avogadro może ułatwić przepływ pracy z pakietem zorientowanym na tekst (Packmol), w tym zapisywanie plików w formacie PDB wymaganym przez Packmol, generowanie pliku wejściowego i odczytywanie danych wyjściowych do wizualizacji, analizy i dalszych symulacji.

XtalOpt

Pakiet oprogramowania XtalOpt jest zaimplementowany jako rozszerzenie C++ dla Avogadro i mocno wykorzystuje API libavogadro. Rozszerzenie implementuje algorytm ewolucyjny dostosowany do przewidywania struktur krystalicznych. Zespół programistów XtalOpt wybrał Avogadro jako platformę ze względu na jego licencję open-source, dobrze zaprojektowane API, potężne narzędzia wizualizacyjne i intuicyjny interfejs użytkownika. XtalOpt istnieje jako okno dialogowe (Rysunek 14) i wykorzystuje główne okno Avogadro do wizualizacji struktur kandydujących w trakcie ich ewolucji. API jest dobrze dopasowane do potrzeb XtalOpt, zapewniając prosty mechanizm pozwalający użytkownikowi na przeglądanie, edycję i eksport struktur wygenerowanych podczas wyszukiwania. Wykorzystując międzyplatformowe możliwości Avogadro i jego zależności, XtalOpt jest dostępny dla systemów Linux, Windows i Mac.

Figure 14
figure14

Rozszerzenie XtalOpt. Rozszerzenie XtalOpt przedstawiające wykres stabilności vs. postęp wyszukiwania dla superkomórki TiO2.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.