Opracowanie narzędzia on-line do automatycznego przygotowania plików do dynamiki molekularnej

Wielkość: px
Rozpocząć pokaz od strony:

Download "Opracowanie narzędzia on-line do automatycznego przygotowania plików do dynamiki molekularnej"

Transkrypt

1 Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Katedra Informatyki Stosowanej Krzysztof Wierzchowski nr albumu: Praca magisterska na kierunku Informatyka Stosowana Opracowanie narzędzia on-line do automatycznego przygotowania plików do dynamiki molekularnej Opiekun pracy dyplomowej dr Łukasz Pepłowski Instytut Fizyki Toruń 2015 Pracę przyjmuję i akceptuję Potwierdzam złożenie pracy dyplomowej data i podpis opiekuna pracy data i podpis pracownika dziekanatu

2 Dziękuję Panu dr Łukaszowi Pepłowskiemu za poświęcony czas oraz pomoc w realizacji pracy magisterskiej. 1

3 UMK zastrzega sobie prawo własności niniejszej pracy magisterskiej (licencjackiej, inżynierskiej) w celu udostępniania dla potrzeb działalności naukowo-badawczej lub dydaktycznej. 2

4 Spis treści 1. Wstęp Podstawy dynamiki molekularnej Pole siłowe Funkcja energii potencjalnej Oddziaływania wiążące Oddziaływania niewiążące Optymalizacja obliczeń oddziaływań niewiążących Particle Mesh Ewald Periodyczne warunki brzegowe Modelowanie rozpuszczalnika Algorytm Verleta Metoda gradientów sprzężonych Zespół kanoniczny Standardowy przebieg symulacji dynamiki molekularnej Kontrola temperatury Przygotowanie symulacji Minimalizacja i ekwilibracja Dynamika właściwa NAMD Formaty plików Plik konfiguracyjny PDB PSF Plik parametryczny pola siłowego CHARMM

5 Plik trajektorii DCD Tworzenie plików struktur PSF Aplikacja Cel Technologie Mono ASP.NET IIS, Apache i mod_mono JavaScript, HTML5 Boilerplate, Bootstrap Moduły RcsbPdb ScriptManager NamdConfigurator Podsumowanie Literatura

6 1. Wstęp Symulacje komputerowe przeprowadzane są w celu zrozumienia skomplikowanych modeli fizycznych oraz inżynierskich. Jedną z najczęściej wykorzystywanych metod symulacyjnych jest klasyczna dynamika molekularna badająca własności zespołu molekuł pod kątem struktury oraz mikroskopowych interakcji zachodzących pomiędzy nimi. Stanowi to dopełnienie względem tradycyjnie przeprowadzanych eksperymentów, pozwalając na dostrzeżenie nowych cech, których odkrycie byłoby niemożliwe w przypadku innych metod badawczych. Symulacje komputerowe stanowią pewnego rodzaju most pomiędzy mikroskopowymi skalami odległości i czasu a makroskopowym światem laboratorium. Tworzenie modelu oddziaływań międzycząsteczkowych, umożliwia pomiar wynikających z niego właściwości. Stworzony model może z dowolnie wybraną dokładnością odwzorowywać molekuły, jedynym ograniczeniem jest moc obliczeniowa komputerów. Symulacje stanowią most także w innym rozumieniu, jako połączenie teorii i eksperymentu. Z jednej strony teorię naukową można przetestować na podstawie symulacji przeprowadzonej na tym samym modelu teoretycznym, z drugiej strony, prawidłowość modelu można potwierdzić na podstawie danych eksperymentalnych. Ponadto, symulacje komputerowe warto przeprowadzać w sytuacji, kiedy eksperyment jest trudny do odtworzenia w laboratorium, np. ze względu na wysokie temperatury czy ciśnienie. We wszystkich przypadkach stworzenie odpowiednio dokładnego modelu jest kluczowym zagadnieniem. Początkowo symulacja dynamiki molekularnej zyskała popularność w dziedzinie badań właściwości mechanicznych materiałów [1], a od lat 70 XX wieku także w biochemii oraz biofizyce [2], [3]. Jest często używana do redefinicji trójwymiarowych struktur białek oraz innych makromolekuł badanych przy pomocy rentgenografii strukturalnej oraz spektroskopii NMR. W fizyce, znalazła zastosowanie w badaniu dynamiki zjawisk subatomowych, które nie mogą być obserwowane gołym okiem, jak np. wzrost bardzo cienkich warstw struktur w produkcji półprzewodników [4]. Jest także używana w przewidywaniu właściwości fizycznych urządzeń nanotechnologii, których nie można nawet jeszcze zbudować [5]. W biofizyce i biologii strukturalnej jest często stosowana do dokowania ligandów, symulowania błon lipidowych oraz do przewidywania nieznanych struktur białek, na podstawie znanych struktur homologicznych, czy też na podstawie symulacji procesu zwijania łańcuchów polipeptydowych [6]. 5

7 Jako bardziej szczegółowe przykłady zastosowania dynamiki molekularnej można zacytować pracę pt. Initial Stage of Cheese Production opublikowaną w Journal of Agricultural and Food Chemistry [7], która opisuje wpływ chymozyny wołu i wielbłąda, czyli enzymu trawiennego używanego w produkcji sera, na początkowy proces produkcji jakim jest krzepnięcie mleka. Na podstawie symulacji dynamiki molekularnej fragmentów białek chymozyny, próbowano wyjaśnić przyczyny, dla których czynnik krzepnięcie enzymu wielbłądziego jest wyższy od wołowego o prawie 70%. Przykładem zastosowania dynamiki molekularnej w chemii fizycznej może być publikacja A new battery-charging method suggested by molecular dynamics simulations [8], której podstawy teoretyczne oparte są na przeprowadzonej na duża skalę symulacji. W jej wyniku zaproponowano nową metodę zdolną do naładowania baterii litowo-jonowych w ułamku czasu wymaganego przy użyciu tradycyjnej metody, dzięki zastosowaniu dodatkowego oscylującego pola elektrycznego. Jednak jednym z największych odkryć jest precyzyjne określenie struktury kapsydu wirusa HIV, tj. zbudowanego z białek płaszcza, który chroni jego materiał genetyczny [9]. Uważa się, że poznanie tej struktury przyczyni się do powstania nowych i skuteczniejszych leków pomagających zwalczyć wirusa, który zabił już około 39 milionów osób [10]. Badacze użyli superkomputera Blue Waters do przeprowadzenia symulacji dynamiki molekularnej (między innymi w programie NAMD) obliczającej interakcje pomiędzy 64 milionami atomów. Na podstawie przytoczonych przykładów, można dojść do wniosku, że symulowanie dynamiki molekularnej jest nie tylko efektywnym narzędziem w badaniu teoretycznych właściwości układów biologicznych, ale przyczyniającym się także do praktycznych odkryć w wielu dziedzinach codziennego życia jak np. biologii, chemii czy medycynie. Dlatego ważnym jest, aby dokonywać rozwoju narzędzi do symulacji dynamiki molekularnej i ułatwiać do nich dostęp tak, aby wiedza niezbędna do umiejętności ich obsługi nie stanowiła wysokiej bariery dla badaczy. Celem niniejszej pracy magisterskiej jest ułatwienie obsługi narzędzia służącego do przeprowadzania symulacji dynamiki molekularnej, jakim jest NAMD, poprzez automatyzacje zadania generowania plików konfiguracyjnych z poziomu aplikacji internetowej. Pierwszy rozdział opisuje teoretyczne podstawy dynamiki molekularnej, których zrozumienie jest niezbędne, aby w prawidłowy sposób przeprowadzić symulację. W tym rozdziale scharakteryzowano parametry pól siłowych, służących do opisu oddziaływań 6

8 międzycząsteczkowych a także algorytmy: Verleta służącego do ewolucji układu atomów w czasie oraz algorytm sprzężonych gradientów, który stosowany jest do przeszukiwania punktów minimum funkcji energii potencjalnej. Drugi rozdział stanowi mini instrukcję obsługi, dzięki której w sposób ideowy można zrozumieć jak działa NAMD, w jaki sposób generuje i gromadzi dane, a także, jakie funkcjonalności udostępnia. Trzeci rozdział skupia się przede wszystkim na aplikacji internetowej. Opisuje technologię użytą do stworzenia aplikacji, implementację poszczególnych modułów oraz uzasadnia decyzje projektowe podjęte w etapie planowania. Stworzona w technologii ASP.NET aplikacja internetowa pozwala na wyszukiwanie białek z bazy danych Protein Data Bank oraz analizę widoku 3D struktur, przy użyciu programów graficznych on-line. Jednak najważniejszą funkcjonalnością jest ułatwienie procesu symulacji. Dzięki użyciu prostego w obsłudze formularza, zaprojektowanego z myślą o ergonomii użytkowania, gotowe pliki konfiguracyjne programu NAMD można wygenerować już w kilka minut, nie mając praktycznie żadnej wiedzy na temat dynamiki molekularnej. 7

9 2. Podstawy dynamiki molekularnej 2.1. Pole siłowe Symulacje komputerowe są bardzo potężnym narzędziem w badaniu struktur i dynamiki molekuł. Teoretycznie odwołując się do zasad fizyki kwantowej jesteśmy w stanie posiąść całą wiedzę o badanym układzie. Istnieje jednak bardzo wysoka bariera, którą jest problem złożoności obliczeniowej. Mimo rozwoju mocy obliczeniowej komputerów, nadal nie ma możliwości badania układów większych niż kilka set atomów przy pomocy fizyki kwantowej, nie wspominając o długich strukturach białkowych, złożonych z wielu tysięcy atomów, a uwzględniając otoczenie wodne dochodzących do milionów atomów. Stąd też chcąc poznać dogłębnie strukturę i dynamikę molekuł współczesne metody symulacji muszą stosować niezbędne uproszczenia. W metodach symulacji dynamiki molekularnej przy użyciu pól siłowych ignoruje się liczne stopnie swobody atomów i w obliczeniach uwzględnia się tylko położenia jąder atomów. Jest to fundamentalne założenie dynamiki molekularnej zwane przybliżeniem Borna Oppenheimera. Zasadności tego uproszczenia należy upatrywać w fakcie, że ruch i interakcje elektronów wokół jąder dotyczą zupełnie różnych skal czasowych a także w obserwacji, że jądro jest wielokrotnie bardziej masywne w porównaniu do mas elektronów. Dlatego do zapisu energii całkowitej układu używa się tylko położeń jąder atomów, pomijając wpływ elektronów, które na skali czasowej dynamiki molekularnej nie mają znaczącego wpływu na ruch atomów, w porównaniu do wpływu dużego i masywnego jądra. Istnieją jeszcze dwa znaczące uproszczenia: addytywność i przenaszalność. Addytywność oznacza, że całkowita energia potencjalna układu może być zapisana, jako suma energii potencjalnych poszczególnych elementów jak: energia wiązań pomiędzy dwoma, oddziaływanie kątowe pomiędzy trzema atomami czy też energia oddziaływań elektrostatycznych. Pod pojęciem przenaszalności rozumie się fakt, że pole siłowe stworzone dla małej struktury złożonej z specyficznych typów atomów i wiązań chemicznych będzie się równie dobrze nadawało, adaptowało do rzetelnego opisu o wiele większej struktury. Poprawność stosowanych pól siłowych zależy od prawidłowości zastosowania tych trzech uproszczeń. Większość pól siłowych, w tym pole siłowe CHARMM [11], opiera się o pięć głównych filarów z prostą interpretacją fizyczną: energie potencjalne związane z deformacją długości 8

10 wiązań pomiędzy dwoma atomami, deformacją geometrii wiązań kątowych istniejących pomiędzy trzema atomami, zależności kątów dwuściennych utworzonych poprzez płaszczyzny między czterema atomami a także dwa oddziaływania niewiążące elektrostatyczne oraz van der Waalsa, wynikające z korelacji ruchów elektronów wokół dwóch oddziaływujących atomów. Pole siłowe składa się z funkcji opisującej energię potencjalną układu oraz jej parametrów. Warto mieć na uwadze, że pola siłowe w dynamice molekularnej są różnorodne nie istnieje jedno uniwersalne i prawidłowe pole. Wiele pól siłowych odtwarza podobną powierzchnię energii potencjalnej, jednak może się to odbywać na drodze sumowania zupełnie różnych elementów składowych energii z różnymi parametrami. Tworzenie pola siłowego odbywa się poprzez znajdowanie korelacji pomiędzy zmierzonymi fizycznymi parametrami, uzyskanymi np. dzięki spektroskopii molekularnej i obliczeniom kwantowym a danymi eksperymentalnymi. Metodologia tworzenia pól siłowych jest jedną z przyczyn, dla których pola siłowe nie są uniwersalne a pasują dokładnie jedynie do podobnych grup atomów, dla których zostały stworzone. Jako przykład można zaprezentować prace CHARMM general force field: A force field for drug-like molecules compatible with the CHARMM all-atom additive biological force fields [12] oraz Extension of the CHARMM General Force Field to sulfonyl-containing compounds and its utility in biomolecular simulations [13], które usiłują jak w najlepszym stopniu powiązać dane eksperymentalne z parametrami pól siłowych dla molekuł leków oraz struktur zawierających związki siarczanu. Największy rozwój specyficznych pól siłowych obserwuje się dla pól siłowych opisujących białka, dużo mniejszy rozwój nastąpił w dziedzinie pól siłowych dla cukrów, kwasów nukleinowych i lipidów Funkcja energii potencjalnej Obliczanie siły jest najbardziej wymagającym zadaniem w dynamice molekularnej. Siła jest wyrażona poprzez ujemny gradient funkcji energii potencjalnej: F (r ) = U(r ), (1) dla systemu biomolekuł energia potencjalna związana jest z sumowaniem wielu oddziaływań wiążących i niewiążących pomiędzy parami atomów U(r ) = U wiążące (r ) + U niewiążące (r ). (2) 9

11 Oddziaływania wiążące to wszystkie interakcje pomiędzy układami dwóch, trzech, czterech atomów związanych kowalencyjnie, których złożoność obliczeniowa sumowania skaluje się wraz z liczbą atomów O(N). Oddziaływania niewiążące obejmują oddziaływania elektrostatyczne i van der Waalsa pomiędzy wszystkimi parami atomów, co ma znaczący wpływ na złożoność obliczeniową, zwłaszcza dla układów z wieloma atomami, gdyż sumowanie skaluje się ze złożonością O(N 2 ) Oddziaływania wiążące Oddziaływania wiążące obejmują interakcję układów złożonych z dwóch, trzech, czterech atomów oddziaływujących między sobą kowalencyjnie Energia potencjalna wiązania chemicznego Potencjał wiązań opisuje interakcję pomiędzy dwoma związanymi kowalencyjnie atomami, polegającą na rozciąganiu i kurczeniu długości wiązania. Poprzez analogię można o tym oddziaływaniu myśleć, jako o energii potencjalnej w harmonicznym ruchu drgającym pomiędzy dwoma kulkami połączonymi sprężynką. Matematycznie taki potencjał zapisujemy, jako kwadratową zależność pomiędzy faktyczną długością wiązania a długością referencyjną: U wiązania = k(r ij r 0 ) 2, (3) gdzie: - r ij = r j r i odległość pomiędzy atomami i oraz j - r 0 odległość referencyjna pomiędzy atomami - k stała sprężystości Pod pojęciem odległości referencyjnej rozumie się odległość, w jakiej znajdowałyby się atomy, gdyby nic nie krępowało ich ruchu, tzn. w sytuacji, gdyby dana para atomów oddziaływała tylko między sobą bez interakcji z innym atomami, bez wpływu sił zewnętrznych (np. w próżni), czyli w sytuacji, gdy wszystkie pozostałe człony funkcji energii potencjalnej byłyby równe zeru. Warto także wspomnieć, że stworzony model jest dobrym przybliżeniem energii dla małych wychyleń od odległości referencyjnej. Nie stanowi to zazwyczaj problemu w symulacji biocząsteczek, gdyż duże różnice względem odległości referencyjnej są niezwykle rzadko spotykane. 10

12 Rys. 1. Potencjał wiązania Energia potencjalna kątów Wiązanie kątowe istniejące pomiędzy trzema atomami można opisać, jako funkcję zmiany energii potencjalnej występującej przy deformacji kąta, stworzonego poprzez trójkę atomów (i, j, k) i określić poniższą zależnością: U kątowy = k θ (θ θ 0 ) 2 + k ub (r ik r ub ) 2, (4) gdzie: - θ kąt wyrażony w radianach pomiędzy wektorami r ij = r j r i oraz r kj = r j r k - θ 0 kąt referencyjny - k θ stała kątowa - r ik = r k r i odległość pomiędzy parą atomów i oraz k - k ub odległość referencyjna pomiędzy atomami i oraz k Pierwszy składnik sumy wiąże zależność pomiędzy kątem opartym na pozycjach trzech atomów a kątem referencyjnym, który jest kątem równowagi w stabilnym systemie trójatomowym bez udziału czynników zewnętrznych. Stała kątowa domyślnie przyjmuje wartości mniejsze niż stała sprężystości, wskazując, że wymagana jest mniejsza ilość energii do zmiany kąta wiązania w stosunku do potencjału dwóch atomów. Druga część równania jest nazywana wiązaniem Urey-Bradley, która podobnie jak dla potencjału wiązania opisuje sprężyste interakcje pomiędzy zewnętrznymi atomami i oraz k, z tą różnicą, że wspomniane atomy nie tworzą fizycznego wiązania kowalencyjnego. Warto także wspomnieć, że czynnik Urey-Bradley użyty np. w polu siłowym CHARMM nie jest używany w innych polach siłowych jak GROMOS [14] lub AMOEABA [15]. Mogłoby się wydawać, że więcej czynników uwzględnionych w energii potencjalnej przyczyni się do dokładniejszego opisu oddziaływań. Nie jest to jednak zawsze prawdą. O ile więcej parametrów pola siłowego może, ale nie musi, oznaczać lepszej dokładności, o tyle na pewno więcej parametrów przyczyni się 11

13 do bardziej skomplikowanego procesu parametryzacji i dopasowania pola siłowego do danych eksperymentalnych. Co więcej, istnieje zagrożenie nadmiernego dopasowania, dla którego uzyskana funkcja energii potencjalnej będzie doskonale odzwierciedlać dane eksperymentalne, ale będzie o wiele gorzej opisywać oddziaływania dla bardziej ogólnych przypadków. Rys. 2. Wiązanie kątowe oraz potencjał Urey-Bradley Jak wspomniano we wstępie do pól siłowych możliwość separacji energii wiązań, kątów itd. nie jest bezpośrednio oparta na prawach fizyki kwantowej jest raczej dobrą metodą aproksymacji i prostym do zrozumienia modelem obrazującym główne czynniki decydujące o strukturze i dynamice molekuł. W realnym świecie referencyjne długości wiązań czy miary kątów są ściśle ze sobą powiązanie, skorelowane. Te krzyżowe zależności mogą być uwzględniane w polach siłowych, w celu podkreślenia współzależności wiązań i kątów, kątów i kątów dwuściennych czy też wiązań i kątów dwuściennych. Omawiany potencjał Urey Bradley jest właśnie przykładem próby krzyżowego powiązania długości wiązania pomiędzy atomami i oraz k a kątem opartym o pozycje atomów i, j, k, których wartości są ze sobą ściśle skorelowane Energia potencjalna kąta dwuściennego Potencjał kąta dwuściennego (torsyjnego) reprezentuje energię potencjalną układu związaną z rotacją kąta dwuściennego. W tym przypadku wartości energii są o wiele mniejsze w stosunku do energii wiązań czy kątów. Kąt torsyjny znajduje się pomiędzy dwoma płaszczyznami utworzonymi przez atomy (i, j, k) oraz (j, k, l) tak jak pokazano to na poniższym rysunku. 12

14 Rys. 3. Kąt dwuścienny Często dokonywany jest podział kątów torsyjnych na właściwe, gdzie należy oczekiwać pełnego obrotu wokół osi utworzonej przez wiązanie (j, k) a także na niewłaściwe, gdzie rotacja jest bardzo ograniczona. Jako przykład właściwego oddziaływania torsyjnego może posłużyć jedno z trzech wiązań grupy metylowej C H, z których każde może się teoretycznie swobodnie obracać wokół osi. Przykładem oddziaływania niewłaściwego kąta torsyjnego może być struktura pierścienia benzenu, który jest strukturą planarną wszystkie atomy leżą w jednej płaszczyźnie. W wiązaniu A CH CH potrzeba dużej energii, aby zmienić zerowy kąt dwuścienny tzn. wychylić wiązanie z stabilnego, planarnego położenia. U torsyjny właściwy = k(1 + cos(nψ + φ)), (5) gdzie: - ψ kąt w radianach pomiędzy płaszczyznami (i, j, k) a (j, k, l) - n liczba dodatnia całkowita określająca ilość minimów funkcji energii potencjalnej - k stała związana z wysokością bariery potencjału - φ przesunięcie fazy określające pozycję minimum 13

15 Potencjał odchylenia od płaszczyzny Potencjał odchylenia od płaszczyzny jest bezpośrednio związany z niewłaściwymi kątami torsyjnymi. Potencjał ten został wprowadzony do pola siłowego, aby zachować planarność grup chemicznych o płaskiej geometrii, np. pierścienia benzenu, pierścieni aromatycznych w łańcuchach pobocznych aminokwasów. Matematyczny zapis jest podobny do energii potencjalnej wiązań, w tym przypadku stanowi niejako karę, czyli dodatkowy koszt energetyczny, który należy ponieść, aby wychylić strukturę z jej planarnego punktu stabilności (punktu minimum energii). U torsyjny niewłaściwy = k ψ (ψ ψ 0 ) 2, (6) gdzie: - ψ kąt w radianach pomiędzy płaszczyznami (i, j, k) a (j, k, l) - ψ 0 kąt referencyjny - k ψ stała związana z wysokością bariery potencjału Rys. 4. Kąt odchylenia od płaszczyzny 14

16 Oddziaływania niewiążące Oddziaływania niewiążące obejmują interakcje pomiędzy wszystkimi parami atomów zwykle wykluczając pary, które już brały udział w oddziaływaniach wiążących. Nawet używając najszybszych algorytmów, koszt obliczeniowy potencjału niewiążącego nadal jest największym składnikiem pracy wykonywanej w każdym kroku czasowym symulacji dynamiki molekularnej Oddziaływania Van der Waalsa Oddziaływanie van der Waalsa [16] nazwane na cześć holenderskiego naukowca Johannesa Diderika van der Waalsa, jest tak naprawdę nie pojedynczą siłą a sumą oddziaływań przyciągających i odpychających pomiędzy molekułami, które nie wynikają z wiązań kowalencyjnych lub oddziaływań elektrostatycznych jonów. Tym, co różnicuje siły van der Waalsa od odziaływań kowalencyjnych czy jonowych jest fakt, że oddziaływania van der Waalsa są spowodowane przez fluktuację w polaryzacji pobliskich cząsteczek. W skład sumy sił wchodzą [17]: Siła Keesoma pomiędzy dwoma stałymi dipolami Siła Debye pomiędzy dipolem stałem a dipolem indukowanym Siła dyspersyjna Londona pomiędzy dwoma indukowanymi dipolami Siły van der Waalsa są relatywnie słabe w porównaniu do wiązań kowalencyjnych, pełnią jednak fundamentalną rolę w biologii strukturalnej gdyż odpowiadają za wiele właściwości w chemii organicznej, np. za rozpuszczalność. 15

17 Rys. 5. Potencjał Lennarda-Jonesa W polach siłowych wkład siły van der Waalsa jest przybliżony potencjałem Lennarda Jonesa [18]. Oprócz tego potencjał Lennarda Jonesa uwzględnia oddziaływanie odpychające wynikające z zakazu Pauliego, które zapobiega nachodzeniu na siebie molekuł. gdzie: U LJ = ( E min ) [( R 12 min ) 2 ( R 6 min ) ], (7) r ij r ij - r ij = r j r i odległość pomiędzy parą atomów i oraz j - E min głębokość studni potencjału - R min dystans dla którego potencjał osiąga minimum 16

18 Podstawa przy wykładniku szóstym opisuje oddziaływanie przyciągające, którego fizycznej interpretacji należy głównie upatrywać w sile van der Waalsa, czyli słabej sile przyciągającej powstającej przy dyspersji samoistnych dipoli, które z kolei powstają w wyniku fluktuacji ładunku elektrycznego wokół jąder w atomach. Podstawa przy dwunastym wykładniku odpowiada za oddziaływanie odpychające, wynikające ze wspomnianego zakazu Pauliego, które można zaobserwować, kiedy atomy znajdują się blisko siebie (około 0.3 nm). Rzeczywista a nie przybliżona funkcja opisująca odpychanie przyjmuje postać: U(r) = exp ( 2kr ij a 0 ), (8) gdzie a 0 to teoretycznie wyznaczona stała równa promieniowi atomu Bohra [19]. Najistotniejszą rzeczą, na którą warto zwrócić uwagę patrząc z punktu złożoności obliczeniowej jest konieczność liczenia funkcji eksponencjalnej. W praktyce tę funkcję wyznacza się stosując rozwinięcie w szereg Taylora, którego zbieżność jest bardzo wolna a długość jest zależna od dokładności, jaką chcemy osiągnąć: e x = 1 + x + x2 2! + x3 3! + + xn n! + (9) Zatem forma z wykładnikiem w dwunastej potędze będzie niewątpliwie łatwiejsza do obliczenia (stały koszt), a ponadto dla badanych parametrów odległości będzie bardzo rozsądną aproksymacją funkcji eksponencjalnej. Zbieżność funkcji exp obliczanej poprzez rozwinięcie w szereg Taylora 1,0E+42 1,0E+39 1,0E+36 1,0E+33 1,0E+30 1,0E+27 1,0E+24 1,0E+21 1,0E+18 1,0E+15 1,0E+12 1,0E+09 1,0E+06 1,0E+03 1,0E+00 Szereg Taylora exp(100) Wyk. 1. Zbieżność funkcji eksponencjalnej w zależności od ilości wyrazów w rozwinięciu szeregu Taylora 17

19 Oddziaływanie elektrostatyczne Ładunek elektryczny w molekułach nie jest równomiernie rozłożony w przestrzeni wokół jądra, ponieważ różne atomy posiadają różną moc do przyciągania elektronów (np. różna elektroujemność). Niektóre własności elektrostatyczne molekuł mogą być obliczane na podstawie pierwszych zasad [20], np. potencjał elektrostatyczny może być obliczony bezpośrednio na podstawie gęstości elektronowej, która jest zdefiniowana poprzez funkcje falową. Skomplikowane zadanie wyznaczania funkcji falowej, może być uproszczone poprzez stworzenie modelu reprezentującego potencjał elektrostatyczny molekuły, jako częściowy ładunek punktowy znajdujący się bezpośrednio w centrum atomu, czyli jądrze. Ładunki częściowe (ang. partial charge) [21] powstają w wyniku niesymetrycznego podziału elektronów w czasie tworzenia wiązania chemicznego. Kiedy elektrycznie neutralny atom wiąże się chemicznie z innym neutralnym atomem, który jest bardziej elektroujemny, to jego elektrony zostają częściowo odsunięte. Pozostawia to region wokół jądra atomu z częściowym ładunkiem pozytywnym a także symetryczny częściowy ładunek ujemny wokół jądra atomu, z którym utworzono wiązanie. Powstawanie sfer częściowych ładunków jest bezpośrednim efektem tworzenia wiązania chemicznego i efekt ten nie występuje swobodnie w niezwiązanych atomach. Model częściowego ładunku znajdującego się w centrum jadra jest wygodną aproksymacją, dzięki której potencjał elektrostatyczny może być obliczony, jako: gdzie: U elektrostatyczny = - r ij = r j r i odległość pomiędzy parą atomów i oraz j - ε 0 przenikalność elektryczna próżni - q częściowy ładunek elektryczny q iq j 4πε 0 r ij, (10) Dzięki umieszczeniu ładunku elektrycznego w centrum jąder uzyskano prosty i elegancki model, w ramach którego łatwo obliczyć oddziaływanie elektrostatyczne w funkcji położeń jąder i ładunków częściowych. Wiele wysiłku zostało włożone w rozwój metod mechaniki kwantowej, dzięki którym można definiować wartości częściowych ładunków, a w konsekwencji dokładnie odtwarzać własności elektrostatyczne dużych molekuł. 18

20 2.2. Optymalizacja obliczeń oddziaływań niewiążących Zagadnienie optymalizacji obliczania oddziaływań niewiążących jest kluczowym problemem w dynamice molekularnej, ze względu na wysoki, kwadratowy względem liczby atomów koszt. Jest to oddziaływanie dalekiego zasięgu, zanikające w sposób odwrotnie proporcjonalny wraz z odległością. Podobne numeryczne problemy były rozwiązywane wcześniej w nauce, np. zależność 1/odległość w odziaływaniu grawitacyjnym. Stąd też często dokonywano adaptacji znanych metod numerycznych z innych dziedzin nauki do dynamiki molekularnej, celem obliczania oddziaływań długo zasięgowych. W najprostszym przypadku oddziaływanie długiego zasięgu może zostać obcięte na pewnym dystansie, zazwyczaj nm, tzn. po przekroczeniu pewnej odległości pomiędzy dwoma atomami stwierdza się, że energia potencjalna jest bliska 0. Taki model jest jednak bardzo podatny na powstawanie artefaktów, gdzie właściwości modelowanego obiektu są silnie zależne od odległości odcięcia. Z matematycznego punktu widzenia, powstawanie artefaktów możemy uzasadnić przez fakt, że odcięcie interakcji na pewnym dystansie powoduje, że funkcja opisująca potencjał staje się nieciągła tak samo jak siła i jej pochodne, które są niezbędne do obliczania pozycji atomów w kolejnych krokach czasowych w metodach numerycznych. Problem ten można rozwiązać poprzez wygładzenie funkcji potencjału, sił i ich pochodnych dla przedziału poprzedzającego odległość odcięcia w ten sposób można się pozbyć lub złagodzić powstawanie artefaktów, jednak wiąże się to z zastosowaniem funkcji potencjału, która nie ma fizycznych podstaw. Standardowo do wygładzenia potencjału używa się funkcji przesunięcia, która modyfikuje normalny potencjał niewiążący tak, że w pobliżu odległości odcięcia potencjał, siła i jej pochodna, a najlepiej także druga pochodna zmierzały do zera zamiast do pewnej skończonej wartości. 19

21 Rys. 6. Funkcja przesunięcia Istnieje kilka metodologii tworzenia funkcji przesunięcia, które różnią się w sposobie działania, w zależności czy działają na pochodną siły czy także na samą funkcję siły, od odległości zamiany, po której przekroczeniu dokonują modyfikacji potencjału, czy też od kształtu funkcji. Jednak wszystkie wspomniane możliwości są niejako niefizyczne, ponieważ modyfikują standardowe oddziaływanie 1/r oraz 1/r 6, które mają solidne fizyczne podstawy. Funkcja przesunięcia dla oddziaływania elektrostatycznego nie jest prawie nigdy stosowana, gdyż istnieją obecnie lepsze rozwiązania jak np. algorytm Particle Mesh Ewald. Dla potencjału Lennarda-Jonesa użycie funkcji przesunięcia będzie jednak mniej problematyczne np. pod względem powstawania artefaktów, gdyż oddziaływania zanikają o wiele szybciej niż elektrostatyczne. 20

22 2.3. Particle Mesh Ewald Sumowanie Ewalda [22], nazwane na część Paula Petera Ewalda jest modą obliczania oddziaływań długiego zasięgu (np. elektrostatycznego) w strukturach periodycznych. Na początku metoda ta została stworzona celem obliczania energii elektrostatycznej dla jonów kryształów, dziś jest wykorzystywana do obliczania interakcji długozasięgowych w chemii obliczeniowej. Sumowanie Ewalda jest szczególnym przypadkiem wzoru sumacyjnego Poissona [23], wyrażającego zależność łączącą współczynniki szeregu Fouriera wyznaczone dla periodycznie sumowanej funkcji z wartościami ciągłej transformaty Fouriera. Sumowanie energii oddziaływań w przestrzeni rzeczywistej zastąpiono równoważnym sumowaniem w przestrzeni transformacji Fouriera. W tej metodzie długozasięgowe oddziaływania podzielone są na dwie grupy: wkład krótko- i długozasięgowy. Wkład krótkozasięgowy obliczany jest w przestrzeni rzeczywistej, natomiast wkład długozasięgowy w przestrzeni transformacji Fouriera. Zaletą tej metody jest szybki czas zbieżności energii w porównaniu do zbieżności tradycyjnego sumowania. W celu dokładnego obliczenia oddziaływań Coulomba wymagane jest, aby cały układ posiadał neutralny ładunek. Sumowanie Ewalda zostało stworzone w fizyce teoretycznej na długo przed nadejściem ery komputerów. Jednak od lat 70 XX wieku metoda ta cieszyła się szerokim zastosowanie w symulacjach komputerowych układów cząsteczkowych, szczególnie w układach, których cząsteczki oddziałują poprzez odwrotność kwadratu siły jak grawitacja czy elektrostatyka. W sumowaniu Ewalda siatki cząsteczek [24] (ang. Particle mesh Ewald) potencjał oddziaływań jest podzielony na dwa składniki: wkład krótko- i długozasięgowy: φ(r) = φ krótkiego zasięgu (r) + φ długiego zasięgu (r) (11) Podstawową ideą sumowania Ewalda siatki cząstek (PME) jest zastąpienie bezpośredniego sumowania energii odziaływań pomiędzy dwoma cząsteczkami: E c = i,j φ(r j r i ) = E k.z. + E d.z. (12) poprzez dwa sumowania, sumowanie bezpośrednie E k.z. wkładu krótkozasięgowego w rzeczywistej przestrzeni: E k.z. = φ k.z. (r j r i ) i,j (13) oraz sumowanie wkładu długiego zasięgu w przestrzeni Fouriera: 21

23 E d.z. = k Φ d.z. (k) ρ (k) 2 (14) gdzie Φ d.z. oraz ρ (k) reprezentują transformaty Fouriera potencjału i funkcji gęstości ładunku. Ponieważ obie sumy posiadają cechę bardzo szybkiej zbieżności (zarówno w przestrzeni rzeczywistej jak i Fouriera), to mogą zostać obcięte bez znaczącej utraty dokładności i z dużym przyśpieszeniem obliczeń. Aby wydajnie obliczyć transformatę Fouriera dla funkcji gęstości ładunku ρ (k) wymagane jest, aby funkcja gęstości została wyznaczona w dyskretyzowanej przestrzeni. Naiwne podejście do zagadnienia oddziaływania elektrostatycznego dwóch atomów owocuje złożonością O(N 2 ), stąd obliczenia dla dużych systemów mogą być po prostu niewykonalne. Sumowanie Ewalda czerpie inspiracje z analizy harmonicznych redukując złożoność do O(N 3/2 ), co także stanowi barierę dla dużych modeli. Sumowanie Ewalda siatki cząstek (PME) używa szybkiej transformaty Fouriera, aby obniżyć złożoność aż do O(N log (N)), dlatego obserwuje się jego powszechne użycie w symulacjach dynamiki molekularnej. Często wybór tego algorytmu opisu oddziaływań długiego zasięgu nie leży po stronie użytkownika a jest podyktowany faktem, że pola siłowe są parametryzowane mając na uwadze metody, w których mają być użyte. Jako przykład można zaprezentować pracę [25], w której porównano efekty modyfikacji algorytmów oddziaływań elektrostatycznych zachowując w eksperymentach to samo pole siłowe wykazano istnienie znaczących różnic w strukturze badanego fosfolipidu. Tak długo jak nie będzie możliwe obliczenie pełnych oddziaływań długiego zasięgu pomiędzy wszystkimi parami atomów, tak długo parametry pól siłowych będą zależne od stosowanych algorytmów Periodyczne warunki brzegowe Ze względu na jawne założenie periodyczności w sumowaniu Ewalda, zastosowanie algorytmu wymaga użycia modelu fizycznego molekuły także o charakterze okresowym. W dynamice molekularnej takie założenie jest najczęściej spełnione poprzez periodyczne warunki brzegowe. 22

24 Rys. 7. Periodyczne warunki brzegowe - kolorem żółtym zaznaczono komórkę elementarną Periodyczne warunki brzegowe [26] to zestaw warunków brzegowych służących do aproksymacji nieskończonych modeli poprzez użycie tzw. komórki elementarnej. Topologia periodycznych warunków brzegowych dla przestrzeni dwuwymiarowej jest podobna do map niektórych gier komputerowych (Asteroids [27]); geometrię komórki elementarnej można zawinąć w dwóch wymiarach tak, że obiekt przekraczający granicę komórki elementarnej z jednej strony pojawia się po przeciwnej stronie z tą samą prędkością. W symulacjach komputerowych model stanowi komórkę elementarną, a jego kopie zwane są obrazami. W czasie przeprowadzania symulacji obliczenia dokonywane są tylko dla komórki elementarnej, podczas gdy obiekt może oddziaływać zarówno z obiektami w komórce elementarnej jak i z obiektami w sąsiednich obrazach Modelowanie rozpuszczalnika Struktury biologiczne nie występują w świecie rzeczywistym w próżni. Zderzenia atomów rozpuszczalnika czy powietrza powodują tarcie oraz okazjonalne zaburzenia struktury molekuły, gdy zderzenia zachodzą przy dużych prędkościach. Dynamika Langevina rozszerza 23

25 symulację dynamiki molekularnej próbując modelować wspomniane efekty: tarcie oraz losowe siły. Pozwala także na kontrolowanie temperatury układu działając jak termostat, aproksymując zespół kanoniczny zachowujący stałą temperaturę. Dynamika Langevina [28], stworzona przez francuskiego fizyka Paula Langevina, charakteryzuje się użyciem stochastycznych równań różniczkowych w celu modelowania pominiętych przez dynamikę Newtona stopni swobody. Mowa tu głównie o stopniach swobody związanych z oddziaływaniem rozpuszczalnika. Równanie Langevina: m d2 r dr dt2 = U(r) mγ + 2γk dt BTmR(t), (15) dodaje dwa nowe składniki siły do drugiego prawa Newtona: pierwszy składnik jest omawianym w rozdziale (2.1.1) gradientem energii potencjalnej, opisującym oddziaływania międzycząsteczkowe, drugi opisuje tarcie o rozpuszczalnik, trzeci natomiast losowe zdarzenia o charakterze zgodnym z rozkładem normalnym Gaussa, o średniej równej zeru. Obok parametrów takich jak: temperatura (T), stała Boltzmana (k b ), masy cząstek (m), najważniejszym z nich jest częstotliwość zderzeń γ, zwana także stałą tłumienia, która kontroluje wielkość siły tarcia oraz wariancję sił losowych. Jeśli wartość stałej tłumienia przekracza jeden, to równanie opisuje model w procesie dyfuzji, w którym siły zewnętrzne dominują siły oddziaływań i obiekt zaczyna ewoluować w czasie w sposób chaotyczny. Stała ta także zapewnia, że model jest zbieżny z rozkładem Boltzmana Algorytm Verleta W dynamice molekularnej najczęściej używanym numerycznym algorytmem całkowania jest algorytm Verleta [29]. Podstawową ideą jest zapisanie dwóch rozwinięć w szereg Taylora dla pozycji atomów r (t) wyznaczonych z równania ruchu: gdzie: - m i masa i-tego atomu - F i siła działająca na i-ty atom - r i wektor położenia i-tego atomu r i(t, r i (t)) = F i(t,r i (t)) m i, i = 1, 2,, N, (16) - r i druga pochodna położenia po czasie, czyli przyśpieszenie 24

26 Jeden z szeregów rozwijamy do przodu, czyli dla położenia w przyszłym kroku (t + Δt), gdzie Δt to krok czasowy, drugi natomiast rozwijamy do tyłu dla poprzedniego kroku czasowego (t Δt): r (t + t) = r (t) + v (t) t + (1 2)a (t)( t) 2 + (1 6) a (t)( t) 3 + O( t 4 ) (17) r (t t) = r (t) v (t) t + (1 2)a (t)( t) 2 (1 6) a (t)( t) 3 + O( t 4 ) (18) Po zsumowaniu obu wyrażeń otrzymujemy: r (t + t) = 2r (t) r (t t) + a (t)( t) 2 + O( t 4 ) (19) Powyższe równanie opisuje podstawową formę algorytmu Verleta. Ponieważ całkujemy równanie, przyśpieszenie a (t) jest po prostu siłą podzieloną przez masę (a = F /m), siła z kolei jest funkcją potencjału zależnego od położeń atomów: a (t) = (1 m) V(r (t)) (20) Błąd obcięcia algorytmu przy kroku czasowym t jest czwartego rzędu O( t 4 ), mimo, że trzecie pochodne nie występują bezpośrednio w (19) równaniu. O popularności algorytmu w dynamice molekularnej zadecydowały prostota implementacji, dokładność i stabilność. Jedynym problemem występującym w tym wariancie algorytmu Verleta jest brak bezpośredniego dostępu do wartości prędkości, które po prostu nie są obliczane. Znajomość wartości prędkości w każdym kroku czasowym może być przydatna w innych algorytmach, np. do obliczenia energii kinetycznej K, aby utrzymywać stała energię całkowitą układu E = K + V. Zachowanie stałej energii całkowitej jest jednym z testów weryfikujących prawidłowość symulacji dynamiki molekularnej. Oczywiście można obliczyć prędkości za pomocą znanych położeń, dzięki zależności: v (t) = r (t+ t) r (t t), (21) 2 t jednak błąd związany z tym wyrażeniem jest rzędu O( t 2 ) a nie O( t 4 ) tak jak przy obliczaniu pozycji. Aby rozwiązać ten problem stworzono różne warianty algorytmu Verleta, jednym z nich jest prędkościowy algorytm Verleta. W prędkościowym algorytmie Verleta położenia, prędkości i przyśpieszenia dla następnego kroku czasowego są obliczane jednocześnie (w tym samym kroku) na podstawie znanych wartości z poprzedniego kroku: 25

27 r (t + t) = r (t) + v (t) t + (1 2)a (t) t 2 (22) v (t + t 2) = v (t) + (1 2)a (t) t (23) a (t + t) = (1 m) V(r (t + t)) (24) v (t + t) = v (t + t 2) + (1 2)a (t + t) t (25) Warto zwrócić uwagę na fakt, że do przechowywania danych potrzebujemy tylko 9N adresów pamięci (trzy wektory położenia, prędkości, przyśpieszeń, określone w trójwymiarowej przestrzeni) w porównaniu do 18N w standardowym wariancie algorytmu Verleta, gdzie wymagane jest przechowywanie w pamięci pozycji, prędkości, przyśpieszenia z poprzedniego kroku czasowego. Algorytm Verleta w odmianie prędkościowej jest standardowo używanym algorytmem do numerycznego całkowania równań ruchu w programie NAMD Metoda gradientów sprzężonych Przedstawione w tym rozdziale algorytmy: największego spadku oraz sprzężonych gradientów są iteracyjnymi metodami rozwiązywania problemów optymalizacyjnych, czyli znajdowania ekstremów zadanej funkcji celu. W dynamice molekularnej metody te znalazły zastosowanie w optymalizacyjnym zagadnieniu, jakim jest problem minimalizacji energii potencjalnej układu biomolekuł. Metoda gradientów sprzężonych [30] jest algorytmem numerycznego rozwiązywania liniowych układów równań Ax = b, dla których A jest macierzą symetryczną i dodatnio określoną (wszystkie wartości własne macierzy A są dodatnie). Punktem startu analizy działania algorytmu będzie kwadratowa funkcja testu określona wzorem: φ(x) = 1 2 xt Ax x T b + c (26) gdzie b, x R n, A R nxn i A jest dodatnio określona. Wartość x, dla której funkcja φ osiąga minimum, jest dana, jako punkt, dla którego gradient funkcji jest równy zero: φ(x ) = Ax b = 0 (27) lub 26

28 Ax = b (28) Zatem ta sama wartość x, która minimalizuje funkcję φ(x) służy także jak rozwiązanie liniowego układu równań typu Ax = b, dlatego zamiast szukać bezpośredniego rozwiązania algebraicznego układu równań, można posłużyć się metodą minimalizacji funkcji testu kwadratowego. Funkcję w postaci testu kwadratowego możemy uzyskać np. poprzez rozwiniecie w szereg Taylora wokół punktu minimum, który bez straty ogólności możemy przyjąć, jako równy zeru: f(x) 1 2 xt Ax x T b + f 0 (29) Metody liniowych poszukiwań są dużą rodziną iteracyjnych metod optymalizacyjnych, gdzie iteracja wyrażona jest wzorem: x k+1 = x k + a k p k (30) Ideą tej rodziny algorytmów jest wybranie początkowej pozycji x 0 a w każdym kolejnym kroku jej przesuwanie w takim kierunku, aby wartość funkcji w kolejnym kroku była mniejsza niż w kroku obecnym φ(x k+1 ) < φ(x k ). Metody różnią się miedzy sobą strategią wyboru kierunku poszukiwań p k a także długością kroku a k. Metoda najszybszego spadku jest najbardziej podstawową odmianą algorytmów liniowych przeszukiwań. Gradient funkcji jest wektorem wskazującym kierunek, wzdłuż którego funkcja rośnie najszybciej. Metoda najszybszego spadku opiera się na strategii, że dla dowolnego punktu x kierunek poszukiwań jest dany poprzez ujemny gradient funkcji φ(x), który jest właśnie kierunkiem najszybszego spadku. Z równania (27) wiemy, że gradient ten jest równy Ax b i określany mianem residuum r. Znany jest kierunek poszukiwań, nieznana jest natomiast wielkość kroków, które należy stawiać, aby jak najszybciej znaleźć minimum w danym kierunku. Naturalnym wyborem jest zrobienie kroku tak długiego jak długo funkcja maleje w danym kierunku. Optymalną wartość długości kroku a k można znaleźć za pomocą wyrażenia: = r k T r k φ(x k ) T A φ(x k ) a k = φ(x k )T φ(x k ) r k T Ar k (31) W każdym kroku obliczamy gradient funkcji φ dla kolejnego punktu x k+1, poprzez znalezienie długości kroku a k. Taka strategia prowadzi do kierunków poszukiwania, które są względem siebie ortogonalne, jak na ilustracji poniżej. 27

29 Rys. 8. Metoda najszybszego spadku Ortogonalność kierunków poszukiwań oznacza, że metoda będzie poszukiwać rozwiązania zygzakiem, co oczywiście nie jest najbardziej optymalną metodą, ale zawsze zbieżną. Metoda sprzężonych gradientów, jest ulepszeniem metody najszybszego spadku, gdyż używa kierunku poszukiwań z poprzednich kroków, aby uniknąć biegania w tę i z powrotem, celem przyśpieszenia zbieżności. Zestaw niezerowych wektorów {p 0, p 1,, p n 1 } nazywamy sprzężonymi względem dodatnio określonej macierzy A, jeżeli: p T i Ap j = 0 dla i j (32) Zestaw n sprzężonych wektorów tworzy kombinację liniowo niezależnych wektorów a zarazem bazę przestrzeni R n. Jest to istotne ze względu na fakt, ze możemy zminimalizować funkcję kwadratową φ w n krokach poprzez sukcesywną minimalizację w każdym z kierunków. Ponieważ zestaw wektorów sprzężonych stanowi bazę dla przestrzeni R n, możemy wyrazić różnicę pomiędzy dokładnym rozwiązaniem x a pierwszym jego przybliżeniem x 0, jako liniową kombinację wektorów sprzężonych: x x 0 = σ 0 p 0 + σ 1 p σ n 1 p n 1 (33) Jeśli przedstawimy dokładne rozwiązanie x, jako sumę przybliżeń w kolejnych n krokach iteracyjnych z wyrażenia (30) dochodzimy do wniosku, że współczynniki σ k oraz a k muszą być sobie równe: x = x 0 + a 0 p 0 + a 1 p a n 1 p n 1 (34) 28

30 Powyższe wyrażenie można interpretować, jako iteracyjną próbę znajdywania rozwiązania po kolei wzdłuż każdego wymiaru przestrzeni rozwiązań. Dla macierzy diagonalnych sprzężone wektory poszukiwań są zgodne z osiami współrzędnych. W każdym k-tym kroku aktualne rozwiązanie x k jest rzutem dokładnego rozwiązania x w przestrzeni rozwiązań rozpiętej przez k wektorów. Jak dotąd istniało jedynie założenie o istnieniu zestawu wektorów sprzężonych względem macierzy A. Jednak istnieje iteracyjna metoda, która pozwoli je wyznaczyć w praktyce. Ta iteracyjna metoda posiada bardzo interesującą z punktu obliczeń właściwość. Wektor p k może być wyznaczony na podstawie znajomości wektora sprzężonego w kroku poprzednim p k 1, a każdy kolejny obliczony wektor będzie wciąż sprzężony względem swoich poprzedników. Nowy kierunek p k jest utworzony na podstawie liniowej kombinacji ujemnego residuum, czyli gradientu r k oraz poprzedniego wektora poszukiwań p k 1 : p k = r k + b k p k 1, (35) gdzie b k = r k T Ap k 1 p k 1 T Ap k 1 = r k T r k (36) r T k 1 r k 1 Rys. 9. Metoda gradientów sprzężonych 29

31 Podsumowując algorytm sprzężonych gradientów można opisać w następujących krokach: 1. Zainicjuj residuum r 0 = Ax 0 b oraz kierunek poszukiwań, jako ujemny gradient p 0 = r 0 2. Wykonuj kroki 3-7 tak długo aż osiągnięta zostanie zbieżność 3. a k = r k T r k p k T Ap k 4. x k+1 = x k + a k p k 5. r k+1 = r + a k Ap k 6. b k = r k+1 T r k+1 r k T r k 7. p k+1 = r k+1 + b k p k Warunek z pkt. 2 aż zostanie osiągnięta zbieżność oznacza maksymalnie n (rząd macierzy A) kroków. Jednak czasami nie ma sensu w kontynuowaniu iteracji, jeśli rozwiązanie znajduje się już w granicy akceptowalnego błędu. Program NAMD wykorzystuje wyrafinowaną metodę sprzężonych gradientów celem minimalizacji funkcji energii potencjalnej. Kierunek poszukiwań jest wyznaczany na podstawie metody sprzężonych gradientów, dzięki której unika się wielokrotnego poszukiwania minimum wzdłuż tego samego kierunku. Wzdłuż danego kierunku, minimum jest poszukiwane przy użyciu metody złotego podziału [31] lub zaprezentowanej wcześniej metody opartej na gradiencie o kwadratowej zbieżności Zespół kanoniczny Symulacje dynamiki molekularnej możemy przeprowadzać w różnych zespołach termodynamicznych: Mikrokanoniczny (NVE, stała ilość cząstek, objętość, energia) układ izolowany, niewymieniający z otoczeniem ani ciepła ani materii. Kanoniczny (NVT, stała ilość cząstek, objętość, temperatura) układ zamknięty, niewymieniający materii z otoczeniem materii, ale wymieniający 30

32 ciepło, dzięki któremu nadmiar albo niedobór energii jest rekompensowany, utrzymując stałą temperaturę. Wielki kanoniczny (NTμ, stała objętość, temperatura oraz tzw. potencjał chemiczny) zespół otwarty, fluktuacji podlega nie tylko energia, ale i liczba cząstek, gdyż ciepło i materia wymieniane są z otoczeniem. Potencjałem chemicznym [32] nazywamy pochodną cząstkową energii wewnętrznej po liczbie cząstek, przy stałej objętości i entropii układu. Izotermiczno-izobaryczny (NPT, stała ilość cząstek, temperatura i ciśnienie) Symulacje przeprowadzane przy pomocy programu NAMD są standardowo dzielone na trzy etapy, różniące się między sobą zastosowanymi zespołami termodynamicznymi. Pierwszy etap ekwilibracja rozpuszczalnika przeprowadzana jest w zespole izotermiczno izobarycznym. Drugi etap zakłada podgrzewanie układu poprzez stopniowe dostarczanie energii kinetycznej. Należy zwrócić uwagę, że energia jest dodawana w sposób sztuczny w przerwie pomiędzy kolejnymi etapami symulacji. Pomimo pozornej wymiany energii układ nadal odtwarza zespół mikrokanoniczny, ponieważ w każdym etapie liczba cząstek i objętość są zachowane a układ faktycznie nie wymienia energii z otoczeniem. Cechy termodynamiczne ostatniej fazy nazywanej symulacją właściwą są uzależnione od przeprowadzanego eksperymentu, najczęściej jednak zakłada się zespół izotermicznoizobaryczny lub kanoniczny Standardowy przebieg symulacji dynamiki molekularnej Moc obliczeniowa używanych obecnie komputerów, pozwala na prowadzenie symulacji o czasie trwania nanosekund lub nawet mikrosekund. W czasie symulacji generowane i gromadzone są interesujące dane o energii całkowitej, kinetycznej, potencjalnej, położeniach atomów czy ich prędkościach. Istnieje także możliwość przeprowadzania sterowanej dynamiki molekularnej [33], w ramach której po przyłożeniu zewnętrznej siły do biomolekuł i pomiarze sił można badać właściwości fizyczne struktur takie jak rozciągliwość czy wytrzymałość. 31

33 Całą symulację można podzielić na cztery zasadnicze etapy: 1. Przygotowanie symulacji zdefiniowanie sekwencji, położeń atomów a także definicja pełnej struktury opisującej rodzaje oddziaływań oraz ich parametry, solwatacja oraz dodanie jonów, czyli dodanie otoczki wodnej wraz z jonami soli, aby w sposób jak najbardziej wierny rzeczywistości zamodelować naturalne środowisko biomolekuł. 2. Minimalizacja i ekwilibracja rozpuszczalnika Minimalizacja przeszukiwanie całej przestrzeni konformacji układu celem znalezienia układu przestrzennego o najniższej energii potencjalnej. Na tym etapie minimalizacja przeprowadzana jest tylko dla rozpuszczalnika. Ekwilibracja przy stałej temperaturze pozwala się, aby nagromadzona energia rozeszła się po wszystkich stopniach swobody. Ekwilibrację przeprowadza się zazwyczaj dla rozpuszczalnika (najczęściej wody), który oblewa zamrożoną w przestrzeni strukturę molekuły, tzn. obliczana jest ewolucja przestrzenna tylko dla rozpuszczalnika i jonów soli, atomy molekuły nie zmieniają swego położenia. Dzięki temu rozpuszczalnik oblewa strukturę w jak najbardziej naturalny sposób. 3. Podgrzewanie układu podgrzewanie całego układu odbywa na drodze stopniowego dostarczania energii kinetycznej, poprzez skalowanie wektorów prędkości zgodnie z rozkładem Boltzmana. Podobnie jak poprzednio, przeprowadzana jest minimalizacja i ekwilibracja, z tą różnicą, że dla całego układu zarówno dla molekuły jak i rozpuszczalnika. 4. Symulacja właściwa zasadniczy etap symulacji, w którym modeluje się układ w wybranym modelu termodynamicznym celem pomiaru interesujących wielkości. Aby opisać proces symulacji w bardziej dokładny sposób niezbędne jest przedstawienie niektórych funkcjonalności bezpośrednio w kontekście zastosowanego oprogramowania służącego do przeprowadzania symulacji, dlatego w kolejnych podrozdziałach opisany zostanie schemat w bardziej praktyczny sposób przy użyciu programu NAMD oraz pakietów dostępnych w narzędziu do wizualizacji VMD psfgen, solvate, ionize. 32

34 Kontrola temperatury Ani plik współrzędnych PDB, ani plik struktur PSF nie zawierają informacji odnośnie prędkości atomów. Aby rozpocząć symulację należy wygenerować prędkości samodzielnie. Dokonuje się tego przy użyciu generatora liczb losowych i teorii rozkładu Maxwella- Boltzmana. Temperatura jest zdefiniowana poprzez średnią energię kinetyczną układu oraz zasadę ekwipartycji energii. Zasada ekwipartycji energii [34] jest zasadą termodynamiczną mówiąca (w oparciu o mechanikę statystyczną i przy założeniu obowiązywania mechaniki Newtona), że dostępna energia jaką dysponuje cząsteczka (np. gazu) rozkłada się równomiernie na wszelkie możliwe sposoby jej wykorzystania (tzw. stopnie swobody). Niezależnie od tego czy jest to stopień swobody związany z energią obrotu, ruchu postępowego czy związany z drganiami cząstek. Zgodnie z tym prawem średnia energii układu (energia o charakterze wewnętrznym niezwiązana z ruchem całego układu) wynosi: E = f NkT (37) 2 gdzie: - T temperatura układu w kelwinach - k stała Boltzmana - f liczba stopni swobody równa 3, dla cząsteczek jednoatomowych - N liczba atomów Możemy związać zależność temperatury poprzez równanie średniej energii kinetycznej układu z średnią energią wynikającą z zasady ekwipartycji: 1 2 Nmv2 = 3 NkT (38) 2 Zatem temperaturę układu można kontrolować poprzez wylosowanie prędkości atomów tak, aby ich uśrednianie spełniało powyższą zależność między temperaturą a prędkościami atomów. Zakłada się, że raz zainicjalizowane poprzez losowanie prędkości atomów, zgodne z dystrybucją rozkładu Maxwella-Boltzmana, są zachowane w czasie symulacji. Oznacza to, że mogą być skalowane w celu podgrzania układu, ale nie są ponownie inicjalizowane poprzez generator liczb losowych. Podgrzewanie odbywa się poprzez skalowanie prędkości atomów. Ponieważ wiemy, że prędkości atomów powinny mieć rozkład Maxwella-Boltzmana o średniej 33

35 prędkości v = (3kT m) 1/2, wystarczy przemnożyć wszystkie prędkości przez wspólny czynnik, aby uzyskać nową temperaturę Przygotowanie symulacji Symulacja rozpoczyna się od pobrania odpowiedniego pliku PDB opisującego sekwencję symulowanego białka i położenia atomów z archiwum Protein Data Bank dostępnego online. Na podstawie pliku PDB, pliku topologii pola siłowego oraz przy pomocy narzędzia psfgen tworzony jest plik struktur z rozszerzeniem.psf, opisuje on topologię oddziaływań pomiędzy wszystkimi parami atomów. Solwatacja i dodanie jonów soli, to procesy, dzięki którym modeluje się środowisko naturalne, w którym występują molekuły. Zazwyczaj rozpuszczalnikiem jest woda, do której dodawane są jony np. soli najczęściej chlorku sody. Otoczkę wodną o zadanym rozmiarze można stworzyć przy pomocy pakietu solvate dostępnego w VMD, jony soli o zadanym stężeniu dodaje się przy pomocy pakietu ionize. Aby móc zastosować w symulacji periodyczne warunki brzegowe niezbędne są wymiary komórki podstawowej. Komórkę podstawową definiuje się poprzez trzy wektory bazowe zdefiniowane w przestrzeni trójwymiarowej. Wektory mają swój początek w środku masy modelu, dlatego często dla wygody centruje się strukturę wokół środka układu współrzędnych (0, 0, 0). Dokonuje się tego poprzez przesunięcie położeń wszystkich atomów w kierunku środka układu współrzędnych o wektor zdefiniowany przez parę punktów aktualny środek masy a nowy środek masy leżący w początku układu współrzędnych Minimalizacja i ekwilibracja Konformacje układów znajdujących się w lokalnych minimach energii potencjalnej są istotne z punktu widzenia dynamiki molekularnej, gdyż to właśnie wokół zminimalizowanych konformacji drga układ w czasie symulacji. Istotnym jest, więc znalezienie stabilnych punktów minimum lokalnych powierzchni energii potencjalnej, przed rozpoczęciem dynamiki. W minimum funkcji energii potencjalnej siły oddziaływań pomiędzy atomami powoli zanikają. Dla symulowanych modeli białek, biopolimerów można zazwyczaj wyznaczyć więcej niż jedno minimum. W teorii istnieje globalne minimum, w praktyce jednak nie będzie ono znalezione w wyniku symulacji. Zasadniczym celem minimalizacji układu jest poprawianie 34

36 niedoskonałości takich jak nachodzenie przestrzenne dwóch atomów, zniekształcone długości wiązań oraz wartości kątów między atomami. Ekwilibracja jest następnym krokiem symulacji po minimalizacji. W tej fazie następuje relaksacja położeń i wiązań pomiędzy atomami. Dostarczona w sposób gwałtowny energia kinetyczna (poprzez skalowanie prędkości) musi się rozejść po wszystkich stopniach swobody. Innymi słowy, energia kinetyczna musi być stopniowo zamieniana w wyniku ewolucji układu na energię potencjalną, tak długo aż obie osiągną poziom równowagi. Ekwilibracja jest przeprowadzana w wybranym zespole kanonicznym, tak długo, aż właściwości układu osiągną stabilność, np. w zespole kanonicznym (NVT) system uważa się za stabilny, kiedy temperatura osiągnie stałą wartość, w zespole izotermiczno-izobarycznym (NPT) system jest stabilny przy stałej temperaturze i ciśnieniu. Jak można zaobserwować na poniższych wykresach w fazie minimalizacji energia potencjalna układu maleje, podczas ekwilibracji natomiast oscyluje wokół pewnej stałej wartości zmieniając tylko swoją formę. Wyk. 2. Spadek energii potencjalnej układu w czasie minimalizacji 35

37 Wyk. 3. Zależność temperatury i energii potencjalnej od czasu w fazie ekwilibracji W ramach stworzonego oprogramowania ekwilibracja i minimalizacja jest używana w dwóch fazach symulacji. W pierwszej następuje ekwilibracja otoczki wodnej. Dzięki skalowaniu prędkości atomów temperatura rozpuszczalnika zostaje ustalona na docelową, sama molekuła zostaje zamrożona w przestrzeni, a układ utrzymywany jest pod stałym ciśnieniem (zespół izotermiczno-izobaryczny). Otoczka wodna, składająca się z wody i jonów podlega ekwilibracji zazwyczaj w czasie rzędu kilkaset pikosekund (ok ps). Drugą fazę stanowi podgrzewanie układu, w czasie której model jest podgrzewany od zera stopni do zadanej temperatury w sposób stopniowy, a między każdym kolejnym skokiem temperatury układ podlega minimalizacji energii potencjalnej. Długość tego etapu jest wyrażana w setkach pikosekund (ok ps) Dynamika właściwa Dynamika właściwa to ostatnia faza symulacji, w której dokonuje się pomiarów właściwości stworzonego modelu. Przed rozpoczęciem dynamiki właściwej powinniśmy układ poddać minimalizacji i ekwilibracji podgrzewając go do docelowej temperatury, zgodnie z zasadami opisanymi w rozdziale (2.9.3). Etap cechuje się dużą modularnością, tzn. parametry 36

38 symulacji uzależnione są głównie od przeprowadzanego eksperymentu. Program NAMD daje możliwość definiowania zewnętrznych sił działających na układ, takich jak: stała zewnętrzna siła, zewnętrzna siła elektrostatyczna, możliwość przeprowadzenia sterowanej dynamiki molekularnej, kontrola nad ciśnieniem, temperaturą, dzięki którym istnieje możliwość symulacji w wybranym zespole kanonicznym, a także wiele innych funkcjonalności. Zasadniczo jest to najdłuższy (rzędu kilkuset nanosekund) i najważniejszy etap symulacji, na podstawie którego pisane są publikacje dotyczące nowych odkryć np. w nanotechnologii, modelowaniu molekularnym, produkcji leków. 37

39 3. NAMD Symulowanie dynamiki molekularnej oznacza obliczanie trajektorii atomów, poprzez numeryczne rozwiązywanie równań ruchu Newtona, przy zastosowaniu pól siłowych, takich jak pole siłowe CHARMM. Zadaniem pól siłowych jest możliwie dokładne przybliżenie rzeczywistych sił oddziaływań pomiędzy atomami w łańcuchu polimerowym. Celem przeprowadzania symulacji dynamiki molekularnej stworzono wiele programów m. in. X PLOR czy CHARMM, które początkowo nie oferowały możliwości zrównoleglenia obliczeń. Jednak wraz ze wzrostem mocy obliczeniowej komputerów oraz dzięki rozwojowi równoległych systemów komputerowych z pamięcią rozproszoną, dokonano także rozwoju równoległych programów do symulacji dynamiki molekularnej jednym z nich jest NAMD [35]. NAMD został zaprojektowany, aby móc w wydajny sposób przeprowadzać symulacje zarówno na systemach komputerowych klasy enterprise jak i na wieloprocesorowych stacjach roboczych pc. NAMD posiada wiele ważnych funkcjonalności: Uniwersalne pole siłowe pole siłowe używane w programie NAMD może także zostać użyte w innych programach do symulacji dynamiki molekularnej jak CHARMM czy X-PLOR. Zastosowane pole siłowe opisuje lokalne oddziaływania wiążące pomiędzy 2, 3 lub 4 atomami a także oddziaływania elektrostatyczne oraz van der Waalsa pomiędzy parami atomów. Wspólny i jednoznaczny opis pola siłowego pozwala na bezkonfliktowe przenoszenie symulacji pomiędzy wyżej wymienionymi programami. Wydajny algorytm pełnego oddziaływania elektrostatycznego zredukowano złożoność obliczeniową wyznaczania sił elektrostatycznych z O(N 2 ) do O(N log N), dzięki zastosowaniu algorytmu sumowania Ewalda (ang. Particle Mesh Ewald PME). Różne wartości kroków czasowych do obliczania kolejnych położeń i prędkości atomów używany jest algorytm Verleta w odmianie prędkościowej. Aby wydłużyć symulowane czasy, nie zwiększając czasu procesora, zastosowano różne kroki czasowe dla oddziaływań krótkiego i długiego zasięgu. Oddziaływania krótkiego zasięgu (wiążące, van der Waalsa oraz elektrostatyczne pomiędzy atomami w pewnej określonej odległości) obliczane 38

40 są w każdym kolejnym kroku czasowym. Natomiast oddziaływania dalekiego zasięgu (głównie elektrostatyczne pomiędzy atomami znajdującym się poza określoną odległością) obliczane są rzadziej, co kilka kroków czasowych, aby zamortyzować całkowity koszt obliczeń. Aby odróżnić oddziaływania krótkiego zasięgu od dalekiego zastosowano funkcję podziału (ang. splitting function), która rozdziela szybko-zmienne oddziaływania krótkiego zasięgu, które ze względu na szybkość zmiany powinny być obliczane częściej, od wolno zmieniających się oddziaływań długiego zasięgu, których obliczanie z mniejszą częstością nie wpłynie znacząco na dokładność obliczeń. Kompatybilność plików wejściowych i wyjściowych zarówno NAMD, X PLOR jak i CHARMM używają takich samych plików wejściowych: pliku z początkowymi koordynatami atomów w formacie PDB, pliku opisującego strukturę w formacie PSF, plik pola siłowego w formacie CHARMM, a także plików wyjściowych: plik PDB, plik COORD ze współrzędnymi z ostatniego kroku symulacji czy binarny plik DCD opisujący ewolucję trajektorii. Podobieństwa w używanych formatach plików są środkiem do osiągnięcia celu, jakim jest przenaszalność symulacji pomiędzy popularnymi programami do symulowania dynamiki molekularnej. Wiele opcji przeprowadzania symulacji NAMD oferuje wiele możliwości w sposobie przeprowadzania symulacji m. in.: symulacja zachowująca stałą energię całkowitą (zespół mikrokanoniczny), zachowująca stała temperaturę (zespół kanoniczny), kontrola stałego ciśnienia układu, możliwość definiowania periodycznych warunków brzegowych, minimalizacja energii układu. NAMD jest zaawansowanym narzędziem do przeprowadzania symulacji dynamiki molekularnej posiadającym wiele funkcjonalności i opcji, dzięki którym możemy symulować rzeczywiste procesy i oddziaływania zachodzące wewnątrz struktur białkowych. Niektóre z funkcjonalności szczególnie te, które znalazły praktyczne zastosowanie w stworzonej aplikacji zostaną szczegółowo opisane w kolejnych podrozdziałach. 39

41 3.1. Formaty plików są cztery pliki: W ogólnym przypadku do przeprowadzenia symulacji w programie NAMD, potrzebne Plik opisujący pole siłowe CHARMM w formacie CHARMM Plik opisujący strukturę molekuły w formacie PSF Początkowe koordynaty atomów w formacie PDB Plik konfiguracyjny symulacji NAMD Plik konfiguracyjny Plik konfiguracyjny jest specyficznym rodzajem pliku wejściowego, który charakteryzuje parametry symulacji, np. liczbę kroków czasowych, początkową temperaturę układu itp., oraz włączone funkcjonalności jak użycie algorytmu PME czy zewnętrznego pola elektrycznego. Ścieżka pliku konfiguracyjnego jest przekazywana poprzez parametry linii poleceń do programu NAMD. Warto zaznaczyć, że wszystkie ścieżki wyspecyfikowane w pliku konfiguracyjnym są względne według położenia pliku konfiguracyjnego, tzn. na początku działania NAMD przejdzie do katalogu, który zawiera wyspecyfikowany plik konfiguracji a do pozostałych plików będzie się odwoływał w sposób względny od ścieżki katalogu, w którym przebywa. Plik konfiguracyjny jest plikiem tekstowym zbudowanym na podstawie popularnego modelu klucz-wartość, gdzie klucz identyfikuje opcję, funkcjonalność a wartość jest parametrem dotyczącym danej opcji. Kolejne pary klucz i wartość powinny znajdować się w osobnych liniach i być rozdzielone tylko białymi znakami. W pliku konfiguracyjnym można także tworzyć komentarze poprzez poprzedzenie wyrażenia znakiem hash ( # ). Znaczenie klucza jest niewrażliwe na wielkość znaków, stąd też wyrażenia zapisane przy pomocy dużych i małych liter będą jednakowo interpretowane. Reguła ta nie musi obowiązywać przy wartościach, gdzie wartość określająca np. ścieżkę do pliku różnicuje semantykę małych i dużych liter. 40

42 PDB Format PDB (Protein Data Bank) jest używany do zapisywania plików zawierających dane wczytywane i zapisywane przez program NAMD odnośnie współrzędnych i prędkości atomów. Plik zapisywany jest w formacie tekstowym, kolumnowym oznacza to, że każda linia ma stałą długość 80 znaków i zazwyczaj jest zakończona znakiem nowej linii. W strukturze jednej linii wyznacza się kolumny o określonej i stałej ilości znaków. Najważniejszą jest pierwsza kolumna o długości 6 znaków, która jednoznacznie identyfikuje rekord opisywany przez daną linię pliku. Pozostałe kolumny mogą się różnić w zależności od rekordu. W standardzie [36] wyróżnia się wiele typów rekordów: HEADER (pierwszy rekord pliku PDB zawierający czteroliterowy identyfikator, klasyfikację i datę depozycji), NUMMDL (liczba modeli), AUTHOR (lista odkrywców lub badaczy), SOURCE (z jakiego organizmu wyselekcjonowano daną strukturę), REMARK (inne dodatkowe komentarze np. publikacje, cytowania). Jednak najważniejszym z rekordów jest ATOM, ponieważ opisuje najważniejsze dla symulacji dane, czyli współrzędne przestrzenne wyspecyfikowanego atomu. Atom jest identyfikowany na podstawie kolumny serial (znaki od 7 do 11), która zawiera liczbę całkowitą, porządkową, jednoznacznie identyfikującą dany atom. Oprócz tego mamy kolumny takie jak: identyfikator łańcucha (pozycja 22), czy też współrzędne x, y, z (pozycje 31-38, 39-46, 47-54). Przykładowy rekord opisujący atom a także wszystkie jego kolumny zostały wyspecyfikowane na poniższym rysunku. 41

43 Rys. 10. Rekord typu ATOM oraz opis jego pól. Źródło [36] Pliki PDB są ogólnodostępne w ramach internetowej bazy danych Protein Data Bank (dostępnej pod adresem Baza danych oferuje funkcjonalność wyszukiwania i pobierania struktur, jak i możliwość publikacji nowych biomolekuł PSF Pliki w formacie PSF (ang. Protein Structure File) zawierają informacje niezbędne do zastosowania pola siłowego do specyficznej struktury białkowej. Podobnie jak w przypadku formatu PDB jest to plik tekstowy kolumnowy, w którym można wyróżnić 2 główne typy rekordów [37]: 42

44 Atoms oprócz danych identyfikujących atom zawiera także informacje dotyczące masy i ładunku Bonds, angles, dihedrals, impropers czyli rekordy opisujące oddziaływania uwzględniane przez dane pole siłowe: wiązania kowalencyjne, kątowe, oddziaływania czwórki atomów budujących kąt torsyjny, wiązania niewłaściwie. W odróżnieniu od plików PDB, które są dostępne do pobrania, pliki PSF należy wygenerować. Istnieje wiele narzędzi, które dla zadanej struktury opisanej plikiem PDB oraz dla wybranego typu pola siłowego potrafią wygenerować plik PSF. W rozdziale (3.2) opisana zostanie metodologia generowania pliku PSF przy użyciu narzędzia psfgen Plik parametryczny pola siłowego CHARMM Pole siłowe CHARMM to właściwie dwa osobne pliki w formacie CHARMM. Pierwszym z nich to plik topologii, który jest potrzebny do wygenerowania pliku PSF opisującego topologię struktur, czyli rodzaje oddziaływań pomiędzy poszczególnymi parami atomów. Drugi plik parametryczny, dostarcza numerycznych parametrów do funkcji potencjału pola siłowego, który te oddziaływania opisuje Plik trajektorii DCD Plik wyjściowy DCD przechowuje informację o prędkościach, położeniach czy siłach w zadanych chwilach czasu, reprezentowanych przy pomocy liczby w pojedynczej precyzji zapisanej w pliku binarnym zgodnie z kolejnością bajtów (ang. endianness) danej architektury. Kroki czasowe są przechowywane w pliku DCD w wewnętrznych jednostkach programu NAMD i muszą być pomnożone przez czynnik timefactor (48,88821), aby przekonwertować wartość do femtosekund. Podobnie prędkości należy przemnożyć przez czynnik pdbvelfactor (20, ), aby otrzymać wektor prędkości o współrzędnych wyrażonych w [Å/ps]. Położenia atomów wyrażone są w [Å] a siły w [kcal/mol/å]. Niewątpliwą zaletą związaną z zapisywaniem danych w postaci binarnej jest stosunkowo mały rozmiar pliku. Jednak pliki binarne są zazwyczaj mało czytelne gołym okiem i muszą być wczytane przy pomocy odpowiedniego narzędzia, co można uznać za ich wadę. 43

45 3.2. Tworzenie plików struktur PSF Tworzenie plików struktur odbywa się dzięki bibliotece psfgen. Jest to przenośnia biblioteka pozwalająca na edytowanie struktur i manipulację plikami dzięki interfejsowi dostarczonemu przez język skryptowy Tcl (ang. Tool Command Language), który składnią przypomina popularne języki powłok systemów linuksowych jak bash. Do aktualnych możliwości narzędzia psfgen należą: Czytanie plików topologii w formacie CHARMM Czytanie plików struktur PSF w formacie X-PLOR/NAMD Ekstrakcja sekwencji białek z plików PDB Generowanie pełnej topologii molekularnej modelu na podstawie odczytanej sekwencji Zgadywanie współrzędnych brakujących atomów, głównie wodorów, dla których brak informacji o położeniach jest konsekwencją niewystarczającej dokładności współczesnych metod badawczych Obecnie psfgen jest dystrybuowany w dwóch formach. Jedna z nich to wersja samodzielna (ang. standalone), która używa interfejsu Tcl do wczytywania poleceń ze standardowego wejścia. Druga forma dostarczana wraz z programem VMD, wygodniejsza dla końcowego użytkownika, pozwala na wykorzystanie potężnej możliwości selekcji atomów dostępnej w programie VMD w celu tworzenia plików struktur. Najbardziej powszechne użycie narzędzia psfgen do tworzenia plików PSF przedstawione jest na poniższym schemacie: 1. Przygotowanie oddzielnych plików PDB, które zawierają poszczególne segmenty białek, rozpuszczalnika itd. 2. Wczytanie odpowiedniego pliku definiującego topologię i parametry zastosowanego pola siłowego, aliasowanie residuów oraz atomów tak, aby nazewnictwo struktur było zgodne pomiędzy plikiem PDB a plikiem topologii. W tym kroku określa się także domyślny stan protonacji residuów histydyny. 3. Tworzenie segmentów topologii na podstawie sekwencji modelu uzyskanych z rozdzielonych plików PDB. 44

46 4. Zastosowanie dodatkowych łatek (ang. patches) definiujących wiązania pomiędzy N- i C-końcem łańcuchów. 5. Wczytywanie współrzędnych z pliku PDB. 6. Usuwanie niepożądanych atomów. 7. Odgadywanie brakujących współrzędnych atomów np. wodorów. 8. Zapisywanie plików PSF i PDB gotowych do symulacji w programie NAMD. Bardziej szczegółowy opis tworzenia plików PSF, a także przykładowe implementacje skryptów generujących strukturę można znaleźć w podręczniku użytkownika programu NAMD NAMD User s Guide [38] w rozdziale numer 4. 45

47 4. Aplikacja 4.1. Cel Stworzona aplikacja internetowa AutoNAMD jest główną częścią pracy magisterskiej. Jej przeznaczeniem jest ułatwienie końcowemu użytkownikowi zadania przeprowadzania symulacji dynamiki molekularnej w programie NAMD. Zasadniczą trudnością symulacji jest proces przygotowawczy, gdzie należy w odpowiedni sposób przygotować pliki danych jak i pliki konfiguracyjne, wedle których zostanie przeprowadzona symulacja. Aplikacja realizuje ten cel poprzez automatyzację zadań wykonywanych na zlecenie użytkownika. Oznacza to, że najważniejszą funkcjonalnością jest udostępnienie użytkownikowi formularza, zawierającego szeroki wachlarz funkcjonalności i parametrów programu NAMD, a następnie automatyczne wygenerowanie na jego podstawie wymaganych plików. Oprócz tego można wyróżnić dwie dodatkowe funkcjonalności, które oferuje program: przeszukiwanie bazy danych Protein Data Bank według szeregu różnych kryteriów, a także wizualizowanie struktur 3D. Dzięki wykorzystaniu nowoczesnych technologii takich jak ASP.NET czy JavaScript udało się stworzyć responsywną aplikację internetową o minimalistycznym wyglądzie i ergonomicznym interfejsie zapewniając przyjemne doświadczenie użytkownika. Automatyzacja generowania plików wymaganych do przeprowadzenia symulacji to wieloetapowy i skomplikowany proces. Jest on realizowany poprzez serię wykonywanych sekwencyjnie skryptów języka Bash, które manipulują zawartościami plików, uruchamiają niezbędne narzędzia czy w końcu przesyłają gotowe pliki symulacji do użytkownika. Dlaczego zdecydowano się na automatycznie generowanie plików konfiguracyjnych za pomocą niskopoziomowego języka skryptowego bash, a nie z platformy.net i wysokopoziomowego języka C#? W jaki sposób udało się skutecznie połączyć front-end aplikacji, czyli interfejs aplikacji internetowej z back-endem, czyli skryptami wykonującymi właściwą pracę generowania plików konfiguracyjnych? Odpowiedzi na te pytania i inne decyzje projektowe podjęte w czasie rozwoju aplikacji można poszukiwać w rozdziale (4.3), w którym opisano budowę poszczególnych modułów programu. 46

48 4.2. Technologie Wybór technologii został podyktowany założeniem wykorzystania narzędzi dostępnych na licencji open source. Tak więc do stworzenia aplikacji internetowej wybrano MONO, czyli multiplatformową implementację zestawu bibliotek.net. Aplikacja jest hostowana przy użyciu open sourcowego serwera http Apache na serwerze z systemem operacyjnym CentOS Mono Mono jest platformą deweloperską typu open source opartą na frameworku.net, pozwalająca na budowanie multiplatformowych aplikacji z dużą wydajnością. Mono składa się z następujących komponentów: Kompilator języka C# - zgodny ze standardem języka i zawierający pełną funkcjonalność od pierwszej do piątej wersji (C# 5.0) Środowisko uruchomieniowe w ramach którego zaimplementowano: infrastrukturę wspólnego języka (ang. Common Language Infrastructure) pozwalającą na tworzenie jednakowych funkcjonalnie aplikacji w różnych językach źródłowych (C#, Java), kompilatory bajtowego kodu pośredniego do kodu maszynowego typu Just-in-Time oraz Ahead-of-Time, moduł ładujący biblioteki, odśmiecanie pamięci (ang. garbage collector), system zarządzający wątkami Biblioteka klas bazowych wszechstronny zestaw klas, kompatybilnych z klasami platformy.net, dostarczający solidną podstawę dla budowania aplikacji Biblioteka klas Mono zestaw klas wykraczających poza natywną funkcjonalność klas bazowych.net, które dostarczają dodatkowych funkcji, szczególnie przydatnych do budowania aplikacji dla systemu Linux, np. obsługa środowiska graficznego Gtk+, archiwizacja plików Zip, biblioteka grafiki OpenGL, implementacja przenośnych interfejsów systemu operacyjnego Unix (POSIX) Mono jest zestawem narzędzi pozwalającym na tworzenie multiplatformowych aplikacji, działających na różnych systemach: Linux, OS X, BSD, Microsoft Windows, a także 47

49 na różnych platformach x86, x86-64, ARM, PowerPC, napisanych w wielu językach wysokiego poziomu, jak C#, Visual Basic 8, Java, Python, Ruby, w ergonomicznym środowisku programistycznym MonoDevelop ASP.NET ASP.NET jest częścią platformy Microsoft.NET. Służy do tworzenia aplikacji internetowych, poprzez dostarczenie modelu programistycznego, kompleksowej infrastruktury oprogramowania i różnych usług sieciowych niezbędnych do budowania niezawodnych aplikacji webowych dla komputerów i urządzeń mobilnych. ASP.NET działa na stosie protokołu HTTP, wykorzystując jego polecenia i reguły, aby umożliwić dwustrunną komunikację pomiędzy przeglądarką a serwerem. ASP składa się z trzech głównych platform: Web Forms, ASP.NET MVC, ASP.NET Web Pages. Wszystkie trzy platformy oferują taką samą funkcjonalność, ale różnią się filozofią tworzenia aplikacji. Wybór odpowiedniej metodologii, a w konsekwencji danej platformy, zależy od wiedzy programisty, typu tworzonej aplikacji oraz nabytego wcześniej doświadczenia z innych platform programistycznych. Poniższa tabela jest zestawieniem informacji dotyczących poszczególnych platform: Tabela 1. Zestawienie informacji dotyczących platform rozwoju aplikacji webowych w.net Doświadczenie Strategia tworzenia Poziom wiedzy Web Pages ASP, PHP Znaczniki kodu HTML oraz kod aplikacji razem w jednym pliku Początkujący, średni Web Forms Win Forms, WPF,.NET Szybkie tworzenie aplikacji (RAD) przy użyciu bogatej biblioteki kontrolek hermetyzujących kod HTML Średni MVC Ruby on Rails,.NET Pełna kontrola nad generowanym kodem HTML, kod aplikacji i znaczniki HTML rozdzielone, łatwość pisania testów jednostkowych. Najlepszy wybór dla aplikacji mobilnych i jednostronnych (ang. singlepage application) Średni, wysoki Na potrzeby niniejszej aplikacji zdecydowano się na użycie technologii Web Forms. Głównym czynnikiem decydującym o użyciu tej platformy jest typ tworzonej aplikacji. Standardowy scenariusz użytkowania aplikacji przewiduje serię działań i komunikatów wymienianych między użytkownikiem a serwerem przesłanie i odebranie formularza z parametrami 48

50 symulacji, walidacja danych, generowanie plików konfiguracyjnych, wreszcie przesłanie plików do użytkownika co zdecydowanie odpowiada modelowi programistycznemu kierowanemu zdarzeniami, a więc Web Forms. Gdyby zadanie dotyczyło stworzenia i edytowania bazy danych biomolekuł, zdecydowanie lepszym podejściem byłby wzorzec projektowy model-widok-kontroler (MVC), który dokładnie separuje elementy systemu na rozłączne i samodzielne jednostki logiczne. ASP.NET Web Forms [39] formularze sieciowe rozszerzają interakcje zachodzące w aplikacji internetowej pomiędzy użytkownikiem a serwerem, poprzez zastosowanie modelu interakcji kierowanej zdarzeniami. Przeglądarka internetowa przedkłada formularz do serwera, który w odpowiedzi zwraca wygenerowaną na jego podstawie pełną stronę HTML. Wszystkie zapytania i działania użytkownika są kierowane do serwera, który zachowuje ich stan. Serwer analizuje zapytanie użytkownika i podejmuje odpowiednie akcje, np. wygenerowanie strony HTML w odpowiedzi, czy też uruchomienie zadania stworzenia plików konfiguracyjnych na serwerze. Pod pojęciem zachowywania stanu rozumie się fakt, że serwer gromadzi i zapamiętuje kontekst komunikacji, w przeciwieństwie do systemu, w którym serwer traktuje każde pytanie, jako osobną nową komunikację i nie zapamiętuje żadnych informacji o poprzednich zapytaniach. Protokół http, przy pomocy którego odbywa się komunikacja jest protokołem bezstanowym, niezapamiętującym stanu sesji. Dlatego odpowiedzialność za przechowywanie stanu sesji leży po stronie platformy ASP.NET. Biblioteka ASP zapamiętuje zarówno stan strony jak i sesji. Stan strony zawiera informacje klienta dotyczące jednej specyficznej strony, np. zapamiętuje wartości wypełnionych pól formularzy. Stan sesji zawiera zbiorową informację o całej działalności użytkownika z różnych podstron. Jako przykład w stworzonej aplikacji serwer zapamiętuje stan strony, zawierającej formularz z parametrami symulacji, tak aby wypełnione pola były zachowane w czasie komunikacji między serwerem a klientem. Z kolei preferencje językowe interfejsu użytkownika, których wybór dokonuje się automatycznie lub poprzez wybór odpowiedniej kontrolki, jest zapamiętywany nie tylko w kontekście komunikacji zachodzącej na jednej stronie, ale także pomiędzy stronami, dzięki czemu użytkownik nie musi po przejściu na inną podstronę ponownie wybierać języka polskiego. Środowisko uruchomieniowe ASP.NET zachowuje stan sesji pomiędzy komunikatami klient-serwer poprzez generowanie specjalnego ukrytego znacznika HTML, który nie jest wyświetlany w przeglądarce klienta. ASP.NET dostarcza niezbędnych narzędzi do budowy stron internetowych poprzez model komponentów, czyli dzięki mapowaniu elementów budujących stronę na obiekty. Każdy 49

51 wygenerowany na stronie znacznik języka HTML taki jak form czy input posiada swój odpowiednik po stronie serwera w postaci obiektu, który opisuje jego wartość i właściwości. Największą zaletą Web Forms jest właśnie bogata kolekcja obiektów zwanych kontrolkami serwera, które kontrolują renderowanie nie tylko jednego tagu HTML, ale mogą także stanowić złożony obiekt definiujący element interfejsu jak np. tabela, kontrolka pozwalająca wyświetlić kalendarz przy wyborze daty w formularzu, czy też kontrolka UpdatePanel pozwalająca w asynchroniczny sposób aktualizować elementy strony IIS, Apache i mod_mono Natywnie dla platformy ASP.NET serwerem usług http jest IIS, czyli Internet Information Services [40]. Serwer został stworzony przez firmę Microsoft dla systemów operacyjnych z rodziny Windows NT. Jest to serwer nie tylko usług http, ale i serwer plików (ftp), serwer poczty (smtp), czy też serwer baz danych Microsoft SQL. Jego zadaniem jest pośredniczenie w komunikacji między użytkownikiem a serwerami ww. usług. Oznacza to, że nie odpowiada bezpośrednio na zapytania użytkowników, a raczej jako menadżer przesyła zadania do odpowiednich modułów. Takie podejście ma swoje zalety odzwierciedlone głównie w ujednoliconym systemie zarządzania wszystkim aplikacjami. IIS udostępnia narzędzia do filtrowania ruchu, analizy zapytań, bezpiecznej autoryzacji zasobów, systemy buforowania czy cachowania danych. Poniższy schemat ideowy obrazuje działanie IIS. Zapytanie klienta jest analizowane przez serwer usług sieciowych IIS, na podstawie żądanych zasobów jest przekierowane do odpowiednich modułów np. aplikacji internetowej ASP.NET. Aplikacja ASP.NET posiadająca w pełni obiektową hierarchię, przekaże zapytanie do konkretnej podstrony (instancji obiektu klasy Page), gdzie zostanie w odpowiedni sposób obsłużone. 50

52 Rys. 11. Schemat ideowy obsługi zapytania przez serwer usług IIS Aplikacje ASP Mono mogą być hostowane na serwerach obsługujących FastCGI (ang. Common Gateway Interface) np. Nginx, dzięki modułowi fastcgi-mono-server. CGI [41] to znormalizowany interfejs pomiędzy oprogramowaniem serwera www a innymi programami znajdującymi się na serwerze. Zazwyczaj program serwera WWW wysyła do przeglądarki klienta statyczne dokumenty HTML. Dzięki zastosowaniu programów CGI można dynamicznie (w odpowiedzi na zapytanie klienta) generować dokumenty HTML uzupełniając je np. treścią z bazy danych. Innym rozwiązaniem jest zastosowanie modułu mod_mono do najpopularniejszego serwera www Apache. Według badań [42] przeprowadzonych przez firmę Netcraft, zajmującą się analizą usług internetowych, na początku 2015 roku 39.74% witryn internetowych było serwowanych przez Apache w porównaniu do 27.52% hostowanych przez serwer webowy Microsoftu. Mod_mono jest modułem serwera Apache 2.0/2.2/2.4.3, który zapewnia wsparcie dla aplikacji ASP.NET. Moduł przekazuje żądania kierowane pod adresem stron ASP do 51

53 zewnętrznego programu mod-mono-server, który przetwarzania zapytania. Komunikacja pomiędzy modułem mono dla Apache a programem mod-mono-server jest ustanowiona przy użyciu gniazd systemu Unix lub gniazd protokołu TCP. Najprostszy scenariusz użycia Apache, jako serwera http, który przekazuje żądania do obsłużenia przez program mod-mono-server, został przedstawiony na poniższym schemacie: Rys. 12. Schemat działania modułu mod_mono w serwerze Apache. Źródło: [43] W zależności od konfiguracji Apache może być uruchomione w wielu instancjach dzięki wątkom, które będą przekazywać żądania ASP do procesu serwera mod-mono-server. Proces mod-mono-server z kolei może być hostem dla wielu niezależnych aplikacji. Aplikacje są izolowane w ramach jednego serwera dzięki domenom aplikacji. Jest to wystarczający poziom izolacji do stabilnego działania wielu aplikacji, ale mod_mono może także zostać skonfigurowane, aby przekierowywać żądania na podstawie adresu url do różnych procesów mod-mono-server JavaScript, HTML5 Boilerplate, Bootstrap Najbardziej widoczny element aplikacji internetowej, czyli szata graficzna, została zaprojektowana i wykonana zgodnie z najnowszymi standardami, biorąc pod uwagę bezpieczeństwo, kompatybilność, responsywność oraz ergonomię użytkowania. 52

54 Bezpieczeństwo formularzy, rozumiane poprzez walidację wprowadzanych przez użytkownika danych jest zapewnione zarówno dzięki skryptom JavaScript działającym po stronie użytkownika, jak i ponownej walidacji przez serwer po odebraniu danych. Podwójna walidacja ma sens, jeśli weźmiemy pod uwagę fakt, że użytkownik może po prostu wyłączyć obsługę skryptów w przeglądarce. Plugin jquery Validation ułatwia proces walidacji po stronie klienta. Standardowo plugin jest dostarczany z gotowym zestawem reguł walidacyjnych, dotyczących najbardziej powszechnych pól w formularzach, np. czy hasło wraz z gotowymi komunikatami błędów w języku angielskim i 37 innych językach, w tym w języku polskim. Nic nie stoi jednak na przeszkodzie, aby dzięki wbudowanemu API zdefiniować własne reguły i komunikaty. Dzięki walidacji po stronie klienta poprawia się także wygoda użytkowania strony, gdyż komunikaty błędu są wyświetlane od razu po edycji pola w przeciwieństwie do walidacji tylko i wyłącznie po stronie serwera, gdzie formularz musiałby być najpierw przesłany, sprawdzony a dopiero potem odesłany z powrotem do użytkownika z powodu istniejących błędów. HTML5 Boilerplate nie jest frameworkiem, a raczej szablonem strony www, zestawem startowym, który ułatwia rozpoczęcie tworzenia stron zgodnych z specyfikacją HTML5. Boilerplate powstał, jako wynik pracy ponad stu deweloperów z wieloletnim doświadczeniem, dzięki czemu początkujący programiści mogą od razu rozpocząć od stosowania najlepszych wzorców projektowych tak, aby strona była kompatybilna z różnymi przeglądarkami i urządzeniami. Boilerplate oferuje następujące funkcjonalności: Komentarze warunkowe pozwalają na rozpoznanie wersji przeglądarki Internet Explorer poprzez dodatnie do nagłówka html odpowiedniej klasy, dzięki czemu można obsłużyć poszczególne przeglądarki w specyficzny, kompatybilny sposób. Klasa no-js klasa jest usuwana z nagłówka html, kiedy w przeglądarce klienta jest włączona obsługa JavaScriptu, dzięki skryptowi Modernizr. W przeciwnym wypadku możemy zastosować dodatkowe reguły styli CSS, aby lepiej dostosować wygląd strony. Skrypt Modernizr pozwala na wykrycie funkcjonalności, które są wspierane natywnie przez przeglądarkę poprzez rzeczywistą detekcję, w przeciwieństwie do tradycyjnej metody, gdzie wspierane technologie były określone przez użytkownika w ustawieniach, przez co teoretyczne i rzeczywiste możliwości przeglądarki mogły się różnić. 53

55 Optymalne ustawienie tagu viewport, dzięki czemu szerokość strony dopasowuje się do szerokości urządzenia, zapewniając responsywny design i kompatybilność z jak największą liczbą urządzeń. Informacja o przestarzałej przeglądarce jeśli użytkownik używa przeglądarki starszej niż Internet Explorer 6, to pojawi się sugestia o aktualizacji lub wyborze innej, nowszej przeglądarki. Ładowanie biblioteki jquery Boilerplate podpowiada najlepszy sposób na dołączenie biblioteki jquery, wyszukując jej najpierw w repozytorium GoogleAPI, a w razie problemu wczytując z lokalnego serwera. jquery [44] jest najpopularniejszą biblioteką języka JavaScript, opakowującą w wygodny sposób funkcjonalności JS, w tym możliwość manipulowania drzewem obiektowego modelu dokumentu (DOM), pozwalając na uzyskanie interesujących efektów animacji, na dynamiczną zmianę zawartości strony po jej wygenerowaniu w odpowiedzi na interakcje użytkownika, itp. Boilerplate w zestawie posiada także pliki arkuszy stylów CSS Normalize, które pozwalają na dostosowanie wyglądu strony do współczesnych standardów, bez oznaczania jakichkolwiek znaczników html klasami. Jednak Bootstrap oferuje o wiele większe możliwości w porównaniu do Normalize, stąd też dostarczone wraz z Boilerplate arkusze styli zostały zastąpione arkuszami od deweloperów Twittera. Bootstrap to framework CSS i JS, którego założeniem jest ułatwienie procesu tworzenia responsywnych stron internetowych o bogatym interfejsie użytkownika. Twitter Bootstrap udostępnia wiele gotowych, wystylizowanych elementów jak listy, suwaki, menu, przyciski, dzięki czemu proces tworzenia stron jest znacznie krótszy. Responsywność, czyli umiejętność stron do dopasowania się do rozdzielczości urządzenia, została osiągnięta poprzez podział dokumentu na kolumny, których szerokość jest zależna od szerokości ekranu urządzenia. Taka strategia pozwala na skalowanie strony, aby wyglądała przejrzyście zarówno na urządzeniach mobilnych, tabletach jak i komputerach osobistych. Przejrzyście, czyli wyświetlona w całości na ekranie urządzenia, bez potrzeby przewijania horyzontalnego oraz bez nachodzenia na siebie poszczególnych elementów. 54

56 4.3. Moduły Rozdział dotyczy w głównej mierze back-endu aplikacji wyjaśniając, w jaki sposób pobierane są dane odnośnie molekuł z bazy danych Protein Data Bank, jak przy pomocy skryptów bashowych generowane są pliki konfiguracji czy w jaki sposób aplikacja internetowa odpowiada na żądania użytkownika. W odróżnieniu od poprzednich rozdziałów jest to rozdział bardziej praktyczny, wyjaśniający zawiłości algorytmów oraz zastosowane rozwiązania programistyczne. Poniższy rysunek przedstawia diagram ideowy przedstawiający funkcjonalności oferowane przez aplikacje: Rys. 13. Schemat funkcjonalny aplikacji W fazie projektowania należało odpowiedzieć na zasadnicze pytanie, gdzie postawić granicę pomiędzy przygotowaniem plików konfiguracyjnych za pomocą języka C# a za pomocą skryptów. Oba rozwiązania posiadają swoje wady i zalety. Programowanie w języku C# byłoby niewątpliwe bardziej przyjemne z uwagi na gotowe funkcje bilioteki.net służące do manipulacji plikami czy możliwość dokładniejszej kontroli i obsługi błędów. Jednak niektórych kroków procesu generowania plików konfiguracyjnych po prostu nie dało się 55

57 przenieść do aplikacji C# ze względu na wymóg użycia zewnętrznych narzędzi. Mowa tu szczególnie o pierwszych krokach generowania, gdzie wymagane jest użycie takich narzędzi jak psfgen czy pakietów solvate i ionize programu VMD. Pierwszą iteracją rozwiązania tego problemu było podejście hybrydowe, tzn. wykonać wszystkie zadania w aplikacji C# oprócz tych, które wymagają zewnętrznych narzędzi. Takie rozwiązanie jednak posiada zasadniczą wadę proces generowania może być długotrwającym sekwencyjnym zadaniem, a komunikacja i przesyłanie danych pomiędzy skryptem a programem wymagałyby, aby wątek aplikacji żył tak długo jak trwa przetwarzanie skryptu. Znając cykl życia aplikacji ASP od razu można zauważyć potencjalne problemy. Otóż aplikacja ASP deleguje obsługę każdego zapytania, w ramach każdej podstrony, do osobnego wątku. W przypadku, gdy taki wątek wykonywałby długotrwające zadanie istnieje możliwość, że IIS zabije wątek. Powodem do zabicia wątku przez serwer IIS może być: przekroczenie czasu obsługi żądania (time-out), restart aplikacji wywołanej przez administratora lub przez zmianę konfiguracji serwera czy też celem zwolnienia zasobów. Przerwane zadanie oczywiście zakończyłoby się niepowodzeniem, ale użytkownik nie mógłby być w żaden sposób o tym fakcie poinformowany. Dlatego najlepszym pod względem bezpieczeństwa wykonania zadania jest oddelegowanie całej pracy związanej z generowaniem plików konfiguracyjnych do skryptu. Aplikacja ASP została zatem zwolniona z obowiązku uczestniczenia w procesie generowania plików a jej obowiązki przejął stworzony skrypt, który nadzoruje ten proces i informuje użytkownika poprzez wiadomość o sukcesie lub porażce RcsbPdb RcsbPdb jest nazwą projektu skupiającego wszystkie algorytmy i struktury danych związanych z wyszukiwaniem informacji z internetowej bazy danych Protein Data Bank [45]. Baza danych PDB [46] to baza danych zawierająca przede wszystkim dane o strukturze przestrzennej białek i kwasów nukleinowych. Dane o tych makrocząsteczkach uzyskane m.in. za pomocą rentgenografii strukturalnej i spektroskopii NMR zawierają bibliografię, sekwencje aminokwasowe, informacje o strukturze drugorzędowej oraz przede wszystkim współrzędne atomów. Na dzień 4 lipca 2015 baza danych zawiera zdeponowanych struktur. Organizacja RCSB (Research Collaboratory for Structural Bioninformatics) udostępnia dla programistów narzędzia ułatwiające korzystanie z bazy danych. Do wyszukiwania danych o strukturach można użyć serwisu sieciowego RESTful API, do ich pobierania natomiast możemy skorzystać z usług świadczonych za pomocą protokołu http. 56

58 W aplikacji ASP udostępniona została funkcjonalność pobierania pliku PDB rozpoznawanego na podstawie unikalnego czteroznakowego klucza (litery oraz cyfry), zarówno do pamięci w postaci zmiennej string, gotowej do analizy zawartości, jak i do przechowywania na dysku pod zadaną ścieżką. Do pobrania pliku używany jest obiekt klasy WebClient, który dostarcza metod wysyłania i pobierania danych ze źródła wskazanego przez URI. Serwis http bazy danych PDB umożliwia pobieranie pliku skompresowanego lub nieskompresowanego, w różnych formatach, co odzwierciedlają modele stworzonych enumeracji. Dla tego projektu najważniejszy jest plik z rozszerzeniem PDB używany w programie NAMD. Rys. 14. Diagram klasy PdbDownload Do zrealizowania wyszukiwarki struktur niezbędne są dwa elementy najpierw wyszukanie identyfikatorów struktur wg pewnego słowa kluczowego, a następnie wyświetlenie szczegółowych opisów struktur na podstawie znalezionych identyfikatorów. Klasa PdbSearch realizuje pierwszą z wymienionych funkcjonalności. Aby wyszukać identyfikatory struktur instancja klasy WebClient wysyła przy pomocy metody POST protokołu http wiadomość w formacie XML, zawierającą informacje o typie zapytania oraz słowach kluczowych, pod adres PDB API ( Minimalistyczna forma zapytania XML może przybrać postać: Rys. 15. Zapytanie XML postowane pod adres PDB API w celu wyszukiwania struktur 57

59 Najważniejsze rodzaje kwerend, które zostały zaimplementowane to zapytania bezpośrednio o identyfikator PDB lub ogólne przeszukiwanie tekstowe pod kątem słowa kluczowego. Każda z klas modelujących rodzaj kwerendy implementuje interfejs IPdbSearchQuery, dzięki czemu potrafią się same serializować do postaci XML oraz istnieje wspólna metoda do ustawiania słów kluczowych. Rys. 16. Diagram klasy PdbSearch Posiadając identyfikatory PDB dotyczące danego zapytania istnieje możliwość zaprezentowania wyników wyszukiwania w sposób bardziej interesujący, niż za pomocą identyfikatorów PDB, które nic nie mówią o znalezionych strukturach. Klasa GetPdbDescription posiada trzy metody pozwalające na pobranie danych zawartych w nagłówku pliku PDB (describepdb), informacji odnośnie encji (unikalne składniki chemiczne struktur, metoda getentityinfo), a także szczegółowy opis encji (describemol). 58

60 Podobnie jak przy pobieraniu plików, wykorzystana jest metoda klasy WebClient, która pozwala na ściągnięcie danych spod zadanego adresu w postaci zmiennej string. Każda z 3 ww. metod odwołuje się do innego adresu url PDB API podając identyfikator struktury, jako zmienną w postaci łańcucha zapytania (query string). Istnieje możliwość skierowania zapytania o kilka struktur na raz, zamiast wysyłać kilka osobnych żądań, poprzez zapisanie w parametrze query string wielu identyfikatorów rozdzielonych przecinkiem. W odpowiedzi na zapytanie otrzymujemy dokument w formacie XML, który przedstawia pewien poddany serializacji obiekt. W zasadzie nic nie stoi na przeszkodzie, aby od razu przystąpić do analizy otrzymanych danych. O ile dla niezbyt złożonych obiektów użycie wyrażeń regularnych do analizy treści mogłyby być wystarczające, o tyle dla złożonych struktur byłoby to skomplikowane zadanie. Dlatego najlepszym rozwiązaniem jest deserializacja dokumentu XML do obiektu języka C#. Dzięki wyborowi platformy.net zadanie to jest ułatwione. Klasa XmlSerializer posiada metodę Deserialize, która potrafi mapować dokument XML do znanych obiektów. W tym kontekście znany obiekt, to obiekt, którego dobrze zdefiniowane typy pól przystają do wartości dokumentów XML i którego instancja może być utworzona przez obiekt klasy XmlSerializer. Definiowanie obiektów przystających do odpowiedzi XML stanowiło pewien problem, biorąc pod uwagę bałaganiarstwo i brak spójnej koncepcji w formułowaniu odpowiedzi przez PDB API. Dane raz były zapisywane jak atrybuty elementów, w innych przypadkach, jako samodzielne elementy. Często dane odnośnie jednego obiektu typu łańcuchy białek były opisywane w różny sposób, nie tylko ze względu na pomijanie niektórych pól obiektów, ale posiadały różną strukturę. Efektem tego są np. dwie klasy opisujące jeden model obiektu typu łańcuch białka, ale także w ogólności niepotrzebne namnożenie klas opisujących te same modele, ale w nieprzystający do siebie sposób. Jednak po stworzeniu odpowiednich modeli obiektów zadanie serializacji i deserializacji było banalne, dzięki stworzonej klasie XmlHelper, która przy użyciu metod generycznych potrafi serializować obiekty dowolnego typu. 59

61 Rys. 17. Diagram klasy GetPdbDescription ScriptManager Projekt ScriptManager oferuje całą funkcjonalność związaną z generowaniem plików konfiguracyjnych, a więc stanowi sedno tej pracy i całej aplikacji. Jak wspomniano wcześniej, mając na uwadze przede wszystkim niezawodność procesu generowania plików konfiguracyjnych cały proces został oddelegowany z aplikacji.net do programu napisanego w skrypcie powłoki linux Bash. Po przetworzeniu żądania od użytkownika aplikacja ASP uruchamia nowy proces, który wykonuje skrypt MakeCfg dzięki klasie Process, która pozwala na monitorowanie i startowanie procesów na lokalnym systemie. Rys. 18. Diagram klasy Script 60

62 Program MakeCfg na podstawie parametrów zadanych przy pomocy linii poleceń przeprowadza proces generacji przy pomocy dziesięciu innych skryptów, z których każdy odpowiada za inną część konfiguracji: 1. SplitModels - Często jeden plik PDB opisuje kilka modeli struktury. Do symulacji należy wybrać jeden z nich na podstawie numeru. Modele w jednym pliku rozdzielane są za pomocą pary rekordów, np. MODEL 1, ENDMDL, dlatego zadaniem skryptu jest wycięcie wszystkich rekordów pomiędzy MODEL N a ENDMDL. 2. SplitChains - Struktury białek składają się z łańcuchów. Aby móc na podstawie pliku współrzędnych PDB wygenerować plik struktur PSF, należy każdy segment białka lub rozpuszczalnika umieścić w osobnym pliku PDB. Zadaniem skryptu jest podział rekordów na struktury i zapisanie każdej z nich w osobnym pliku. Przynależność atomów do poszczególnych struktur może być określona na podstawie kolumn nazwa residuum oraz identyfikator łańcucha (3.1.2). Dzięki zastosowaniu narzędzia selekcji atomów, zaimplementowanego w programie VMD, zadanie to jest stosunkowo proste. Poniższy fragment prezentuje, w jaki sposób wybrać z pliku PDB atomy białka, należące do łańcucha A a następnie zapisać je w osobnym pliku: W analogiczny sposób postępujemy dla pozostałych struktur. Głównym parametrem tego skryptu jest lista łańcuchów. Jeśli parametr ten będzie zdefiniowany przez użytkownika, do symulacji przygotowane zostaną tylko wybrane łańcuchy białek. Domyślnie, skrypt samodzielnie wykrywa wszystkie łańcuchy i przygotowuje je do symulacji. 3. RunPsfgen plik strukturalny białka (PSF) buduje się na podstawie utworzonych wcześniej segmentów. Na początku skrypt aliasuje atomy, tzn. uwspólnia nazewnictwo atomów pomiędzy plikiem PDB a programem psfgen. Następnie budowane są segmenty białka. Każdy segment posiada swoja nazwę, sekwencję oraz współrzędne atomów wczytane z odpowiedniego pliku PDB, utworzonego w 2 kroku (instrukcje segment, pdb, coordpdb). Dla każdego segmentu, oprócz wody program psfgen opisuje oddziaływania 61

63 międzycząsteczkowe, odgaduje pozycje brakujących atomów w całej strukturze (guesscoord), aby w końcowej fazie zapisać efekt swojej pracy w pliku PSF oraz ujednoliconym, zawierającym wszystkie segmenty pliku PDB. Istnieje parametr skryptu, który pozwala na wybór specyficznego pliku topologicznego pola siłowego, na podstawie którego opisywane są interakcje międzycząsteczkowe. 4. RunSolvate jak sama nazwa wskazuje, skrypt uruchamia pakiet solvate znajdujący się w programie VMD, dzięki któremu można dodać otoczkę wodną do systemu. Głównym parametrem jest wielkość otoczki wodnej w kształcie prostopadłościanu wyrażona w angstremach [Å]. Wymiary skrzynki rozpuszczalnika są definiowane tak, że w każdym kierunku kardynalnym istnieje otoczka wodna o zadanej wielkości, liczona od najbardziej wysuniętego w danym kierunku atomu. Istnieje także możliwość zmniejszenia otoczki wodnej poprzez rotacje struktury, dzięki opcji rotate. 5. RunAutoionize pozwala na dodanie jonów do rozpuszczalnika. W projekcie przyjęto, że dodawane będą tylko jony soli NaCl, a przy pomocy parametru można regulować ich stężenia. Autoionize jest także programem wchodzącym w skład pakietu VMD. 6. RunCtrbox skrypt dokonuje centrowania struktury, tzn. przesuwa środek masy białka do środka układu współrzędnych oraz mierzy wymiary komórki elementarnej, dzięki której zbudowany zostanie system z periodycznymi warunkami brzegowymi. 7. FixProtein w pierwszej właściwej fazie symulacji molekularnej przeprowadzana jest ekwilibracja wody przy założeniu, że białko jest zamrożone w przestrzeni. Ponownie dzięki narzędziom do selekcji atomów w programie VMD atomy białka są zamrażane poprzez ustawienie wartości 1 w polu zajętości danego atomu. 8. MakePhase1Cfg generowany jest plik dla programu NAMD opisujący pierwszą fazę symulacji, czyli ekwilibrację wody. Etap ten jest przeprowadzany dla zestawu izotermiczno-izobarycznego, dlatego generowany plik konfiguracyjny specyfikuje parametry dotyczące kontroli temperatury, stałego ciśnienia czy też wspomniany rozmiar komórki elementarnej do periodycznych warunków brzegowych oraz listę zafixowanych atomów. Do najważniejszych 62

64 parametrów specyfikowanych przez użytkownika należą temperatura, częstotliwość zapisywania danych symulacji do plików wyjściowych, nazwa pliku parametrycznego wybranego pola siłowego a także długość kroku czasowego, długość symulacji wyrażona w krokach czasowych oraz ilość iteracji algorytmu minimalizacji energii potencjalnej. Parametry te specyfikowane są we wszystkich fazach symulacji. 9. MakePhase2Cfg działa podobnie jak poprzedni skrypt. Generuje plik konfiguracyjny dla drugiej fazy symulacji, czyli fazy podgrzewania układu. Do konfiguracji dostępne są wszystkie parametry z poprzedniego kroku, do tego dochodzi możliwość kontrolowania procesu podgrzewania, poprzez ustalenie jak często (co ile kroków czasowych) oraz o ile stopni ma być podnoszona temperatura układu. 10. MakePhase3Cfg jest to najbardziej modularna faza symulacji. Oprócz standardowych parametrów, wspólnych dla wszystkich etapów symulacji istnieje możliwość włączania i wyłączania dodatkowych opcji. W zależności od założeń symulacji, np. zespołu kanonicznego istnieje możliwość kontroli ciśnienia, możliwość włączenia zewnętrznego pola elektrostatycznego, czy też zastosowanie algorytmu sumowania Ewalda siatki cząsteczek dla oddziaływań elektrostatycznych dalekiego zasięgu. Parametrem pola elektrycznego jest wektor pola, dla ciśnienia parametrem jest temperatura szumu barostatu kontrolującego ciśnienie, która powinna być równa temperaturze układu. Algorytm PME parametryzowany jest rozmiarem siatki w postaci trzech współrzędnych (x, y, z) wektora. Wartości wektora powinny być nieznacznie większe od wymiaru komórki elementarnej oraz celem optymalizacji użytej w algorytmie szybkiej transformaty Fouriera, powinny mieć małe czynniki (2, 3, 5) faktoryzacji. Użytkownik może sam zdefiniować wymiary siatki lub pozwolić programowi na dobór parametrów na podstawie rozmiarów komórki elementarnej obliczonej w skrypcie RunCtrbox. Ta faza może być potencjalnie bardzo długa, w wyniku czego generowane pliki wyjściowe mogą być dużych rozmiarów, co z kolei może stanowić problem aby wczytać je jednorazowo w całości do pamięci operacyjnej. Dlatego, dzięki dostosowaniu parametru firsttimestep programu NAMD, określającego pierwszy krok 63

65 czasowy oraz plikom restartu istnieje możliwość podziału całej symulacji na kilka osobnych części, oczywiście przy zachowaniu sensu i ciągłości symulacji. W celu utrzymania porządku skrypty, pliki pól siłowych oraz pliki wynikowe gromadzone są w osobnych folderach. Pliki wynikowe poszczególnych zadań, skierowanych z aplikacji ASP, są identyfikowane i katalogowane na podstawie unikatowego identyfikatora sesji (guid) utworzonego przez aplikację ASP. Główny skrypt MakeCfg rozpoczyna pracę od stworzenia struktury katalogów oraz pobrania przy pomocy narzędzia wget pliku PDB wskazanego przez parametr linii poleceń, do folderu o nazwie zgodnej z identyfikatorem zadania. Standardowy strumień błędów (stderr) jest przekierowany do pliku error.log, na podstawie, którego badany jest przebieg procesu generowania plików konfiguracyjnych. Jeśli plik pozostaje pusty uznaje się, że proces był bezbłędny. Niezależnie od przebiegu procesu konfiguracji, folder roboczy jest czyszczony z plików zbędnych w procesie symulacji a powstałych, jako efekt uboczny skryptów. Końcowym zadaniem skryptu jest wysłanie wiadomości informującej o sukcesie lub porażce, oraz oczyszczenie całego katalogu zadania, aby rozmiar repozytorium nie rósł w nieskończoność NamdConfigurator Projekt NamdConfigurator zawiera implementacje aplikacji ASP oferującej trzy główne funkcjonalności: wyszukiwanie molekuł w Protein Data Bank, wyświetlanie struktur 3D oraz przede wszystkim możliwość generowania plików konfiguracyjnych do przeprowadzenia symulacji w programie NAMD. Aplikacja ASP jest zbudowana ze stron. Stroną nazywamy klasę obiektu dziedziczącą po klasie bazowej Page. Strona jest opisywana przez dwa pliki: plik z rozszerzeniem aspx zawierającym znaczniki html oraz opis użytych kontrolek serwera, z kolei plik.cs odpowiada za logikę działania. Dzięki koncepcji stron wzorcowych (master page) i stron zawartości (content page) ułatwiono zadanie tworzenia spójnych graficznie witryn. Strony wzorcowe reprezentują layout aplikacji definiując elementy, które są obecne na każdej z podstron jak menu, nagłówek czy stopka, a także miejsce na kontent. Z kolei strony zawartości skupiają się na wypełnieniu stron interesującą treścią. Kiedy użytkownik odwiedzi daną podstronę, jej zawartość jest umieszczana w miejscu przeznaczonym na kontent w stronie wzorcowej. Ten wzorzec projektowy zwiększa produktywność programisty, który nie musi w kółko kopiować 64

66 i wklejać na każdej podstronie ten sam kod odpowiadający za wspólne elementy interfejsu. Do stworzenia strony wzorcowej użyto szablonu HTML5 Boilerplate. Rys. 19. Diagram klas aplikacji ASP NamdConfigurator Przeszukiwanie bazy danych PDB działa w oparciu o stworzony projekt RcsbPdb, który udostępnia klasy i metody służące do przeszukiwania i opisywania białek. Wyniki wyświetlają się w tabelaryczny sposób, dziesięć wyników na stronę. Dzięki zastosowanej technologii leniwego, późnego wczytywania strona działa w szybki i ekonomiczny sposób, nie ściągając informacji o wszystkich strukturach na raz, ale dopiero wtedy, gdy są widoczne w ramach strony. Taki efekt można osiągnąć dzięki kontrolce serwera ListView. Kontrolka ASP ListView pozwala na dynamiczne dowiązywanie obiektów danych, które są zwracane przez obiekt źródłowy danych, czyli klasę SearchResultData. Aby zadeklarować obiekt klasy SearchResultData, jako obiekt źródłowy dla kontrolki ListView należy użyć kontrolki ObjectDataSource wskazując w niej za pomocą atrybutów nazwę klasy (SearchResultData), nazwę metody służącej do pobierania danych (GetAllResults), a także skąd pobrać parametry do tej metody, takie jak słowo kluczowe wyszukiwania, typ kwerendy, indeks początkowy oraz rozmiar strony. 65

67 Rys. 20. Definicja kontrolki ObjectDataSource dla widoku wyszukiwania Sposób prezentacji danych, które są wyświetlane w kontrolce ListView może być kontrolowany poprzez zdefiniowanie szablonów. W pierwszej kolejności należy zdefiniować szablon layoutu (LayoutTemplate), który wskaże, w jaki sposób wyświetlić całą listę. Jak już wspomniano, w tej aplikacji dane są wyświetlane w postaci tabeli, której wiersze prezentują opis jednej struktury, pod tabelą znajduje się paginacja pozwalająca przewijać strony. Sposób, w jaki będą wyświetlane poszczególne wiersze jest kontrolowany przez szablon elementu (ItemPlaceholder). Na poniższym rysunku przedstawiono implementację listy wyników wyszukiwania: Rys. 21. Implementacja kontrolki ListView wyświetlającej wyniki wyszukiwania Każda wyszukana struktura oprócz opisu posiada trzy odnośniki pozwalające w szybki sposób na obejrzenie widoku 3D, przejście do panelu konfiguracji i przygotowanie symulacji dla danej struktury czy też przejście do strony Protein Data Bank, która zawiera o wiele więcej szczegółowych informacji. 66

68 Rys. 22. Strona przeszukiwania bazy danych PDB Strona konfiguracji symulacji to jeden wielki formularz, zawierający pola z parametrami symulacji. Parametry zostały podzielone w ergonomiczny sposób na cztery główne grupy odpowiadające głównym etapom symulacji: przygotowanie, ekwilibracja wody, podgrzewanie układu, symulacja właściwa. Początkowo formularz jest nieaktywny, tak długo, aż nie zostanie wpisany prawidłowy czteroliterowy identyfikator struktury PDB. Jedną z przyczyn blokady formularza jest konflikt przy generowaniu przycisków odpowiadających za wybór symulowanych łańcuchów. Aby stworzyć przyciski musimy w ogóle najpierw wiedzieć, jakie białko będzie symulowane a dopiero potem zapytać PDB API o łańcuchy i zdefiniować odpowiednią ilość prawidłowo nazwanych przycisków. Podobny konflikt występuje przy populacji kontrolki rozwijanej listy za pomocą modeli opisanych w danym pliku PDB. Po wpisaniu prawidłowego identyfikatora użytkownik może przystąpić do parametryzacji. Strona została zaprojektowana w intuicyjny sposób, mający na celu ułatwić użytkownikowi pracę poprzez podpowiedzi wizualne np. kolor podświetlenia (błędny parametr czerwony), poprzez wyświetlanie podpowiedzi opisującej parametr i prawidłowe wartości po najechaniu na jego etykietę, przez wyświetlane błędy walidacyjne, kończąc na funkcjach, które po prostu zabraniają wpisać użytkownikowi w dane pole nieprawidłowych wartości, np. zakaz wpisywania liter w parametrze, który przyjmuje tylko wartości liczbowe. Walidacja parametrów odbywa się zarówno po stronie klienta, dzięki bibliotece jquery Validation Plugin 67

69 jak i serwera. Podwójna kontrola chroni przed sytuacją, w której użytkownik wyłączy obsługę JavaScript i pozwala efektywniej wyłapywać błędy jeszcze przed rozpoczęciem procesu generowania. Walidacja polega nie tylko na przestrzeganiu reguł dotyczących dziedzin parametru, ale także na ostrzeganiu użytkownika o potencjalnych problemach występujących w czasie symulacji, jak np. kiedy symulacja jest zbyt długa a pliki generowane w jej wyniku byłyby bardzo dużych rozmiarów. Po prawidłowym wypełnieniu formularza i wciśnięciu przycisku Generuj aplikacja ASP uruchamia proces, do którego oddeleguje zadanie tworzenia plików konfiguracyjnych a użytkownikowi wyświetli stronę informującą o sukcesie. Rys. 23. Strona konfiguracji symulacji Wyświetlanie widoku 3d struktur zostało zrealizowane za pomocą zewnętrznych bibliotek na licencji open-source. Pierwsza z nich to JSmol [47], która jest implementacją biblioteki Jmol, ale tylko i wyłącznie w technologii HTML5, bez użycia Javy. W porównaniu do drugiej użytej biblioteki (PV JavaScript Protein Viewer) jest to zaawansowane narzędzie pozwalające nie tylko animować struktury, ale także np. analizować odległości pomiędzy atomami, zależności kątowe, mierzyć kąty torsyjne, dostosować styl i kolor atomów w zależności od łańcucha lub wyrysować powierzchnię oddziaływania van der Waalsa. Tak wiele funkcjonalności ma swoją cenę w postaci zużywanych zasobów. Dla urządzeń typu desktop nie stanowi to problemu w przeciwieństwie do urządzeń mobilnych czy tabletów. 68

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metoda stochastycznego spadku wzdłuż gradientu Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 04.04.2019 1 / 20 Wprowadzenie Minimalizacja różniczkowalnej

Bardziej szczegółowo

17.1 Podstawy metod symulacji komputerowych dla klasycznych układów wielu cząstek

17.1 Podstawy metod symulacji komputerowych dla klasycznych układów wielu cząstek Janusz Adamowski METODY OBLICZENIOWE FIZYKI 1 Rozdział 17 KLASYCZNA DYNAMIKA MOLEKULARNA 17.1 Podstawy metod symulacji komputerowych dla klasycznych układów wielu cząstek Rozważamy układ N punktowych cząstek

Bardziej szczegółowo

Program MC. Obliczyć radialną funkcję korelacji. Zrobić jej wykres. Odczytać z wykresu wartość radialnej funkcji korelacji w punkcie r=

Program MC. Obliczyć radialną funkcję korelacji. Zrobić jej wykres. Odczytać z wykresu wartość radialnej funkcji korelacji w punkcie r= Program MC Napisać program symulujący twarde kule w zespole kanonicznym. Dla N > 100 twardych kul. Gęstość liczbowa 0.1 < N/V < 0.4. Zrobić obliczenia dla 2,3 różnych wartości gęstości. Obliczyć radialną

Bardziej szczegółowo

Metody numeryczne I Równania nieliniowe

Metody numeryczne I Równania nieliniowe Metody numeryczne I Równania nieliniowe Janusz Szwabiński szwabin@ift.uni.wroc.pl Metody numeryczne I (C) 2004 Janusz Szwabiński p.1/66 Równania nieliniowe 1. Równania nieliniowe z pojedynczym pierwiastkiem

Bardziej szczegółowo

Podstawowe prawa opisujące właściwości gazów zostały wyprowadzone dla gazu modelowego, nazywanego gazem doskonałym (idealnym).

Podstawowe prawa opisujące właściwości gazów zostały wyprowadzone dla gazu modelowego, nazywanego gazem doskonałym (idealnym). Spis treści 1 Stan gazowy 2 Gaz doskonały 21 Definicja mikroskopowa 22 Definicja makroskopowa (termodynamiczna) 3 Prawa gazowe 31 Prawo Boyle a-mariotte a 32 Prawo Gay-Lussaca 33 Prawo Charlesa 34 Prawo

Bardziej szczegółowo

WYKŁAD NR 3 OPIS DRGAŃ NORMALNYCH UJĘCIE KLASYCZNE I KWANTOWE.

WYKŁAD NR 3 OPIS DRGAŃ NORMALNYCH UJĘCIE KLASYCZNE I KWANTOWE. 1 WYKŁAD NR 3 OPIS DRGAŃ NORMALNYCH UJĘCIE KLASYCZNE I KWANTOWE. Współrzędne wewnętrzne 2 F=-fq q ξ i F i =-f ij x j U = 1 2 fq2 U = 1 2 ij f ij ξ i ξ j 3 Najczęściej stosowaną metodą obliczania drgań

Bardziej szczegółowo

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH

ROZWIĄZYWANIE RÓWNAŃ NIELINIOWYCH Transport, studia I stopnia Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym

Bardziej szczegółowo

KADD Minimalizacja funkcji

KADD Minimalizacja funkcji Minimalizacja funkcji n-wymiarowych Forma kwadratowa w n wymiarach Procedury minimalizacji Minimalizacja wzdłuż prostej w n-wymiarowej przestrzeni Metody minimalizacji wzdłuż osi współrzędnych wzdłuż kierunków

Bardziej szczegółowo

Zespół kanoniczny N,V, T. acc o n =min {1, exp [ U n U o ] }

Zespół kanoniczny N,V, T. acc o n =min {1, exp [ U n U o ] } Zespół kanoniczny Zespół kanoniczny N,V, T acc o n =min {1, exp [ U n U o ] } Zespół izobaryczno-izotermiczny Zespół izobaryczno-izotermiczny N P T acc o n =min {1, exp [ U n U o ] } acc o n =min {1, exp[

Bardziej szczegółowo

Metody rozwiązania równania Schrödingera

Metody rozwiązania równania Schrödingera Metody rozwiązania równania Schrödingera Równanie Schrödingera jako algebraiczne zagadnienie własne Rozwiązanie analityczne dla skończonej i nieskończonej studni potencjału Problem rozwiązania równania

Bardziej szczegółowo

Układy stochastyczne

Układy stochastyczne Instytut Informatyki Uniwersytetu Śląskiego 21 stycznia 2009 Definicja Definicja Proces stochastyczny to funkcja losowa, czyli funkcja matematyczna, której wartości leżą w przestrzeni zdarzeń losowych.

Bardziej szczegółowo

Atomy wieloelektronowe

Atomy wieloelektronowe Wiązania atomowe Atomy wieloelektronowe, obsadzanie stanów elektronowych, układ poziomów energii. Przykładowe konfiguracje elektronów, gazy szlachetne, litowce, chlorowce, układ okresowy pierwiastków,

Bardziej szczegółowo

Tadeusz Lesiak. Dynamika punktu materialnego: Praca i energia; zasada zachowania energii

Tadeusz Lesiak. Dynamika punktu materialnego: Praca i energia; zasada zachowania energii Mechanika klasyczna Tadeusz Lesiak Wykład nr 4 Dynamika punktu materialnego: Praca i energia; zasada zachowania energii Energia i praca T. Lesiak Mechanika klasyczna 2 Praca Praca (W) wykonana przez stałą

Bardziej szczegółowo

WYKŁAD 9 METODY ZMIENNEJ METRYKI

WYKŁAD 9 METODY ZMIENNEJ METRYKI WYKŁAD 9 METODY ZMIENNEJ METRYKI Kierunki sprzężone. Metoda Newtona Raphsona daje dobre przybliżenie najlepszego kierunku poszukiwań, lecz jest to okupione znacznym kosztem obliczeniowym zwykle postać

Bardziej szczegółowo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia I stopnia rok akademicki 2011/2012 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Uwagi wstępne Układ liniowych równań algebraicznych można

Bardziej szczegółowo

Modyfikacja schematu SCPF obliczeń energii polaryzacji

Modyfikacja schematu SCPF obliczeń energii polaryzacji Modyfikacja schematu SCPF obliczeń energii polaryzacji Zakład Metod Obliczeniowych Chemii 11 kwietnia 2006 roku 1 Po co? Jak? 2 Algorytm Analiza zbieżności 3 dla układów symetrycznych 4 Fulleren 5 Po co?

Bardziej szczegółowo

Aproksymacja funkcji a regresja symboliczna

Aproksymacja funkcji a regresja symboliczna Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(x), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(x), zwaną funkcją aproksymującą

Bardziej szczegółowo

Biostatystyka, # 3 /Weterynaria I/

Biostatystyka, # 3 /Weterynaria I/ Biostatystyka, # 3 /Weterynaria I/ dr n. mat. Zdzisław Otachel Uniwersytet Przyrodniczy w Lublinie Katedra Zastosowań Matematyki i Informatyki ul. Głęboka 28, p. 221 bud. CIW, e-mail: zdzislaw.otachel@up.lublin.pl

Bardziej szczegółowo

Elementy rachunku różniczkowego i całkowego

Elementy rachunku różniczkowego i całkowego Elementy rachunku różniczkowego i całkowego W paragrafie tym podane zostaną elementarne wiadomości na temat rachunku różniczkowego i całkowego oraz przykłady jego zastosowania w fizyce. Małymi literami

Bardziej szczegółowo

Problemy i rozwiązania

Problemy i rozwiązania Problemy i rozwiązania Znakomita większość układów, które badamy liczy sobie co najmniej mol cząsteczek >> 10 23 Typowy krok czasowy symulacji to 10-15 s natomiast zjawiska, które zachodzą wokół nas trwają

Bardziej szczegółowo

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH

UKŁADY ALGEBRAICZNYCH RÓWNAŃ LINIOWYCH Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać układu równań liniowych Układ liniowych równań algebraicznych

Bardziej szczegółowo

5. Rozwiązywanie układów równań liniowych

5. Rozwiązywanie układów równań liniowych 5. Rozwiązywanie układów równań liniowych Wprowadzenie (5.1) Układ n równań z n niewiadomymi: a 11 +a 12 x 2 +...+a 1n x n =a 10, a 21 +a 22 x 2 +...+a 2n x n =a 20,..., a n1 +a n2 x 2 +...+a nn x n =a

Bardziej szczegółowo

Stabilność II Metody Lapunowa badania stabilności

Stabilność II Metody Lapunowa badania stabilności Metody Lapunowa badania stabilności Interesuje nas w sposób szczególny system: Wprowadzamy dla niego pojęcia: - stabilności wewnętrznej - odnosi się do zachowania się systemu przy zerowym wejściu, czyli

Bardziej szczegółowo

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013

Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum. w roku szkolnym 2012/2013 Próbny egzamin z matematyki dla uczniów klas II LO i III Technikum w roku szkolnym 2012/2013 I. Zakres materiału do próbnego egzaminu maturalnego z matematyki: 1) liczby rzeczywiste 2) wyrażenia algebraiczne

Bardziej szczegółowo

Ćwiczenie M-2 Pomiar przyśpieszenia ziemskiego za pomocą wahadła rewersyjnego Cel ćwiczenia: II. Przyrządy: III. Literatura: IV. Wstęp. l Rys.

Ćwiczenie M-2 Pomiar przyśpieszenia ziemskiego za pomocą wahadła rewersyjnego Cel ćwiczenia: II. Przyrządy: III. Literatura: IV. Wstęp. l Rys. Ćwiczenie M- Pomiar przyśpieszenia ziemskiego za pomocą wahadła rewersyjnego. Cel ćwiczenia: pomiar przyśpieszenia ziemskiego przy pomocy wahadła fizycznego.. Przyrządy: wahadło rewersyjne, elektroniczny

Bardziej szczegółowo

Wykład 5 Widmo rotacyjne dwuatomowego rotatora sztywnego

Wykład 5 Widmo rotacyjne dwuatomowego rotatora sztywnego Wykład 5 Widmo rotacyjne dwuatomowego rotatora sztywnego W5. Energia molekuł Przemieszczanie się całych molekuł w przestrzeni - Ruch translacyjny - Odbywa się w fazie gazowej i ciekłej, w fazie stałej

Bardziej szczegółowo

TERMODYNAMIKA I TERMOCHEMIA

TERMODYNAMIKA I TERMOCHEMIA TERMODYNAMIKA I TERMOCHEMIA Termodynamika - opisuje zmiany energii towarzyszące przemianom chemicznym; dział fizyki zajmujący się zjawiskami cieplnymi. Termochemia - dział chemii zajmujący się efektami

Bardziej szczegółowo

Analiza składowych głównych. Wprowadzenie

Analiza składowych głównych. Wprowadzenie Wprowadzenie jest techniką redukcji wymiaru. Składowe główne zostały po raz pierwszy zaproponowane przez Pearsona(1901), a następnie rozwinięte przez Hotellinga (1933). jest zaliczana do systemów uczących

Bardziej szczegółowo

TEORETYCZNE PODSTAWY INFORMATYKI

TEORETYCZNE PODSTAWY INFORMATYKI 1 TEORETYCZNE PODSTAWY INFORMATYKI 16/01/2017 WFAiS UJ, Informatyka Stosowana I rok studiów, I stopień Repetytorium złożoność obliczeniowa 2 Złożoność obliczeniowa Notacja wielkie 0 Notacja Ω i Θ Rozwiązywanie

Bardziej szczegółowo

Ćw. nr 31. Wahadło fizyczne o regulowanej płaszczyźnie drgań - w.2

Ćw. nr 31. Wahadło fizyczne o regulowanej płaszczyźnie drgań - w.2 1 z 6 Zespół Dydaktyki Fizyki ITiE Politechniki Koszalińskiej Ćw. nr 3 Wahadło fizyczne o regulowanej płaszczyźnie drgań - w.2 Cel ćwiczenia Pomiar okresu wahań wahadła z wykorzystaniem bramki optycznej

Bardziej szczegółowo

WIĄZANIA. Co sprawia, że ciała stałe istnieją i są stabilne? PRZYCIĄGANIE ODPYCHANIE

WIĄZANIA. Co sprawia, że ciała stałe istnieją i są stabilne? PRZYCIĄGANIE ODPYCHANIE WIĄZANIA Co sprawia, że ciała stałe istnieją i są stabilne? PRZYCIĄGANIE ODPYCHANIE Przyciąganie Wynika z elektrostatycznego oddziaływania między elektronami a dodatnimi jądrami atomowymi. Może to być

Bardziej szczegółowo

Metody numeryczne w przykładach

Metody numeryczne w przykładach Metody numeryczne w przykładach Bartosz Ziemkiewicz Wydział Matematyki i Informatyki UMK, Toruń Regionalne Koło Matematyczne 8 kwietnia 2010 r. Bartosz Ziemkiewicz (WMiI UMK) Metody numeryczne w przykładach

Bardziej szczegółowo

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1

Wstęp do metod numerycznych Zadania numeryczne 2016/17 1 Wstęp do metod numerycznych Zadania numeryczne /7 Warunkiem koniecznym (nie wystarczającym) uzyskania zaliczenia jest rozwiązanie co najmniej 3 z poniższych zadań, przy czym zadania oznaczone literą O

Bardziej szczegółowo

Macierze. Rozdział Działania na macierzach

Macierze. Rozdział Działania na macierzach Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i, j) (i 1,..., n; j 1,..., m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F R lub F C, nazywamy macierzą (rzeczywistą, gdy

Bardziej szczegółowo

Podstawy fizyki wykład 8

Podstawy fizyki wykład 8 Podstawy fizyki wykład 8 Dr Piotr Sitarek Instytut Fizyki, Politechnika Wrocławska Ładunek elektryczny Grecy ok. 600 r p.n.e. odkryli, że bursztyn potarty o wełnę przyciąga inne (drobne) przedmioty. słowo

Bardziej szczegółowo

Projekt Inżynier mechanik zawód z przyszłością współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego

Projekt Inżynier mechanik zawód z przyszłością współfinansowany ze środków Unii Europejskiej w ramach Europejskiego Funduszu Społecznego Zajęcia wyrównawcze z fizyki -Zestaw 4 -eoria ermodynamika Równanie stanu gazu doskonałego Izoprzemiany gazowe Energia wewnętrzna gazu doskonałego Praca i ciepło w przemianach gazowych Silniki cieplne

Bardziej szczegółowo

Model wiązania kowalencyjnego cząsteczka H 2

Model wiązania kowalencyjnego cząsteczka H 2 Model wiązania kowalencyjnego cząsteczka H 2 + Współrzędne elektronu i protonów Orbitale wiążący i antywiążący otrzymane jako kombinacje orbitali atomowych Orbital wiążący duża gęstość ładunku między jądrami

Bardziej szczegółowo

3 Podstawy teorii drgań układów o skupionych masach

3 Podstawy teorii drgań układów o skupionych masach 3 Podstawy teorii drgań układów o skupionych masach 3.1 Drgania układu o jednym stopniu swobody Rozpatrzmy elementarny układ drgający, nazywany też oscylatorem harmonicznym, składający się ze sprężyny

Bardziej szczegółowo

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych)

Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Szukanie rozwiązań funkcji uwikłanych (równań nieliniowych) Funkcja uwikłana (równanie nieliniowe) jest to funkcja, która nie jest przedstawiona jawnym przepisem, wzorem wyrażającym zależność wartości

Bardziej szczegółowo

Programowanie celowe #1

Programowanie celowe #1 Programowanie celowe #1 Problem programowania celowego (PC) jest przykładem problemu programowania matematycznego nieliniowego, który można skutecznie zlinearyzować, tzn. zapisać (i rozwiązać) jako problem

Bardziej szczegółowo

Nieskończona jednowymiarowa studnia potencjału

Nieskończona jednowymiarowa studnia potencjału Nieskończona jednowymiarowa studnia potencjału Zagadnienie dane jest następująco: znaleźć funkcje własne i wartości własne operatora energii dla cząstki umieszczonej w nieskończonej studni potencjału,

Bardziej szczegółowo

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora.

W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. 1. Podstawy matematyki 1.1. Geometria analityczna W naukach technicznych większość rozpatrywanych wielkości możemy zapisać w jednej z trzech postaci: skalara, wektora oraz tensora. Skalarem w fizyce nazywamy

Bardziej szczegółowo

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu.

2) R stosuje w obliczeniach wzór na logarytm potęgi oraz wzór na zamianę podstawy logarytmu. ZAKRES ROZSZERZONY 1. Liczby rzeczywiste. Uczeń: 1) przedstawia liczby rzeczywiste w różnych postaciach (np. ułamka zwykłego, ułamka dziesiętnego okresowego, z użyciem symboli pierwiastków, potęg); 2)

Bardziej szczegółowo

Następnie przypominamy (dla części studentów wprowadzamy) podstawowe pojęcia opisujące funkcje na poziomie rysunków i objaśnień.

Następnie przypominamy (dla części studentów wprowadzamy) podstawowe pojęcia opisujące funkcje na poziomie rysunków i objaśnień. Zadanie Należy zacząć od sprawdzenia, co studenci pamiętają ze szkoły średniej na temat funkcji jednej zmiennej. Na początek można narysować kilka krzywych na tle układu współrzędnych (funkcja gładka,

Bardziej szczegółowo

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015

Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 Metody numeryczne Technika obliczeniowa i symulacyjna Sem. 2, EiT, 2014/2015 1 Metody numeryczne Dział matematyki Metody rozwiązywania problemów matematycznych za pomocą operacji na liczbach. Otrzymywane

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 5. Metody kierunków poparwy (metoda Newtona-Raphsona, metoda gradientów sprzężonych) Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.03.2019 1

Bardziej szczegółowo

Wykład FIZYKA I. 5. Energia, praca, moc. http://www.if.pwr.wroc.pl/~wozniak/fizyka1.html. Dr hab. inż. Władysław Artur Woźniak

Wykład FIZYKA I. 5. Energia, praca, moc. http://www.if.pwr.wroc.pl/~wozniak/fizyka1.html. Dr hab. inż. Władysław Artur Woźniak Wykład FIZYKA I 5. Energia, praca, moc Dr hab. inż. Władysław Artur Woźniak Instytut Fizyki Politechniki Wrocławskiej http://www.if.pwr.wroc.pl/~wozniak/fizyka1.html ENERGIA, PRACA, MOC Siła to wielkość

Bardziej szczegółowo

1 Równania nieliniowe

1 Równania nieliniowe 1 Równania nieliniowe 1.1 Postać ogólna równania nieliniowego Często występującym, ważnym problemem obliczeniowym jest numeryczne poszukiwanie rozwiązań równań nieliniowych, np. algebraicznych (wielomiany),

Bardziej szczegółowo

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Kwantowa wariacyjna metoda Monte Carlo. Problem własny dla stanu podstawowego układu N cząstek

Janusz Adamowski METODY OBLICZENIOWE FIZYKI Kwantowa wariacyjna metoda Monte Carlo. Problem własny dla stanu podstawowego układu N cząstek Janusz Adamowski METODY OBLICZENIOWE FIZYKI 1 Rozdział 20 KWANTOWE METODY MONTE CARLO 20.1 Kwantowa wariacyjna metoda Monte Carlo Problem własny dla stanu podstawowego układu N cząstek (H E 0 )ψ 0 (r)

Bardziej szczegółowo

Wykład FIZYKA I. 15. Termodynamika statystyczna. Dr hab. inż. Władysław Artur Woźniak

Wykład FIZYKA I. 15. Termodynamika statystyczna.  Dr hab. inż. Władysław Artur Woźniak Wykład FIZYKA I 15. Termodynamika statystyczna Dr hab. inż. Władysław Artur Woźniak Instytut Fizyki Politechniki Wrocławskiej http://www.if.pwr.wroc.pl/~wozniak/fizyka1.html TERMODYNAMIKA KLASYCZNA I TEORIA

Bardziej szczegółowo

Fizyka statystyczna Fenomenologia przejść fazowych. P. F. Góra

Fizyka statystyczna Fenomenologia przejść fazowych. P. F. Góra Fizyka statystyczna Fenomenologia przejść fazowych P. F. Góra http://th-www.if.uj.edu.pl/zfs/gora/ 2015 Przejście fazowe transformacja układu termodynamicznego z jednej fazy (stanu materii) do innej, dokonywane

Bardziej szczegółowo

Podstawy Sztucznej Inteligencji (PSZT)

Podstawy Sztucznej Inteligencji (PSZT) Podstawy Sztucznej Inteligencji (PSZT) Paweł Wawrzyński Uczenie maszynowe Sztuczne sieci neuronowe Plan na dziś Uczenie maszynowe Problem aproksymacji funkcji Sieci neuronowe PSZT, zima 2013, wykład 12

Bardziej szczegółowo

- parametry geometryczne badanego związku: współrzędne i typy atomów, ich masy, ładunki, prędkości początkowe itp. (w NAMD plik.

- parametry geometryczne badanego związku: współrzędne i typy atomów, ich masy, ładunki, prędkości początkowe itp. (w NAMD plik. Avogadro Tworzenie i manipulacja modelami związków chemicznych. W symulacjach dynamiki molekularnej kluczowych elementem jest przygotowanie układu do symulacji tzn. stworzyć pliki wejściowe zawierające

Bardziej szczegółowo

Potencjalne pole elektrostatyczne. Przypomnienie

Potencjalne pole elektrostatyczne. Przypomnienie Potencjalne pole elektrostatyczne Wszystkie rysunki i animacje zaczerpnięto ze strony http://webmitedu/802t/www/802teal3d/visualizations/electrostatics/indexhtm Tekst jest wolnym tłumaczeniem pliku guide03pdf

Bardziej szczegółowo

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ

ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ ZADANIA OPTYMALIZCJI BEZ OGRANICZEŃ Maciej Patan Uniwersytet Zielonogórski WSTEP Zadanie minimalizacji bez ograniczeń f(ˆx) = min x R nf(x) f : R n R funkcja ograniczona z dołu Algorytm rozwiazywania Rekurencyjny

Bardziej szczegółowo

Stara i nowa teoria kwantowa

Stara i nowa teoria kwantowa Stara i nowa teoria kwantowa Braki teorii Bohra: - podane jedynie położenia linii, brak natężeń -nie tłumaczy ilości elektronów na poszczególnych orbitach - model działa gorzej dla atomów z więcej niż

Bardziej szczegółowo

WYKŁAD 2 Podstawy spektroskopii wibracyjnej, model oscylatora harmonicznego i anharmonicznego. Częstość oscylacji a struktura molekuły Prof. dr hab.

WYKŁAD 2 Podstawy spektroskopii wibracyjnej, model oscylatora harmonicznego i anharmonicznego. Częstość oscylacji a struktura molekuły Prof. dr hab. WYKŁAD 2 Podstawy spektroskopii wibracyjnej, model oscylatora harmonicznego i anharmonicznego. Częstość oscylacji a struktura molekuły Prof. dr hab. Halina Abramczyk POLITECHNIKA ŁÓDZKA Wydział Chemiczny

Bardziej szczegółowo

TEORIA PASMOWA CIAŁ STAŁYCH

TEORIA PASMOWA CIAŁ STAŁYCH TEORIA PASMOWA CIAŁ STAŁYCH Skolektywizowane elektrony w metalu Weźmy pod uwagę pewną ilość atomów jakiegoś metalu, np. sodu. Pojedynczy atom sodu zawiera 11 elektronów o konfiguracji 1s 2 2s 2 2p 6 3s

Bardziej szczegółowo

Krystalografia. Analiza wyników rentgenowskiej analizy strukturalnej i sposób ich prezentacji

Krystalografia. Analiza wyników rentgenowskiej analizy strukturalnej i sposób ich prezentacji Krystalografia Analiza wyników rentgenowskiej analizy strukturalnej i sposób ich prezentacji Opis geometrii Symetria: kryształu: grupa przestrzenna cząsteczki: grupa punktowa Parametry geometryczne współrzędne

Bardziej szczegółowo

Webowy generator wykresów wykorzystujący program gnuplot

Webowy generator wykresów wykorzystujący program gnuplot Uniwersytet Mikołaja Kopernika Wydział Fizyki, Astronomii i Informatyki Stosowanej Marcin Nowak nr albumu: 254118 Praca inżynierska na kierunku informatyka stosowana Webowy generator wykresów wykorzystujący

Bardziej szczegółowo

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ.

ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. ROZKŁAD MATERIAŁU DO II KLASY LICEUM (ZAKRES ROZSZERZONY) A WYMAGANIA PODSTAWY PROGRAMOWEJ. LICZBA TEMAT GODZIN LEKCYJNYCH Potęgi, pierwiastki i logarytmy (8 h) Potęgi 3 Pierwiastki 3 Potęgi o wykładnikach

Bardziej szczegółowo

FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego)

FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego) 2019-09-01 FIZYKA klasa 1 Liceum Ogólnokształcącego (4 letniego) Treści z podstawy programowej przedmiotu POZIOM ROZSZERZONY (PR) SZKOŁY BENEDYKTA Podstawa programowa FIZYKA KLASA 1 LO (4-letnie po szkole

Bardziej szczegółowo

MECHANIKA 2. Zasady pracy i energii. Wykład Nr 12. Prowadzący: dr Krzysztof Polko

MECHANIKA 2. Zasady pracy i energii. Wykład Nr 12. Prowadzący: dr Krzysztof Polko MECHANIKA 2 Wykład Nr 12 Zasady pracy i energii Prowadzący: dr Krzysztof Polko WEKTOR POLA SIŁ Wektor pola sił możemy zapisać w postaci: (1) Prawa strona jest gradientem funkcji Φ, czyli (2) POTENCJAŁ

Bardziej szczegółowo

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy)

Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) Tomasz Tobiasz PLAN WYNIKOWY (zakres podstawowy) klasa 3. PAZDRO Plan jest wykazem wiadomości i umiejętności, jakie powinien mieć uczeń ubiegający się o określone oceny na poszczególnych etapach edukacji

Bardziej szczegółowo

3. FUNKCJA LINIOWA. gdzie ; ół,.

3. FUNKCJA LINIOWA. gdzie ; ół,. 1 WYKŁAD 3 3. FUNKCJA LINIOWA FUNKCJĄ LINIOWĄ nazywamy funkcję typu : dla, gdzie ; ół,. Załóżmy na początek, że wyraz wolny. Wtedy mamy do czynienia z funkcją typu :.. Wykresem tej funkcji jest prosta

Bardziej szczegółowo

Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki

Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki Projekt współfinansowany przez Unię Europejską w ramach Europejskiego Funduszu Społecznego Rozszerzony konspekt preskryptu do przedmiotu Podstawy Robotyki dr inż. Marek Wojtyra Instytut Techniki Lotniczej

Bardziej szczegółowo

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych

Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych inż. Marek Duczkowski Metoda określania pozycji wodnicy statków na podstawie pomiarów odległości statku od głowic laserowych słowa kluczowe: algorytm gradientowy, optymalizacja, określanie wodnicy W artykule

Bardziej szczegółowo

Metody numeryczne Wykład 4

Metody numeryczne Wykład 4 Metody numeryczne Wykład 4 Dr inż. Michał Łanczont Instytut Elektrotechniki i Elektrotechnologii E419, tel. 4293, m.lanczont@pollub.pl, http://m.lanczont.pollub.pl Zakres wykładu Metody skończone rozwiązywania

Bardziej szczegółowo

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych.

w analizie wyników badań eksperymentalnych, w problemach modelowania zjawisk fizycznych, w analizie obserwacji statystycznych. Aproksymacja funkcji a regresja symboliczna Problem aproksymacji funkcji polega na tym, że funkcję F(), znaną lub określoną tablicą wartości, należy zastąpić inną funkcją, f(), zwaną funkcją aproksymującą

Bardziej szczegółowo

KADD Metoda najmniejszych kwadratów funkcje nieliniowe

KADD Metoda najmniejszych kwadratów funkcje nieliniowe Metoda najmn. kwadr. - funkcje nieliniowe Metoda najmniejszych kwadratów Funkcje nieliniowe Procedura z redukcją kroku iteracji Przykłady zastosowań Dopasowanie funkcji wykładniczej Dopasowanie funkcji

Bardziej szczegółowo

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych

Mechatronika i inteligentne systemy produkcyjne. Modelowanie systemów mechatronicznych Platformy przetwarzania danych Mechatronika i inteligentne systemy produkcyjne Modelowanie systemów mechatronicznych Platformy przetwarzania danych 1 Sterowanie procesem oparte na jego modelu u 1 (t) System rzeczywisty x(t) y(t) Tworzenie

Bardziej szczegółowo

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego.

Treść wykładu. Układy równań i ich macierze. Rząd macierzy. Twierdzenie Kroneckera-Capellego. . Metoda eliminacji. Treść wykładu i ich macierze... . Metoda eliminacji. Ogólna postać układu Układ m równań liniowych o n niewiadomych x 1, x 2,..., x n : a 11 x 1 + a 12 x 2 + + a 1n x n = b 1 a 21

Bardziej szczegółowo

Termodynamika. Część 12. Procesy transportu. Janusz Brzychczyk, Instytut Fizyki UJ

Termodynamika. Część 12. Procesy transportu. Janusz Brzychczyk, Instytut Fizyki UJ Termodynamika Część 12 Procesy transportu Janusz Brzychczyk, Instytut Fizyki UJ Zjawiska transportu Zjawiska transportu są typowymi procesami nieodwracalnymi zachodzącymi w przyrodzie. Zjawiska te polegają

Bardziej szczegółowo

Atomowa budowa materii

Atomowa budowa materii Atomowa budowa materii Wszystkie obiekty materialne zbudowane są z tych samych elementów cząstek elementarnych Cząstki elementarne oddziałują tylko kilkoma sposobami oddziaływania wymieniając kwanty pól

Bardziej szczegółowo

Wykład 2. Przykład zastosowania teorii prawdopodobieństwa: procesy stochastyczne (Markova)

Wykład 2. Przykład zastosowania teorii prawdopodobieństwa: procesy stochastyczne (Markova) Wykład 2 Przykład zastosowania teorii prawdopodobieństwa: procesy stochastyczne (Markova) 1. Procesy Markova: definicja 2. Równanie Chapmana-Kołmogorowa-Smoluchowskiego 3. Przykład dyfuzji w kapilarze

Bardziej szczegółowo

Spis treści. Tom 1 Przedmowa do wydania polskiego 13. Przedmowa 15. Wstęp 19

Spis treści. Tom 1 Przedmowa do wydania polskiego 13. Przedmowa 15. Wstęp 19 Spis treści Tom 1 Przedmowa do wydania polskiego 13 Przedmowa 15 1 Wstęp 19 1.1. Istota fizyki.......... 1 9 1.2. Jednostki........... 2 1 1.3. Analiza wymiarowa......... 2 3 1.4. Dokładność w fizyce.........

Bardziej szczegółowo

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16

Spis treści. Przedmowa... XI. Rozdział 1. Pomiar: jednostki miar... 1. Rozdział 2. Pomiar: liczby i obliczenia liczbowe... 16 Spis treści Przedmowa.......................... XI Rozdział 1. Pomiar: jednostki miar................. 1 1.1. Wielkości fizyczne i pozafizyczne.................. 1 1.2. Spójne układy miar. Układ SI i jego

Bardziej szczegółowo

1.3. Optymalizacja geometrii czasteczki

1.3. Optymalizacja geometrii czasteczki 0 1 Część teoretyczna 13 Optymalizacja geometrii czasteczki Poszukiwanie punktów stacjonarnych (krytycznych) funkcji stanowi niezwykle istotny problem w obliczeniowej chemii kwantowej Sprowadza się on

Bardziej szczegółowo

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE

Wprowadzenie Metoda bisekcji Metoda regula falsi Metoda siecznych Metoda stycznych RÓWNANIA NIELINIOWE Transport, studia niestacjonarne I stopnia, semestr I Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Ewa Pabisek Adam Wosatko Postać ogólna równania nieliniowego Zazwyczaj nie można znaleźć

Bardziej szczegółowo

O procesie Wienera. O procesie Wienera. Procesy stochastyczne Wykład XV, 15 czerwca 2015 r. Proces Wienera. Ruch Browna. Ułamkowe ruchy Browna

O procesie Wienera. O procesie Wienera. Procesy stochastyczne Wykład XV, 15 czerwca 2015 r. Proces Wienera. Ruch Browna. Ułamkowe ruchy Browna Procesy stochastyczne Wykład XV, 15 czerwca 2015 r. Ruch 1 {X t } jest martyngałem dokładnie wtedy, gdy E(X t F s ) = X s, s, t T, s t. Jeżeli EX 2 (t) < +, to E(X t F s ) jest rzutem ortogonalnym zmiennej

Bardziej szczegółowo

Optymalizacja optymalizacji

Optymalizacja optymalizacji 7 maja 2008 Wstęp Optymalizacja lokalna Optymalizacja globalna Algorytmy genetyczne Badane czasteczki Wykorzystane oprogramowanie (Algorytm genetyczny) 2 Sieć neuronowa Pochodne met-enkefaliny Optymalizacja

Bardziej szczegółowo

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np.

Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona) f(x) = 0, gdzie. dla n=2 np. Układy równań nieliniowych (wielowymiarowa metoda Newtona-Raphsona f(x 0, f ( f, f,..., f n gdzie 2 x ( x, x 2,..., x n dla n2 np. f ( x, y 0 g( x, y 0 dla każdej wielowymiarowej rozwinięcie w szereg Taylora

Bardziej szczegółowo

Wymagania kl. 3. Zakres podstawowy i rozszerzony

Wymagania kl. 3. Zakres podstawowy i rozszerzony Wymagania kl. 3 Zakres podstawowy i rozszerzony Temat lekcji Zakres treści Osiągnięcia ucznia 1. RACHUNEK PRAWDOPODOBIEŃSTWA 1. Reguła mnożenia reguła mnożenia ilustracja zbioru wyników doświadczenia za

Bardziej szczegółowo

- prędkość masy wynikająca z innych procesów, np. adwekcji, naprężeń itd.

- prędkość masy wynikająca z innych procesów, np. adwekcji, naprężeń itd. 4. Równania dyfuzji 4.1. Prawo zachowania masy cd. Równanie dyfuzji jest prostą konsekwencją prawa zachowania masy, a właściwie to jest to prawo zachowania masy zapisane dla procesu dyfuzji i uwzględniające

Bardziej szczegółowo

Analiza składowych głównych

Analiza składowych głównych Analiza składowych głównych Wprowadzenie (1) W przypadku regresji naszym celem jest predykcja wartości zmiennej wyjściowej za pomocą zmiennych wejściowych, wykrycie związku między wielkościami wejściowymi

Bardziej szczegółowo

Kacper Kulczycki. Dynamika molekularna atomów oddziałujących siłami van der Waalsa

Kacper Kulczycki. Dynamika molekularna atomów oddziałujących siłami van der Waalsa Kacper Kulczycki Dynamika molekularna atomów oddziałujących siłami van der Waalsa Warszawa 2007 Spis treści: Spis treści 1 Wstęp 2 Teoria 2 Algorytm 3 Symulacje 4 Wyniki 24 Wnioski 47 1 Wstęp Ćwiczenie

Bardziej szczegółowo

Metoda elementów skończonych

Metoda elementów skończonych Metoda elementów skończonych Wraz z rozwojem elektronicznych maszyn obliczeniowych jakimi są komputery zaczęły pojawiać się różne numeryczne metody do obliczeń wytrzymałości różnych konstrukcji. Jedną

Bardziej szczegółowo

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe.

Z52: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania, zagadnienie brzegowe. Z5: Algebra liniowa Zagadnienie: Zastosowania algebry liniowej Zadanie: Operatory różniczkowania zagadnienie brzegowe Dyskretne operatory różniczkowania Numeryczne obliczanie pochodnych oraz rozwiązywanie

Bardziej szczegółowo

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa.

VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. VII. Elementy teorii stabilności. Funkcja Lapunowa. 1. Stabilność w sensie Lapunowa. W rozdziale tym zajmiemy się dokładniej badaniem stabilności rozwiązań równania różniczkowego. Pojęcie stabilności w

Bardziej szczegółowo

Spacery losowe generowanie realizacji procesu losowego

Spacery losowe generowanie realizacji procesu losowego Spacery losowe generowanie realizacji procesu losowego Michał Krzemiński Streszczenie Omówimy metodę generowania trajektorii spacerów losowych (błądzenia losowego), tj. szczególnych procesów Markowa z

Bardziej szczegółowo

Optymalizacja ciągła

Optymalizacja ciągła Optymalizacja ciągła 1. Optymalizacja funkcji jednej zmiennej Wojciech Kotłowski Instytut Informatyki PP http://www.cs.put.poznan.pl/wkotlowski/ 28.02.2019 1 / 54 Plan wykładu Optymalizacja funkcji jednej

Bardziej szczegółowo

IX. MECHANIKA (FIZYKA) KWANTOWA

IX. MECHANIKA (FIZYKA) KWANTOWA IX. MECHANIKA (FIZYKA) KWANTOWA IX.1. OPERACJE OBSERWACJI. a) klasycznie nie ważna kolejność, w jakiej wykonujemy pomiary. AB = BA A pomiar wielkości A B pomiar wielkości B b) kwantowo wartość obserwacji

Bardziej szczegółowo

Zakładamy, że są niezależnymi zmiennymi podlegającymi (dowolnemu) rozkładowi o skończonej wartości oczekiwanej i wariancji.

Zakładamy, że są niezależnymi zmiennymi podlegającymi (dowolnemu) rozkładowi o skończonej wartości oczekiwanej i wariancji. Wnioskowanie_Statystyczne_-_wykład Spis treści 1 Centralne Twierdzenie Graniczne 1.1 Twierdzenie Lindeberga Levy'ego 1.2 Dowód 1.2.1 funkcja tworząca sumy zmiennych niezależnych 1.2.2 pochodna funkcji

Bardziej szczegółowo

Stany skupienia materii

Stany skupienia materii Stany skupienia materii Ciała stałe - ustalony kształt i objętość - uporządkowanie dalekiego zasięgu - oddziaływania harmoniczne Ciecze -słabo ściśliwe - uporządkowanie bliskiego zasięgu -tworzą powierzchnię

Bardziej szczegółowo

Ćwiczenie 5. Wyznaczanie widm IR i Ramana formaldehydu oraz obliczenia za pomocą pakietu Gaussian 03W

Ćwiczenie 5. Wyznaczanie widm IR i Ramana formaldehydu oraz obliczenia za pomocą pakietu Gaussian 03W Ćwiczenie 5 Wyznaczanie widm IR i Ramana formaldehydu oraz obliczenia za pomocą pakietu Gaussian 03W Co powinieneś umieć przed zajęciami Jak obliczyć energię oscylatora harmonicznego, klasycznego i kwantowego?

Bardziej szczegółowo

Rozwiązywanie równań nieliniowych

Rozwiązywanie równań nieliniowych Rozwiązywanie równań nieliniowych Marcin Orchel 1 Wstęp Przykłady wyznaczania miejsc zerowych funkcji f : f(ξ) = 0. Wyszukiwanie miejsc zerowych wielomianu n-tego stopnia. Wymiar tej przestrzeni wektorowej

Bardziej szczegółowo

METODY OBLICZENIOWE. Projekt nr 3.4. Dariusz Ostrowski, Wojciech Muła 2FD/L03

METODY OBLICZENIOWE. Projekt nr 3.4. Dariusz Ostrowski, Wojciech Muła 2FD/L03 METODY OBLICZENIOWE Projekt nr 3.4 Dariusz Ostrowski, Wojciech Muła 2FD/L03 Zadanie Nasze zadanie składało się z dwóch części: 1. Sformułowanie, przy użyciu metody Lagrange a II rodzaju, równania różniczkowego

Bardziej szczegółowo

Podstawowy problem mechaniki klasycznej punktu materialnego można sformułować w sposób następujący:

Podstawowy problem mechaniki klasycznej punktu materialnego można sformułować w sposób następujący: Dynamika Podstawowy problem mechaniki klasycznej punktu materialnego można sformułować w sposób następujący: mamy ciało (zachowujące się jak punkt materialny) o znanych właściwościach (masa, ładunek itd.),

Bardziej szczegółowo

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm

Rozdział 5. Macierze. a 11 a a 1m a 21 a a 2m... a n1 a n2... a nm Rozdział 5 Macierze Funkcję, która każdej parze liczb naturalnych (i,j) (i = 1,,n;j = 1,,m) przyporządkowuje dokładnie jedną liczbę a ij F, gdzie F = R lub F = C, nazywamy macierzą (rzeczywistą, gdy F

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY III Program nauczania matematyki w gimnazjum Matematyka dla przyszłości DKW 4014 162/99 Opracowała: mgr Mariola Bagińska 1. Liczby i działania Podaje rozwinięcia

Bardziej szczegółowo