- Interfața grafică cu utilizatorul
- Chimie semantică
- Construirea unei molecule: atom cu atom
- Construirea unei molecule: din fragmente
- Pregătirea intrărilor pentru codurile cuantice
- Aliniere și măsurători
- Vizualizare
- Reprezentări standard
- Calculele cuantice și structura electronică
- Structura biologică secundară
- GLSL, vizualizare inedită
- Ray tracing
- Librăria Avogadro în utilizare
- Packmol
- XtalOpt
Interfața grafică cu utilizatorul
Primul lucru pe care majoritatea oamenilor îl vor vedea este fereastra principală a aplicației Avogadro, așa cum se arată în figura 4. Sunt furnizate instalatoare binare pentru Apple Mac OS X și Microsoft Windows, împreună cu pachete pentru toate distribuțiile majore de Linux. Acest lucru înseamnă că Avogadro poate fi instalat destul de ușor pe majoritatea sistemelor de operare. Instrucțiuni ușor de urmat privind modul de compilare a celui mai recent cod sursă sunt, de asemenea, furnizate pe site-ul web principal Avogadro pentru cei mai aventuroși sau pentru cei care folosesc un sistem de operare care nu este încă compatibil.
Kit-ul de instrumente Qt conferă Avogadro un aspect nativ pe cele trei sisteme de operare majore acceptate – Linux, Apple Mac OS X și Microsoft Windows. A fost implementată funcționalitatea de bază așteptată la un constructor și vizualizator molecular, împreună cu câteva caracteristici mai puțin comune. Este foarte ușor pentru noii utilizatori să instaleze Avogadro și să construiască primele molecule în câteva minute. Mulțumită bibliotecii Open Babel , Avogadro suportă o mare parte din formatele de fișiere chimice care sunt utilizate în mod obișnuit. Marea majoritate a acestei funcționalități a fost scrisă cu ajutorul interfeței puse la dispoziția scriitorilor de plugin-uri și este încărcată în timpul execuției. Vom discuta mai târziu despre aceste interfețe pentru plugin-uri și despre descrierile tipurilor de plugin-uri.
Chimie semantică
Avogadro a folosit CML ca format de fișier implicit încă de la început; acesta a fost ales în detrimentul altor formate de fișiere datorită structurii semantice extensibile oferite de CML, precum și datorită suportului disponibil în Open Babel . Formatul CML oferă o serie de avantaje față de altele utilizate în mod obișnuit, inclusiv posibilitatea de a extinde formatul. Acest lucru permite ca Avogadro și alte programe să fie pregătite pentru viitor, adăugând ulterior noi informații și caracteristici necesare pentru un editor avansat conștient din punct de vedere semantic, rămânând în același timp lizibile în versiunile mai vechi ale Avogadro.
Prin utilizarea Open Babel , poate fi interpretată o gamă largă de formate de fișiere. Atunci când s-a extins Avogadro pentru a citi cantități mai mari de ieșire din codurile cuantice, a fost necesar să se aloce resurse de dezvoltare semnificative pentru a înțelege și a adăuga semnificație semantică la ieșirea codului cuantic. Această activitate a fost dezvoltată într-un plugin, care a fost ulterior divizat într-o mică bibliotecă independentă numită OpenQube . Mai recent, o cantitate mare de muncă a fost depusă de către proiectul Quixote , JUMBO-Converters și atelierul Semantic Physical Science pentru a spori codurile cuantice pentru a scoate mai multe din aceste date direct din cod. Deoarece CML poate fi extins, este posibil să se reutilizeze convențiile existente pentru datele de structură moleculară și să se adauge noi convenții pentru datele cuantice suplimentare.
Construirea unei molecule: atom cu atom
După ce se deschide Avogadro se prezintă o fereastră precum cea din figura 4. În mod implicit, este selectat instrumentul de desenare. Un simplu clic cu butonul stâng al mouse-ului pe partea neagră a ecranului permite utilizatorului să deseneze un atom de carbon. Dacă utilizatorul apasă butonul stâng al mouse-ului și trage, se desenează un atom de carbon legat între punctul de pornire și poziția finală în care se eliberează mouse-ul.
Un efort mare a fost depus pentru a crea un instrument intuitiv pentru desenarea moleculelor mici. Elementele chimice comune pot fi selectate dintr-o listă derulantă sau poate fi afișat un tabel periodic pentru a selecta elemente mai puțin comune. Dacă se face clic pe un atom existent, acesta se schimbă în elementul selectat în acel moment, dacă se trage se schimbă atomul înapoi la elementul anterior și se desenează un nou atom legat de cel original. În cazul în care legăturile sunt apăsate cu butonul din stânga, ordinea legăturilor variază între simplu, dublu și triplu. Sunt disponibile, de asemenea, taste de comandă rapidă, de exemplu, tastarea simbolului atomic (de exemplu, „C-o” pentru cobalt) schimbă elementul selectat sau tastarea numerelor „1”, „2” și „3” schimbă ordinea legăturilor.
Clicul dreapta pe atomi sau legături le șterge. Dacă se bifează căsuța „Adjust Hydrogens” (Ajustați hidrogenii), numărul de hidrogeni legați de fiecare atom este ajustat automat pentru a satisface valența. Alternativ, acest lucru se poate face și la sfârșitul unei sesiuni de editare, utilizând extensia „Add hydrogens” din meniul de construcție.
În plus față de instrumentul de desenare, există două instrumente pentru ajustarea poziției atomilor în moleculele existente. Instrumentul „atom centric manipulate” poate fi utilizat pentru a muta un atom sau un grup de atomi selectați. Instrumentul „bond centric manipulate” poate fi utilizat pentru a selecta o legătură și apoi pentru a ajusta poziția tuturor atomilor în raport cu legătura selectată în diferite moduri (de exemplu, modificarea lungimii legăturii, a unghiurilor de legătură sau a unghiurilor diedrale). Aceste trei instrumente permit o mare flexibilitate în construirea interactivă pe ecran a moleculelor mici.
După ce structura moleculară este completă, extensia câmpului de forță poate fi utilizată pentru a efectua o optimizare a geometriei. Făcând clic pe „Extensions” și „Optimize Geometry” se realizează o optimizare rapidă a geometriei moleculei. Câmpul de forță și parametrii de calcul pot fi ajustați, dar valorile implicite sunt adecvate pentru majoritatea moleculelor. Acest flux de lucru este tipic atunci când se construiesc structuri moleculare mici pentru a fi utilizate ca intrare în calcule cuantice sau figuri de calitate pentru publicare.
O alternativă este combinarea instrumentului „Auto Optimization” cu instrumentul de desen. Acest lucru prezintă un mod unic de a sculpta molecula în timp ce geometria este în mod constant minimizată în fundal. Optimizarea geometriei este animată, iar efectul modificării ordinii legăturilor, al adăugării de noi grupe sau al eliminării de grupe poate fi observat în mod interactiv.
Sunt implementate mai multe dialoguri pentru a furniza informații despre proprietățile moleculei și pentru a modifica cu precizie parametrii, cum ar fi coordonatele carteziene ale atomilor din moleculă.
Construirea unei molecule: din fragmente
În plus față de construirea moleculelor atom cu atom, utilizatorii pot insera fragmente pre-construite de molecule comune, liganzi sau secvențe de aminoacizi, așa cum se arată în figura 5. În toate cazurile, după inserarea fragmentului, se selectează instrumentul de manipulare centrată pe atom, ceea ce permite ca fragmentul să fie mutat sau rotit cu ușurință în poziție.
Utilizatorii pot, de asemenea, să insereze un șir SMILES pentru o moleculă. În acest caz, o geometrie 3D aproximativă este generată folosind Open Babel și o optimizare rapidă a câmpului de forțe.
Pregătirea intrărilor pentru codurile cuantice
Au fost dezvoltate câteva extensii pentru Avogadro care ajută utilizatorul în pregătirea fișierelor de intrare pentru codurile cuantice populare, cum ar fi GAMESS-US, NWChem, Gaussian, Q-Chem, Molpro și MOPAC200x . Dialogurile grafice prezintă caracteristicile necesare pentru a executa calcule cuantice de bază; câteva exemple sunt prezentate în figura 6.
Vizualizarea fișierului de intrare din partea de jos a fiecărui dialog se actualizează pe măsură ce se modifică opțiunile. Această abordare îi ajută pe noii utilizatori de coduri cuantice să învețe sintaxa fișierelor de intrare pentru diferite coduri și să genereze rapid fișiere de intrare utile pe măsură ce învață. Datele de intrare pot fi, de asemenea, editate manual în fereastra de dialog înainte ca fișierul să fie salvat și trimis codului cuantic. Extensia MOPAC poate, de asemenea, să ruleze direct programul MOPAC200x, dacă acesta este disponibil pe computerul utilizatorului, și apoi să reîncarce fișierul de ieșire în Avogadro odată ce calculul este finalizat. Această funcție va fi extinsă la alte coduri cuantice în versiunile viitoare ale Avogadro.
Extensia GAMESS-US este una dintre cele mai dezvoltate, oferind un dialog de bază prezent în majoritatea celorlalte generatoare de pachete de intrare, precum și un dialog avansat care expune multe dintre cele mai neobișnuite și complexe tipuri de calcule. În plus față de dialogul avansat, setul de date de intrare poate fi editat inline și dispune de evidențiere a sintaxei (figura 7), așa cum se utilizează în multe editoare populare destinate dezvoltatorilor de software. Aceasta poate indica erori simple de tastare a cuvintelor cheie, precum și erori de spații albe mai greu de detectat, care, în caz contrar, ar face ca pachetul de intrare editat manual să eșueze atunci când este citit de GAMESS-US.
Aliniere și măsurători
Unul dintre instrumentele specializate incluse în distribuția Avogadro standard este instrumentul de aliniere. Acest instrument cu ajutorul mouse-ului facilitează alinierea unei structuri moleculare cu originea coordonatelor, dacă este selectat un atom, și de-a lungul axei specificate, dacă sunt selectați doi atomi. Instrumentul de aliniere poate fi combinat cu instrumentele de măsurare, selectare și manipulare pentru a crea intrări pentru codurile cuantice în care poziția și orientarea moleculei sunt importante. Un exemplu în acest sens sunt calculele în care un câmp electric extern este aplicat moleculei. În aceste tipuri de calcule, alinierea moleculei poate avea un efect important. Figura 8 prezintă instrumentul de măsurare în acțiune, cu dialogul de configurare a instrumentului de aliniere vizibil în colțul din stânga jos.
Ar putea fi create instrumente de aliniere mai complexe pentru sarcini specifice. Instrumentul de aliniere a fost creat în doar câteva ore pentru un proiect de cercetare specific. Acesta este un prim exemplu în care extensibilitatea a fost foarte importantă pentru efectuarea de cercetări cu ajutorul unui instrument grafic de chimie computațională. Nu ar merita investiția de a crea o nouă aplicație doar pentru a alinia structurile moleculare la o axă, dar crearea unui plugin pentru un proiect extensibil nu este nerezonabilă.
Vizualizare
Aplicația Avogadro utilizează OpenGL pentru a reda interactiv pe ecran reprezentările moleculare. OpenGL oferă un API de nivel înalt, interplatformă, pentru redarea imaginilor tridimensionale folosind grafica accelerată de hardware. În cea mai mare parte a codului de redare se utilizează OpenGL 1.1 și versiunile ulterioare, astfel încât Avogadro poate fi utilizată chiar și pe sisteme informatice mai vechi sau pe cele care nu dispun de o grafică accelerată mai modernă. Este capabil să profite de unele dintre cele mai noi caracteristici disponibile în OpenGL 2.0, așa cum sunt descrise mai jos, dar acest lucru a fost păstrat ca o caracteristică suplimentară opțională atunci când se lucrează la vizualizări noi ale structurii moleculare.
Reprezentări standard
În chimie, există mai multe reprezentări standard ale structurii moleculare, bazate inițial pe cele posibile cu modelele fizice. Aplicația Avogadro implementează fiecare dintre aceste reprezentări prezentate în figura 2 sub formă de plugin. Acestea variază de la simpla reprezentare wireframe, baston/lichidă, bilă și baston și sfere Van der Waals.
Este, de asemenea, posibilă combinarea mai multor reprezentări, cum ar fi bila și bastonul cu redarea inelului (Figura 2 (d)) și o reprezentare semitransparentă de umplere a spațiului Van der Waals cu o reprezentare de tip baston pentru a elucida coloana vertebrală moleculară (Figura 2 (f)).
Calculele cuantice și structura electronică
Codurile cuantice au fost dezvoltate inițial pentru imprimantele liniare și, din păcate, puține lucruri s-au schimbat de atunci în fișierele de jurnal standard. Există mai multe formate dezvoltate pentru a fi utilizate în alte coduri și în mod specific pentru vizualizare și analiză, dar există puțin acord asupra unui format standard de fișier în comunitatea de chimie cuantică computațională. Un plugin a fost dezvoltat în Avogadro pentru a vizualiza ieșirea diferitelor coduri cuantice și pentru a obține datele în formatul potrivit pentru vizualizare și analiză ulterioară.
Inițial, în Open Babel a fost adăugat și extins suportul pentru fișierele cubului Gaussian. Acest format furnizează coordonate atomice și una sau mai multe grile de valori scalare spațiate regulat. Acestea pot fi citite, iar tehnici precum algoritmul cuburilor de marș pot fi utilizate pentru a calcula ochiuri triunghiulare de izosuprafețe la valori ale densității electronice, de exemplu. Odată ce a fost dezvoltat codul pentru a vizualiza aceste izosuprafețe, a devenit clar că ar fi util să se poată calcula aceste cuburi din mers și la diferite niveluri de detaliu, în funcție de utilizarea preconizată.
Primul format, care a fost oarecum documentat în momentul în care a fost dezvoltat, este formatul Gaussian format checkpoint. Acest format este mult mai ușor de analizat decât fișierele jurnal generate pe măsură ce programul rulează și oferă toate detaliile necesare pentru a calcula valorile scalare ale orbitalului molecular sau ale densității electronice în orice punct din spațiu. După ce a fost dezvoltată o structură de clasă pentru orbitali de tip Gaussian, abordarea a fost extinsă pentru a citi în alte câteva formate populare de fișiere de ieșire, inclusiv Q-Chem, GAMESS-US, NWChem și Molpro. Suportul MOPAC200x a fost adăugat ulterior, împreună cu suportul pentru formatul AUX și orbitalii de tip Slater utilizați în acest cod. Toate aceste coduri emit configurațiile finale folosind combinația liniară standard de orbitali atomici, ceea ce înseamnă că paralelizarea este extrem de simplă.
Principalul a fost dezvoltat pentru a profita de abordarea map-reduce oferită de QtConcurrent pentru a utiliza toate nucleele de procesor disponibile. Acest lucru oferă o scalare aproape liniară, deoarece fiecare punct din grilă poate fi calculat independent de toate celelalte puncte, ale cărui rezultate pot fi văzute în figura 9. O abordare alternativă pentru calcularea orbitalilor moleculari a fost dezvoltată într-un al doilea plugin care, între timp, a fost divizat într-un proiect separat numit „OpenQube”. Biblioteca „OpenQube” a fost, de asemenea, adăugată ca backend opțional în VTK în timpul Google Summer of Code din 2011, aducând suport pentru mai multe formate de fișiere de ieșire și calcularea fișierelor cubice care pot fi ulterior introduse în conducte de date mai avansate.
Pentru ieșirea cuantică este furnizată o ierarhie de clase cu o API standard. Adăugarea suportului pentru noi coduri a implicat dezvoltarea unui nou parser și asigurarea faptului că setul Gaussian sau Slater este populat cu ordonarea corectă și cu schema de normalizare așteptată. Sunt suportați orbitalii gaussieni de tip s, p și d, fiind planificat suportul pentru orbitalii de tip f și g, pentru a susține numărul tot mai mare de calcule care utilizează acești orbitali de ordin superior. Basis Set Exchange găzduit de EMSL oferă acces la seturile de baze utilizate în mod obișnuit, deși în prezent aceste seturi de baze sunt în mod normal citite direct din fișierele de ieșire. Există mai multe proiecte conexe pentru adăugarea unei semnificații semantice la acest tip de ieșire, inclusiv proiectul JUMBO-Converters și Quixote. Se speră că, în viitor, tot mai multe coduri vor adopta ieșirea semantică, utilizând un format comun, astfel încât schimbul de date, validarea și analiza să devină mai ușoare între mai multe coduri. Acesta a fost subiectul unei întâlniri recente cu mai multe coduri de chimie computațională care au început să utilizeze FoX pentru a produce CML. A început dezvoltarea de coduri pentru a citi ieșirea CML, fie direct din coduri, fie din conversia altor formate cu ajutorul Open Babel sau al convertoarelor JUMBO. Dacă se poate adăuga suficientă structură semantică la CML, iar convertoarele acceptă o gamă suficient de mare de ieșiri, acest lucru ar putea înlocui cea mai mare parte a codului de analiză analitică prezent în OpenQube. Semnificația semantică este una dintre cele mai dificil de extras din fișierele jurnal, iar reunirea în cadrul unei comunități va ajuta proiecte precum Avogadro să extragă mai multă semnificație din ieșirile acestor coduri.
Structura biologică secundară
Avogadro utilizează cititorul PDB din Open Babel pentru a citi structura biologică secundară. Există două plugin-uri pentru a procesa și reda aceste informații. Primul este un plugin care redă un tub simplu între atomii din coloana vertebrală a biomoleculelor. Un al doilea plugin mai avansat calculează ochiuri de plasă pentru elicele alfa și foile beta. În timp ce primul plugin este mult mai rapid, pluginul avansat produce cu mai multă acuratețe rezultatele așteptate pe teren. Acest lucru oferă utilizatorilor flexibilitate pentru redarea structurilor biologice secundare.
GLSL, vizualizare inedită
GLSL, sau OpenGL Shader Language, este o sintaxă de tip C care poate fi utilizată pentru a dezvolta cod care va rula pe plăci grafice și este inclusă în specificația OpenGL 2.0. Acesta a fost folosit cu mare succes de industria jocurilor, precum și în multe domenii de vizualizare a datelor. Mai multe lucrări recente evidențiază potențialul în chimie, cum ar fi QuteMol în adăugarea de suport pentru caracteristici precum ocluzia ambientală pentru a adăuga profunzime imaginilor.
Avogadro are suport pentru programe de shader de vertex și de fragmente, iar câteva exemple sunt incluse în pachet. Dacă placa grafică a utilizatorului este capabilă, aceste programe pot fi încărcate în timpul execuției și folosite cu mare efect pentru a vizualiza structura. Unele dintre acestea includ tehnici de sintetizare, cum ar fi redarea izosuprafeței, în care sunt vizibile doar marginile ortogonale la planul de vizualizare, oferind o redare mult mai bună atât a structurii moleculare, cât și a celei electronice (figura 10).
Ray tracing
Avogadro folosește o abstractizare a pictorului care face mult mai ușor pentru dezvoltatori să adauge noi tipuri de afișare. De asemenea, face abstracție de randare, ceea ce face posibilă adăugarea de suport pentru backend-uri alternative. În prezent, sunt acceptate doar OpenGL și POV-Ray. Datorită abstractizării, suntem capabili să folosim suprafețele implicite disponibile în trasoarele de raze pentru a reda structura moleculară la niveluri foarte ridicate de claritate și fără niciunul dintre artefactele triunghiulare prezente în imaginile randate OpenGL standard. Transparența și reflexia de o calitate mult mai ridicată permit, de asemenea, ca imaginile să fie utilizate în prezentări orale și de poster, precum și în articole de cercetare (figura 11).
Această caracteristică este implementată într-o extensie, cu o clasă suplimentară de pictor care derivă din clasa de bază și un dialog care permite utilizatorului să editeze controalele de bază ale randării. Fișierul de intrare POV-Ray poate fi, de asemenea, păstrat și editat pentru a produce imagini mai complexe sau pentru a permite un control mult mai fin al procesului de randare, dacă se dorește.
Librăria Avogadro în utilizare
Prima utilizare a bibliotecii Avogadro a fost aplicația Avogadro, urmată îndeaproape de programul de tabele periodice Kalzium, care face parte din colecția de software KDE. Această activitate inițială a fost finanțată în parte de programul Google Summer of Code din 2007 și a dus, de asemenea, la adăugarea altor câteva caracteristici în biblioteca Avogadro pentru a sprijini Kalzium și vizualizarea și editarea generală a structurii moleculare (figura 12).
Pachetul Q-Chem a dezvoltat „QUI – The Q-Chem User Interface” în jurul Avogadro, inițial ca o extensie Avogadro. Aceasta este o versiune mai avansată a generatorului de intrări dezvoltat în Avogadro, cu o integrare mult mai strânsă. Molpro a publicat, de asemenea, unele rezultate din dezvoltarea unei interfețe Molpro care utilizează biblioteca Avogadro .
Packmol
Packmol este un pachet terț conceput pentru a crea configurații inițiale „împachetate” de molecule pentru dinamica moleculară sau alte simulări . Exemplele includ înconjurarea unei proteine cu solvent, amestecuri de solvenți, bicapace lipidice, micelii sferice, plasarea de contraioni, adăugarea de liganzi la nanoparticule etc. De obicei, utilizatorii pot avea „cutii de solvenți” echilibrate, care au fost rulate pentru simulări îndelungate pentru a asigura o densitate adecvată, precum și interacțiuni cu rază scurtă și lungă de acțiune între moleculele de solvent. Utilizarea unor astfel de cutii de solvent permite plasarea moleculelor de solut, cum ar fi proteinele, într-o structură inițială aproximativ corectă, cum ar fi cea prezentată în figura 13. Solutul este adăugat în cutie, iar moleculele de solvent cu atomi suprapuși sunt eliminate. Deși aceste utilități sunt adesea suficiente, crearea de fișiere de intrare complexe nu este întotdeauna ușoară. Pentru sisteme mai complicate, Packmol poate crea o configurație inițială bazată pe densități definite, geometrii (de exemplu, sferă, cutie etc.) și moleculele care urmează să fie plasate. Un dezvoltator Avogadro a scris un plugin extern pentru a facilita utilizarea Packmol, inclusiv estimarea numărului de molecule într-un volum dat.