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 (http://www.rcsb.org/pdb/rest/search). 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

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

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

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

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

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

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

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

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

Potencjał pola elektrycznego

Potencjał pola elektrycznego Potencjał pola elektrycznego Pole elektryczne jest polem zachowawczym, czyli praca wykonana przy przesunięciu ładunku pomiędzy dwoma punktami nie zależy od tego po jakiej drodze przesuwamy ładunek. Spróbujemy

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

Zasady dynamiki Newtona. Ilość ruchu, stan ruchu danego ciała opisuje pęd

Zasady dynamiki Newtona. Ilość ruchu, stan ruchu danego ciała opisuje pęd Zasady dynamiki Newtona Ilość ruchu, stan ruchu danego ciała opisuje pęd Siły - wektory Ilość ruchu, stan ruchu danego ciała opisuje pęd Zasady dynamiki Newtona I Każde ciało trwa w stanie spoczynku lub

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

Podstawa programowa przedmiotu MATEMATYKA. III etap edukacyjny (klasy I - III gimnazjum)

Podstawa programowa przedmiotu MATEMATYKA. III etap edukacyjny (klasy I - III gimnazjum) Podstawa programowa przedmiotu MATEMATYKA III etap edukacyjny (klasy I - III gimnazjum) Cele kształcenia wymagania ogólne: I. Wykorzystanie i tworzenie informacji. Uczeń interpretuje i tworzy teksty o

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

Ładunki elektryczne i siły ich wzajemnego oddziaływania. Pole elektryczne. Copyright by pleciuga@ o2.pl

Ładunki elektryczne i siły ich wzajemnego oddziaływania. Pole elektryczne. Copyright by pleciuga@ o2.pl Ładunki elektryczne i siły ich wzajemnego oddziaływania Pole elektryczne Copyright by pleciuga@ o2.pl Ładunek punktowy Ładunek punktowy (q) jest to wyidealizowany model, który zastępuje rzeczywiste naelektryzowane

Bardziej szczegółowo

Rozkłady statyczne Maxwella Boltzmana. Konrad Jachyra I IM gr V lab

Rozkłady statyczne Maxwella Boltzmana. Konrad Jachyra I IM gr V lab Rozkłady statyczne Maxwella Boltzmana Konrad Jachyra I IM gr V lab MODEL STATYCZNY Model statystyczny hipoteza lub układ hipotez, sformułowanych w sposób matematyczny (odpowiednio w postaci równania lub

Bardziej szczegółowo

Rozkład materiału z matematyki dla II klasy technikum zakres podstawowy I wariant (38 tyg. 2 godz. = 76 godz.)

Rozkład materiału z matematyki dla II klasy technikum zakres podstawowy I wariant (38 tyg. 2 godz. = 76 godz.) Rozkład materiału z matematyki dla II klasy technikum zakres podstawowy I wariant (38 tyg. godz. = 76 godz.) I. Funkcja i jej własności.4godz. II. Przekształcenia wykresów funkcji...9 godz. III. Funkcja

Bardziej szczegółowo

SPIS TREŚCI WSTĘP... 8 1. LICZBY RZECZYWISTE 2. WYRAŻENIA ALGEBRAICZNE 3. RÓWNANIA I NIERÓWNOŚCI

SPIS TREŚCI WSTĘP... 8 1. LICZBY RZECZYWISTE 2. WYRAŻENIA ALGEBRAICZNE 3. RÓWNANIA I NIERÓWNOŚCI SPIS TREŚCI WSTĘP.................................................................. 8 1. LICZBY RZECZYWISTE Teoria............................................................ 11 Rozgrzewka 1.....................................................

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

Analiza korespondencji

Analiza korespondencji Analiza korespondencji Kiedy stosujemy? 2 W wielu badaniach mamy do czynienia ze zmiennymi jakościowymi (nominalne i porządkowe) typu np.: płeć, wykształcenie, status palenia. Punktem wyjścia do analizy

Bardziej szczegółowo

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1)

ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL. sin x2 (1) ROZWIĄZYWANIE UKŁADÓW RÓWNAŃ NIELINIOWYCH PRZY POMOCY DODATKU SOLVER PROGRAMU MICROSOFT EXCEL 1. Problem Rozważmy układ dwóch równań z dwiema niewiadomymi (x 1, x 2 ): 1 x1 sin x2 x2 cos x1 (1) Nie jest

Bardziej szczegółowo

Metody numeryczne. materiały do wykładu dla studentów

Metody numeryczne. materiały do wykładu dla studentów Metody numeryczne materiały do wykładu dla studentów 4. Wartości własne i wektory własne 4.1. Podstawowe definicje, własności i twierdzenia 4.2. Lokalizacja wartości własnych 4.3. Metoda potęgowa znajdowania

Bardziej szczegółowo

Podstawy Automatyki. wykład 1 (26.02.2010) mgr inż. Łukasz Dworzak. Politechnika Wrocławska. Instytut Technologii Maszyn i Automatyzacji (I-24)

Podstawy Automatyki. wykład 1 (26.02.2010) mgr inż. Łukasz Dworzak. Politechnika Wrocławska. Instytut Technologii Maszyn i Automatyzacji (I-24) Podstawy Automatyki wykład 1 (26.02.2010) mgr inż. Łukasz Dworzak Politechnika Wrocławska Instytut Technologii Maszyn i Automatyzacji (I-24) Laboratorium Podstaw Automatyzacji (L6) 105/2 B1 Sprawy organizacyjne

Bardziej szczegółowo

Czym jest prąd elektryczny

Czym jest prąd elektryczny Prąd elektryczny Ruch elektronów w przewodniku Wektor gęstości prądu Przewodność elektryczna Prawo Ohma Klasyczny model przewodnictwa w metalach Zależność przewodności/oporności od temperatury dla metali,

Bardziej szczegółowo

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie

Politechnika Wrocławska, Wydział Informatyki i Zarządzania. Modelowanie Politechnika Wrocławska, Wydział Informatyki i Zarządzania Modelowanie Zad Wyznacz transformaty Laplace a poniższych funkcji, korzystając z tabeli transformat: a) 8 3e 3t b) 4 sin 5t 2e 5t + 5 c) e5t e

Bardziej szczegółowo

Ć W I C Z E N I E N R M-2

Ć W I C Z E N I E N R M-2 INSYU FIZYKI WYDZIAŁ INŻYNIERII PRODUKCJI I ECHNOLOGII MAERIAŁÓW POLIECHNIKA CZĘSOCHOWSKA PRACOWNIA MECHANIKI Ć W I C Z E N I E N R M- ZALEŻNOŚĆ OKRESU DRGAŃ WAHADŁA OD AMPLIUDY Ćwiczenie M-: Zależność

Bardziej szczegółowo

Komputerowe wspomaganie projektowanie leków

Komputerowe wspomaganie projektowanie leków Komputerowe wspomaganie projektowanie leków wykład V Prof. dr hab. Sławomir Filipek Grupa BIOmodelowania Uniwersytet Warszawski, Wydział Chemii oraz Centrum Nauk Biologiczno-Chemicznych Cent-III www.biomodellab.eu

Bardziej szczegółowo

FIZYKA Podręcznik: Fizyka i astronomia dla każdego pod red. Barbary Sagnowskiej, wyd. ZamKor.

FIZYKA Podręcznik: Fizyka i astronomia dla każdego pod red. Barbary Sagnowskiej, wyd. ZamKor. DKOS-5002-2\04 Anna Basza-Szuland FIZYKA Podręcznik: Fizyka i astronomia dla każdego pod red. Barbary Sagnowskiej, wyd. ZamKor. WYMAGANIA NA OCENĘ DOPUSZCZAJĄCĄ DLA REALIZOWANYCH TREŚCI PROGRAMOWYCH Kinematyka

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY W KLASIE I GIMNAZJUM

WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY W KLASIE I GIMNAZJUM WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY W KLASIE I GIMNAZJUM NA OCENĘ DOPUSZCZJĄCĄ UCZEN: zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie

Bardziej szczegółowo

Wymagania edukacyjne klasa trzecia.

Wymagania edukacyjne klasa trzecia. TEMAT Wymagania edukacyjne klasa trzecia. WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ 1. LICZBY I WYRAŻENIA ALGEBRAICZNE Lekcja organizacyjna System dziesiątkowy System rzymski Liczby wymierne i niewymierne

Bardziej szczegółowo

Z Wikipedii, wolnej encyklopedii.

Z Wikipedii, wolnej encyklopedii. Rozkład normalny Rozkład normalny jest niezwykle ważnym rozkładem prawdopodobieństwa w wielu dziedzinach. Nazywa się go także rozkładem Gaussa, w szczególności w fizyce i inżynierii. W zasadzie jest to

Bardziej szczegółowo

SPEKTROSKOPIA RAMANA. Laboratorium Laserowej Spektroskopii Molekularnej PŁ

SPEKTROSKOPIA RAMANA. Laboratorium Laserowej Spektroskopii Molekularnej PŁ SPEKTROSKOPIA RAMANA Laboratorium Laserowej Spektroskopii Molekularnej PŁ WIDMO OSCYLACYJNE Zręby atomowe w molekule wykonują oscylacje wokół położenia równowagi. Ruch ten można rozłożyć na 3n-6 w przypadku

Bardziej szczegółowo

Wymagania edukacyjne klasa pierwsza.

Wymagania edukacyjne klasa pierwsza. Wymagania edukacyjne klasa pierwsza. TEMAT WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ 1. LICZBY I DZIAŁANIA Liczby Rozwinięcia dziesiętne liczb wymiernych Zaokrąglanie liczb. Szacowanie wyników Dodawanie

Bardziej szczegółowo

Wprowadzenie do analizy korelacji i regresji

Wprowadzenie do analizy korelacji i regresji Statystyka dla jakości produktów i usług Six sigma i inne strategie Wprowadzenie do analizy korelacji i regresji StatSoft Polska Wybrane zagadnienia analizy korelacji Przy analizie zjawisk i procesów stanowiących

Bardziej szczegółowo

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI KLASA I 2015/2016

SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI KLASA I 2015/2016 SZCZEGÓŁOWE WYMAGANIA EDUKACYJNE NA POSZCZEGÓLNE OCENY Z MATEMATYKI KLASA I 2015/2016 Ocenę dopuszczającą otrzymuje uczeń, który: (Liczby i działania) zna pojęcie liczby naturalnej, całkowitej, wymiernej

Bardziej szczegółowo

Informatyka wspomaga przedmioty ścisłe w szkole

Informatyka wspomaga przedmioty ścisłe w szkole Informatyka wspomaga przedmioty ścisłe w szkole Prezentuje : Dorota Roman - Jurdzińska W arkuszu I na obu poziomach występują dwa zadania związane z algorytmiką: Arkusz I bez komputera analiza algorytmów,

Bardziej szczegółowo

Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/

Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/ Zakres na egzaminy poprawkowe w r. szk. 2013/14 /nauczyciel M.Tatar/ MATEMATYKA Klasa III ZAKRES PODSTAWOWY Dział programu Temat Wymagania. Uczeń: 1. Miara łukowa kąta zna pojęcia: kąt skierowany, kąt

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY I GIMNAZJUM

WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY I GIMNAZJUM WYMAGANIA EDUKACYJNE Z MATEMATYKI DLA KLASY I GIMNAZJUM LICZBY I DZIAŁANIA zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie zaznaczać liczbę

Bardziej szczegółowo

Fizyka komputerowa(ii)

Fizyka komputerowa(ii) Instytut Fizyki Fizyka komputerowa(ii) Studia magisterskie Prowadzący kurs: Dr hab. inż. Włodzimierz Salejda, prof. PWr Godziny konsultacji: Poniedziałki i wtorki w godzinach 13.00 15.00 pokój 223 lub

Bardziej szczegółowo

TEMAT 1. LICZBY I DZIAŁANIA 14 20. 1. Liczby 1-2. 2. Rozwinięcia dziesiętne liczb wymiernych. 3. Zaokrąglanie liczb. Szacowanie wyników 1-2

TEMAT 1. LICZBY I DZIAŁANIA 14 20. 1. Liczby 1-2. 2. Rozwinięcia dziesiętne liczb wymiernych. 3. Zaokrąglanie liczb. Szacowanie wyników 1-2 TEMAT 1. LICZBY I DZIAŁANIA 14 0 LICZBA GODZIN LEKCYJNYCH 1. Liczby 1-. Rozwinięcia dziesiętne liczb wymiernych 3. Zaokrąglanie liczb. Szacowanie wyników 4. Dodawanie i odejmowanie liczb dodatnich 1 1-

Bardziej szczegółowo

Systemy. Krzysztof Patan

Systemy. Krzysztof Patan Systemy Krzysztof Patan Systemy z pamięcią System jest bez pamięci (statyczny), jeżeli dla dowolnej chwili t 0 wartość sygnału wyjściowego y(t 0 ) zależy wyłącznie od wartości sygnału wejściowego w tej

Bardziej szczegółowo

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH

REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH REPREZENTACJA LICZBY, BŁĘDY, ALGORYTMY W OBLICZENIACH Transport, studia I stopnia rok akademicki 2012/2013 Instytut L-5, Wydział Inżynierii Lądowej, Politechnika Krakowska Adam Wosatko Ewa Pabisek Pojęcie

Bardziej szczegółowo

Analiza wyników egzaminu gimnazjalnego 2013 r. Test matematyczno-przyrodniczy (matematyka) Test GM-M1-132

Analiza wyników egzaminu gimnazjalnego 2013 r. Test matematyczno-przyrodniczy (matematyka) Test GM-M1-132 Analiza wyników egzaminu gimnazjalnego 2013 r. Test matematyczno-przyrodniczy (matematyka) Test GM-M1-132 Zestaw zadań z zakresu matematyki posłużył w dniu 24 kwietnia 2013 roku do sprawdzenia u uczniów

Bardziej szczegółowo

WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA:

WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA: WYMAGANIA KONIECZNE - OCENA DOPUSZCZAJĄCA: zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie zaznaczać liczbę wymierną na osi liczbowej umie

Bardziej szczegółowo

Fizyka w symulacji komputerowej i modelowaniu komputerowym Dynamika Molekularna. Łukasz Pepłowski

Fizyka w symulacji komputerowej i modelowaniu komputerowym Dynamika Molekularna. Łukasz Pepłowski Fizyka w symulacji komputerowej i modelowaniu komputerowym Dynamika Molekularna Łukasz Pepłowski Plan Co to jest Dynamika Molekularna (MD) Zadania MD Cechy MD Ograniczenia i problemy MD Pole siłowe Oddziaływania

Bardziej szczegółowo

Matematyka do liceów i techników Szczegółowy rozkład materiału Zakres podstawowy

Matematyka do liceów i techników Szczegółowy rozkład materiału Zakres podstawowy Matematyka do liceów i techników Szczegółowy rozkład materiału Zakres podstawowy Wariant nr (klasa I 4 godz., klasa II godz., klasa III godz.) Klasa I 7 tygodni 4 godziny = 48 godzin Lp. Tematyka zajęć

Bardziej szczegółowo

PDF created with FinePrint pdffactory Pro trial version http://www.fineprint.com

PDF created with FinePrint pdffactory Pro trial version http://www.fineprint.com Analiza korelacji i regresji KORELACJA zależność liniowa Obserwujemy parę cech ilościowych (X,Y). Doświadczenie jest tak pomyślane, aby obserwowane pary cech X i Y (tzn i ta para x i i y i dla różnych

Bardziej szczegółowo

TEMAT 1. LICZBY I DZIAŁANIA 14 20. 1. Liczby 1-2. 2. Rozwinięcia dziesiętne liczb wymiernych. 3. Zaokrąglanie liczb. Szacowanie wyników 1-2

TEMAT 1. LICZBY I DZIAŁANIA 14 20. 1. Liczby 1-2. 2. Rozwinięcia dziesiętne liczb wymiernych. 3. Zaokrąglanie liczb. Szacowanie wyników 1-2 TEMAT 1. LICZBY I DZIAŁANIA 14 20 LICZBA GODZIN LEKCYJNYCH 1. Liczby 1-2 2. Rozwinięcia dziesiętne liczb wymiernych 3. Zaokrąglanie liczb. Szacowanie wyników 1 1-2 WYMAGANIA SZCZEGÓŁOWE Z PODSTAWY PROGRAMOWEJ

Bardziej szczegółowo

KOOF Szczecin: www.of.szc.pl

KOOF Szczecin: www.of.szc.pl 3OF_III_D KOOF Szczecin: www.of.szc.pl XXXII OLIMPIADA FIZYCZNA (198/1983). Stopień III, zadanie doświadczalne D Źródło: Nazwa zadania: Działy: Słowa kluczowe: Komitet Główny Olimpiady Fizycznej; Waldemar

Bardziej szczegółowo

Wymagania edukacyjne z matematyki w klasie III gimnazjum

Wymagania edukacyjne z matematyki w klasie III gimnazjum Wymagania edukacyjne z matematyki w klasie III gimnazjum - nie potrafi konstrukcyjnie podzielić odcinka - nie potrafi konstruować figur jednokładnych - nie zna pojęcia skali - nie rozpoznaje figur jednokładnych

Bardziej szczegółowo

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne

Metody numeryczne. materiały do wykładu dla studentów. 7. Całkowanie numeryczne Metody numeryczne materiały do wykładu dla studentów 7. Całkowanie numeryczne 7.1. Całkowanie numeryczne 7.2. Metoda trapezów 7.3. Metoda Simpsona 7.4. Metoda 3/8 Newtona 7.5. Ogólna postać wzorów kwadratur

Bardziej szczegółowo

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO

SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO SCHEMAT ROZWIĄZANIA ZADANIA OPTYMALIZACJI PRZY POMOCY ALGORYTMU GENETYCZNEGO. Rzeczywistość (istniejąca lub projektowana).. Model fizyczny. 3. Model matematyczny (optymalizacyjny): a. Zmienne projektowania

Bardziej szczegółowo

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć

Katalog wymagań programowych na poszczególne stopnie szkolne. Matematyka. Poznać, zrozumieć Katalog wymagań programowych na poszczególne stopnie szkolne Matematyka. Poznać, zrozumieć Kształcenie w zakresie podstawowym. Klasa 3 Poniżej podajemy umiejętności, jakie powinien zdobyć uczeń z każdego

Bardziej szczegółowo

Kryteria oceniania z matematyki w klasie pierwszej w roku szkolnym 2015/2016

Kryteria oceniania z matematyki w klasie pierwszej w roku szkolnym 2015/2016 Kryteria oceniania z matematyki w klasie pierwszej w roku szkolnym 2015/2016 1) Liczby - zamienia liczby dziesiętne skończone na ułamki zwykłe i liczby mieszane, - zapisuje ułamek zwykły w postaci ułamka

Bardziej szczegółowo

Podstawowe pojęcia i prawa chemiczne, Obliczenia na podstawie wzorów chemicznych

Podstawowe pojęcia i prawa chemiczne, Obliczenia na podstawie wzorów chemicznych Podstawowe pojęcia i prawa chemiczne, Obliczenia na podstawie wzorów chemicznych 1. Wielkości i jednostki stosowane do wyrażania ilości materii 1.1 Masa atomowa, cząsteczkowa, mol Masa atomowa Atomy mają

Bardziej szczegółowo

Podstawy działań na wektorach - dodawanie

Podstawy działań na wektorach - dodawanie Podstawy działań na wektorach - dodawanie Metody dodawania wektorów można podzielić na graficzne i analityczne (rachunkowe). 1. Graficzne (rysunkowe) dodawanie dwóch wektorów. Założenia: dane są dwa wektory

Bardziej szczegółowo

POLITECHNIKA ŁÓDZKA INSTYTUT OBRABIAREK I TECHNOLOGII BUDOWY MASZYN. Ćwiczenie D - 4. Zastosowanie teoretycznej analizy modalnej w dynamice maszyn

POLITECHNIKA ŁÓDZKA INSTYTUT OBRABIAREK I TECHNOLOGII BUDOWY MASZYN. Ćwiczenie D - 4. Zastosowanie teoretycznej analizy modalnej w dynamice maszyn POLITECHNIKA ŁÓDZKA INSTYTUT OBRABIAREK I TECHNOLOGII BUDOWY MASZYN Ćwiczenie D - 4 Temat: Zastosowanie teoretycznej analizy modalnej w dynamice maszyn Opracowanie: mgr inż. Sebastian Bojanowski Zatwierdził:

Bardziej szczegółowo

Wartości i wektory własne

Wartości i wektory własne Dość często przy rozwiązywaniu problemów naukowych czy technicznych pojawia się konieczność rozwiązania dość specyficznego układu równań: Zależnego od n nieznanych zmiennych i pewnego parametru. Rozwiązaniem

Bardziej szczegółowo

WYMAGANIA NA POSZCZEGÓLNE STOPNIE KLASA I GIMNAZJUM

WYMAGANIA NA POSZCZEGÓLNE STOPNIE KLASA I GIMNAZJUM WYMAGANIA NA POSZCZEGÓLNE STOPNIE KLASA I GIMNAZJUM OCENA DOPUSZCZAJĄCA pojęcie liczby naturalnej, całkowitej, wymiernej, pojęcia: rozwinięcie dziesiętne skończone, nieskończone, okres, algorytm zaokrąglania

Bardziej szczegółowo

Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego

Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego Ewaluacja biegłości językowej Od pomiaru do sztuki pomiaru Liczba zadań a rzetelność testu na przykładzie testów biegłości językowej z języka angielskiego Tomasz Żółtak Instytut Badań Edukacyjnych oraz

Bardziej szczegółowo

Katalog wymagań programowych na poszczególne stopnie szkolne klasa 1

Katalog wymagań programowych na poszczególne stopnie szkolne klasa 1 Matematyka Liczy się matematyka Klasa klasa Rozdział. Liczby zamienia liczby dziesiętne skończone na ułamki zwykłe i liczby mieszane zapisuje ułamek zwykły w postaci ułamka dziesiętnego skończonego porównuje

Bardziej szczegółowo

Dotyczy to zarówno istniejących już związków, jak i związków, których jeszcze dotąd nie otrzymano.

Dotyczy to zarówno istniejących już związków, jak i związków, których jeszcze dotąd nie otrzymano. Chemia teoretyczna to dział chemii zaliczany do chemii fizycznej, zajmujący się zagadnieniami związanymi z wiedzą chemiczną od strony teoretycznej, tj. bez wykonywania eksperymentów na stole laboratoryjnym.

Bardziej szczegółowo

Q t lub precyzyjniej w postaci różniczkowej. dq dt Jednostką natężenia prądu jest amper oznaczany przez A.

Q t lub precyzyjniej w postaci różniczkowej. dq dt Jednostką natężenia prądu jest amper oznaczany przez A. Prąd elektryczny Dotychczas zajmowaliśmy się zjawiskami związanymi z ładunkami spoczywającymi. Obecnie zajmiemy się zjawiskami zachodzącymi podczas uporządkowanego ruchu ładunków, który często nazywamy

Bardziej szczegółowo

Wymagania edukacyjne niezbędne do uzyskania poszczególnych ocen śródrocznych i rocznych ocen klasyfikacyjnych z matematyki klasa 1 gimnazjum

Wymagania edukacyjne niezbędne do uzyskania poszczególnych ocen śródrocznych i rocznych ocen klasyfikacyjnych z matematyki klasa 1 gimnazjum edukacyjne niezbędne do uzyskania poszczególnych ocen śródrocznych i rocznych ocen klasyfikacyjnych z matematyki klasa 1 gimnazjum Semestr I Stopień Rozdział 1. Liczby Zamienia liczby dziesiętne na ułamki

Bardziej szczegółowo

MATeMAtyka klasa II poziom rozszerzony

MATeMAtyka klasa II poziom rozszerzony MATeMAtyka klasa II poziom rozszerzony W klasie drugiej na poziomie rozszerzonym realizujemy materiał z klasy pierwszej tylko z poziomu rozszerzonego (na czerwono) oraz cały materiał z klasy drugiej. Rozkład

Bardziej szczegółowo

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji

Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Weryfikacja hipotez statystycznych, parametryczne testy istotności w populacji Dr Joanna Banaś Zakład Badań Systemowych Instytut Sztucznej Inteligencji i Metod Matematycznych Wydział Informatyki Politechniki

Bardziej szczegółowo

Katarzyna Jesionek Zastosowanie symulacji dynamiki cieczy oraz ośrodków sprężystych w symulatorach operacji chirurgicznych.

Katarzyna Jesionek Zastosowanie symulacji dynamiki cieczy oraz ośrodków sprężystych w symulatorach operacji chirurgicznych. Katarzyna Jesionek Zastosowanie symulacji dynamiki cieczy oraz ośrodków sprężystych w symulatorach operacji chirurgicznych. Jedną z metod symulacji dynamiki cieczy jest zastosowanie metody siatkowej Boltzmanna.

Bardziej szczegółowo

DZIAŁ I: LICZBY I DZIAŁANIA Ocena dostateczna. Ocena dobra. Ocena bardzo dobra (1+2) (1+2+3+4) Uczeń: (1+2+3) Uczeń: określone warunki

DZIAŁ I: LICZBY I DZIAŁANIA Ocena dostateczna. Ocena dobra. Ocena bardzo dobra (1+2) (1+2+3+4) Uczeń: (1+2+3) Uczeń: określone warunki MATEMATYKA KLASA I I PÓŁROCZE -wyróżnia liczby naturalne, całkowite, wymierne -zna kolejność wykonywania działań -rozumie poszerzenie osi liczbowej na liczby ujemne -porównuje liczby wymierne -zaznacza

Bardziej szczegółowo

Komputerowe wspomaganie projektowanie leków

Komputerowe wspomaganie projektowanie leków Komputerowe wspomaganie projektowanie leków wykład VI Prof. dr hab. Sławomir Filipek Grupa BIOmodelowania Uniwersytet Warszawski, Wydział Chemii oraz Centrum Nauk Biologiczno-Chemicznych Cent-III www.biomodellab.eu

Bardziej szczegółowo

Plan wynikowy. Klasa III Technik pojazdów samochodowych/ Technik urządzeń i systemów energetyki odnawialnej. Kształcenie ogólne w zakresie podstawowym

Plan wynikowy. Klasa III Technik pojazdów samochodowych/ Technik urządzeń i systemów energetyki odnawialnej. Kształcenie ogólne w zakresie podstawowym Oznaczenia: wymagania konieczne, P wymagania podstawowe, R wymagania rozszerzające, D wymagania dopełniające, W wymagania wykraczające. Plan wynikowy lasa III Technik pojazdów samochodowych/ Technik urządzeń

Bardziej szczegółowo

DRGANIA ELEMENTÓW KONSTRUKCJI

DRGANIA ELEMENTÓW KONSTRUKCJI DRGANIA ELEMENTÓW KONSTRUKCJI (Wprowadzenie) Drgania elementów konstrukcji (prętów, wałów, belek) jak i całych konstrukcji należą do ważnych zagadnień dynamiki konstrukcji Przyczyna: nawet niewielkie drgania

Bardziej szczegółowo

NMR (MAGNETYCZNY REZONANS JĄDROWY) dr Marcin Lipowczan

NMR (MAGNETYCZNY REZONANS JĄDROWY) dr Marcin Lipowczan NMR (MAGNETYCZNY REZONANS JĄDROWY) dr Marcin Lipowczan Spis zagadnień Fizyczne podstawy zjawiska NMR Parametry widma NMR Procesy relaksacji jądrowej Metody obrazowania Fizyczne podstawy NMR Proton, neutron,

Bardziej szczegółowo

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą

WYMAGANIE EDUKACYJNE Z MATEMATYKI W KLASIE II GIMNAZJUM. dopuszczającą dostateczną dobrą bardzo dobrą celującą 1. Statystyka odczytać informacje z tabeli odczytać informacje z diagramu 2. Mnożenie i dzielenie potęg o tych samych podstawach 3. Mnożenie i dzielenie potęg o tych samych wykładnikach 4. Potęga o wykładniku

Bardziej szczegółowo

Komputerowa Analiza Danych Doświadczalnych

Komputerowa Analiza Danych Doświadczalnych Komputerowa Analiza Danych Doświadczalnych dr inż. Adam Kisiel kisiel@if.pw.edu.pl pokój 117b (12b) 1 Materiały do wykładu Transparencje do wykładów: http://www.if.pw.edu.pl/~kisiel/kadd/kadd.html Literatura

Bardziej szczegółowo

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4)

A,B M! v V ; A + v = B, (1.3) AB = v. (1.4) Rozdział 1 Prosta i płaszczyzna 1.1 Przestrzeń afiniczna Przestrzeń afiniczna to matematyczny model przestrzeni jednorodnej, bez wyróżnionego punktu. Można w niej przesuwać punkty równolegle do zadanego

Bardziej szczegółowo

Mgr inż. Wojciech Chajec Pracownia Kompozytów, CNT Mgr inż. Adam Dziubiński Pracownia Aerodynamiki Numerycznej i Mechaniki Lotu, CNT SMIL

Mgr inż. Wojciech Chajec Pracownia Kompozytów, CNT Mgr inż. Adam Dziubiński Pracownia Aerodynamiki Numerycznej i Mechaniki Lotu, CNT SMIL Mgr inż. Wojciech Chajec Pracownia Kompozytów, CNT Mgr inż. Adam Dziubiński Pracownia Aerodynamiki Numerycznej i Mechaniki Lotu, CNT SMIL We wstępnej analizie przyjęto następujące założenia: Dwuwymiarowość

Bardziej szczegółowo

Modelowanie molekularne

Modelowanie molekularne Modelowanie molekularne metodami chemii kwantowej Dr hab. Artur Michalak Zakład Chemii Teoretycznej Wydział Chemii UJ Wykład 4 http://www.chemia.uj.edu.pl/~michalak/mmod2007/ Podstawowe idee i metody chemii

Bardziej szczegółowo

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony

MATeMAtyka 3. Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych. Zakres podstawowy i rozszerzony Agnieszka Kamińska, Dorota Ponczek MATeMAtyka 3 Propozycja przedmiotowego systemu oceniania wraz z określeniem wymagań edukacyjnych Zakres podstawowy i rozszerzony Wyróżnione zostały następujące wymagania

Bardziej szczegółowo

Kryteria oceniania z matematyki dla klasy III LO poziom podstawowy, na podstawie programu nauczania DKOS- 5002-05/08

Kryteria oceniania z matematyki dla klasy III LO poziom podstawowy, na podstawie programu nauczania DKOS- 5002-05/08 Kryteria oceniania z matematyki dla klasy III LO poziom podstawowy, na podstawie programu nauczania DKOS- 5002-05/08 1. Oprocentowanie lokat i kredytów - zna pojęcie procentu prostego i składanego; - oblicza

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA III ZAKRES ROZSZERZONY (90 godz.) , x

WYMAGANIA EDUKACYJNE Z MATEMATYKI KLASA III ZAKRES ROZSZERZONY (90 godz.) , x WYMAGANIA EDUACYJNE Z MATEMATYI LASA III ZARES ROZSZERZONY (90 godz.) Oznaczenia: wymagania konieczne (dopuszczający); P wymagania podstawowe (dostateczny); R wymagania rozszerzające (dobry); D wymagania

Bardziej szczegółowo

Kryteria oceniania z zakresu klasy pierwszej opracowane w oparciu o program Matematyki z plusem dla Gimnazjum

Kryteria oceniania z zakresu klasy pierwszej opracowane w oparciu o program Matematyki z plusem dla Gimnazjum Kryteria oceniania z zakresu klasy pierwszej opracowane w oparciu o program Matematyki z plusem dla Gimnazjum DZIAŁ 1. LICZBY I DZIAŁANIA HASŁO PROGRAMOWE WIADOMOŚCI I UMIEJĘTNOŚCI PODSTAWOWE WIADOMOŚCI

Bardziej szczegółowo

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE I GIMNAZJUM

WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE I GIMNAZJUM WYMAGANIA EDUKACYJNE Z MATEMATYKI W KLASIE I GIMNAZJUM OCENA DOPUSZCZAJĄCA I DZIAŁ; LICZBY I DZIAŁANIA zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby

Bardziej szczegółowo

Aparaty słuchowe Hi-Fi z Multiphysics Modeling

Aparaty słuchowe Hi-Fi z Multiphysics Modeling Aparaty słuchowe Hi-Fi z Multiphysics Modeling POLITECHNIKA POZNAŃSKA Wydział Budowy Maszyn i Zarządzania Mechanika i Budowa Maszyn Technologia Przetwarzania Materiałów Prowadzący: dr hab. Tomasz Stręk

Bardziej szczegółowo

Spektroskopia modulacyjna

Spektroskopia modulacyjna Spektroskopia modulacyjna pozwala na otrzymanie energii przejść optycznych w strukturze z bardzo dużą dokładnością. Charakteryzuje się również wysoką czułością, co pozwala na obserwację słabych przejść,

Bardziej szczegółowo

GIMNAZJUM WYMAGANIA NA POSZCZEGÓLNE OCENY Z MATEMATYKI

GIMNAZJUM WYMAGANIA NA POSZCZEGÓLNE OCENY Z MATEMATYKI GIMNAZJUM WYMAGANIA NA POSZCZEGÓLNE OCENY Z MATEMATYKI Klasa I Liczby i działania wskazać liczby naturalne, całkowite, wymierne zaznaczyć liczbę wymierną na osi liczbowej podać liczbę przeciwną do danej

Bardziej szczegółowo

PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE

PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE specjalność PROJEKTOWANIE MOLEKULARNE I BIOINFORMATYKA W trakcie egzaminu licencjackiego student udziela ustnych

Bardziej szczegółowo

Do gimnazjum by dobrze zakończyć! Do liceum by dobrze zacząć! MATEMATYKA. Na dobry start do liceum. Zadania. Oficyna Edukacyjna * Krzysztof Pazdro

Do gimnazjum by dobrze zakończyć! Do liceum by dobrze zacząć! MATEMATYKA. Na dobry start do liceum. Zadania. Oficyna Edukacyjna * Krzysztof Pazdro 6 Na dobry start do liceum 8Piotr Drozdowski 6 Do gimnazjum by dobrze zakończyć! Do liceum by dobrze zacząć! MATEMATYKA Zadania Oficyna Edukacyjna * Krzysztof Pazdro Piotr Drozdowski MATEMATYKA. Na dobry

Bardziej szczegółowo

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012

1. Liczby zespolone. Jacek Jędrzejewski 2011/2012 1. Liczby zespolone Jacek Jędrzejewski 2011/2012 Spis treści 1 Liczby zespolone 2 1.1 Definicja liczby zespolonej.................... 2 1.2 Postać kanoniczna liczby zespolonej............... 1. Postać

Bardziej szczegółowo

Dopuszczający. Opracowanie: mgr Michał Wolak 2

Dopuszczający. Opracowanie: mgr Michał Wolak 2 Dopuszczający zna pojęcie liczby naturalnej, całkowitej, wymiernej rozumie rozszerzenie osi liczbowej na liczby ujemne umie porównywać liczby wymierne proste przypadki umie zaznaczać liczbę wymierną na

Bardziej szczegółowo

Wymogi edukacyjne z kryteriami na poszczególne oceny z matematyki dla uczniów klasy pierwszej Publicznego Gimnazjum nr 1 w Strzelcach Opolskich

Wymogi edukacyjne z kryteriami na poszczególne oceny z matematyki dla uczniów klasy pierwszej Publicznego Gimnazjum nr 1 w Strzelcach Opolskich Wymogi edukacyjne z kryteriami na poszczególne oceny z matematyki dla uczniów klasy pierwszej Publicznego Gimnazjum nr 1 w Strzelcach Opolskich Na ocenę dopuszczającą uczeń: zna pojęcie liczby naturalnej,

Bardziej szczegółowo

Wymagania przedmiotowe z matematyki w klasie I gimnazjum opracowane dla programu Matematyka z plusem GWO DZIAŁ 1. LICZBY I DZIAŁANIA

Wymagania przedmiotowe z matematyki w klasie I gimnazjum opracowane dla programu Matematyka z plusem GWO DZIAŁ 1. LICZBY I DZIAŁANIA Wymagania przedmiotowe z matematyki w klasie I gimnazjum opracowane dla programu Matematyka z plusem GWO POZIOMY WYMAGAŃ EDUKACYJNYCH: K - konieczny ocena dopuszczająca (2) P - podstawowy ocena dostateczna

Bardziej szczegółowo

1.Funkcja logarytmiczna

1.Funkcja logarytmiczna Kryteria oceniania z matematyki dla klasy IV TI poziom podstawowy, na podstawie programu nauczania DKOS- 5002-05/08 1.Funkcja logarytmiczna -potrafi obliczyć logarytm liczby dodatniej; -zna i potrafi stosować

Bardziej szczegółowo

WYMAGANIA Z MATEMATYKI NA POSZCZEGÓLNE OCENY DLA I KLASY GIMNAZJUM

WYMAGANIA Z MATEMATYKI NA POSZCZEGÓLNE OCENY DLA I KLASY GIMNAZJUM WYMAGANIA Z MATEMATYKI NA POSZCZEGÓLNE OCENY DLA I KLASY GIMNAZJUM OPRACOWANO NA PODSTAWIE PLANU REALIZACJI MATERIAŁU NAUCZANIA MATEMATYKI Matematyka 1 Podręcznik do gimnazjum Nowa wersja, praca zbiorowa

Bardziej szczegółowo

PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE specjalność BIOFIZYKA MOLEKULARNA

PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE specjalność BIOFIZYKA MOLEKULARNA PRZEBIEG EGZAMINU LICENCJACKIEGO DLA KIERUNKU ZASTOSOWANIA FIZYKI W BIOLOGII I MEDYCYNIE specjalność BIOFIZYKA MOLEKULARNA W trakcie egzaminu licencjackiego student udziela ustnych odpowiedzi na pytania

Bardziej szczegółowo

Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne:

Poniżej przedstawiony został podział wymagań na poszczególne oceny szkolne: Prosto do matury klasa d Rok szkolny 014/015 WYMAGANIA EDUKACYJNE Wyróżnione zostały następujące wymagania programowe: konieczne (K), podstawowe (P), rozszerzające (R), dopełniające (D) i wykraczające

Bardziej szczegółowo

istocie dziedzina zajmująca się poszukiwaniem zależności na podstawie prowadzenia doświadczeń jest o wiele starsza: tak na przykład matematycy

istocie dziedzina zajmująca się poszukiwaniem zależności na podstawie prowadzenia doświadczeń jest o wiele starsza: tak na przykład matematycy MODEL REGRESJI LINIOWEJ. METODA NAJMNIEJSZYCH KWADRATÓW Analiza regresji zajmuje się badaniem zależności pomiędzy interesującymi nas wielkościami (zmiennymi), mające na celu konstrukcję modelu, który dobrze

Bardziej szczegółowo

Zadania o numerze 4 z zestawów licencjat 2014.

Zadania o numerze 4 z zestawów licencjat 2014. Zadania o numerze 4 z zestawów licencjat 2014. W nawiasie przy zadaniu jego występowanie w numerze zestawu Spis treści (Z1, Z22, Z43) Definicja granicy ciągu. Obliczyć granicę:... 3 Definicja granicy ciągu...

Bardziej szczegółowo