cs55
Původní práce
Vytváření a sdílení fyziologických modelů
Jan Šilar1,2 , Jiří Kofránek1
1
Ústav patologické fyziologie, Laboratoř biokybernetiky a počítačové podpory výuky, 1. LF UK v Praze, Česká republika
2
3. interní klinika, 1. LF UK v Praze, Česká republika
Souhrn
Cíle: Matematické modelování v medicíně (fyziologii) se
objevuje ve výzkumu, klinické praxi i výuce. Pro implementaci modelů existuje řada vhodných jazyků a modelovacích
nástrojů. Pro lepší názornost při používání modelů při výuce vznikají grafické simulátory. Je třeba, aby spolu mohli
tvůrci modelů lépe spolupracovat. Proto by mělo být možné
propojit modely napsané v různých jazycích. Výukové simulátory musí být pro studenty i vyučující dobře dostupné.
Nutnost instalace aplikace může být překážkou. Je potřeba
zlepšit možnosti sdílení modelů napsaných v jazyce Modelica.
Metody: Standardizované rozhraní FMI umožňuje propojení modelů napsaných v rozdílných jazycích. Modely využívané ve výuce jsou vytvářeny na platformě .NET, která
umožňuje jejich spouštění v prohlížeči. Vzniká editor modelů v jazyce Modelica spustitelný v prohlížeči. Bude propojený s webovým úložištěm modelů.
Výsledky: Byl implementován simulační runtime, solver
a simulační centrum v jazycích .NET. Jsou využívány ve
webových výukových simulátorech. Budou využity také ve
spojení se vznikajícím webovým editorem modelů.
Ing. Jan Šilar
Závěr: Nové nástroje umožní snadněji vytvářet a propojovat modely a podpoří spolupráci mezi jednotlivými pracovišti.
Klíčová slova
Model, simulace, fyziologie, diferenciální rovnice, solver,
doménově specifický jazyk, blokově orientovaný / akauzální
jazyk, simulátor, .NET, výuka, webový repositář modelů
Kontakt:
Ing. Jan Šilar
Ústav patologické fyziologie, 1. LF UK v Praze
Adresa: U Nemocnice 5, 128 53, Praha 2
E–mail: [email protected]
1
Úvod
Mnoho vědců a lékařů po celém světě se zabývá tvorbou fyziologických modelů. Modeluje se zejména v oborech jako je genetika, proteomika, farmakokinetika, fyziologie orgánových systémů a další.
Je důležité, aby mohli vědci dobře spolupracovat a předávat si výsledky své práce. Pro sdílení modelů však nestačí jejich popisy v odborných publikacích. V článku většinou není prostor pro úplný detailní popis. Je lepší, aby
si vědci předávali hotové implementace modelů spustitelné
v počítači. Pro implementaci je potřeba zvolit vhodný jazyk, který dovede příslušné matematické vztahy výstižně
a pro člověka srozumitelně vyjádřit. Jde o to, aby bylo
c
2011
EuroMISE s.r.o.
EJBI 2011; 7(1):55–58
zasláno: 15. září 2011
přijato: 8. listopadu 2011
publikováno: 20. listopadu 2011
možné i rozsáhlému a komplikovanému modelu pokud
možno snadno porozumět.
2
Jazyky a nástroje
Z pohledu matematiky mohou být modely tvořeny algebraickými rovnicemi, obyčejnými diferenciálními
rovnicemi (ODE), parciálními diferenciálními rovnicemi
(PDE), dále existují stochastické modely, agentové modely, neuronové sítě a další. Uvedené možnosti mohou
být také kombinovány. Dále se budeme zabývat modely,
které jsou založeny na soustavách obyčejných diferenciálních a algebraických rovnic (DAE). Pro implementaci
těchto modelů existuje několik vhodných jazyků.
EJBI – Ročník 7 (2011), číslo 1
cs56
Šilar, Kofránek – Vytváření a sdílení fyziologických modelů
Nejstarší, i když stále občas používaný, přístup je napsání simulačního programu v některém klasickém programovacím jazyce (nejčastěji Fortran nebo C), který v sobě
kombinuje model a numerický solver. Tato metoda umožňuje napsat solver „na míru“ pro konkrétní model. Je
možné použít pro jednotlivé rovnice modelu různé numerické metody, různě dlouhé časové kroky atp. Simulace
pak může být velice rychlá a přesná. Tento přístup byl
výhodný v době, kdy měly počítače výrazně nižší výpočetní výkon než dnes. Dříve, když neexistovaly speciální
simulační nástroje a jazyky, byl vlastně nutností. Nevýhodou je, že model a solver splývají v jednom kódu. Při
psaní každého nového modelu je potřeba implementovat
numerické metody, které budou rovnice řešit. To je velice
pracné a vyžaduje to znalosti z numerické matematiky.
Hlavní nevýhodou je nepřehlednost. Rovnice modelu se
ztrácí v množství jiného kódu.
Vhodnější je použít některý doménově specifický jazyk
(tj. jazyk úzce zaměřený na konkrétní problematiku) pro
popis DAE modelů. Tyto jazyky používají buď blokově
orientovaný nebo akauzální přístup nebo kombinaci obou
[2, 5].
Blokově orientované jazyky (také signálové nebo
kauzální) popisují model pomocí funkčních bloků. Tyto
bloky mají vstupy a výstupy pomocí kterých jsou vzájemně propojeny. Jednotlivé bloky představují například
běžné matematické operace jako je sčítání, násobení,
integrace nebo reprezentují různé matematické funkce
atd. Signál pak prochází přes bloky, které jej modifikují.
V tomto případě jsou již rovnice zřetelnější. Funkční bloky
představují rovnice, spoje mezi bloky pak proměnné.
Pokud se v blokově orientovaném modelu objeví
zpětná vazba, tj. na vstup bloku je přiveden signál z výstupu, který na tomto vstupu závisí, vzniká algebraická
smyčka.
Obrázek 1: Algebraická smyčka.
Některé algebraické smyčky dokáží simulační nástroje
rozřešit, řešení některých smyček je ale výpočetně velice
náročné a jiné smyčky řešit vůbec nelze.
Nejznámějším a nejvíce propracovaným blokově orientovaným1 simulačním jazykem, který je také používaný
ve fyziologii [3], je Simulink produkt firmy Mathworks2 .
Nevýhodou je zde samozřejmě závislost na komerčním
1 V současné době se začínají objevovat akauzální knihovny Simulinku, např. Simscape.
2 http://www.mathworks.com/products/simulink/
3 http://www.sbml.org
4 http://www.cellml.org
EJBI – Ročník 7 (2011), číslo 1
nástroji Simulink/Matlab. Příkladem dalšího signálového
komerčního modelovacího nástroje používaného mimo jiné
ve fyziologii je LabView [7, 4].
Akauzální jazyky pracují s rovnicemi. Na rozdíl od blokově orientovaného přístupu není potřeba zadávat, která
proměnná se počítá, z které rovnice. Rovnice tvoří soustavu, která je řešena najednou, což nejlépe odpovídá matematickému pohledu. Rovnice lze z implementovaného
modelu zcela jasně vyčíst. Následující jazyky se již blíží
spíše akauzálnímu přístupu.
Existuje několik otevřených jazyků zaměřených přímo
na simulace v biologii. Prvním je jazyk SBML3 [1] (Systems Biology Markup Language). Jde o značkovací jazyk
využívající XML. Pro zápis rovnic se používá MathML.
Vytvářené modely je možné skládat z komponent (submodelů), což zvyšuje přehlednost. Další výhodou je možnost
využití jedné komponenty v několika různých modelech.
Existuje řada nástrojů pro vytváření modelů a simulování
v tomto jazyce. Jazyk SBML je určený zejména pro modelování chemických reakcí (genetika, proteomika, chemické
reakce enzymů, metabolické dráhy). Další velice podobný
jazyk, zaměřený hlavně na buněčné simulace, je CellML4 .
Je vyvíjen na universitě v Aucklandu. Součástí projektu
CellML je úložiště5 [10], kde sdílejí tvůrci své modely.
JSim [9] je modelovací nástroj, který vznikl v rámci
projektu Physiome Project6 . Pro popis modelů používá
svůj vlastní textový jazyk MML (Mathematical Modeling
Language). Nástroj dovede dobře spolupracovat také s jazyky SBML a CellML. V JSim je možné řešit modely založené na ODE, PDE i diskrétních7 rovnicích. JSim běží částečně na klientském počítači ve webovém prohlížeči a částečně na serveru. Součástí projektu Physiome je webové
úložiště modelů.
Modelica je akauzální, objektově orientovaný jazyk pro
modelování komplexních fyzikálních systémů. Za jeho vývojem stojí mezinárodní organizace Modelica Association.
Jazyk umožňuje modelovat hybridní systémy popsané algebraickými, diferenciálními a diskrétními rovnicemi. Součástí jazyka jsou knihovny s předdefinovanými bloky, které
modelují nejrůznější fyzikální a technické prvky (např.
elektrické, mechanické a tepelné komponenty, matematické funkce . . . ). Mezi nejznámější komerční modelovací a simulační prostředí patří Dymola a MathModelica.
Mathmodelica umožňuje přímé propojení modelů s integrovaným výpočetním systémem Mathematica.
Nejpoužívanější volné prostředí je OpenModelica, kterou vyvíjí Open Source Modelica Consortium ve spolupráci s Linköping University a dalšími 10 universitami
a 14 firmami. Součástí balíku OpenModelica je celá řada
nástrojů: OMEdit – grafický nástroj pro vytváření modelů, OMC – překladač Modeliky, OMShell – pro simulaci a další práci s modely z příkazové řádky, OMNotebook – pro výuku modeliky (vytváří podobné dokumenty
5 http://models.cellml.org/cellml
6 http://www.physiome.org
7 Diskrétní rovnice se často používají k popisu jevů, při kterých
se mění hodnoty veličin nebo dokonce tvar celých rovnic, v závislosti
na nějakých podmínkách (typicky nerovnicích).
c
2011
EuroMISE s.r.o.
cs57
jako Mathematica.), OMOptim – pro optimalizaci modelů demonstrovaných. Propojenému modelu a grafickému roza další.
hraní říkáme simulátor.
Model je možné v OMEditu buď napsat od základu
textově, nebo použít a pospojovat bloky z knihoven Modeliky, nebo vytvořit bloky vlastní. Hotový model je přeložen do C a dále je přeložen společně s runtimem a numerickým solverem do spustitelné aplikace. Vše probíhá
samozřejmě automaticky. Součástí OMEditu je simulační
centrum, které umožňuje model spouštět, vykreslovat výsledky do grafů atp. OMEdit umí dokonce simulovat interaktivně, tzn. umožňuje uživateli měnit za běhu hodnoty
parametrů modelu a rovnou sledovat vliv těchto změn na
řešení.
3
FMI
Jak je vidět, používá se mnoho různých simulačních
jazyků a nástrojů. Často je to účelné, protože pro popis
různých problémů mohou být některé jazyky vhodnější
a jiné méně. Aby mohly různé simulační nástroje a jazyky mezi sebou spolupracovat, bylo navrženo standardizované rozhraní FMI8 (Functional Mock-up Interface).
Rozhraní umožňuje vytvoření modelu v jednom nástroji
a jeho spouštění v jiném. Umožňuje také kosimulaci, tj.
vytvoření modelu propojením dvou submodelů napsaných
v různých simulačních jazycích.
FMI definuje rozhraní v jazyce C, které je implementováno funkcemi reprezentujícími rovnice modelu. Implementaci rozhraní konkrétním modelem říkáme FMU
(Functional Mock-up Unit). Funkce FMU volá v každém
kroku výpočtu numerický solver. Modely jsou distribuovány v archivu zip, který obsahuje kromě souborů FMU
navíc standardizovaný XML soubor s popisem modelu.
Soubory modelu (FMU) mohou být v archivu buď ve zdrojovém kódu v C, nebo rovnou přeloženy do DLL.
FMI podporuje mnoho simulačních nástrojů, mezi
nejznámější patří Dymola, Matlab/Simulink, JModelica
a CATIA. Podpora FMI v OpenModelice je ve vývoji.
4
Modely na webu
Jedním z hlavních cílů Laboratoře biokybernetiky
a počítačové podpory výuky na 1. lékařské fakultě University Karlovy je tvorba výukových aplikací pro medicínu [6] založených na fyziologických modelech. Tyto aplikace slouží především medikům, ale je plánováno vyvíjet
v budoucnu také aplikace pro výuku biologie na základních a středních školách. Je vhodné, aby byla reprezentace
modelu maximálně názorná. Popis rovnicemi a reprezentace výsledků v grafech se nehodí. Proto je model doplněn o grafické rozhraní, jenž znázorňuje jednotlivé části
modelu (většinou orgány), jejich vzájemné působení a aktuální stav, viz. Obr. 2. Studenti tak mnohem lépe pochopí
fyziologický význam modelu a podstatu jevů na modelu
8 http://www.modelisar.com/
c
2011
EuroMISE s.r.o.
Obrázek 2: Jednoduchý simulátor velkého oběhu.
Pro implementaci modelů je v laboratoři využíván jazyk Modelica. Aby nebyly studentům a vyučujícím kladeny žádné překážky ve využívání simulátorů, jsou vytvářeny na platformě .NET, která umožňuje jejich spouštění
přímo v internetovém prohlížeči [8] pomocí pluginu Silverlight, který je v současné době již součástí Windows9 .
Aby to bylo možné, byl rozšířen OMC (Open modelica
compiler) tak, že umožňuje překládat modely také do jazyka C# a byl implementován runtime a numerický solver
v jazyce F#. C# je podporován Silverlightem přímo. Pro
podporu F# je potřeba doinstalovat F# runtime. Pak již
všechny modely běží přímo v prohlížeči bez nutnosti dalších instalací.
Dlouhodobým plánem laboratoře je vytvoření sofistikovaného webového repositáře fyziologických modelů. Aby
bylo možné řešit libovolný model repositáře přímo ve
webovém prohlížeči, bylo vytvořeno simulační centrum.
Tato aplikace umožňuje uživateli nastavit parametry a počáteční podmínky modelu a spustit výpočet. V průběhu
výpočtu jsou průběžně vykreslovány hodnoty zadaných
veličin do grafu. Dokonce je možné během simulace interaktivně měnit parametry modelu. Dále bude vytvořen
webový editor jazyka Modelica. Implementace Modelica
překladače v jazycích .NET by byla velice pracná, proto
bude překlad probíhat na straně serveru.
9 Pro
Linux a Mac OS existuje opensource plugin Moonlight.
EJBI – Ročník 7 (2011), číslo 1
cs58
Šilar, Kofránek – Vytváření a sdílení fyziologických modelů
Tento simulační webový nástroj bude přímo propojený
s úložištěm modelů, což umožní komukoli modely v úložišti snadno spouštět, modifikovat nebo vytvářet modely
nové a úložiště tak rozšiřovat.
5
Závěr
Existuje řada jazyků vhodných pro popis fyziologických modelů. Některé z nich jsou orientované přímo na
simulace v biologii a medicíně. Některé jazyky a simulační
nástroje mezi sebou dovedou spolupracovat. Stále více modelovacích nástrojů podporuje rozhraní FMI, které tuto
spolupráci umožňuje. Aby byly simulační nástroje a modely ještě více dostupné, je plánováno vytvoření editoru
modelů v jazyce Modelica spustitelného přímo v internetovém prohlížeči. Editor bude propojen s webovým repositářem modelů. Pro tento účel byl již rozšířen Modelica
compiler, implementován simulační runtime, solver10 a simulační centrum.
[2] P.A. Fritzson. Principles of object-oriented modeling and simulation with Modelica 2.1. IEEE Press, 2004.
[3] Kofránek J. and Velan T. Components for Golem. Simuling
and Control Web utilisation for creation of physiological functions simulator. (Komponenty pro Golema. Využívání simulinku
a control webu při tvorbě simulátoru fyziologických funkcí. In
Objekty 1999, pages 189–204, Praha, 1999. Česká zemědělská
univerzita.
[4] M. E. Jackson and J. W. Gnadt. Numerical simulation of nonlinear feedback model of saccade generation circuit implemented in the labview graphical programming language. Journal
of Neuroscience Methods, 87(2):137–145, 1999.
[5] J. Kofránek, M. Mateják, and Privitzer P. Causal or acausal
modeling: labour for humans or labour for machines. In Technical Conmputing Prague, pages 1–16, 2008.
[6] J. Kofránek, S. Matoušek, J. Rusz, P. Stodulka, P. Privitzer, M.
Matěják, and Tribula M. The atlas of physiology and pathophysiology: web-based multimedia enabled interactive simulations. In Computer Methods and Programs in Biomedicine,
volume 104(2), pages 143–153, 2011.
Poděkování
[7] G. Lipovszki and P. Aradi. Simulating complex system
and processes in labview. Journal of mathematical Sciences,
132:629–636, 2006.
Článek byl podpořen projektem SVV-2011-262514
Univerzity Karlovy v Praze.
[8] P. Privitzer, J. Šilar, M. Tribula, and J. Kofránek. From model
to simulator in a web browser (Od modelu k simulátoru v internetovém prohlížeči). In MEDSOFT, pages 149–169, 2010.
Literatura
[9] G. M. Raymond, E. A. Butterworth, and J. B. Bassingthwaighte. Jsim: Mathematical modeling for organ systems, tissues,
and cells. The FASEB Journal, 21(6):827, 2007.
[1] Anrew Finney, Michael Hucka, Benjamin J. Bornstein, Sarah
M. Keating, Bruce M. Shapiro, Joanne Matthews, Benjamin K.
Kovitz, Maria J. Schilstra, Akira Funahashi, John Doyle, and
Hiroaki Kitano. System Modeling in Cellular Biology, From
Concepts to Nuts and Bolts. The MIT Press, 2006.
10 Na
[10] Tommy Yu, Catherine M. Lloyd, David P. Nickerson, Michael
T. Cooling, Andrew K. Miller, Alan Garny, Jonna R. Terkildsen, James Lawson, Randall D. Britten, Peter J. Hunter, and
Poul M. F. Nielsen. The physiome model repository 2. Bioinformatics, 27(5):743–744, 2011.
implementaci solveru a runtimu se podílí autor.
EJBI – Ročník 7 (2011), číslo 1
c
2011
EuroMISE s.r.o.
Download

Vytváření a sdílení fyziologických modelů