Presentation is loading. Please wait.

Presentation is loading. Please wait.

リウマチ性疾患における 遺伝因子解析の視点 ~フェノタイプを考える~

Similar presentations


Presentation on theme: "リウマチ性疾患における 遺伝因子解析の視点 ~フェノタイプを考える~"— Presentation transcript:

1 リウマチ性疾患における 遺伝因子解析の視点 ~フェノタイプを考える~
第4回基礎と臨床を結ぶ分子病態研究会 2011/10/29 学士会館 京都大学大学院医学研究科 山田 亮 第4回 基礎と臨床を結ぶ分子病態研究会 タイトル 『リウマチ性疾患における遺伝因子解析の視点』 ヒトゲノムの解明段階として、プレゲノム・ゲノム・ポストゲノムの3時代を設定すると、関節リウマチの遺伝因子解析は、そのすべての時代において、ある一定の成果を出してきた。それは、複合遺伝性疾患の中でも遺伝性が比較的強いこと、また、生活習慣病などとは異なり、強すぎる環境因子・出生後因子がないことによるものと考えられる。 また、関節リウマチは、さまざまな自己免疫学的病理過程の最終像としての症候群である側面も強い。このことは、多数の項目を組み合わせた疾患分類基準が存在する理由でもあるが、他方、疾患フェノタイプが多面的に構成されていることをも意味する。 近年のゲノム科学を含むオミックス科学の進展により、数多くの疾患において、疾患バイオマーカー探索などが進みつつあり、そのことによって、関節リウマチに限らない多くの疾患のフェノタイプが、多数の診断分類基準項目やバイオマーカーの組み合わせとなる傾向がある。 これらの点に鑑み、関節リウマチの遺伝因子解析を題材に、今後の複合遺伝性疾患のフェノタイプの取扱いについて話題提供する。

2 リウマチ性疾患の遺伝因子解析 多彩な病像 時間経過のこと 治療という介入が起こしていること 関与しそうな分子のネットワーク

3 関節リウマチ関連遺伝子解析 遺伝子多型(DNA配列の個人差・染色体差)と関節リウマチとの間の関係を探す 遺伝子多型 SNP

4 GARNET (東京女子医科大学・理化学研究所・京都大学)
関節リウマチの GWAS GARNET (東京女子医科大学・理化学研究所・京都大学)

5 RA 関連遺伝子解析のフェノタイプ ケース(診断された) コントロール(診断されていない・一般集団) 気になるそれ以外のこと(共変量) 性別
年齢 生活習慣 疾患の亜分類(自己抗体の保有状態)

6 今日のテーマ 解析に どんなことを持ち込みたいか どんなことを持ち込めるか
今日のテーマ 解析に どんなことを持ち込みたいか どんなことを持ち込めるか

7 ケース(診断された) コントロール(診断されていない・一般集団) 発症・非発症 未発病・既発病

8 時間 発症・非発症 未発病・既発病

9 死亡というフェノタイプ 生命表から # だんだんに事件が蓄積するモデルによる、死亡年齢分布 # 平成18年簡易生命表(男)から death<-c(280,41,30,21,16,14,13,12,10,9,9,9,10,13,17,22,28,36,44,50,54,57,59,60,61,62,63,65,68,70,71,73,76,80,85,90,96,104,113,124,135,146,159,176,195,216,237,257,279,302,329,359,392,430,471,516,566,614,661,712,771,836,903,968,1023 ,1080 ,1153 ,1242 ,1344 ,1457 ,1585 ,1731 ,1895 ,2068 ,2244 ,2426 ,2608 ,2783 ,2950 ,3110 ,3267 ,3405 ,3523 ,3616 ,3692 ,3750 ,3768 ,3735 ,3629 ,3463 ,3244 ,2980 ,2683 ,2366 ,2040 ,1719 ,1414 ,1133 ,884,669,492,350,240,159,101,138) plot(1:length(death),death/sum(death),type="l",xlab="Age(year)",ylab="Fraction of death")

10 生存:0 死亡:1 初めは全員が 0 若いうちは稀に 0→1 だんだん 0→1 の確率が高くなる 0→1 の確率はある年齢でピークを迎え
初めは全員が 0 若いうちは稀に 0→1 だんだん 0→1 の確率が高くなる 0→1 の確率はある年齢でピークを迎え 最終的には全員が 1

11 なぜ、こういう形になるのだろうか?

12 簡単にモデル化してみる par(mfcol=c(1,2)) plot(1:length(death),death/sum(death),type="l",xlab="Age(year)",ylab="Fraction of death") NL<-1 # 座位数 TL<-120 # 一生は120年 Fs<-1 # イベントが起きる平均時間間隔(年)(平均して毎年、1回、事件が起きる) # 86回蓄積すると「死亡フェノタイプ」に転ずるとする # 86は生命表でのピーク年齢を取った ThresNums<-c(86) par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] for(ti in 1:length(ThresNums)){ ThresNum<-ThresNums[ti] # Niter人でシミュレーション Niter< DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } } par(mfcol=c(1,1))

13 簡単にモデル化してみる 一定の確率で「イベント」が起きる 「イベント」がある一定の回数に達すると 0→1 とフェノタイプが転じる 例
0→1 とフェノタイプが転じる 平均して1年に1回のイベント イベントが86回、蓄積して 0→1

14 どうしてモデル化する? モデル化しないと、わからないから 「何が」 「どのようにして」 「そうするのか」

15 どうしてモデル化する? モデル化しないと、わからないから 「ふつうのGWAS」ではどういうモデル? あるSNP (A / G) Aを持つ本数
AA, AG, GG Aを持つ本数 2, 1, 0 モデル Aの本数とRAになる確率に相関がある/ない

16 「イベントの蓄積」というフェノタイプ 生起確率 累積確率 この後、何度か登場する 確率分布・度数分布と 累積分布
# だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

17 「イベントの蓄積」というフェノタイプ 何が分布の形を決めるか 「イベント」の起きる頻度・起きやすさ・確率
0→1 となるために必要な「蓄積回数」 # だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

18 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
# だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

19 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
イベントの発生頻度が高い 四六時中、イベントが起きている 代謝性酵素の欠損 # だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

20 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
成人以降・中年以降で増加 DNAダメージ vs. 修復機構 「ダメージが残る」というイベント そこそこ、稀 # だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

21 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
# だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

22 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
「イベント」の発生頻度が下がることで、発病時期の分布が 後ろ倒しになる ばらつきが大きくなる # だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

23 「イベントの蓄積」というフェノタイプ 「イベント」の必要累積回数
# だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい F<-c(0.01) # イベントが起きる平均時間間隔(年) ThresNums<-100*2^(0:10) par(ask=FALSE) for(ti in 1:length(ThresNums)){ ThresNum<-ThresNums[ti] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1 = paste("FILE",ti, ".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2 = paste("FILEcumul",ti, ".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

24 「イベントの蓄積」というフェノタイプ 「イベント」の必要累積回数
「イベント」の発生頻度は高いままで、必要累積回数が増えることで、発病時期の分布が 後ろ倒しになる ばらつきは変わらない

25 発病時期とジェノタイプ ジェノタイプが影響しているのは何か? イベントの発生頻度 イベントの必要累積回数 たとえば・・・
刺激に対する防御能に大小があれば、防御能を越えるイベントの発生頻度に影響する イベントの必要累積回数

26 発病時期とジェノタイプ ジェノタイプが影響しているのは何か? イベントの発生頻度 イベントの必要累積回数 たとえば・・・
刺激に対する防御能に大小があれば、防御能を越えるイベントの発生頻度に影響する イベントの必要累積回数 多数のユニットがあり、その数が減っていくとき。一定数まで減ると、代償機構が破たんするとする。スタート時点のユニット数に多寡があれば、必要累積回数に影響する

27 発病時期とジェノタイプ イベントの発生頻度に影響しているとき
# 3ジェノタイプを比較する NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(8:10) # イベントが起きる平均時間間隔(年) Niter<-1000 ThresNums<-c(10) DxTimesGen<-matrix(0,length(Fs),Niter) par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } DxTimesGen[fi,]<-DxTimes[,1] #hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), #xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(2,2)) h<-hist(DxTimesGen,breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.08/3), xlab="Age of Dx(year)",ylab="Fraction of Dx",main="All",col=3,freq=FALSE) for(i in 1:length(Fs)){ tt<-paste("genotype ",i) hist(DxTimesGen[i,],breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.08), xlab="Age of Dx(year)",ylab="Fraction of Dx",main=tt,col=2,freq=FALSE) } par(mfcol=c(1,1)) # 3ジェノタイプを比較する NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(10) # イベントが起きる平均時間間隔(年) Niter<-1000 ThresNums<-c(6,8,10) DxTimesGen<-matrix(0,length(ThresNums),Niter) par(ask=TRUE) for(ti in 1:length(ThresNums)){ ThresNum<-ThresNums[ti] F<-Fs[1] #ThresNum<-ThresNums[1] DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } DxTimesGen[ti,]<-DxTimes[,1] #hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), #xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(2,2)) h<-hist(DxTimesGen,breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.05/3), xlab="Age of Dx(year)",ylab="Fraction of Dx",main="All",col=3,freq=FALSE) for(i in 1:length(ThresNums)){ tt<-paste("genotype ",i) hist(DxTimesGen[i,],breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL), ylim=c(0,0.05),xlab="Age of Dx(year)",ylab="Fraction of Dx",main=tt,col=2,freq=FALSE) } par(mfcol=c(1,1))

28 発病時期とジェノタイプ ジェノタイプが影響しているのは何か? イベントの発生頻度 イベントの必要累積回数 たとえば・・・
刺激に対する防御能に大小があれば、防御能を越えるイベントの発生頻度に影響する イベントの必要累積回数 多数のユニットがあり、その数が減っていくとき。一定数まで減ると、代償機構が破たんするとする。スタート時点のユニット数に多寡があれば、必要累積回数に影響する

29 発病時期とジェノタイプ イベントの必要累積回数に影響しているとき
# 3ジェノタイプを比較する NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(8:10) # イベントが起きる平均時間間隔(年) Niter<-1000 ThresNums<-c(10) DxTimesGen<-matrix(0,length(Fs),Niter) par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } DxTimesGen[fi,]<-DxTimes[,1] #hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), #xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(2,2)) h<-hist(DxTimesGen,breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.08/3), xlab="Age of Dx(year)",ylab="Fraction of Dx",main="All",col=3,freq=FALSE) for(i in 1:length(Fs)){ tt<-paste("genotype ",i) hist(DxTimesGen[i,],breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.08), xlab="Age of Dx(year)",ylab="Fraction of Dx",main=tt,col=2,freq=FALSE) } par(mfcol=c(1,1)) # 3ジェノタイプを比較する NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(10) # イベントが起きる平均時間間隔(年) Niter<-1000 ThresNums<-c(6,8,10) DxTimesGen<-matrix(0,length(ThresNums),Niter) par(ask=TRUE) for(ti in 1:length(ThresNums)){ ThresNum<-ThresNums[ti] F<-Fs[1] #ThresNum<-ThresNums[1] DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } DxTimesGen[ti,]<-DxTimes[,1] #hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), #xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(2,2)) h<-hist(DxTimesGen,breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL),ylim=c(0,0.05/3), xlab="Age of Dx(year)",ylab="Fraction of Dx",main="All",col=3,freq=FALSE) for(i in 1:length(ThresNums)){ tt<-paste("genotype ",i) hist(DxTimesGen[i,],breaks=0:ceiling(max(DxTimesGen)),xlim=c(0,TL), ylim=c(0,0.05),xlab="Age of Dx(year)",ylab="Fraction of Dx",main=tt,col=2,freq=FALSE) } par(mfcol=c(1,1))

30 発生頻度 必要累積回数

31 発生頻度 必要累積回数 因子の「関わり方」が発病時期に影響を与えるのならば、発病時期をフェノタイプにして解析すればよいのでは…

32 いつかは発病するけれど、 まだ発病していない・・・ 浸透率
「死亡」というイベント 浸透率 1

33 死なないとしたら、誰しも、いつかは・・・

34 死ぬより先に発病すること 死亡を考慮 死亡を考慮
# ペネトランス # 発病前に死亡するような条件のイベント生起確率と累積回数の疾病と # 死亡とを組み合わせて、年齢別発病人数比率、その累積を見る NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes[ii,]<-DxTime } hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } plot(ecdf(DxTimes[,1]),xlim=c(0,TL)) # 死亡モデル NL<-1 # 座位数 TL<-120 # 一生は120年 F<-c(1) # イベントが起きる平均時間間隔(年) ThresNums<-86 par(ask=TRUE) for(ti in 1:length(ThresNums)){ ThresNum<-ThresNums[ti] Niter<-1000 DxTimes2<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) for(i in 1:NL){ DxTime[i]<-CumEventMat[i,ThresNum[i]] } DxTimes2[ii,]<-DxTime } hist(DxTimes2[,1],breaks=0:ceiling(max(DxTimes2[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } DxBeforeDeath<-which(DxTimes[,1]<DxTimes2[,1]) DxTimes3<-rep(Inf,length(DxTimes[,1])) DxTimes3[DxBeforeDeath]<-DxTimes[DxBeforeDeath,1] par(mfcol=c(1,2)) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=TRUE,ylim=c(0,20)) hist(DxTimes3,breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=TRUE,ylim=c(0,20)) par(mfcol=c(1,1)) par(mfcol=c(1,2)) plot(ecdf(DxTimes[,1]),xlim=c(0,TL),ylim=c(0,1),cex=0.1) plot(ecdf(DxTimes3),xlim=c(0,TL),ylim=c(0,1),cex=0.1) par(mfcol=c(1,1))

35 浸透率 死亡を考慮 考慮するのは「死亡」だけか? 他疾患の影響 単一疾患だけで解析するのがよいのか 多疾患で解析するのがよいのか

36 死亡というフェノタイプ 生命表から # だんだんに事件が蓄積するモデルによる、死亡年齢分布 # 平成18年簡易生命表(男)から death<-c(280,41,30,21,16,14,13,12,10,9,9,9,10,13,17,22,28,36,44,50,54,57,59,60,61,62,63,65,68,70,71,73,76,80,85,90,96,104,113,124,135,146,159,176,195,216,237,257,279,302,329,359,392,430,471,516,566,614,661,712,771,836,903,968,1023 ,1080 ,1153 ,1242 ,1344 ,1457 ,1585 ,1731 ,1895 ,2068 ,2244 ,2426 ,2608 ,2783 ,2950 ,3110 ,3267 ,3405 ,3523 ,3616 ,3692 ,3750 ,3768 ,3735 ,3629 ,3463 ,3244 ,2980 ,2683 ,2366 ,2040 ,1719 ,1414 ,1133 ,884,669,492,350,240,159,101,138) plot(1:length(death),death/sum(death),type="l",xlab="Age(year)",ylab="Fraction of death")

37 可逆と非可逆 必ず死亡する 非可逆という仮定 可逆か非可逆か

38 可逆と非可逆 非可逆病変を数えるか、可逆病変を数えるか 関節リウマチの進行とステージ 関節リウマチの「活動性関節」の数

39 非可逆な階段状のフェノタイプ ステージ ジェノタイプはステージの何に影響するか 「イベント」の発生頻度
「ステージ」を上るための「必要累積回数」 # マルチステージ NL<-1 # 座位数 TL<-120 # 一生は120年 Fs<-0.01*2^(9.5) # イベントが起きる平均時間間隔(年) ThresNums<-c(10,15,17,21) Nstage<-length(ThresNums) DxTimes<-matrix(0,Niter,length(ThresNums)) par(ask=FALSE) for(fi in 1:length(Fs)){ F<-Fs[fi] #ThresNum<-ThresNums[1] Niter<-1000 for(ii in 1:Niter){ NR<-max(ThresNums) Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) #DxTime<-rep(0,NL) #for(i in 1:NL){ DxTimes[ii,]<-CumEventMat[i,ThresNums] #} #DxTimes[ii,]<-DxTime } hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) #plot(ecdf(DxTimes[,1]),xlim=c(0,TL)) } par(mfcol=c(2,2)) for(i in 1:4){ hist(DxTimes[,i],breaks=0:ceiling(max(DxTimes)),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(1,1)) #par(mfcol=c(2,2)) for(i in 1:4){ plot(ecdf(DxTimes[,i]),xlim=c(0,TL),cex=0.1,ylim=c(0,1),col=i) par(new=TRUE) } #par(mfcol=c(1,1)) # マルチステージ NL<-1 # 座位数 TL<-120 # 一生は120年 Fs<-0.01*2^(9.5) # イベントが起きる平均時間間隔(年) ThresNums<-c(10,15,25,30) Nstage<-length(ThresNums) DxTimes<-matrix(0,Niter,length(ThresNums)) par(ask=FALSE) for(fi in 1:length(Fs)){ F<-Fs[fi] #ThresNum<-ThresNums[1] Niter<-1000 for(ii in 1:Niter){ NR<-max(ThresNums) Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) #DxTime<-rep(0,NL) #for(i in 1:NL){ DxTimes[ii,]<-CumEventMat[i,ThresNums] #} #DxTimes[ii,]<-DxTime hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) #plot(ecdf(DxTimes[,1]),xlim=c(0,TL)) par(mfcol=c(2,2)) for(i in 1:4){ hist(DxTimes[,i],breaks=0:ceiling(max(DxTimes)),xlim=c(0,TL), par(mfcol=c(1,1)) #par(mfcol=c(2,2)) plot(ecdf(DxTimes[,i]),xlim=c(0,TL),cex=0.1,ylim=c(0,1),col=i) par(new=TRUE) #par(mfcol=c(1,1))

40 発病時期とジェノタイプ ジェノタイプが影響しているのは何か? イベントの発生頻度 イベントの必要累積回数 たとえば・・・
刺激に対する防御能に大小があれば、防御能を越えるイベントの発生頻度に影響する イベントの必要累積回数 多数のユニットがあり、その数が減っていくとき。一定数まで減ると、代償機構が破たんするとする。スタート時点のユニット数に多寡があれば、必要累積回数に影響する

41 非可逆な階段状のフェノタイプ ステージ ジェノタイプはステージの何に影響するか 「イベント」の発生頻度
「ステージ」を上るための「必要累積回数」 # マルチステージ NL<-1 # 座位数 TL<-120 # 一生は120年 Fs<-0.01*2^(9.5) # イベントが起きる平均時間間隔(年) ThresNums<-c(10,15,17,21) Nstage<-length(ThresNums) DxTimes<-matrix(0,Niter,length(ThresNums)) par(ask=FALSE) for(fi in 1:length(Fs)){ F<-Fs[fi] #ThresNum<-ThresNums[1] Niter<-1000 for(ii in 1:Niter){ NR<-max(ThresNums) Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) #DxTime<-rep(0,NL) #for(i in 1:NL){ DxTimes[ii,]<-CumEventMat[i,ThresNums] #} #DxTimes[ii,]<-DxTime } hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) #plot(ecdf(DxTimes[,1]),xlim=c(0,TL)) } par(mfcol=c(2,2)) for(i in 1:4){ hist(DxTimes[,i],breaks=0:ceiling(max(DxTimes)),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) } par(mfcol=c(1,1)) #par(mfcol=c(2,2)) for(i in 1:4){ plot(ecdf(DxTimes[,i]),xlim=c(0,TL),cex=0.1,ylim=c(0,1),col=i) par(new=TRUE) } #par(mfcol=c(1,1)) # マルチステージ NL<-1 # 座位数 TL<-120 # 一生は120年 Fs<-0.01*2^(9.5) # イベントが起きる平均時間間隔(年) ThresNums<-c(10,15,25,30) Nstage<-length(ThresNums) DxTimes<-matrix(0,Niter,length(ThresNums)) par(ask=FALSE) for(fi in 1:length(Fs)){ F<-Fs[fi] #ThresNum<-ThresNums[1] Niter<-1000 for(ii in 1:Niter){ NR<-max(ThresNums) Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) #DxTime<-rep(0,NL) #for(i in 1:NL){ DxTimes[ii,]<-CumEventMat[i,ThresNums] #} #DxTimes[ii,]<-DxTime hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) #plot(ecdf(DxTimes[,1]),xlim=c(0,TL)) par(mfcol=c(2,2)) for(i in 1:4){ hist(DxTimes[,i],breaks=0:ceiling(max(DxTimes)),xlim=c(0,TL), par(mfcol=c(1,1)) #par(mfcol=c(2,2)) plot(ecdf(DxTimes[,i]),xlim=c(0,TL),cex=0.1,ylim=c(0,1),col=i) par(new=TRUE) #par(mfcol=c(1,1)) ThresNums<-c(10,15,17,21) ThresNums<-c(10,15,25,30)

42 活動性病変数というフェノタイプ 0/1ではない 量でとらえる 情報量が多い 増減する 病勢 病気のパターン 遷延型 寛解・増悪繰返し型

43 活動性病変数 どのようにモデル化するか 複数病変 可逆性 病変になりうる場所が複数ある(関節数) それぞれの場所で「イベント」が蓄積する
「必要累積回数」を越えると「活動性」になる 可逆性 「イベント」が起きる 「起きたイベントを修復する・後戻りさせるイベント」も起きる

44 複数病変 関節リウマチ 「多」関節炎 どうして「多」なのか 複数の関節で「一斉に」 0→1 がおきる

45 「イベントの蓄積」というフェノタイプ 「イベント」の発生頻度
「イベント」の発生頻度が下がることで、発病時期の分布が 後ろ倒しになる ばらつきが大きくなる # だんだんに事件が蓄積して、あるとき、診断に至る単一遺伝子疾患 # イベントが時々起きて(均質化していなくて)いる場合には # Dxのタイミングにはばらつきが大きい NL<-1 # 座位数 TL<-120 # 一生は120年 # イベントがしょっちゅう起きて(均質化して)いる場合には # Dxのタイミングにはばらつきが小さい Fs<-0.01*2^(0:10) # イベントが起きる平均時間間隔(年) ThresNums<-10 par(ask=FALSE) #par(ask=TRUE) for(fi in 1:length(Fs)){ F<-Fs[fi] ThresNum<-ThresNums[1] Niter<-1000 DxTimes<-matrix(0,Niter,NL) for(ii in 1:Niter){ NR<-ThresNum Rmat<-matrix(0,NL,NR) for(i in 1:NL){ Rmat[i,]<-rexp(NR,1/F[i]) } CumEventMat<-t(apply(Rmat,1,cumsum)) DxTime<-rep(0,NL) DxTime[i]<-CumEventMat[i,ThresNum[i]] DxTimes[ii,]<-DxTime file1<-paste("hist",fi,".png") png(file=file1) hist(DxTimes[,1],breaks=0:ceiling(max(DxTimes[,1])),xlim=c(0,TL), xlab="Age of Dx(year)",ylab="Fraction of Dx",col=2,freq=FALSE) dev.off() file2<-paste("cumul",fi,".png") png(file=file2) plot(ecdf(DxTimes[,1]),xlim=c(0,TL))

46 「イベントの蓄積」というフェノタイプ 「イベント」の必要累積回数
「イベント」の発生頻度は高いままで、必要累積回数が増えることで、発病時期の分布が 後ろ倒しになる ばらつきは変わらない

47 複数病変 関節リウマチ 「多」関節炎 どうして「多」なのか 複数の関節で「一斉に」 0→1 がおきる
そこそこに「頻度の高いイベント」が起きていて、機が熟して、一斉に 0→1 が起きている???

48 複数病変 関節リウマチ 「多」関節炎 そこそこに「頻度の高いイベント」が起きていて、機が熟して、一斉に 0→1 が起きている??? 簡単なモデルで「多」関節炎にすることはできる 2 1 3

49 複数病変モデル 2 簡単なモデルで「多」関節炎にすることはできる 3 1 ジェノタイプはそのモデルの何に影響している可能性がある?
「イベント」の頻度 「イベント」の必要累積回数 「修復イベント」の頻度 「修復イベント」の修復力

50 複数病変モデル 2 3 1 ジェノタイプはそのモデルの何に影響している可能性がある? 「イベント」の 「修復イベント」の 「イベント」の頻度
「イベント」の必要累積回数 「修復イベント」の頻度 「修復イベント」の修復力 「イベント」の 危険因子 防御因子 「修復イベント」の

51 一過性か慢性か

52 一過性か慢性か 「イベント」が累積はする すぐ「修復イベント」が効く
「修復イベント」を起こすための感度が良い「修復イベント」が「がっちりと」修復する

53 一過性か慢性か いったん、累積すると 「修復イベント」がなかなか起きない 「修復イベント」の力が弱い
「修復イベント」を起こすための感度が悪い 「修復イベント」の力が弱い

54 ここまでのモデル 良いか、悪いか 右か左か

55 進む先は2方向か、3方向か、4・・・ 強弱が2方向を決める 強中弱が3方向を決める 2項(0/1)の解析は簡単 3項以上は難しい

56 多数の因子が 相互に作用しあっているとき

57 ネットワークを捕まえる

58 定常状態をイメージ図にする ある安定な点がある 「攪乱」されて、そこから離れても、安定な点に戻る

59 小さな攪乱 大きな攪乱

60 ジェノタイプの影響 何が違うか 「定常状態」の位置 「攪乱」の後の経路

61 2値を量的に? 何を量化するのがよいのか 診断・分類基準で考えてみる

62 診断・分類基準 診断基準・分類基準 「診断」を「最終フェノタイプ」とすれば、診断・分類基準は、「中間フェノタイプ」
患者によって、満足する項目が異なる そのパターンに遺伝因子はどう影響する? 「診断」を「最終フェノタイプ」とすれば、診断・分類基準は、「中間フェノタイプ」

63 中間フェノタイプ 分類・診断基準 バイオマーカー オミックス解析により、さまざまなバイオマーカーが得られる どれを、使う? どれも、使う?
使いこなすには、どうする?

64 まとめ 発病時期(とその分布)をフェノタイプに? 複数の疾患を併せて解析? 病気の変化の様子を?
中間フェノタイプ(診断基準の項目・バイオマーカー)を?


Download ppt "リウマチ性疾患における 遺伝因子解析の視点 ~フェノタイプを考える~"

Similar presentations


Ads by Google