• Nie Znaleziono Wyników

Wykorzystanie kontrolowanych języków naturalnych do modelowania systemów dynamicznych w bioinformatyce

N/A
N/A
Protected

Academic year: 2021

Share "Wykorzystanie kontrolowanych języków naturalnych do modelowania systemów dynamicznych w bioinformatyce"

Copied!
219
0
0

Pełen tekst

(1)

POLITECHNIKA POZNAŃSKA WYDZIAŁ INFORMATYKI

Tomasz PREJZENDANC

Wykorzystanie kontrolowanych języków naturalnych do modelowania systemów dynamicznych w bioinformatyce

ROZPRAWA DOKTORSKA

Promotor:

dr hab. inż. Szymon Wąsik

(2)
(3)

Pamięci mojej Mamy

(4)
(5)

Podziękowania

Serdecznie dziękuję

dr hab. inż. Szymonowi Wąsikowi

za powierzenie ciekawej tematyki badawczej oraz nieocenione wsparcie na każdym etapie prac

prof. dr hab. inż. Jackowi Błażewiczowi za umożliwienie realizacji tego doktoratu oraz wsparcie w trakcie jego realizacji

rodzicom

za cierpliwość oraz nieocenione wsparcie

(6)
(7)

Spis treści

Spis treści ... 7

Spis rysunków ... 12

Spis tabel ... 14

Spis listingów ... 15

Spis równań ... 16

Spis zrzutów ekranu ... 17

Streszczenie rozprawy ... 19

Klasyfikacja metod modelowania systemów dynamicznych w bioinformatyce ... 19

Projektowanie i rozwój języka ModeLang ... 22

Weryfikacja eksperymentalna języka ModeLang ... 23

Konwersja ModeLang do SBML ... 25

Weryfikacja modeli i wyników eksperymentów poprzez bazę VirDB ... 26

Abstract ... 28

Classification of modelling methods of dynamical systems in bioinformatics... 28

Design and development of ModeLang language ... 31

Experimental verification of ModeLang language ... 32

ModeLang conversion to SBML ... 34

Crowdsourcing of the models and experiments results for open evaluation ... 35

1 Wstęp ... 37

1.1 Rozwój technik programistycznych w kontekście modelowania systemów dynamicznych . 37 1.2 Cel i zakres pracy ... 40

1.3 Struktura rozprawy ... 41

2 Podstawy biologiczne ... 43

2.1 Biologia systemowa ... 44

2.1.1 Działanie systemów biologicznych ... 44

2.1.2 Przykłady systemów biologicznych ... 45

2.1.3 Zapis systemów biologicznych ... 46

2.1.4 Metodologia badawcza w obszarze biologii systemowej ... 46

2.2 Wirusy ... 47

(8)

2.3.1 Cykl życia populacji bakterii ... 51

2.3.2 Budowa bakterii ... 52

2.3.3 Współżycie z innymi organizmami ... 53

2.3.4 Ochrona genomu ... 53

2.4 Mechanizm CRISPR/Cas9 ... 54

2.4.1 Sposób wykorzystania przez biologów ... 54

2.4.2 Zastosowania mechanizmu CRISPR/Cas9 ... 56

2.5 Ekologia gatunków ... 57

2.5.1 Podstawy ... 57

2.5.2 Populacyjny model geometryczny ... 57

2.5.3 Wybór strategii życiowej r/K ... 59

3 Podstawy matematyczne i informatyczne ... 60

3.1 Modelowanie matematyczne ... 61

3.1.1 Klasyfikacja modeli ... 61

3.1.2 Ocena wartości modelu ... 62

3.1.3 Zastosowanie modelowania matematycznego ... 63

3.2 Równania różniczkowe ... 64

3.2.1 Charakterystyka ... 64

3.2.2 Zastosowanie w modelowaniu ... 64

3.2.3 Interpretacja zapisu układów równań różniczkowych ... 64

3.3 Modelowanie systemów dynamicznych ... 65

3.3.1 System dynamiczny ... 66

3.3.2 Modelowanie systemów dynamicznych ... 67

3.4 Język naturalny ... 68

3.5 Języki formalne ... 71

3.5.1 Definicja ... 71

3.5.2 Gramatyki formalne ... 72

3.5.3 Maszyna Turinga ... 73

3.6 Kontrolowane języki naturalne ... 74

3.6.1 Opis ... 74

3.6.2 Przykłady... 76

3.7 Kompilatory ... 78

3.7.1 Opis działania kompilatora ... 78

3.7.2 Fazy pracy kompilatora ... 80

3.8 Systemy wieloagentowe ... 81

3.8.1 Agent ... 82

(9)

3.8.2 Środowisko ... 84

3.9 Wykorzystanie chmury obliczeniowej ... 84

4 Przegląd formatów reprezentacji modeli biologicznych ... 87

4.1 Praktyczne konsekwencje wyboru formatu zapisu modelu ... 88

4.2 Języki z niejawną strukturą ... 91

4.2.1 Przegląd ... 91

4.2.2 Przykład ... 92

4.2.3 Zalety i wady ... 94

4.3 Języki specjalizowane ... 95

4.3.1 Przegląd ... 95

4.3.2 Przykład ... 96

4.3.3 Zalety i wady ... 97

4.4 Kontrolowane języki naturalne ... 98

4.4.1 Przegląd ... 98

4.4.2 Przykład ... 99

4.4.3 Zalety i wady ... 100

4.5 Porównanie formatów ... 100

4.6 Eksperyment weryfikujący interoperacyjność formatów ... 103

5 ModeLang – kontrolowany język naturalny do modelowania systemów dynamicznych w biologii 105 5.1 Założenia projektowe ... 106

5.2 Definicja języka ModeLang ... 107

5.2.1 Definicje wartości początkowych i parametrów ... 108

5.2.2 Reguły ... 109

5.2.3 Definicja prędkości reakcji ... 115

5.2.4 Reguły warunkowe zależne od stanu ... 115

5.2.5 Pojemność środowiskowa ... 116

5.2.6 Reakcje z opóźnieniem ... 117

5.3 Metody informatyczne ... 118

5.3.1 Gramatyka ... 118

5.3.2 Analizator leksykalny ... 120

5.3.3 Analizator składniowy ... 122

5.3.4 Realizacja technologiczna ... 124

6 Eksperymentalna weryfikacja języka ModeLang ... 126

6.1 Założenia ... 126

(10)

6.2.1 Modele drapieżnik-ofiara ... 129

6.2.2 Modele epidemiologiczne ... 133

6.2.3 Modele ekspresji genu ... 136

6.3 Środowisko eksperymentalne ... 140

6.4 Eksperyment 1 ... 142

6.4.1 Plan eksperymentu ... 142

6.4.2 Przebieg eksperymentu ... 143

6.4.3 Zaproponowane poprawki języka ModeLang ... 144

6.5 Eksperyment 2 ... 145

6.5.1 Plan eksperymentu ... 146

6.5.2 Przebieg eksperymentu ... 147

6.5.3 Konkluzje eksperymentu ... 147

7 Praktyczne wykorzystanie języka ModeLang do modelowania mechanizmu CRISPR/Cas9 ... 149

7.1 Integracja ModeLang z narzędziami zewnętrznymi ... 150

7.1.1 Zewnętrzne narzędzia do modelowania systemów dynamicznych ... 150

7.1.2 Konwersja języka ModeLang do SBML ... 151

7.1.3 Wykorzystanie języka ModeLang w Pythonie ... 155

7.2 Model mechanizmu CRISPR/Cas9 ... 156

7.2.1 Projekt pełnego modelu mechanizmu CRISPR/Cas9 ... 157

7.2.2 Model uproszczony obsługiwany w programie CellDesigner ... 158

7.2.3 Zapis modelu uproszczonego w języku ModeLang ... 159

7.3 Wyniki eksperymentu ... 161

7.3.1 Wyniki symulowania modelu w programie CellDesigner ... 161

7.3.2 Wyniki symulowania modelu w programie Mathematica ... 166

7.4 Podsumowanie ... 169

8 Baza modeli infekcji wirusowych VirDB ... 170

8.1 Idea „crowdsourcingu” ... 171

8.1.1 Ewaluacja modelu... 172

8.2 Projekt bazy modeli infekcji wirusowych ... 173

8.2.1 Założenia użytkowe bazy modeli infekcji wirusowych ... 173

8.2.2 Założenia techniczne i realizacja ... 174

8.3 Zastosowania bazy modeli infekcji wirusowych ... 175

8.4 Dalsze pomysły i możliwości rozwoju bazy modeli infekcji wirusowych... 175

9 Podsumowanie ... 177

A. Model infekcji wirusa HCV w formacie SBML... 179

B. Model CRISPR/Cas9 w formacie SBML ... 185

(11)

C. Oryginalny przewodnik po języku ModeLang ... 188

C.1 ModeLang Introduction ... 188

C.1.1. Description ... 188

C.1.2. Example ... 192

C.2 Web tool tutorial ... 193

C.3 Topic based models classification ... 196

C.3.1. Predator-Prey models... 196

C.3.2. Epidemiological models ... 198

C.3.3. Metabolic pathways ... 198

D. Wybrane modele wykorzystane w eksperymentalnej weryfikacji języka ModeLang ... 200

D.1 Topic based models classification ... 200

D.1.1. Predator-Prey models... 200

D.1.2. Epidemiological models ... 201

D.1.3. Gene expression models ... 203

D.2 Level based model classification ... 203

D.2.1. Simple models ... 203

D.2.2. Extended models ... 205

E. Pełna gramatyka ModeLang ... 208

Bibliografia ... 210

(12)

Spis rysunków

Rysunek 1. Sieć regulacyjna genu. Źródło: Office of Biological and Environmental Research of the U.S.

Department of Energy Office of Science, link: https://public.ornl.gov/site/gallery/detail.cfm?id=301.

... 45

Rysunek 2. Szlak metaboliczny glukozy. Źródło: Wikimedia Commons, link: https://pl.wikipedia.org/wiki/Plik:Glycolysis2pl.svg. ... 46

Rysunek 3. Badania oparte o hipotezę (Kitano 2002). ... 47

Rysunek 4. Budowa wirusa. Źródło: http://www.animalresearch.info/fr/avancees-medicales/prix- nobel/the-role-of-hpv-and-hiv-causing-disease/ ... 48

Rysunek 5. Schemat replikacji wirusa w komórce... 49

Rysunek 6. Wykres przebiegu symulacji infekcji wirusa HCV wykonany w ramach prowadzonych prac. ... 50

Rysunek 7. Poglądowy wykres cyklu życia populacji bakterii w środowisku o ograniczonej pojemności. ... 51

Rysunek 8. Wygenerowany komputerowo trójwymiarowy obraz pałeczki ropy błękitnej. Źródło: https://news.umanitoba.ca/new-weapon-in-fight-against-antibiotic-resistance-discovered/, autor: James Archer. ... 52

Rysunek 9. Schemat mechanizmu CRISPR/Cas9. Diagram opracowany przez autora pracy. ... 55

Rysunek 10. Wykres podwajania rozmiaru populacji bakterii. Źródło: Wikimedia Commons, link: https://commons.wikimedia.org/wiki/File:G._stearothermophilus_has_a_shorter_doubling_time_(td )_than_E._coli_and_N._meningitidis.png. ... 59

Rysunek 11. Modelowanie według Harveya Thomasa Banksa. ... 68

Rysunek 12. Fragment tekstu „Beowulf”. Źródło: Wikimedia Commons, autor: British Library (CC0 1.0). ... 70

Rysunek 13. Modelowanie z wykorzystaniem kontrolowanego języka naturalnego. ... 75

Rysunek 14. Kompilator (Aho et al. 2002). ... 78

Rysunek 15. System przetwarzania języków (Aho et al. 2002). ... 79

Rysunek 16. Fazy kompilatora (Aho et al. 2002). ... 80

Rysunek 17. Schemat typologii współpracy agentów (Doran et al. 1997). ... 82

Rysunek 18. Schemat reakcji prostej. Źródło: Wikimedia Commons, autor oryginału: Utkarshraj Atmaram (Public Domain), na podstawie Artificial Intelligence: A Modern Approach (Russell and Norvig 2016). ... 83

Rysunek 19. Schemat reakcji uczącej. Źródło: Wikimedia Commons, autor oryginału: Utkarshraj Atmaram (Public Domain), na podstawie Artificial Intelligence: A Modern Approach (Russell and Norvig 2016). ... 83

Rysunek 20. Stos chmury obliczeniowej. ... 85

Rysunek 21. Dostępne wersje SBML. ... 103

Rysunek 22. Reguła 1 ... 109

Rysunek 23. Reguła 2 ... 110

Rysunek 24. Reguła 3 ... 110

Rysunek 25. Reguła 4 ... 111

Rysunek 26. Reguła 5 ... 111

(13)

Rysunek 27. Reguła 8 ... 113

Rysunek 28. Reguła 9 ... 113

Rysunek 29. Reguła 10 ... 114

Rysunek 30. Schemat modelu transkrypcji i translacji genu. ... 137

Rysunek 31. Metoda realizowana przez uczestników pierwszego eksperymentu. ... 143

Rysunek 32. Metoda realizowana przez uczestników drugiego eksperymentu. ... 146

(14)

Spis tabel

Tabela 1. Formaty zapisu modeli biologicznych. ... 91

Tabela 2. Opis głównych charakterystyk klas formatów zapisu modeli bioinformatycznych. ... 101

Tabela 3. Znaczniki wykorzystywane w języku ModeLang. ... 122

Tabela 4. Modele uwzględnione w eksperymentach języka ModeLang. ... 128

Tabela 5. Statystyki z przebiegu eksperymentu. ... 144

(15)

Spis listingów

Listing 1. Fragment artykułu “Systems Biology: A Brief Overview” (Kitano 2002). ... 44

Listing 2. Fragment modelu infekcji wirusa HCV zapisany w formacie SBML. ... 93

Listing 3. Fragment modelu infekcji wirusa HCV zapisany w języku Antimony... 97

Listing 4. Fragment modelu infekcji wirusa HCV zapisany w języku ModeLang. ... 99

Listing 5. Opis gramatyki języka ModeLang. ... 118

Listing 6. Fragment słownika słów kluczowych. ... 121

Listing 7. Fragmenty implementacji analizatora składniowego w języku Python. ... 123

Listing 8. Przykładowy model ModeLang oparty na modelu infekcji HCV. ... 152

Listing 9. Fragment modelu SBML opisujący agentów. ... 152

Listing 10. Fragment modelu SBML opisujący parametry. ... 153

Listing 11. Fragment modelu SBML opisujący reakcje. ... 154

Listing 12. Model uproszczony zapisany w języku ModeLang. ... 159

Listing 13. Model uproszczony CRISPR/Cas9 zapisany w postaci SBML. ... 165

Listing 14. Definicja modelu w programie Mathematica. ... 167

(16)

Spis równań

Równanie 1. Model infekcji wirusa HCV. ... 65

Równanie 2. Prosty model Lotka-Volterra. ... 130

Równanie 3. Rozwinięty model Lotka-Volterra. ... 130

Równanie 4. Model Rosenzweiga i MacArthura. ... 131

Równanie 5. Model dwóch gatunków rywalizujących o zasoby. ... 132

Równanie 6. Model Kermacka-McKendricka. ... 134

Równanie 7. Model HCV. ... 134

Równanie 8. Model HIV. ... 135

Równanie 9. Model transkrypcji i translacji genów. ... 138

Równanie 10. Model ekspresji genu. ... 138

Równanie 11. Model ekspresji genu uwzględniający miejsca wiązań. ... 139

Równanie 12. Model mechanizmu CRISPR/Cas9. ... 157

Równanie 13. Model uproszczony mechanizmu CRISPR/Cas9. ... 158

(17)

Spis zrzutów ekranu

Zrzut ekranu 1. Game of life – Gosper Glider Gun. Źródło: http://pmav.eu/stuff/javascript-game-of-

life-v3.1.1/, licencja MIT. ... 67

Zrzut ekranu 2. Formularz logowania. ... 140

Zrzut ekranu 3. Ekran środowiska eksperymentalnego. ... 141

Zrzut ekranu 4. Automatycznie wygenerowany układ równań różniczkowych w parserze ModeLang. ... 160

Zrzut ekranu 5. Widok zakładki „Reactions”. ... 166

Zrzut ekranu 6. Widok okna podglądu modelu. ... 166

Zrzut ekranu 7. Przebieg symulacji w programie Mathematica. ... 168

Zrzut ekranu 8. Menu główne aplikacji VirDB w trybie standardowego użytkownika... 173

Zrzut ekranu 9. Menu główne aplikacji VirDB w trybie administratora. ... 174

(18)
(19)

Streszczenie rozprawy

Modelowanie systemów dynamicznych w biologii jest silnie rozwijającą się gałęzią współcze- snej nauki. Ponieważ jest to obszar interdyscyplinarny, łączy różne dziedziny naukowe, takie jak mate- matyka, informatyka i biologia. Matematycy i informatycy są odpowiedzialni za przetwarzanie ogrom- nych ilości danych i znajdowanie w nich wzorców. Z drugiej strony biologia dostarcza wyzwań nauko- wych, danych i pozwala zweryfikować empirycznie zaprojektowane modele teoretyczne. Niestety pod- czas współpracy naukowej, w której biologowie są odpowiedzialni za analizę procesów biologicznych, które mają znaleźć odzwierciedlenie w modelach teoretycznych, a matematycy i informatycy powinni budować struktury, które powinny opisywać takie procesy, bardzo często pojawiają się problemy ko- munikacyjne.

Biolodzy nie są w stanie skutecznie analizować formalnych opisów modeli matematycznych.

Ich kluczową umiejętnością jest zrozumienie procesów biologicznych. Z drugiej strony matematycy i informatycy nie mają wystarczającej wiedzy biologicznej, która pozwalałaby na prawidłową interpre- tację zjawisk w formie matematycznej. Problemy te powodują, że proces modelowania jest mało sku- teczny.

Rozwiązanie powyższych problemów możliwe jest między innymi poprzez opracowanie inno- wacyjnej metodologii modelowania. W niniejszej rozprawie opisano poszukiwanie najbardziej opty- malnego podejścia do tego problemu. Jednak aby taką metodologię opracować, trzeba było osiągnąć kilka celów. Najważniejsze z nich to:

1. Klasyfikacja dostępnych metod modelowania i formatów zapisu systemów dynamicznych w bioinformatyce w celu analizy potencjału rozwoju nowych technik modelowania (rozdział 4).

2. Projekt i rozwój nowego języka, który pozwoliłby modelować systemy dynamiczne w celu wy- eliminowania wad obecnych rozwiązań i wykorzystania nowoczesnych technik w celu zwięk- szenia efektywności procesu modelowania (rozdział 5).

3. Eksperymentalna weryfikacja funkcjonalności, które zapewni nowo zaproponowany język w procesie modelowania systemów dynamicznych w bioinformatyce (rozdział 6).

4. Budowanie i weryfikacja środowiska pozwalającego analizować i konwertować zapisy w no- wym języku do formatu SBML, który jest popularny w oprogramowaniu bioinformatycznym i biochemicznym (rozdział 7).

5. Zbudowanie środowiska, które pozwala przechowywać i udostępniać dostępne modele syste- mów biologicznych oraz dzielić się wynikami eksperymentów naukowych (rozdział 8).

Kolejne akapity opisują podsumowanie rozdziałów opisujących realizację celów wymienionych i opisa- nych powyżej.

Klasyfikacja metod modelowania systemów dynamicznych w bioinformatyce

Badania obecnego stanu wiedzy doprowadziły do klasyfikacji, która podzieliła kluczowe typy do- stępnych metod na trzy klasy. Następne trzy paragrafy opisują zidentyfikowane klasy.

(20)

Formaty z niejawną strukturą to pierwsza klasa formatów, która została zidentyfikowana w trak- cie badań. Celem tych formatów jest maksymalizacja ułatwienia przetwarzania danych przez systemy komputerowe. Typowym zastosowaniem tych formatów jest wykorzystanie ich jako typu pamięci dla oprogramowania z graficznym interfejsem użytkownika. Oprogramowanie należące do tej klasy forma- tów jest obecnie najbardziej popularne i tylko w formacie SBML dostępnych jest ponad 250 narzędzi (Prejzendanc i in. 2016). Popularność formatów SBML powoduje, że wiele narzędzi zawiera funkcje umożliwiające importowanie z SBML i eksportowanie do formatu SBML. SBML został zaprojektowany w celu umożliwienia wymiany informacji w biologii systemów i pokrewnych obszarach nauki. Istnieje wiele przykładów narzędzi wykorzystujących SBML, w tym System Biology Workbench z modułem NOM, który został wdrożony w celu wykorzystania wymiany informacji między różnymi komponentami (Bergmann i Sauro 2006). Innym przykładem jest SYCAMORE (Weidemann i in. 2008), który został za- projektowany w celu wspierania tworzenia modeli. Istnieje również program o nazwie CellDesigner (Funahashi i in. 2003), który pozwala edytować modele prezentowane na graficznym interfejsie użyt- kownika w postaci diagramów przedstawiających modele sieci genetycznych i biochemicznych. Innymi przykładami są SBML ODE Solver (Machné i in. 2006) oraz Systems Biology Simulation Core Library (Keller i in. 2013). Popularne są również formaty związane z inicjatywą COMBINE. Są one wspierane przez społeczność COMBINE. Przykłady takich formatów obejmują języki takie jak SBGN, SED-ML, CellML lub BioPAX (Hucka i in. 2015). Istnieją również programy, które używają dedykowanych języ- ków, ale umożliwiają import z SBML i eksport do funkcji SBML w celu integracji z popularną społeczno- ścią. Przykłady takich programów obejmują CopasiML (Hoops i in. 2006), zaprojektowany dla symula- tora COPASI, BNX wykorzystywany przez BiologicalNetworks (Baitaluk i in. 2006) lub CelleratorML (Sha- piro i in. 2003), który jest zastosowaniem MathML do modelowania biologicznego.

Druga klasa, języki specjalizowane są przeznaczone do realizacji dedykowanych potrzeb techno- logicznych. Najczęściej są to języki dedykowane do konkretnego oprogramowania do modelowania, które zostały stworzone w celu spełnienia określonych potrzeb, czego nie można było osiągnąć za po- mocą ogólnych formatów. Prowadzi to do oryginalnej charakterystyki specjalistycznych języków pro- gramowania. Przede wszystkim potrzebują specjalnego szkolenia dla użytkowników, aby zacząć z nich korzystać, ponieważ wąskie użycie takich formatów sprawia, że są one nieznane szerokiemu gronu użytkowników. Wyjątek stanowią języki używane w różnych obszarach, dla których utworzono biblio- teki specjalizowane. To rozwiązanie pozwala wykorzystać powszechną wiedzę i bazę znanego i spraw- dzonego standardu. Po drugie, wszystkie wyspecjalizowane języki programowania są przeznaczone dla określonego oprogramowania. Oznacza to, że języki te są edytowane i obsługiwane przez oprogramo- wanie, które używa ich do celów wewnętrznych. Trzecia część specjalistycznych języków programowa- nia została zaprojektowana do określonych celów. Przykładem jest modelowanie systemów dynamicz- nych w biologii. Popularne jest stosowanie opisów prawa kinetycznego do definiowania reakcji między czynnikami w takich systemach. Oznacza to, że stworzenie języka, który pozwoli intuicyjnie opisać re- akcje znane z praw kinetycznych, może uprościć pisanie, czytanie i interpretację takich modeli. Przy- kładem wyspecjalizowanych języków programowania jest Jarnac (Bergmann i Sauro 2006), który jest językiem modelowania systemów metabolicznych, który został stworzony w oparciu o BASIC. Innym przykładem jest Antymony, który został stworzony na podstawie Jarnaca. Dla symulatora JSim (Ray- mond i in. 2003) utworzono język skryptowy o nazwie Mathematical Model Language. PySCeS (Olivier i in. 2005) to oparty na Pythonie symulator dla systemów komórkowych, który ma swój własny język o nazwie Model Description Language. Istnieje również framework symulacyjny o nazwie NetLogo (Tisue i Wilensky 2004), który ma swój własny wbudowany język oparty na Logo, którego można używać do definiowania bardziej złożonych symulacji. Istnieją również frameworki, które pozwalają tworzyć mo- dele oparte na znanych językach imperatywnych. Przykładami takich jest RePast (Recursive Porous Agent Simulation Toolkit) (Collier 2001), oparty na Javie. Innymi przykładami języków formalnych są

(21)

SPiM (Phillips i Cardelli 2007), Bio-PEPA (Ciocchetta i Hillston 2009), który stanowi ramy do modelowa- nia i analizy systemów biologicznych, Cyto-Sim (Sedwards i Mazza 2007), który jest językiem i symula- torem procesów biochemicznych oraz Kappa (Danos i in. 2008), który jest językiem opartym na regu- łach, używanym do modelowania białek i sieci interakcji. Istnieją również możliwości zdefiniowania układów równań różniczkowych, które są często wykorzystywane w bioinformatyce. Składają się z sys- temów takich jak Berkley-Madonna (Macey i in. 2000), MathWorks MATLAB, a także alternatywa dla nich, którą jest Octave (Leros i in. 2010). Ponadto istnieje VCell (Loew i Schaff 2001), który pozwala bezpośrednio opisywać układy równań różniczkowych zamiast robić to za pomocą graficznego inter- fejsu użytkownika. Istnieje również dobry przykład specjalistycznego języka programowania o nazwie RePast, który jest strukturą umożliwiającą tworzenie skryptów modeli przy użyciu programowania im- peratywnego. Został on między innymi wykorzystany w pracy Yanga (Yang Yong i in. 2007) do symulacji przenoszenia chorób zakaźnych w populacji. W tym celu badacze zastosowali indywidualny model oparty na aktywności czasoprzestrzennej. Było to możliwe dzięki integracji RePast z pakietem Java To- pology Suite. Kluczową zaletą specjalistycznego języka programowania jest możliwość edycji modelu bez potrzeby korzystania z dodatkowego oprogramowania. Bezpośrednia kontrola nad modelem może być bardzo pomocna, ponieważ ręczne modyfikowanie ustawień może być znacznie szybsze i daje większą kontrolę nad efektem końcowym. W przypadku prostych formatów tekstowych zdecydowanie łatwiej jest zaimplementować skrypty do automatycznego testowania zmian w modelu. Ta klasa for- matów jest zdecydowanie mniej intuicyjna niż formaty o niejawnej strukturze, którymi najczęściej za- rządza graficzny interfejs użytkownika. Ponadto ręczna edycja niesie ryzyko błędów, które mogą po- wodować, że będzie dochodzić do błędów odczytu lub nieprawidłowych symulacji. Ważne jest również to, że używanie specjalistycznych języków programowania do zarządzania modelami składającymi się z tysięcy interakcji bez możliwości korzystania z graficznego interfejsu użytkownika może być proble- matyczne.

Trzecią grupą są kontrolowane języki naturalne, które są podzbiorem języków naturalnych. Ich konstrukcja zapewnia dodatkowe ograniczenia dla jednoznacznej interpretacji przez systemy kompu- terowe. To nowe podejście w bioinformatyce. Modelowanie za pomocą kontrolowanych języków na- turalnych polega na pisaniu tekstu w oparciu o podzbiór języka naturalnego, najczęściej angielskiego.

Takie podejście jest zdecydowanie bardziej elastyczne niż w poprzednich klasach wymienionych powy- żej, ponieważ reguły podzbioru języka naturalnego są zdecydowanie mniej restrykcyjne niż reguły for- matów komputerowych. Przygotowany model można interpretować za pomocą dedykowanego opro- gramowania. Aby zrozumieć opis modelu, oprogramowanie musi zawierać specjalistyczną bazę wiedzy na temat terminów używanych w opisach modelu. Najczęściej definiuje się go w formie ontologii, czyli formalnej reprezentacji wiedzy. Większość istniejących kontrolowanych języków naturalnych można wykorzystać do przygotowania modeli bioinformatycznych. Jedynym ograniczeniem jest pozyskanie lub przygotowanie odpowiednich ontologii. Istniejące rozwiązania obejmują ACE (Fuchs i Schwitter 1996), który mocno ogranicza użycie języka angielskiego i ma już przykłady zastosowań bioinforma- tycznych. Innym kontrolowanym językiem naturalnym jest PENG (White i Schwitter 2009), którego ograniczenia są nawet szersze niż ACE. Innym przykładem jest CPL (Clark i in. 2010), który jest mniej restrykcyjny i wykorzystuje różne metody heurystyczne do wspierania procesu analizy. W końcu opi- sany w niniejszej rozprawie ModeLang (Wasik i in. 2013) jest nowym podejściem w grupie kontrolowa- nych języków naturalnych. Zawiera on słowniki wiedzy do wspierania modelowania systemów dyna- micznych. Najważniejsze zalety kontrolowanych języków naturalnych to ich elastyczność i zdolność do opisu modelu przy użyciu różnych słów i różnych składni. W rezultacie ekspert, który opisuje model, ma możliwość wyboru słów i składni i może skupić się na opisie ważnych cech, zamiast skupiać się na zrozumieniu struktury kodu i reguł definiujących język. Jest to również uważane za ich wadę, ponieważ

(22)

może powodować sytuację, w której trudniej będzie zidentyfikować podobieństwa między dwoma mo- delami. Kolejną ważną zaletą jest ułatwienie współpracy między specjalistami z różnych dziedzin nauki.

Kontrolowane języki naturalne są ograniczeniem dla zapewnienia prawidłowej identyfikacji reguł przez systemy komputerowe. Z drugiej strony reguły są napisane w postaci podzbioru języka naturalnego, co powoduje, że są one intuicyjne i łatwe do interpretacji. Kolejną zaletą kontrolowanych języków natu- ralnych jest ich zdolność do samodzielnej dokumentacji. Ta funkcja kodu jest bardzo ceniona przez inżynierów oprogramowania i jest jedną z kluczowych cech kontrolowanych języków naturalnych. Czy- tanie modelu napisanego przy użyciu kontrolowanych języków naturalnych przez naukowców zajmu- jących się opisywaną tematyką badawczą pozwala na natychmiastowe rozumienie treści co czyni mo- dele bardziej dostępnymi dla użytkowników, którzy nie są inżynierami oprogramowania. Aby opisać kod, potrzeba znacznie mniej komentarzy i dokumentacji, ponieważ użytkownicy mogą znaleźć jego opis w podzbiorze języka naturalnego.

Projektowanie i rozwój języka ModeLang

ModeLang został stworzony w celu rozwiązywania problemów komunikacyjnych w zespołach interdyscyplinarnych i jednocześnie jako narzędzie do symulacji systemów dynamicznych. Zaprojekto- wanie języka było związane z poszukiwaniem narzędzia, które umożliwi intuicyjne modelowanie i nie wymaga dużo czasu na zdobycie niezbędnej wiedzy, czy to w dziedzinie modelowania matematycznego czy informatyki.

Głównym założeniem podczas projektowania nowego języka było zaproponowanie rozwiąza- nia, które byłoby całkowicie intuicyjne, tak aby koszty czasu, który muszą ponieść naukowcy uczący się nowych rozwiązań w zakresie modelowania, został maksymalnie ograniczony. Z tej cechy języka Mo- deLang wynikała inna, mianowicie powinien on być jak najbardziej elastyczny. W tym celu zapropono- wano szereg funkcji opisanych w tym rozdziale. Przede wszystkim wszystkie opisy zachowań i interakcji zostały napisane w formie reguł odpowiadających zdaniom znanym z języków naturalnych, takich jak na przykład angielski. Wszystkie opisy mogą być budowane w ModeLang zarówno w stronie czynnej, jak i biernej, dzięki czemu naturalność opisów nie jest ograniczona. Kolejnym elementem jest wykrycie powtarzalnych cech zdania, które można zignorować ze względu na brak wartości merytorycznej, na przykład zakończenie zdania kropką nie wpływa na rozpoznanie ostatniego słowa użytego w opisie re- guły.

ModeLang to kontrolowany język naturalny. Oznacza to, że jego zapis jest podzbiorem języka naturalnego. Składa się z części, które można jednoznacznie interpretować na podstawie składni i słow- nictwa. Istnieje również deklaratywna część języka, która jest zapisem deklaracji wartości parametrów, podobnie do deklaracji znanych z języków empirycznych. Możliwe jest zbudowanie modelu bez części deklaratywnej, ale nie jest możliwe wykonywanie obliczeń i symulacji bez podania później wartości parametrów, na podstawie których należy wykonać obliczenia. Część języka, w której opisano modele w postaci kontrolowanego języka naturalnego, składa się z reguł.

Część deklaratywna pozwala przypisywać wartości. Elementy języka, które można zdefiniować, to początkowe wartości wielkości populacji i parametry. Parametry mogą określać szybkość reakcji, czas opóźnienia reakcji, parametr reakcji warunkowej i pojemność środowiska. Wszystkie deklaracje można zdefiniować przypisując im wartość. W przypadku parametrów można również wskazać zakresy wartości, aby umożliwić ich późniejsze oszacowanie na podstawie danych eksperymentalnych.

Część opisująca model pozwala określić, jakie interakcje występują między agentami w opisy- wanym modelu. Reguły pozwalają zapisywać modele przy użyciu stron czynnych i biernych. Ponadto

(23)

pozwalają kończyć zdania dowolną liczbą sufiksów, czyli częścią zdania podaną na końcu reguły okre- ślającą szybkość reakcji, warunkującą wydajność reakcji w zależności od stanu i określającą opóźnienie w wykonaniu reakcji.

ModeLang składa się obecnie z dziesięciu reguł, w tym dwóch o specyficznym charakterze. Re- guła 6 określa pojemność środowiska. Reguła 7 określa potencjalny stan agenta. Oprócz reguł 6 i 7 pozostałe reguły określają interakcje między agentami tego modelu. Dwie ostatnie reguły to tak zwane reguły „wiele do wielu”, które pozwalają na nieograniczone zapisywanie modelu pod względem liczby zarówno reagentów jak i produktów.

Każda reguła opisująca interakcję między agentami wymaga określenia szybkości odpowiedzi.

Nie można powiedzieć, że na przykład jeden agent żeruje na drugim, jeśli skala takiego zachowania nie jest ograniczona, ponieważ obliczenia nie będą możliwe. Dlatego jednym z trzech typów wyrażeń koń- czących regułę są definicje prędkości reakcji. Niektóre reakcje, oprócz szybkości wykonania, charakte- ryzują się również zależnością wykonania od stanu, w którym aktualnie znajduje się system. W Mode- Lang można zapisać takie reakcje w formie reguł specyficznych dla warunków. Są też reakcje opóź- nione. Opisanie reakcji z opóźnieniem w języku ModeLang jest możliwe przy użyciu sufiksu reguły Mo- deLang, który odpowiada za określenie opóźnienia w wykonaniu reakcji opisanych w danej regule.

Pełna lista reguł obsługiwana przez język ModeLang jest następująca:

• Regułę 1 można wykorzystać do opisania utworzenia nowego agenta.

• Regułę 2 można wykorzystać do opisania zniszczenia agenta przez innego agenta.

• Reguła 3 opisuje przekształcenie agenta w innego agenta.

• Reguła 4 opisuje śmierć agenta.

• Reguła 5 opisuje połączenie dwóch różnych agentów w trzeciego.

• Reguła 6 opisuje limity wzrostu dla jednostek wskazanego agenta lub agentów razem, zarówno w minimalnej, jak i maksymalnej liczbie.

• Reguła 7 opisuje potencjalny stan, w którym może znajdować się agent.

• Z reguły 8 można korzystać, gdy agenty są dostarczane do modelowanego systemu z zewnątrz lub powstają w środowisku bez potrzeby interakcji z innymi agentami.

• Reguła 9 została stworzona, aby umożliwić modelowanie interakcji dla dowolnego zestawu re- agentów i produktów reakcji, czyli czynników, które reagują i czynników, które otrzymujemy w wyniku reakcji (stąd nazwa pomocnicza kreatywnej reguły N:N).

• Reguła 10 stanowi rozwinięcie reguły 9 do zastosowań destrukcyjnych.

Ponadto istnieje kilka rodzajów wyrażeń, których można użyć do uzupełnienia definicji modelu:

• tempo wykonywania reakcji,

• reguły warunkowe,

• możliwości środowiskowe,

• reakcje z opóźnieniem.

Weryfikacja eksperymentalna języka ModeLang

Po zaprojektowaniu języka ModeLang i wdrożeniu środowiska eksperymentalnego stało się możliwe sprawdzenie poprawności języka i zapisanych w nim modeli. Środowisko zostało zbudowane w formie aplikacji internetowej, która umożliwiła weryfikację języka ModeLang z dowolnego kompu- tera za pośrednictwem przeglądarki internetowej. Została również stworzona integracja z narzędziami

(24)

zewnętrznymi, umożliwiając przekształcenie ModeLang do formatu SBML. Ponadto utworzono kon- werter modeli w celu prezentacji układu równań różniczkowych, który pozwala sprawdzić, czy wpro- wadzone modele są zgodne z ich znaną reprezentacją matematyczną opracowaną dla najpopularniej- szych modeli biologicznych. Po utworzeniu środowiska konieczne było zbudowanie odpowiedniego ze- stawu modeli testowych, które umożliwiłyby przetestowanie rozwiązania. Model testowy rozumiany jest tutaj jako słowny opis modelowanego systemu i jego właściwego modelu matematycznego służą- cego do weryfikacji wyników uzyskanych w języku ModeLang. W tym celu stworzono dwie klasyfikacje modeli: tematyczne i oparte na złożoności. Pierwszy pozwala zweryfikować jedno z pierwszych założeń ModeLang, takie jak intuicyjność i uniwersalność języka. Druga stworzona została w celu sprawdzenia czy notacje matematyczne o różnych poziomach złożoności można przenieść na obecną formę języka, czy też konieczne będzie jego rozszerzenie. Kolejnym ważnym elementem weryfikacji był zestaw pro- stych i skomplikowanych modeli, aby dozować poziom trudności użytkownikom biorącym udział w eks- perymencie.

Najpierw przeprowadzono eksperyment, którego celem była weryfikacja podstawowych zało- żeń i możliwości związanych z zapisywaniem modeli językowych ModeLang w celu weryfikacji możli- wości samego języka. Rezultatem tych działań była seria sugestii ulepszeń i zmian, które zostały na- stępnie wdrożone i przygotowane do następnego eksperymentu. Drugim eksperymentem było spraw- dzenie poprawności naukowej zbudowanych modeli. Wykorzystano w nim takie elementy, jak podgląd formy układów równań różniczkowych i konwersję do języka SBML. Przekształcone modele zostały przeanalizowane w CellDesigner, gdzie można było je również zasymulować. W rezultacie powstał kompletny proces, który obejmował weryfikację eksperymentalną od etapu budowy modelu do jego ostatecznej weryfikacji, co pozwoliło na przetestowanie języka i związanych z nim założeń.

Budowanie zapisu w języku ModeLang jest ważną częścią procesu modelowania. Cały proces składa się z kilku faz. Utworzenie zapisu w ModeLang pozwala zautomatyzować przejście między fazą, w której przygotowywany jest model biologiczny, a fazą modelu matematycznego. Jest to ważna zmiana, ponieważ model biologiczny jest opisem rzeczywistych zjawisk i opiera się na obserwacjach empirycznych. Dlatego jest budowany przez specjalistów w dziedzinie biologii. Model matematyczny jest zapisem, na podstawie którego można wykonać obliczenia. Wymaga dalszego rozwoju poprzez uzupełnienie go o wartości parametrów i wielkości populacji agentów, jednak stanowi solidną pod- stawę do eksperymentalnych prac obliczeniowych. Budowa języka ModeLang miała na celu rozwiąza- nie problemów komunikacyjnych między specjalistami przygotowującymi model biologiczny i model matematyczny. Dlatego kluczowym aspektem weryfikacji poprawności eksperymentalnej ModeLang było sprawdzenie, czy przejście między modelami biologicznymi i matematycznymi odbywa się prawi- dłowo. Ze względu na fakt, że jest to praca interdyscyplinarna, weryfikacja została przeprowadzona przy użyciu specjalistów w tej dziedzinie, którzy są odpowiedzialni za codzienne budowanie modeli biologicznych. Na podstawie ich wiedzy na temat przeprowadzanych przez nich zjawisk biologicznych możliwa była weryfikacja poprawności modelu, który powinien odzwierciedlać zjawiska obserwowane w naturze. Ponadto zastosowane modele były znane i naukowo zweryfikowane, więc ich postać mate- matyczna była znana przed rozpoczęciem eksperymentu. To pozwoliło zweryfikować zapis matema- tyczny, otrzymany w wyniku działania narzędzi zbudowanych dla eksperymentalnej weryfikacji środo- wiska języka ModeLang.

Po sprawdzeniu poprawności formy matematycznej uzyskanej podczas drugiego ekspery- mentu można było skupić się na kolejnym kroku, jakim jest zbudowanie modelu statystycznego. Pra- widłowość opisu zjawisk opiera się nie tylko na zastosowaniu odpowiednich notacji matematycznych, ale ważne są również parametry obliczeniowe, które mogą znacząco wpłynąć na przebieg obliczeń.

(25)

Mając świadomość, że postać matematyczna modelu jest poprawnie zbudowana, można było ekspe- rymentować z zastosowanymi parametrami, aby uzyskać prawidłowy model statystyczny, który zgod- nie ze schematem modelowania opisanym przez Harveya Thomasa Banksa jest podstawą do porówna- nia wyników z zachowaniami obserwowanymi w świecie rzeczywistym. Dlatego eksperymenty nie tylko potwierdziły prawidłowość procesu budowania modeli matematycznych przy użyciu języka ModeLang, ale także pozwoliły na skuteczną analizę wpływu wybranych parametrów w modelu statystycznym, aby jak najlepiej odzwierciedlić rzeczywiste zjawiska. Po zastosowaniu odpowiednich parametrów, które zostały zaczerpnięte z publikacji opisujących prace badawcze nad wskazanymi modelami, możliwe było osiągnięcie oczekiwanych wyników, które potwierdziły poprawność interpretacji zapisu utworzonego w języku ModeLang.

Konwersja ModeLang do SBML

Projektowanie języka ModeLang od samego początku było powiązane z planem, aby umożliwić użytkownikom wykonywanie symulacji i obliczeń w oparciu o modele tworzone przy użyciu tego języka.

Na pierwszym etapie implementacji autor tej rozprawy opracował język jako bibliotekę dedykowaną dla symulatora, która została stworzona do wykonywania obliczeń modelu, zapisanego w postaci ukła- dów równań różniczkowych. Kiedy udało się zbudować pierwszą wersję języka, rozpoczęto testy i ulep- szenie rozwiązania. Autor tej rozprawy zaczął budować platformę zawierającą takie narzędzia, jak edy- tor modeli zapisanych w języku ModeLang, analizator składni i narzędzia komunikacyjne, które umoż- liwiają wykonywanie pracy za pomocą aplikacji sieciowych i zapisywanie modeli w bazie danych za jej pomocą.

Podczas badań jednym z obszarów była opisana wcześniej analiza dostępnych rozwiązań oraz weryfikacja ich przydatności i możliwości wymiany informacji między nimi. Podczas badań zaobserwo- wano, że kluczowym elementem łączącym większość narzędzi był format SBML. Wśród programów obsługujących SBML znalazły się najpopularniejsze aplikacje bioinformatyczne. Dlatego pojawił się po- mysł, że integracja języka ModeLang z narzędziami zewnętrznymi może być wykonana przez zapew- nienie mechanizmu konwersji ModeLang do formatu SBML.

Prace związane z przekształceniem ModeLang do SBML dotyczyły trzech obszarów, które wyma- gały weryfikacji. Przede wszystkim ważne było, jak przechowywać główne elementy ModeLang w SBML takie jak agenty, reguły ModeLang i wartości parametrów. Zapis wartości parametrów musiał być wy- konany w sposób, który z matematycznego punktu widzenia zachowałby logikę ich wpływu na reakcje, które z ich pomocą musiały zostać wykonane. Kolejnym elementem było określenie, które elementy ModeLang nie mogą zostać zapisane w SBML i czy wpływa to na poprawność modeli przekonwertowa- nych na SBML. Istniały również elementy, których zapis był ważny dla poprawności modelu lub spój- ności dostarczonych informacji, które zostały uzupełnione po stronie języka ModeLang. Dla tych ele- mentów językowych, które nie były kluczowe dla poprawności definicji modelu, zdefiniowano wartości domyślne. Zdefiniowano również domyślną strukturę wynikowego języka SBML, który odzwierciedla grupę informacji, które przekazujemy z języka ModeLang. Zdefiniowanie domyślnej struktury było ważne, ponieważ SBML musiał oprzeć wymaganą treść na informacjach przekazywanymi z zapisów w języku ModeLang.

Podstawową informacją niezbędną do konwersji była informacja o agentach, reakcjach między agentami i parametrach opisujących zachodzące reakcje. Informacje te mogły zostać bezpośrednio przekształcone. Druga grupa to informacje, których nie można zapisać w SBML, i przechowujemy je w

(26)

parametrów na podstawie załadowanych danych laboratoryjnych przy użyciu oprogramowania, ta- kiego jak COPASI (Hoops i in. 2006). SBML nie pozwala na przechowywanie informacji o parametrach w postaci zakresów wartości. Inną informacją, której nie jesteśmy w stanie wykorzystać jest pojemność środowiskowa. Prawdopodobieństwo zachodzenia reakcji to kolejny aspekt. Istnieje ograniczenie prędkości reakcji, które opisuje prawdopodobieństwo zdarzenia. Z powodu braku jednoznacznych spo- sobów zapisania tego rodzaju ograniczenia prawdopodobieństwo zapisywane jest jako parametr, który następnie podlega operacjom matematycznym w zależności od wartości prawdopodobieństwa, w spo- sób podobny do obliczania prędkości reakcji. Ostatnia grupa to informacje wymagane w formacie SBML, które zostały dodane do ModeLang. Istnieje duża grupa informacji, która jest częścią formatu SBML i nie znajduje się w ModeLang ponieważ SBML jest znacznie bardziej uniwersalnym formatem.

Nie było jednak ważne zajmowanie się wszystkimi możliwymi aspektami SBML. Proces standaryzacji ModeLang w celu przekształcenia do formatu SBML, oprócz kilku czysto implementacyjnych modyfika- cji, rozszerzył także funkcjonalność języka ModeLang. Z uwagi na fakt, że ModeLang jako język został zaprojektowany do definiowania modeli systemów dynamicznych, nie było konieczne podawanie szczegółów związanych z samym procesem symulacji. Dlatego nie można było zainicjować początko- wych wartości agenta. Podczas pracy nad konwersją do SBML ten element został dodany do języka ModeLang.

Weryfikacja modeli i wyników eksperymentów poprzez bazę VirDB

Praca nad projektem bazy modeli infekcji wirusowych została zainspirowana ideą crowdsour- cingu, która cieszyła się ogromną popularnością w ostatnich latach. Jest to podejście oparte na pod- stawach poszanowania praw autorskich, przy jednoczesnym upoważnieniu do dzielenia się i wspólnego wykorzystywania wyników osiąganych przez poszczególnych członków społeczności. Podczas pracy nad rozwiązaniem polegającym na udostępnianiu materiałów badawczych należy wziąć pod uwagę wiele ważnych kwestii. Przede wszystkim treść nie powinna być modyfikowana przez innych użytkow- ników ze względu na krytyczny charakter wyników badań i możliwość wnioskowania na ich podstawie.

Inną ważną kwestią była możliwość jednoczesnego dostępu każdego z autorów do treści udostępnia- nych przez innych użytkowników. Ważne było również, aby treść była publicznie dostępna i dlatego każdy, kto był zarejestrowanym użytkownikiem, bez względu na swój wkład badawczy, mógł skorzystać z dostarczonych informacji.

W przypadku uruchamiania narzędzi, które miały analizować zbiory wyników dla poszczególnych modeli pod względem statystycznym, istotna była uniwersalna metoda nadawania znaczników etykie- tujących wyniki. Ważne było również, czy w ramach wynikowego narzędzia powinna istnieć możliwość zamieszczania komentarzy pod wynikami badań, które umożliwiłyby dyskusję i poddawanie wzajemnej krytyce i ocenie.

Ostatnim ważnym elementem związanym z budowaniem rozwiązania opartego na idei Crowd- sourcingu była kwestia nadzoru i administracji wprowadzonymi danymi. Możliwość wprowadzania da- nych bez nadzoru i procesu weryfikacji niesie ryzyko popełnienia błędów, powielania znaczników i ety- kiet, co później utrudnia użytkownikom analizę wprowadzonych wyników lub w przypadku maszyn przetwarzających wprowadzone informacje, istnieje ryzyko nieprawidłowego katalogowania i indekso- wania treści. Dlatego ważne jest, aby móc nadzorować, czy wprowadzana treść jest zgodna z pewnymi założeniami, czy wyniki dla tych samych przypadków mają prawidłowe etykiety, które pozwolą na po- równanie wyników tego samego typu ze sobą, a na koniec czy wszystkie wprowadzone informacje są w odpowiedniej postaci, aby platforma była czytelna i wartościowa. Istnieje ryzyko, że treść wprowa-

(27)

dzona bez zachowania określonej postaci od początku działania rozwiązania opartego na idei crowd- sourcingu zostanie doprowadzona przez użytkowników do stanu, w którym nie będzie możliwe sku- teczne uzyskanie wartości z wprowadzonych informacji.

Podstawowym celem bazy wirusów było umożliwienie naukowcom dzielenia się wynikami ba- dań. Projekt obejmował wykorzystanie bazy w obszarze związanym z eksperymentami badawczymi przeprowadzonymi w ramach prac nad ModeLang. Podstawowym obszarem zastosowania bazy wiru- sów jest wirusologia. W kontekście języka ModeLang możliwe jest przechowywanie w niej opracowa- nych w nim modeli oraz ich ewaluacja w oparciu o standardowe benchmarki. Modele te mogą być następnie wykorzystane w trakcie prac biologicznych lub medycznych w zakresie wirusologii lub im- munologii. Przykładowo eksperymenty zaprojektowane w celu potwierdzenia poprawnego działania języka ModeLang i konwersji ModeLang do formatu SBML przeprowadzono na podstawie przykładów z różnych systemów biologicznych. Dziedziną, która była pierwotną motywacją do pracy nad ModeLang była wirusologia. Dlatego modele związane z zakażeniami wirusowymi HCV i HIV były znaczącym ele- mentem badań eksperymentalnych. Dlatego zebrane informacje mogłyby zostać bezpośrednio wyko- rzystane do uzupełnienia bazy danych i porównania wyników eksperymentów.

(28)

Abstract

Modelling of the dynamical systems in biology is strongly developing branch of modern science.

Since it is interdisciplinary it connects various scientific areas like mathematics, computer science and biology. Mathematicians and computer scientists are in charge of processing huge amounts of data and finding patterns in it. On the other hand, biology is providing scientific challenges, data and allows to verify empirically designed theoretical models. Unfortunately, during scientific collaboration where biologists are in chargé of analysis of biological processes, which are supposed to be reflected in theo- retical models and mathematicians and computer scientists are supposed to build structures, which should describe such processes, very often communication problem arise.

Biologists are unable to efficiently analyse formal descriptions of mathematical models. Their key ability is the understanding of the biological processes. On the other hand, mathematicians and computer scientists does not have sufficient biological knowledge which would allow to properly in- terpret nonformal descriptions in mathematical form. Moreover, mathematicians and computer sci- entists does not know what kind of knowledge should additionally be incorporated in created models.

Those problems results in continuous delay of modelling process.

Solving the above problems is possible, among others, by developing an innovative modelling methodology. This dissertation describes the search for the most optimal approach to this problem.

However, several goals had to be achieved to develop such a methodology. The most important of them are:

1. Classification of available modelling methods and formats of dynamical systems in bioinfor- matics in order to analyse potential of development new modelling techniques (Chapter 4).

2. Design and development of new language that allows to model dynamical systems, in order to eliminate disadvantages of current solutions and utilize modern techniques to increase effec- tiveness of modelling process (Chapter 5).

3. Experimental verification of the functionalities which are provided by newly proposed lan- guage in modelling process of dynamical systems in bioinformatics (Chapter 6).

4. Building and verifying environment allowing to analyse and translation of the new language descriptions into SBML, which is popular language in bioinformatics and biochemistry software (Chapter 7).

5. Building environment that allows to store and share available models of biological systems and to share results of scientific experiments (Chapter 8).

Next paragraphs describe summary of the chapters describing results of the goals listed and described above.

Classification of modelling methods of dynamical systems in bioinformatics

Research of the present state of knowledge led to classification that divided the key types of available methods into three classes. Next three paragraphs describes identified classes.

(29)

Languages with hidden structure are first class of formats that was identified in the process of research. The aim of those formats is to maximize facilitation of processing the data by computer sys- tems. Typical usage for those formats is to utilize them as a storage type for software with graphical user interface. Software that belong to this class of formats is currently most popular and only for SBML format there are more than 250 tools (Prejzendanc et al. 2016). Popularity of the SBML formats causes that plenty of tools incorporates features allowing importing from SBML and exporting to SBML format. SBML has been designed to allow exchange of information in systems biology and related areas of science. There are many examples of tools using SBML including Systems Biology Workbench with NOM module, which was implemented to utilize exchange of information between various compo- nents (Bergmann and Sauro 2006). Another example is SYCAMORE (Weidemann et al. 2008), which has been designed to support creation of the models. There is also program called CellDesigner (Fu- nahashi et al. 2003), which allows to edit models presented on graphical user interface in the form of diagrams representing genetic and biochemical networks models. Another examples are SBML ODE Solver (Machné et al. 2006) and Systems Biology Simulation Core Library (Keller et al. 2013). Formats connected with COMBINE initiative are also popular. They are supported by COMBINE community.

Examples of such formats consists of languages like SBGN, SED-ML, CellM or BioPAX (Hucka et al. 2015).

There are also programs that use dedicated languages but allows import from SBML and export to SBML features in order to integrate with popular community. Examples of such programs consists of CopasiML (Hoops et al. 2006), designed for COPASI simulator, BNX utilized by BiologicalNetworks (Baitaluk et al. 2006) or CelleratorML (Shapiro et al. 2003), which is application of MathML for biolog- ical modelling.

Second class, the specialized programming languages are designed for realisation dedicated technological needs. Most often these are languages dedicated for specific modelling software that were created to fulfil specific needs, which could not be achieved by general formats. This leads to original characteristics of specialized programming languages. First of all, they need special training for the users in order to start using them because narrow usage of such formats makes them unknown for wide range of users. Exception comes with languages that are used for various areas, for which special libraries has been created. This solution allows to use common knowledge and base of well-known and verified standard. Second of all specialized programming languages are designed for specific software.

It means these languages are edited and supported by the software that is using them for internal purposes. Third of all specialized programming languages are designed for specific purposes. Example of such is modelling of dynamical systems In biology. It is popular to use kinetic law descriptions to define reactions between agents in such systems. This means that creation of the language, that will allow to intuitively describe reactions known from kinetic laws can simplify writing, reading and inter- pretation of such models. An example of specialized programming languages is Jarnac (Bergmann and Sauro 2006), which is modelling language for metabolic systems, which has been created based on BASIC. Another example is Antimony, which has been created based on Jarnac. For JSim (Raymond et al. 2003) simulator there has been created scripting language named Mathematical Model Language.

PySCeS (Olivier et al. 2005) is Python-based simulator for cell systems which has its own language named Model Description Language. There is also simulation framework called NetLogo (Tisue and Wilensky 2004), which has its own built-in language based on Logo, which can be used to define more complex simulations. There are also frameworks, which allows to create models based on known im- perative languages. Examples of such are RePast (Recursive Porous Agent Simulation Toolkit) (Collier 2001), which is based on Java. Another examples of formal languages are SPiM (Stochastic Pi Machine language) (Phillips and Cardelli 2007), Bio-PEPA (Ciocchetta and Hillston 2009), which is framework for modelling and analysis of biological systems, Cyto-Sim (Sedwards and Mazza 2007), which is language

(30)

rules, that is used for protein and interaction networks modelling. There are also possibilities to define systems of differential equations, which are often used in bioinformatics. They consists systems like Berkley Madonna (Macey et al. 2000), MathWorks MATLAB, and also open source alternative for them, which is Octave (Leros et al. 2010). Moreover there is VCell (Loew and Schaff 2001) which allows to describes systems of differentia equations directly instead of doing that by graphical user interface.

There is also good example of specialized programming language called RePast, which is framework that allows to script models using imperative programming. It has been utilized in Yang’s work (Yang Yong et al. 2007) to simulate transmission of infectious disease in the population. For this purpose, researchers used an individual space–time activity-based model. It was possible due to integration RePast with Java Topology Suite. Key benefit of specialized programming language is possibility to edit model without the need to utilize additional software. Direct control over the model can be very help- ful, because modifying settings by hand can be much faster and gives bigger control over the final effect. For simple text formats it is definitely easier to implement scripts to automatically test the changes in the model. This class of formats is definitely less intuitive than formats with hidden struc- ture which are always managed by graphical user interface. Moreover, manual editing carries the risk of errors which can cause programs with model structure, which can lead to read errors or incorrect simulations. It is also important that using specialized programming languages for managing models consisting thousands of interactions without possibility to use graphical user interface can be tough.

Controlled natural languages are subset of natural languages which are subject of certain rules.

Their design is providing additional constraints for unequivocal interpretation by computer systems. It is new approach in bioinformatics. Modelling with Controlled Natural Languages is writing text based on natural language subset, most often English. This approach is definitely more flexible than in previ- ous classes listed above, because rules of subset of natural language are definitely far less restrictive than rules of computer formats. When the model is prepared it can be interpreted by dedicated soft- ware. To understand model description, software must contain specialized knowledge base about terms used in descriptions of the model. It is most often defined in form of ontology, which is formal knowledge representation. Most of existing controlled natural languages can be used for preparation of bioinformatical models. The only restriction is to retrieve or prepare proper ontologies. Existing so- lutions include ACE (Fuchs and Schwitter 1996), which highly constrains usage of English language and already has its bioinformatics application examples. Another controlled natural language is PENG (White and Schwitter 2009), which constraints are even wider than ACE. Another example is CPL (Clark et al. 2010), which is less restrictive and is using various heuristic methods to support parsing process.

Finally, ModeLang (Wasik et al. 2013) described in this dissertation is a new approach in the group of controlled natural languages. The most important advantages of controlled natural languages are their flexibility and ability to describe the model using various words and various syntax. As a result, expert which is describing the model has capabilities to select words and syntax and can Focus to describe important characteristics, instead of focusing on understanding code structure and rules which are defining the language. It is also considered as their disadvantage, because it can cause the situation where it will be harder to identify similarities between two models. Another important advantage is facilitation of cooperation between specialists in different science areas. Controlled natural languages are constraint to secure proper identification of the rules by computer systems. On the other hand, rules are written in subset of natural language, which causes that these are intuitive and simple to interpret. Another advantage of controlled natural languages is their ability for self-documentation.

This feature of code is highly appreciated by software engineers and is one of key features of controlled natural languages. Reading the model written using controlled natural language scientists can easily

(31)

understand the content which makes models more accessible for users, which are not software engi- neers. Far less comments and documenting are necessary to describe the code, because users can find its description in natural language subset.

Design and development of ModeLang language

ModeLang was created to solve communication problems in interdisciplinary teams and at the same time as a tool for simulating dynamic systems. The emergence of the language was associated with the study of available tools to identify whether there are solutions that would be able to fulfil the role of a tool that allows intuitive modelling and does not require a lot of time to acquire the necessary knowledge, whether in the field of mathematical modelling or in the field of IT (for example program- ming).

The main assumption during the design of the new language was to propose a solution that would be completely intuitive, so that the time cost that must be borne by scientists learning new modelling solutions was reduced as much as possible. From this characteristic of the ModeLang lan- guage resulted another, namely it should be as flexible as possible and as close to the natural language as possible. To this end, a number of functionalities described in this chapter have been proposed. First of all, all descriptions of behaviours and interactions were written in the form of rules that are equiv- alent to sentences known from natural languages such as, for example, English. All descriptions can be built in ModeLang in both active and passive voice, so that the naturalness of building descriptions is not limited. Another element is detection of standard sentence features that should be ignored, for example ending a sentence with a dot does not affect the recognition of the last word that was used in the description of the rule.

ModeLang is a controlled natural language. This means that its entry is a subset of natural language. It consists of entries that can be clearly interpreted on the basis of syntax and vocabulary.

There is also a declarative part of the language, which is a record of the parameter value declaration, similar to similar programming records. It is possible to build a model without a declarative part, but it is not possible to perform calculations and simulations without providing later the values of the pa- rameters on the basis of which the calculations should be made. The part of the language in which the models in the form of controlled natural language are described consists of rules.

The declarative part allows to assign values. The language elements that can be defined are the initial values of the population size and the parameters. The parameters can specify the reaction speed, re- action delay time, conditional reaction parameter and environmental capacity. All declarations can be defined by assigning them a value. For parameters, it is also possible to indicate ranges of values in order to enable their later estimation based on experimental data.

The part describing the model allows to determine what interactions occur between agents in the described model. Language rules allow to save models using both active and passive voice. In ad- dition, they allow to end sentences with any number of suffixes, i.e. the part of the sentence that is provided at the end of the rule specifying the speed of reaction, conditioning the performance of the reaction depending on the state, and specifying the delay in performing the reaction.

ModeLang currently consists of ten rules, including two different in nature. Rule 6 defines the environmental capacity. Rule 7 defines the potential state of the agent. In addition to rules 6 and 7, the other rules specify the interactions that occur between the agents of this model. The last two rules

(32)

Each rule that describes the interaction between agents requires that the user determine the speed of response. It cannot be said that, for example, one agent preys on another if the scale of such behaviour is not limited, because calculations will not be possible. Therefore, one of the three types of expression ending the rule are definitions of the reaction speed. Some reactions, apart from the speed of execution, are also characterized by the dependence of execution on the state in which the system is currently. In ModeLang it is possible to save such reactions in the form of condition-specific rules. There are also reactions that are delayed. Describing reactions with a delay in the ModeLang language is possible by using the ModeLang rule suffix, which is responsible for determining the delay in performing the reactions described in a given rule.

The full list of rules supported by ModeLang is as follows:

• Rule 1 can be used to describe the creation of a new agent.

• Rule 2 can be used to describe the destruction of an agent by another agent.

• Rule 3 describes the conversion of an agent into another agent.

• Rule 4 describes the agent's death.

• Rule 5 describes the joining of two different agents into a third.

• Rule 6 describes the growth limits for the units of the indicated agent or agents together in both the minimum and maximum numbers.

• Rule 7 describes the potential state that an agent may be in.

• Rule 8 can be used when agents are delivered to the modelled system from outside or arise in the environment without the need to interact with other agents.

• Rule 9 was created to allow interaction modelling for any set of reactants and reaction prod- ucts, i.e. agents that react and agents that we receive as a consequence of the reaction (hence the supportive name of the creative N:N rule).

• Rule 10 is a development of rule 9 for destructive uses. It is possible to model using the agent destruction rule in any combination, by the indicated set of agents that perform destruction.

In addition, there are several types of expressions that can be used to supplement the model defini- tion:

• Reaction rate,

• Condition dependent rules,

• Environmental capacity,

• Delayed reactions.

Experimental verification of ModeLang language

After designing the ModeLang language and implementing the experimental environment, it became possible to verify the correctness of the language and the models saved in it. The environment was built in the form of a web application, which allowed ModeLang language verification from any computer via a web browser. It has also been integrated with external tools by enabling the conversion of ModeLang to SBML. In addition, a model converter was created to present a system of differential equations, which allows to verify that the introduced models are compatible with their known mathe- matical representation, which is developed for most popular models of system biology. After creating the environment, it was necessary to build an appropriate set of test models that would allow testing the solution. The test model is understood here as a verbal description of the modelled system and its proper mathematical model used to verify the results obtained in the ModeLang language. To this end, two classifications of models were created: topic-based and complexity-based. The first allows to verify

(33)

one of the first assumptions of ModeLang like the intuitiveness and universality of the language. The second one was created to verify whether mathematical notations at different levels of complexity could be transferred to the current form of the language, or whether it would be necessary to extend it. Another important element of verification was a set of simple and complicated models to dose the level of difficulty to users who participated in the experiment and in case of failure to be able to deter- mine whether the problem is related to the solution itself or whether more complicated models were difficult.

First, an experiment was carried out, whose purpose was to verify the basic assumptions and capabilities associated with saving ModeLang language models to verify the capabilities of the lan- guage itself. The result of these activities was a series of suggestions for improvement and changes, which were then implemented and prepared for the next experiment. The second experiment was to verify the scientific correctness of the models built. Elements such as the preview of the form of sys- tems of differential equations and conversion to the SBML language were used in it. The transformed models were analysed in CellDesigner, where it was also possible to simulate them. As a result, a com- plete process was created, which included experimental verification from the model construction stage to its final verification, which allowed the language to be tested and the assumptions associated with it. The first experiment was to verify the possibility of modelling various dynamic systems using the ModeLang language. During the experiment, many comments about ModeLang were collected.

One of the comments was related to the issue of vocabulary and examples of concepts that were not correctly interpreted. Other comments concerned the scope of language definition possibilities. All collected comments were discussed. Then further steps were taken to eliminate the problems that were detected during the first experiment. After making the appropriate corrections, it was possible to proceed to the second experiment.

Building a recording in ModeLang is an important part of the modelling process. The whole process consists of several phases. Creating a recording in ModeLang allows to automate the transition between the phase in which the biological model is prepared and the phase of the mathematical model. This is an important transition because the biological model is a description of real phenomena and is based on empirical observations. Therefore, it is built by field specialists, for example biologists.

The mathematical model is a record based on which it is possible to perform calculations. It requires further development by supplementing it with parameter values and agent population sizes, however, it is a solid basis for experimental computational work. Building the ModeLang language was aimed at solving communication problems between specialists preparing the biological model and the mathe- matical model. Thus, a key aspect of verifying the experimental correctness of ModeLang was to ex- amine whether the transition between biological and mathematical models is done correctly. Due to the fact that this is an interdisciplinary work, the verification was carried out using specialists in the field who are responsible for building biological models on a daily basis. Based on their knowledge of the biological phenomena, it was possible to verify the correctness of the model that should reflect phenomena observable in nature. In addition, the models that were used were known and scientifically verified, so their mathematical form was known before the experiment began. This allowed to verify the mathematical notation obtained as a result of the tools built for the experimental verification of the ModeLang language environment.

After verifying the correctness of the mathematical form, which was obtained during the sec- ond experiment, it was possible to focus on the next step, which is building a statistical model. The correctness of reflection of phenomena is not only based on the use of appropriate mathematical no- tations, but the calculation parameters used are also important, which can significantly affect the

Cytaty

Powiązane dokumenty

Celem przedstawionego badania jest sprawdzenie, czy dołączenie wybranych indeksów Google Trends do autoregresyjnego modelu stopy bezrobocia rejestrowanego poprawia trafność

Przedstawiono model matematyczny i oprogramowanie do analizy stanów dyna- micznych trójfazowego silnika indukcyjnego. Parametry schematu zastępczego są wy- znaczane

Opierają się one w głównej mierze na podstawowych wskaźnikach systemów produkcyjnych takich jak: czas oczekiwania zleceń w kolejkach przed stanowiskami

Przy każdym z podanych niżej przykładów wpisz literę „P”, jeśli jest on prawdziwy, lub literę „F”, jeśli jest fałszywy. a) Filippo Buonaccorsi znany pod przydomkiem

W archidiecezji katowickiej, podobnie jak w innych diecezjach, istnieje wiele programów przygotowania do małżeństwa, nauki przedmałżeńskie w różnej formie odbywają się

Oczywistym jest fakt, ze nie istnieją idealne modele numeryczne złożonych systemów: Essentially, all models are wrong, but some are useful (G. Box, 1976) Zaproponowane

względu na dużą liczbę aktywnych abonentów nie posiada wolnych częstotliwości..  Rozwiązanie problemu

Ce lem prze prow - adz onych obli czeñ by³a pro gnoza za wodn ienia zwa³owis ka nadk³adu i jego bezp oœredniego otoc zenia dla pro jekt owa - nego sta nu for mow ania