Recommended
PDF
PDF
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
PDF
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
PDF
PDF
PPTX
PDF
PDF
計算論的学習理論入門 -PAC学習とかVC次元とか-
PDF
PDF
PDF
[DL輪読会]Deep Learning 第15章 表現学習
PDF
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
PPTX
PDF
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
PDF
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
PDF
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
PDF
PPTX
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
PDF
PDF
PDF
PDF
Sparse estimation tutorial 2014
PDF
PDF
PDF
PPTX
PPTX
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
PDF
PDF
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
More Related Content
PDF
PDF
Rによるやさしい統計学第20章「検定力分析によるサンプルサイズの決定」
PDF
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
PDF
PDF
PPTX
PDF
PDF
計算論的学習理論入門 -PAC学習とかVC次元とか-
What's hot
PDF
PDF
PDF
[DL輪読会]Deep Learning 第15章 表現学習
PDF
凸最適化 〜 双対定理とソルバーCVXPYの紹介 〜
PPTX
PDF
PDF
一般化線形モデル (GLM) & 一般化加法モデル(GAM)
PDF
Rubinの論文(の行間)を読んでみる-傾向スコアの理論-
PDF
【論文調査】XAI技術の効能を ユーザ実験で評価する研究
PDF
PPTX
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
PDF
PDF
PDF
PDF
Sparse estimation tutorial 2014
PDF
PDF
PDF
PPTX
PPTX
Rによる特徴抽出 第48回R勉強会@東京(#TokyoR)
Similar to Rでシステムバイオロジー
PDF
PDF
東京都市大学 データ解析入門 7 回帰分析とモデル選択 2
PDF
PDF
PDF
PDF
PPTX
StanとRでベイズ統計モデリングに関する読書会(Osaka.stan) 第四章
PDF
PDF
PDF
Tokyo.R #19 発表資料 「Rで色々やってみました」
PDF
PDF
DOCX
PPT
Model seminar shibata_100710
PDF
PPT
PDF
PDF
PDF
PDF
More from 弘毅 露崎
PDF
PDF
文献注釈情報MeSHを利用した網羅的な遺伝子の機能アノテーションパッケージ
PDF
大規模テンソルデータに適用可能なeinsumの開発
PDF
PDF
PDF
Exploring the phenotypic consequences of tissue specific gene expression vari...
PDF
PDF
Benchmarking principal component analysis for large-scale single-cell RNA-seq...
PDF
LRBase × scTensorで細胞間コミュニケーションの検出
PDF
PDF
PDF
バイオインフォ分野におけるtidyなデータ解析の最新動向
PDF
非負値テンソル分解を用いた細胞間コミュニケーション検出
PDF
PDF
Identification of associations between genotypes and longitudinal phenotypes ...
PDF
A novel method for discovering local spatial clusters of genomic regions with...
PDF
Predicting drug-induced transcriptome responses of a wide range of human cell...
PDF
PDF
PDF
Rでシステムバイオロジー 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. Step.2 モデル化
ここではMagnusモデル(Magnus G. Fagerlind, et. .al., 2003)を利用
21111
1
kCkAR
dt
dC
42322
2
kCkAR
dt
dC
63512
3
kCkAR
dt
dC
10
11
11
1121111
1
R
Ck
CV
RbkCkAR
dt
dR
R
R
R
20
12
12
226351242322
2
R
Ck
CV
RbkCkARkCkAR
dt
dR
R
R
R
0
1
1
S
Ck
CV
Sb
dt
dS
s
s
s
11110
1
1
11
116351221111
1
1
AAdA
K
S
K
CV
AbkCkARkCkAR
dt
dA
EX
S
A
A
A
22220
22
22
2242322
2
AAdA
CK
CV
AbkCkAR
dt
dA
EX
A
A
A
LasR
Cell membrane
LasR
RhlR
RhlR
RhlI
RsaL
LasI
lasR
lasI
rsaL
rhlI
Virulence
genes
rhlR
C12 C12
C4C4
-
+
+
+
+
+
+
+
8物質
23反応
31パラメーター
14. 15. 16. 17. 18. 補足:解析的に解く vs 数値的に解く
微分方程式を解く (解析的に解く)
言うならば、「微分方程式入門」みたいな数学の本は、これまで解析的に解け
る事が証明できてる式のカタログみたいなもの
ただし、システムバイオロジーの分野では、解析的に解けないモデルが殆ど
式変形
(ラプラス変換、フーリエ変換等
数学のテクニックを駆使)
−
dx
𝑑𝑡
= 𝑘 𝑎 𝑥0 − 𝑘𝑥
𝑥 =
𝑘 𝑎 𝐹 𝑥0
𝑘 𝑎 − 𝑘
(𝑒−𝑘𝑡
− 𝑒−𝑘 𝑎 𝑡
)
19. 補足:解析的に解く vs 数値的に解く
微分方程式を解く (数値的に解く = 数値計算、シミュレーション)
オイラー法(次頁)等
近似アルゴリズムを利用
タイムステップ( ∆𝑡 )毎に物質の濃度を少しづつ算出
𝑑𝑥
𝑑𝑡
= −𝑝𝑥 + 𝑝𝑦,
𝑑𝑦
𝑑𝑡
= −𝑥𝑧 + 𝑟𝑥 − 𝑦,
𝑑𝑧
𝑑𝑡
= 𝑥𝑦 − 𝑏𝑧
𝑥 𝑡+∆𝑡 = 𝑥 𝑡 + −𝑝𝑥 𝑡 + 𝑝𝑦𝑡 ×∆𝑡,
𝑦𝑡+∆𝑡 = 𝑦𝑡 + −𝑥 𝑡 𝑧𝑡 + 𝑟𝑥 𝑡 − 𝑦𝑡 ×∆𝑡,
𝑧𝑡+∆𝑡 = 𝑧𝑡 + 𝑥 𝑡 𝑦𝑡 + 𝑏𝑧𝑡 ×∆𝑡
time x y z
t = 0 1 1 1
t = 0.001 1.004 0.997 1.052
t = 0.002 1.008 0.980 1.204
…
漸化式
初期値を設定
20. 補足:オイラー法
𝑑𝑥
𝑑𝑡
= lim
∆𝑡→0
𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)
∆𝑡
計算機は極限という概
念が理解できない
∆𝑡を実際の小さい数字として使う
𝑑𝑥
𝑑𝑡
≈
𝑓 𝑡 + ∆𝑡 − 𝑓(𝑡)
∆𝑡
他にも、ルンゲクッタ法等、
数値計算手法は様々
𝑓 𝑡 + ∆𝑡 = 𝑓 𝑡 +
𝑑𝑥
𝑑𝑡
× ∆𝑡
例:
𝑑𝑥
𝑑𝑡
= 𝑡 + 2 の場合
f(t)は未知だが各ステップ毎に値はわかる
∆𝑡 = 0.01とする
Xの初期値は0とする
・t = 0
x = 1
・t = 0.01
x = 1 + ( 0 + 2 ) × 0.01
= 1.02
・t = 0.02
x = 1.02 + ( 0.01 + 2) × 0.01
= 1.0401
… これを数百~数万回繰り返す
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.pdf
Rで微分方程式を解くパッケージ
22. Step.3 実装(R)
#####(前頁の続き)#####
# ODEを定義
F1 <- - k3 * x[1] * x[4] + k2 * x[6] - bR1 * x[1] + VR1 * x[6] / (KR1 + x[6]) + R10
F2 <- - 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]) + R20
F3 <- - k3 * x[2] * x[5] + k4 * x[7] - bR2 * x[2] + VR2 * x[6] / (KR2 + x[6]) + R20
F4 <- - 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. 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. 25. 26. 27. 28. 29.