PB050 Modelování a predikce v SB David Šafránek Nástroj BioCHAM zpracováno pro verzi 3.7 14.1.2021 oproti COPASI možnost kvalitativní analýzy kvantitativní analýza rozšířena o možnost ověřování dynamických vlastností analýza robustnosti modelu vzhledem k dané vlastnosti rozšířené možnosti specifikace modelu http://lifeware.inria.fr/biocham3/ Nástroj BioCHAM 3 BioCHAM Model rule-based přístup k zápisu modelu struktura modelu: sada pravidel (vzorce kinetiky nepovinné) specifikace iniciálních podmínek parametry, makra, invarianty, události deklarace molekul a kompartmentalizace temporální vlastnosti BioCHAM Model – Objects object = molecule | molecule::cname (makro)molekula kvalifikace kompartmentem nepovinná bez udání se uvažuje „Default“ molecule = name název molekuly | molecule-molecule komplex (asociativní, komutativní operace) | molecule~{sname,...,sname} modifikace (stav) molekuly | #name genetický materiál (promotor, gen) | ( molecule ) Příklady: S1, S2, E, E-S1, E-S1-S2 (E-S1)~{p1,p2}, E-S1~{p1} TF-#genA Konstrukce pro reprezentaci substrátů - species BioCHAM Model – Objects object_pattern = molecule_pattern | molecule_pattern::simple_pattern variable = ? | $name simple_pattern = name | variable molecule_pattern = simple_pattern | molecule_pattern-molecule_pattern | molecule_pattern~{simple_pattern,...,simple_pattern} | molecule_pattern~variable | gene | ( molecule_pattern ) Příklady: declare MAPK~{{},{p1},{p1,p2}} MAPK~{p1,?} ... MAPK~{p1}, MAPK~{p1,p2} MAPK~$P ... MAPK~{}, MAPK~{p1}, MAPK~{p1,p2} MAPK-? ... jakýkoliv komplex obsahující MAPK lze navíc omezit: MAPK~$P where p2 not in $P. Konstrukce pro reprezentaci substrátů – patterny BioCHAM Model - Rules Konstrukce pro reprezentaci reakcí reaction = kinetics for basic_reaction anotace reakce vzorcem kinetiky | basic_reaction deklarace reakce | name : basic_reaction pojmenování reakce (nepovinné) | name : kinetics for basic_reaction basic_reaction = solution => solution. ireversibilní reakce | solution =[object]=> solution. modulovaná ireversibilní reakce | solution <=> solution. reversibilní reakce | solution <=[object]=> solution. modulovaná reversibilní reakce solution = _ prázdný objekt | object | integer*object stechiometrie | solution + solution komplexace | ( solution ) BioCHAM Model - Rules E + S => E-S. E-S => E + S. E-S => E + P. E + S <=> E-S. E + S => E + P. S => P. P => _. Příklady BioCHAM Model - Rules kinetics = simple_kin deklarace vzorce | (simple_kin , simple_kin) deklarace vzorce pro reversibilní reakci simple_kin = [object] koncentrace objektu | float konstanta | simple_kin 'op' simple_kin alg. výraz ('op' -- *, +, -, /, ^) | MA(simple_kin) makro pro mass action kinetiku | MM(simple_kin, simple_kin) makro pro Michaelis-Menten kinetiku | H(simple_kin, simple_kin, int) makro pro Hillovu kinetiku | (simple_kin) Anotace reakcí matematickými vzorci BioCHAM Model - Rules Příklady: 1) 0.1*[S]*[E] for E + S => E-S. 1*[E-S] for E-S => E + S. 1*[E-S] for E-S => E + P. 2) (0.1*[S]*[E], 1*[E-S]) for E + S <=> E-S. 3) (MA(0.1), MA(1)) for E + S <=> E-S. MA(1) for E-S => E + P. 4) MM(100, 22) for S =[E]=> P. 5) (MA(3.3),MA(0.4)) for MEK~$P + RAF~{p1} <=> MEK~$P-RAF~{p1} where p2 not in $P. BioCHAM Model - Rules makro MA( k ) je expandováno dle zákona mass action: MA( k ) for A + B => C. MA( k ) == k*[A]*[B] MA( k ) for A => B. MA( k ) == k*[A] Reprezentace kinetiky mass action BioCHAM Model - Rules makro MM( V, K ) je expandováno: MM( V, K ) for S => P. MM( V, K ) == V*[S]/(K+[S]) makro H( m, K, n ) je expandováno: H( m, K, n ) for S => P. H( m, K, n ) == m*[S]^n/(K^n + [S]^n) Reprezentace kinetiky Michaelis-Menten a Hillovy kinetiky BioCHAM Model - Rules libovolnou hodnotu v kinetických výrazech lze parameterizovat definice parametru: parameter( name, float ). Příklad: parameter( k, 0.1 ). k*[A]*[B] for A + B => C. Parametrizace modelu BioCHAM Model - Rules přímé nastavení, nastavení kopií: present( object_pattern, value ). present( object_pattern, name ). nastavení na nulu: absent(object_pattern). Iniciální podmínky >load_biocham(enzyme_ma). >numerical_simulation(200). >plot. >load_biocham(enzyme_mm). >numerical_simulation(200). >plot. >list_molecules. >list_initial_state. >list_parameters. >list_rules. BioCHAM Model - Cvičení BioCHAM – Kvantitativní LTL Jako atomické propozice jsou uvažovány logické výrazy nad reálnými hodnotami (koncentracemi), značeno LTL(R). je formule LTL BioCHAM – Kvantitativní LTL Sémantika BioCHAM – Kvantitativní LTL Interpretace nad (konečnými) simulacemi [A]>6 U (X(([A]<=6 & [A]>=5) U (X([A]<5 U (X(([A]>=5 & [A]<=6) U [A]>6)))))) G ([A]>=0 & [A]<=10) F ([A]<5) BioCHAM – Kvantitativní LTL Formální sémantika pro (konečné) simulace Uvažujeme simulaci (trace) T=(s0 ,s1 ,...,sn ). Každý bod si je určen trojicí zahrnující aktuální čas, hodnoty simulovaných proměnných a hodnoty jejich derivací v daném bodě. Definujeme relaci splnitelnosti pro atomické propozice triviálně, dále podle struktury formule: BioCHAM – Kvantitativní LTL Syntax LTL(R) ltl = condition | (ltl) | F(query) finally | G(query) globally | X(query) next | ltlUltl until | !(ltl) negation | ltl & ltl conjunction | ltl | ltl disjunction | ltl xor ltl exclusive or | ltl -> ltl implication | ltl <-> ltl equivalence BioCHAM – Kvantitativní LTL Syntax LTL(R) condition = simple_kin < simple_kin | simple_kin > simple_kin | simple_kin = simple_kin | simple_kin =< simple_kin | simple_kin >= simple_kin BioCHAM – Kvantitativní LTL >load_biocham(enzyme_ma). >numerical_simulation(200). >check_ltl(G(d([P])/dt>=0)). Použití LTL(R) – ověřování vlastnosti vzhledem k simulaci >check_ltl(([E]>=90) U (X(([E]>10 & [E]<90) U (X ([E]>=90))))). >check_ltl((d([E])/dt>=0) U (X((d([E])/dt<0) U (X (d([E])/dt>=0)))). Příkaz check_ltl se provádí na poslední provedené simulaci. BioCHAM – Kvantitativní LTL >check_ltl(G(Time=10 -> [P]<100) & (Time=100 -> [P]>200)). >check_ltl(G(Time>100 -> G([P]>470))). >check_ltl(G((Time>5 & Time<20)->(d([E-S])/dt<1 & d([E-S])/dt>(-1)))). Použití LTL(R) – vlastnosti vyjadřující se k časovému bodu BioCHAM – Šablony formulí Uvažujme formuli Φ = F([A]>7 & F([A]<3)). Z formule lze vytvořit šablonu parametrizací konstant: Φ(x,y)=F([A]>x & F([A]solve(F(G([P]=v))). >solve(F(G([P]>=v))). >solve(G(Time>v -> G([P]>470))). >solve(G(Time>100 -> G([P]>v))). >solve(G((Time>5 & Time(d([E-S])/dt<1 & d([E-S])/dt>(-1)))). >solve(F(Time=v & ([P]>=100 & [P]=<110))). Funkce solve pracuje nad poslední simulací. Použití LTL(R) – valuace parametrizovaných formulí BioCHAM – Šablony formulí Parametrizace konstant v atomických propozicích Platnost šablony Φ(y1 ,y2 )=F([A]>y1 & F([A]y1 & F([A]7 & F([A]<3)) Φ2 = F([A]>12 & F([A]<3)) Φ3 = F([A]>14 & F([A]<3)) Formule Φ1 a Φ2 leží mimo doménu validity, jsou od ní různě (Euklidovsky) vzdáleny. BioCHAM – Kvantitativní LTL Pro danou simulaci T a formuli Φ definujeme stupeň porušení (violation degree): vd(T,Φ)=dist(Φ,DT,Φ(v)) kde v je vektor všech proměnných ve formuli Φ ● hodnota kvantizující, jak daleko je formule od platnosti pro trajektorii T ● pokud vd(T,Φ), formule je splněna Příklad: vd(T,Φ1 )=0, vd(T,Φ2 )=2, vd(T,Φ3 )=4 Použití LTL(R) – stupeň porušení vlastnosti BioCHAM – Kvantitativní LTL Normalizovaná forma, tzv. stupeň splněnosti (satisfaction degree): ● hodnota charakterizující platnost formule pro trajektorii T: TRUE odpovídá hodnotě 1 FALSE je určeno asymptoticky (k 0) Příklad: sd(T,Φ1 )=1, sd(T,Φ2 )=0.3, sd(T,Φ3 )=0.2 Použití LTL(R) – stupeň porušení vlastnosti BioCHAM – Kvantitativní LTL >satisfaction_degree(F(G([P]>=v)),[v],[470],200). ● vrátí hodnotu stupně splněnosti ● příkaz inherentně provádí simulace ● délka simulace určená posl. parametrem (zde 200) ● v tomto případě je hodnota parametru 470 a vlastnost je v modelu enzyme_ma splněna, tedy míra nesplnění bude 1 Použití LTL(R) – míra nesplnění vlastnosti BioCHAM – Kvantitativní LTL >satisfaction_degree(F(G([P]>=v)),[v],[470],200). >satisfaction_degree(F(G([P]>=v)),[v],[100],200). >satisfaction_degree(F(G([P]>=v)),[v],[800],200). Použití LTL(R) – míra nesplnění vlastnosti BioCHAM – Robustnost Uvažujme systém S, vlastnost a, a množinu vychýlení systému P (tzv. množinu perturbací). Např. změna parametrů. Pro charakterizaci faktu, do jaké míry systém zachovává požadovanou vlastnost při uplatnění perturbací, je využíván pojem robustnosti (definovaný H. Kitanem). Robustnost je definována pomocí evaluační funkce Da S popisující míru zachování požadované vlastnosti systému při perturbaci. Uvažujeme-li pro každou perturbaci p z P pravděpodobnost uplatnění prob(p), je robustnost definována jako vážený průměr hodnot evaluační funkce přes množinu perturbací: Míra robustnosti BioCHAM – Robustnost Uvažujme vlastnost Φ=F(G([P]>=v)) požadující ustálení koncentrace produktu [P] na hodnotě alespoň v. Uvažujme vychýlení kinetických parametrů modelu v daném rozsahu (množina perturbací). Jaký vliv má na platnost uvažované vlastnosti Φ? Definujeme pojem robustnosti vlastnosti Φ vůči množině perturbací P jako vážený průměr stupně splněnosti na simulacích získaných pro tyto perturbace (hodnota z [0,1]): Použití LTL(R) – míra robustnosti LTL vlastností BioCHAM – Kvantitativní LTL Použití LTL(R) – absolutní vs. relativní robustnost Shodná robustnost vlastnosti „performance“ dvou různých systémů při téže množině uniformě rozložených perturbací. Uvažovaná robustnost postihuje průměrné chování při uniformě rozložených perturbacích (v rozsahu [-10,10]). Pokud uvažujeme perturbaci 0 (nominální chování), vlastnost obou systémů se liší, ačkoliv robustnosti (obsah pod křivkou) jsou totožné. Z tohoto důvodu hovoříme o absolutní robustnosti. BioCHAM – Kvantitativní LTL Použití LTL(R) – absolutní vs. relativní robustnost Shodná robustnost vlastnosti „performance“ dvou různých systémů při téže množině uniformě rozložených perturbací. Relativní robustnost je definována poměřením absolutní robustnosti vůči hodnotě evaluační funkce nominálního případu (zn. p*): BioCHAM – Kvantitativní LTL Uvažován perturbační model pro vychýlení parametru k1 v obou směrech dle normálního rozložení s koeficientem variance 0.5 okolo původní nastavené hodnoty. Příkaz provede 50 simulací dle různého náhodného samplování k1, délka každé simulace je 200. Vrátí absolutní robustnost danou přímo samplováním k1 nebo relativní robustnost (poměřenou vůči neperturbovanému k1). Absolutní robustnost je počítána jako průměrný stupeň splněnosti vlastnosti přes všechny samplované parametrizace. Relativní robustnost je absolutní robustnost poměřená stupněm splněnosti vlastnosti v neperturbovaném modelu. Použití LTL(R) – míra robustnosti >robustness_normal([k1],[0.5],F(G([P]>=v)),[v],[470],50,200). BioCHAM – Kvantitativní LTL Použití LTL(R) – míra robustnosti >robustness([k1],[0.5],F(G([P]>=v)),[v],[470],50,200). >robustness([k2],[0.5],F(G([P]>=v)),[v],[470],50,200). >robustness([k3],[0.5],F(G([P]>=v)),[v],[470],50,200). >robustness([k1,k2,k3],[0.5,0.5,0.5],F(G([P]>=v)),[v],[470],50,200). >robustness([k1,k2,k3],[0.5,0.5,0.5],F(G([P]>=v)),[v],[100],50,200). >robustness([k1,k2,k3],[0.5,0.5,0.5],F(G([P]>=v)),[v],[800],50,200). Literatura k BioCHAMu Přednáška připravena dle článku: Aurélien Rizk, Grégory Batt, François Fages, Sylvain Soliman: A general computational method for robustness analysis with applications to synthetic gene networks. Bioinformatics 25(12): (2009) Dokumentace viz http://contraintes.inria.fr/BIOCHAM3/DOC/manual.html