Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
Rでシステムバイオロジーantiplastics@Kashiwa.R#9
自己紹介露﨑弘毅(つゆざき こうき)東京理科大学大学院 薬学研究科 D2専門: バイオインフォマティクス、システムバイオロジーチャリで20分徒歩→電車→バスで30分@antiplasticsデスク周り
システムバイオロジーについて
システムバイオロジーとはこの定義だと、バイオインフォマティクスの”オミックス”とか“ネットワーク解析”とかも入ってしまうけど(実際に境界は曖昧だけど)、ここでは数理モデルを構築して、シミュレーションするタイプのものに限定するシステム生物学(シス...
モデルの例リアルタイムPCRCt値Log(RNAコピー数)サンプルコピー数106105104103102101酵素活性測定(ミカエリス・メンテンモデル)1𝑉1[𝑆]−1𝑲𝒎1𝑽𝒎𝒂𝒙𝑲𝒎𝑽𝒎𝒂𝒙これらも言うならば“線形モデル”ただし、現象がいつ...
モデルの例時間CFUロジスティックモデル例: 細菌の増殖曲線時間振れ幅減衰振動例:重りをつけたバネの振動時間人口指数モデル例:人口爆発反応拡散モデル例: チューリングパターン(by Wikipedia)時間mRNAオシレーション(振動)例:サー...
既存の方法論今日はこれだけ・常微分方程式モデル(ODE)・偏微分方程式モデル(PDE)・確率微分方程式モデル・代謝フラックス解析・論理モデル・ハイブリッドモデル…
既存のフレームワーク今日はRでMatlab (Octave)Mathematica (Maxima)CJavaPythonR…CUIGUI CellDesignerCell IllustratorE-cell…(むちゃくちゃいっぱいある)お絵か...
RでODEモデル構築
Step.1 対象とする現象を決める細菌のQuorum Sensinghttp://www.ted.com/talks/bonnie_bassler_on_how_bacteria_communicate.html少数だと何もしないある個体数(...
Step.1 対象とする現象を決める緑膿菌のQuorum Sensing少数だと何もしないある個体数(Quorum)まで増えると毒性因子やバイオフィルムを産生!!:毒性因子→さまざまな疾患:バイオフィルム→抗生物質が効かなくなる
Step.1 対象とする現象を決めるQS SystemI gene R geneI protein(Enzyme)AutoInducerR proteinR / I Complex+
Step.2 モデル化ここではMagnusモデル(Magnus G. Fagerlind, et. .al., 2003)を利用211111kCkARdtdC423222kCkARdtdC635123kCkARdtdC  101...
Step.2 モデル化ポイント1素反応は入ってきたらプラス、出ていったらマイナスとすればいいだけ物質A 物質B 物質C𝑑𝐴dt= − 𝑘1[𝐴]𝑑𝐵dt= 𝑘1 𝐴 − 𝑘2[𝐵]𝑑𝐶dt= 𝑘2[𝐵]k1 k2物質Aの濃度反応(速度)定数、パ...
Step.2 モデル化ポイント2転写制御は、ミカエリス・メンテン式でモデル化する𝑑𝐶𝑑𝑡=𝑉𝑚𝑎𝑥 𝐶Km+𝐶Enzyme GeneTF-CProduct TranscriptionalproductGeneSubstrateCEnzymeSu...
Step.2 モデル化ポイント3膜外の物質の移動は、Fickの拡散方程式でモデル化するSubstanceXSubstanceX細胞内 細胞外𝑑𝑋𝑑𝑡= d(𝑋𝑖𝑛 − 𝑋𝑜𝑢𝑡)𝑑
補足:微分方程式を解く方程式を解く微分方程式を解く解く(𝐴, 𝐵) = (−1, 4)𝐴 + 𝐵 = 3𝐴 + 2𝐵 = 7目的は変数(A, Bの値が欲しい)解く𝑥 = 𝐶 𝑒 𝑡dx𝑑𝑡= 𝑥目的は関数(x=f(t)が欲しい)
補足:解析的に解く vs 数値的に解く微分方程式を解く (解析的に解く)言うならば、「微分方程式入門」みたいな数学の本は、これまで解析的に解ける事が証明できてる式のカタログみたいなものただし、システムバイオロジーの分野では、解析的に解けないモデ...
補足:解析的に解く vs 数値的に解く微分方程式を解く (数値的に解く = 数値計算、シミュレーション)オイラー法(次頁)等近似アルゴリズムを利用タイムステップ( ∆𝑡 )毎に物質の濃度を少しづつ算出𝑑𝑥𝑑𝑡= −𝑝𝑥 + 𝑝𝑦,𝑑𝑦𝑑𝑡= −...
補足:オイラー法𝑑𝑥𝑑𝑡= lim∆𝑡→0𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)∆𝑡計算機は極限という概念が理解できない∆𝑡を実際の小さい数字として使う𝑑𝑥𝑑𝑡≈𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)∆𝑡他にも、ルンゲクッタ法等、数値計算手法は様々𝑓 𝑡 + ...
Step.3 実装(R)# ライブラリ読み込みlibrary(deSolve)# ODEモデルを定義QS <- function(t, x, p) {# パラメーターを定義k1 <- p["k1"]; k2 <- p["k2"]; k3 <- ...
Step.3 実装(R)#####(前頁の続き)###### ODEを定義F1 <- - k3 * x[1] * x[4] + k2 * x[6] - bR1 * x[1] + VR1 * x[6] / (KR1 + x[6]) + R10F2...
Step.4 計算(ODEを解く)# パラメーターの値を設定params <- c(k1=0.0027, k2=0.00486, k3=0.0027, k4=0.00486, k5=0.0027, k6=0.00486,bR1=0.000021...
Step.5 可視化# プロットplot(result)
Step.6 モデルの検証現実と挙動が同じ時間物質濃度実測値と同じ時間物質濃度
Step.7 考察分岐解析どの濃度で低定常状態から高定常状態に移行するか感度解析(ロバスト解析)どの経路が脆弱か(または頑健であるか)時間鍵となる物質Xk物質濃度∆𝑋∆𝑘どのくらいの物質濃度でQSが起きるのかどの経路を阻害すれば効果的にQSを抑...
発展的な話
実際的な問題・システムのどこまでをモデル化するか(簡潔 vs 網羅)・計算ステップをどうするか(計算の精度に直結、桁落ちや計算時間との兼ね合い)・何ステップまで計算するか(長いほど誤差は蓄積される)・初期値、パラメーターをどうするか(実測値が無...
近い学問領域システムバイオロジー最適化問題、数値計算数学的なエリア 物理学的なエリア力学系、非線形、カオス、複雑系生物学的なエリアモデル化、パラメーター計測、検証実験、個体群生態学、薬物動態学工学的なエリアシステム工学、制御工学、電気回路色々な...
Upcoming SlideShare
Loading in …5
×

Rでシステムバイオロジー

4,167 views

Published on

Published in: Technology
  • Be the first to comment

Rでシステムバイオロジー

  1. 1. Rでシステムバイオロジーantiplastics@Kashiwa.R#9
  2. 2. 自己紹介露﨑弘毅(つゆざき こうき)東京理科大学大学院 薬学研究科 D2専門: バイオインフォマティクス、システムバイオロジーチャリで20分徒歩→電車→バスで30分@antiplasticsデスク周り
  3. 3. システムバイオロジーについて
  4. 4. システムバイオロジーとはこの定義だと、バイオインフォマティクスの”オミックス”とか“ネットワーク解析”とかも入ってしまうけど(実際に境界は曖昧だけど)、ここでは数理モデルを構築して、シミュレーションするタイプのものに限定するシステム生物学(システムせいぶつがく、システムバイオロジー、システムズバイオロジー、英語: systems biology)は、システム工学の考え方や解析手法を生物学に導入し、生命現象をシステムとして理解することを目的とする学問分野。(by Wikipedia)ではなくProteinA生命現象 生命現象ProteinAEnzymeBSigmaBgeneA+-システム+-
  5. 5. モデルの例リアルタイムPCRCt値Log(RNAコピー数)サンプルコピー数106105104103102101酵素活性測定(ミカエリス・メンテンモデル)1𝑉1[𝑆]−1𝑲𝒎1𝑽𝒎𝒂𝒙𝑲𝒎𝑽𝒎𝒂𝒙これらも言うならば“線形モデル”ただし、現象がいつも線形であるとは限らないサンプルのCt値
  6. 6. モデルの例時間CFUロジスティックモデル例: 細菌の増殖曲線時間振れ幅減衰振動例:重りをつけたバネの振動時間人口指数モデル例:人口爆発反応拡散モデル例: チューリングパターン(by Wikipedia)時間mRNAオシレーション(振動)例:サーカディアンクロック
  7. 7. 既存の方法論今日はこれだけ・常微分方程式モデル(ODE)・偏微分方程式モデル(PDE)・確率微分方程式モデル・代謝フラックス解析・論理モデル・ハイブリッドモデル…
  8. 8. 既存のフレームワーク今日はRでMatlab (Octave)Mathematica (Maxima)CJavaPythonR…CUIGUI CellDesignerCell IllustratorE-cell…(むちゃくちゃいっぱいある)お絵かきツール黒い画面でカタカタ> R CMD BATCH program.R1 122 213 43…LibSBMLSimhttp://fun.bio.keio.ac.jp/software/libsbmlsim/
  9. 9. RでODEモデル構築
  10. 10. Step.1 対象とする現象を決める細菌のQuorum Sensinghttp://www.ted.com/talks/bonnie_bassler_on_how_bacteria_communicate.html少数だと何もしないある個体数(Quorum)まで増えると蛍光物質を産生!!
  11. 11. Step.1 対象とする現象を決める緑膿菌のQuorum Sensing少数だと何もしないある個体数(Quorum)まで増えると毒性因子やバイオフィルムを産生!!:毒性因子→さまざまな疾患:バイオフィルム→抗生物質が効かなくなる
  12. 12. Step.1 対象とする現象を決めるQS SystemI gene R geneI protein(Enzyme)AutoInducerR proteinR / I Complex+
  13. 13. Step.2 モデル化ここではMagnusモデル(Magnus G. Fagerlind, et. .al., 2003)を利用211111kCkARdtdC423222kCkARdtdC635123kCkARdtdC  10111111211111RCkCVRbkCkARdtdRRRR   2012122263512423222RCkCVRbkCkARkCkARdtdRRRR   011SCkCVSbdtdSsss  11110111111635122111111AAdAKSKCVAbkCkARkCkARdtdAEXSAAA   22220222222423222AAdACKCVAbkCkARdtdAEXAAA LasRCell membraneLasRRhlRRhlRRhlIRsaLLasIlasRlasIrsaLrhlIVirulencegenesrhlRC12 C12C4C4-+++++++8物質23反応31パラメーター
  14. 14. Step.2 モデル化ポイント1素反応は入ってきたらプラス、出ていったらマイナスとすればいいだけ物質A 物質B 物質C𝑑𝐴dt= − 𝑘1[𝐴]𝑑𝐵dt= 𝑘1 𝐴 − 𝑘2[𝐵]𝑑𝐶dt= 𝑘2[𝐵]k1 k2物質Aの濃度反応(速度)定数、パラメータ
  15. 15. Step.2 モデル化ポイント2転写制御は、ミカエリス・メンテン式でモデル化する𝑑𝐶𝑑𝑡=𝑉𝑚𝑎𝑥 𝐶Km+𝐶Enzyme GeneTF-CProduct TranscriptionalproductGeneSubstrateCEnzymeSubstrateC𝑑𝐶𝑑𝑡=𝑉𝑚𝑎𝑥 𝐶Km+𝐶TF-C𝑉𝑚𝑎𝑥 𝑉𝑚𝑎𝑥𝐾𝑚𝐾𝑚
  16. 16. Step.2 モデル化ポイント3膜外の物質の移動は、Fickの拡散方程式でモデル化するSubstanceXSubstanceX細胞内 細胞外𝑑𝑋𝑑𝑡= d(𝑋𝑖𝑛 − 𝑋𝑜𝑢𝑡)𝑑
  17. 17. 補足:微分方程式を解く方程式を解く微分方程式を解く解く(𝐴, 𝐵) = (−1, 4)𝐴 + 𝐵 = 3𝐴 + 2𝐵 = 7目的は変数(A, Bの値が欲しい)解く𝑥 = 𝐶 𝑒 𝑡dx𝑑𝑡= 𝑥目的は関数(x=f(t)が欲しい)
  18. 18. 補足:解析的に解く vs 数値的に解く微分方程式を解く (解析的に解く)言うならば、「微分方程式入門」みたいな数学の本は、これまで解析的に解ける事が証明できてる式のカタログみたいなものただし、システムバイオロジーの分野では、解析的に解けないモデルが殆ど式変形(ラプラス変換、フーリエ変換等数学のテクニックを駆使)−dx𝑑𝑡= 𝑘 𝑎 𝑥0 − 𝑘𝑥𝑥 =𝑘 𝑎 𝐹 𝑥0𝑘 𝑎 − 𝑘(𝑒−𝑘𝑡− 𝑒−𝑘 𝑎 𝑡)
  19. 19. 補足:解析的に解く vs 数値的に解く微分方程式を解く (数値的に解く = 数値計算、シミュレーション)オイラー法(次頁)等近似アルゴリズムを利用タイムステップ( ∆𝑡 )毎に物質の濃度を少しづつ算出𝑑𝑥𝑑𝑡= −𝑝𝑥 + 𝑝𝑦,𝑑𝑦𝑑𝑡= −𝑥𝑧 + 𝑟𝑥 − 𝑦,𝑑𝑧𝑑𝑡= 𝑥𝑦 − 𝑏𝑧𝑥 𝑡+∆𝑡 = 𝑥 𝑡 + −𝑝𝑥 𝑡 + 𝑝𝑦𝑡 ×∆𝑡,𝑦𝑡+∆𝑡 = 𝑦𝑡 + −𝑥 𝑡 𝑧𝑡 + 𝑟𝑥 𝑡 − 𝑦𝑡 ×∆𝑡,𝑧𝑡+∆𝑡 = 𝑧𝑡 + 𝑥 𝑡 𝑦𝑡 + 𝑏𝑧𝑡 ×∆𝑡time x y zt = 0 1 1 1t = 0.001 1.004 0.997 1.052t = 0.002 1.008 0.980 1.204…漸化式初期値を設定
  20. 20. 補足:オイラー法𝑑𝑥𝑑𝑡= lim∆𝑡→0𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)∆𝑡計算機は極限という概念が理解できない∆𝑡を実際の小さい数字として使う𝑑𝑥𝑑𝑡≈𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)∆𝑡他にも、ルンゲクッタ法等、数値計算手法は様々𝑓 𝑡 + ∆𝑡 = 𝑓 𝑡 +𝑑𝑥𝑑𝑡× ∆𝑡例:𝑑𝑥𝑑𝑡= 𝑡 + 2 の場合f(t)は未知だが各ステップ毎に値はわかる∆𝑡 = 0.01とするXの初期値は0とする・t = 0x = 1・t = 0.01x = 1 + ( 0 + 2 ) × 0.01= 1.02・t = 0.02x = 1.02 + ( 0.01 + 2) × 0.01= 1.0401… これを数百~数万回繰り返す
  21. 21. Step.3 実装(R)# ライブラリ読み込みlibrary(deSolve)# ODEモデルを定義QS <- function(t, x, p) {# パラメーターを定義k1 <- p["k1"]; k2 <- p["k2"]; k3 <- p["k3"]; k4 <- p["k4"]; k5 <- p["k5"]k6 <- p["k6"]; bR1 <- p["bR1"]; bR2 <- p["bR2"]; bS <- p["bS"]bA1 <- p["bA1"]; bA2 <- p["bA2"]; R10 <- p["R10"]; R20 <- p["R20"]S0 <- p["S0"]; A10 <- p["A10"]; A20 <- p["A20"]; VR1 <- p["VR1"]VR2 <- p["VR2"]; VS <- p["VS"]; VA1 <- p["VA1"]; VA2 <- p["VA2"]KR1 <- p["KR1"]; KR2 <- p["KR2"]; KS <- p["KS"]; KA1 <- p["KA1"]KA2 <- p["KA2"]; KS1 <- p["KS1"]; d1 <- p["d1"]; d2 <- p["d2"]A1ex <- p["A1ex"]; A2ex <- p["A2ex"]##### (次頁に続く)#####http://journal.r-project.org/archive/2010-2/RJournal_2010-2_Soetaert~et~al.pdfRで微分方程式を解くパッケージ
  22. 22. Step.3 実装(R)#####(前頁の続き)###### ODEを定義F1 <- - k3 * x[1] * x[4] + k2 * x[6] - bR1 * x[1] + VR1 * x[6] / (KR1 + x[6]) + R10F2 <- - k3 * x[2] * x[5] + k4 * x[7] - k5 * x[2] * x[4] + k6 * x[8] - bR2 * x[2] +VR2 * x[6] / (KR2 + x[6]) + R20F3 <- - k3 * x[2] * x[5] + k4 * x[7] - bR2 * x[2] + VR2 * x[6] / (KR2 + x[6]) + R20F4 <- - k1 * x[1] * x[4] + k2 * x[6] - k5 * x[2] * x[5] + k6 * x[8] - bA1 * x[4] +VA1 * x[6] / (x[6] + KA1 * (1 + (x[3] / KS1))) + A10 + d1 * (A1ex - x[4])F5 <- - k3 * x[2] * x[5] + k4 * x[7] - bA2 * x[5] + VA2 * x[7] / (KA2 + x[7]) + A20+ d2 * (A2ex - x[5])F6 <- k1 * x[1] * x[4] - k2 * x[6]F7 <- k3 * x[2] * x[5] - k4 * x[7]F8 <- k5 * x[2] * x[4] - k6 * x[8]list(c(F1, F2, F3, F4, F5, F6, F7, F8))}
  23. 23. Step.4 計算(ODEを解く)# パラメーターの値を設定params <- c(k1=0.0027, k2=0.00486, k3=0.0027, k4=0.00486, k5=0.0027, k6=0.00486,bR1=0.000021, bR2=0.000021, bS=0.000021, bA1=0.000052, bA2=0.000052,R10=0.000246, R20=0.000244, S0=0.000733, A10=0.000282, A20=0.000023,VR1=0.13, VR2=0.13, VS=0.13, VA1=0.13, VA2=0.13,KR1=5, KR2=5, KS=5, KA1=5, KA2=5, KS1=5,d1=0.2, d2=0.4, A1ex=0, A2ex=0)# 初期値を設定init <- c(0, 0, 0, 0, 0, 0, 0, 0)# 計算ステップ(0.0001刻みで、0→50まで計算、50000ステップ)times <- seq(0, 50, by=0.0001)# ODEを解くresult <- ode(init, times, QS, params, method="euler")deSolveは他にもODEを数値的に解く関数を多数用意http://cran.r-project.org/web/packages/deSolve/vignettes/deSolve.pdf
  24. 24. Step.5 可視化# プロットplot(result)
  25. 25. Step.6 モデルの検証現実と挙動が同じ時間物質濃度実測値と同じ時間物質濃度
  26. 26. Step.7 考察分岐解析どの濃度で低定常状態から高定常状態に移行するか感度解析(ロバスト解析)どの経路が脆弱か(または頑健であるか)時間鍵となる物質Xk物質濃度∆𝑋∆𝑘どのくらいの物質濃度でQSが起きるのかどの経路を阻害すれば効果的にQSを抑えられるか
  27. 27. 発展的な話
  28. 28. 実際的な問題・システムのどこまでをモデル化するか(簡潔 vs 網羅)・計算ステップをどうするか(計算の精度に直結、桁落ちや計算時間との兼ね合い)・何ステップまで計算するか(長いほど誤差は蓄積される)・初期値、パラメーターをどうするか(実測値が無い場合、パラメーターを推定するか、適当な値にしておくか)・モデルが妥当なものであるか(現実の現象を再現できているか)・モデリング後の考察(そのモデルで何を予測するか)・生物学的な解釈
  29. 29. 近い学問領域システムバイオロジー最適化問題、数値計算数学的なエリア 物理学的なエリア力学系、非線形、カオス、複雑系生物学的なエリアモデル化、パラメーター計測、検証実験、個体群生態学、薬物動態学工学的なエリアシステム工学、制御工学、電気回路色々な分野の方法論が取り入れられている(“シミュレーション”等、意味が広いキーワードで勉強すると良いかも)

×