Statistics_R

2,781 views

Published on

Published in: Education, Technology
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
2,781
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
0
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Statistics_R

  1. 1. 相同性検索の自動化と 統計処理の基礎 2009/08/07,09/11 金子 聡子 kaneko.satoko(at)ocha.ac.jp 瀬々 潤 1
  2. 2. 今日の内容 ・Rのインストール/Rの基本的な使い方について ・塩基配列間の置換数の違いを表現する (散布図/回帰直線/統計検定) 付録 Bioconductor Biostrings, GeneR 塩基置換を観察する 進化距離について 分子時計 統計について 2
  3. 3. 統計解析ソフト R ・Rのインストール ・Rの基本(演算子とその処理内容) 3
  4. 4. Rのインストール 統計解析を行うオープンソースRを利用します。 http://cran.r-project.org/bin/macosx/ (2009年6月26日現在 R -2.9.1) R-2.9.1.dmgをクリックすると 右の画面が開くので、 R.mpkgをダブルクリックして インストールを行って下さい。 インストール終了後は R-2.9.1をアンマウントして下さい。 4
  5. 5. Rを使うには –ターミナル- ターミナルに R と入れると起動します。 終了するときには q() と入れます。 Save workspace image? [y/n/c]: と聞かれます。 yと入力すると、これまでの作業結果が保存されます。 nとして終了すると、作業結果、コマンドなどが保存されず終了します。 5
  6. 6. Rを使うには –Rコンソール- アプリケーションの中にある「R」をdockへ。 入力に色が付く、括弧などを補完してくれる機能があるので こちらを使います。 6
  7. 7. Rの基本 –演算子とその処理内容 - > 1+2 #足し算 演算子 処理 [1] 3 + 足し算 >3-1 #引き算 - 引き算 [1] 2 * 掛け算 / 割り算 >10*2 #掛け算 [1] 20 ^ べき乗 sqrt() 平方根 >7/2 #割り算 %/% 割り算の整数部 [1] 3.5 %% 割り算の余り > 2^2 #べき乗 [1] 4 > sqrt(4) #平方根 > 7%/%2 #割り算の整数部 [1] 2 [1] 3 > 7%%2 #割り算の余り [1] 1 7
  8. 8. Rの基本 –ベクトル- Rでは、数値や文字列など同じ型のものをベクトルとして扱う。 ベクトルは「同一の型」の要素を一列に並べたもの。 関数c は引数に指定された要素をもつベクトルを作る。 > x <- c(1,2,5,6) # c() ベクトルを作成し、xにベクトルを代入 >x [1] 1 2 5 6 > x + 10 #x (1,2,5,6)の各要素に10を加える [1] 11 12 15 16 > x * 10 #xの各要素に10をかける [1] 10 20 50 60 > x <- c(“France”, “123”, “abc”) #文字列は、引用符 “” で囲む >x [1] "France" "123" "abc" 8
  9. 9. Rの基本 –ベクトルに対しての操作- > number<- c(1,2,3,4,5,6,7,8,9,10) > number [1] 1 2 3 4 5 6 7 8 9 10 > length (number) #length関数 ベクトルの要素数 [1] 10 > sum (number) #ベクトルの要素を足し合わせる [1] 55 > max (number) #ベクトルの要素の最大値を表示 [1] 10 >min (number) #ベクトルの要素の最小値を表示 [1] 1 > mean(number) #ベクトルの要素の平均値 [1] 5.5 9
  10. 10. 塩基配列間の置換数の違い を表現する ・Bioconductor(Biostrings)を準備 ・進化距離(p distance)を計算 ・散布図の作成 ・回帰直線(線形) ・ c 2 検定 10
  11. 11. Bioconductorとは http://www.bioconductor.org/ Bioconductor は、Rを用いたマイクロアレイやゲノム配列などの解析パッケージ集です。 フリーで、オープンソースで、ソフトの開発もオープンに行われています。 http://www.bioconductor.org/packages/release/Software.html 各ソフトの解説と実際の使い方などのガイダンスがあります。 11
  12. 12. BioconductorのBiostringsを利用する Biostrings > source("http://www.bioconductor.org/biocLite.R") > biocLite(“Biostrings”) #ここまでは1度導入すればよい > library(Biostrings) #一度Rを終了した後、再度使用する場合には、ここから 12
  13. 13. Bioconductor/Biostrings 使用例1 > ls(“package:Biostrings”) #Biostringsで定義されている関数をみることができる > x <- "CGTACGTAGTAGCTAGCTAGCTAGCTAGCTGATCGATGCTAGCTGATCGATGCT" > DNAString(x) #DNA配列として扱う 54-letter "DNAString" instance seq: CGTACGTAGTAGCTAGCTAGCTAGCTAGCTGATCGATGCTAGCTGATCGATGCT > s <- DNAString(x) #変数sにDNA配列(x)を入れる > length(s) [1] 54 #変数s は、DNA配列として認識されているので長さは54 > length(x) [1] 1 #変数xは、一連の文字列として認識されているので長さは1 13
  14. 14. 例として用いるデータについて 1 Makorin1 22.61kb (CDS:1446bp) Makorin1-p1 1592bp region A region B region C Makorin1-p1は、Makorin1遺伝子からできたprocessed pseudogeneである。 Makorin1-p1のregionBがある、もしくはMakorin1のregionBを欠いている状態のときに Makorin1 のmRNAが長い時間存在することができるので、regionBの部分にmRNAの 分解に関与する配列が含まれていると考えられている。一方隣接するregionCは、 この分解には関与していない。 regionBは‘機能’を持っていて、その機能を果たすためには配列の相同性が重要であるとの 報告があるために、変異量が抑えられていることが期待される。 機能とは関係ないが、同じ進化の過程を経ているregionCの変異量の比較を行うことにより regionBの機能について、考察を行う。 まずは、「regionBとregionCの変異量は同じである」という帰無仮説を立て、 この仮説を棄却することができるか検証していく。 14
  15. 15. 例として用いるデータについて 1 補足 Makorin1 22.61kb (CDS:1446bp) Makorin1-p1 1592bp region A region B region C 考え方 1) Makorin1-p1は出現した時点ではMakorin1と全く同じ配列を持っている。 2) 配列の相同性を認識してMakorin1のmRNAを分解する物質が存在するならば、 Makorin1-p1をMakorin1として認識し分解するために、Makorin1-p1非存在時と比べると Makorin1自身が壊れてしまうまでの時間は長くなる。 3) Makorin1のmRNAが長い時間存在していることが個体の生存に有利に働くならば、 Makorin1-p1の配列が保存される(regionBにおける機能以外の点で同じ進化の過程を 経てきた領域と比較して変異量が尐なくなる) ことが期待される。 →「regionBとregionCの変異量は同じである」という帰無仮説を立て、 この仮説を棄却することができるか検証していく。 15
  16. 16. 統計 –帰無仮説1- 仮説検定では、仮説が正しいと仮定して、母集団から実際に観察された標本が抽出さ れる確率を求める。仮説から期待する結果と、観察した結果との違いを、それらの差 が「偶然」によって起こったものかどうかを確率の値を用いて判断をします。 帰無仮説(Null hypothesis)とは、棄却するためにたてる仮説のこと。 仮説が正しいと判定されたときには仮説が採択され、 仮説が正しくないと判定された場合は仮説が棄却されると言います。 簡単に表現をすると、検証をしたい事柄について、期待しない方の結果を仮説とします。 また、「帰無仮説を棄却しない」ということと、 「帰無仮説は正しい」ということは、全く異なるものです。 例えば、標本数が尐なすぎたり、測定誤差が大きすぎたりしたために、 実際は正しくない帰無仮説を棄却しそこなっているということを考える必要があります。 16
  17. 17. 統計 –帰無仮説2- 統計モデルを解釈するときに、2種類間違いを犯す可能性があります。 実際の状態 帰無仮説 真 偽 採択 正しい決定 第二種の誤り 棄却 第一種の誤り 正しい決定 第一種の誤りはFalse negative 、第二種の 誤りはFalse positiveとも呼ばれます。 17
  18. 18. 例として用いるデータについて 2 変異量の比較を行うためにMakorin1-p1の配列を集める。 Makorin1-p1の配列のorthologはratのゲノムには無かったため、 Makorin1-p1の配列ができた時期を探るために、実験系統でよく用いられる Mus musculus domesticusの近縁種を5種を用いた。 Subgenus M. booduga M. fragilicauda India+Lao/Thai booduga M. terricolor 1.5 M. macedonicus 4.3 mya M. spicilegus mya M. spretus M. musculus castaneus Palearctic Mus musculus M. m. domesticus M. m. molossinus M. caroli M. cookii Southeast Asia M. cervicolor cervicolor M. pahari Coelomys M. mattheyi Nannomys M. platythrix Pyromys Apodemus agrarius Micromys minutus Rattus norvegicus (from Suzuki et al. 2004 Mol. Phylogenet. Evol. 0.01 33:626-646, Figure 1, 4.) 18
  19. 19. 例として用いるデータについて 3 学名は長いために、変数などには省略名を用いて下さい。 種名 省略名 配列ファイルは、Makorin1-p1.fasta http://www.net-machine.net/seijogaku-h21/ Mus musculus domesticus dom のデータからこのファイルをブラウザに表示し、 Mus musculus molossinus mol apple mark+aで全部を選択し、 Mus musculus castaneus cas CotEditorにコピーして、 [Macintosh HD/ユーザ/tg03/bin]に保存して下 Mus musculus musculus mus さい。 Mus spretus spr Mus caroli car Makorin1-p1.fastaに含まれている配列のうち regionBは1-617, regionCは618-1256です。 p distanceとは、 比較した2つの配列の間の違い(number of differences)/比較に用いた配列の長さのこと。 以下に示すalignmentを例に計算すると、 dom CCTGCCCCAA ATGTCAGATC ACATCTCACT TTGTCATTCC AAGTAATCAC TGGGTGGAGT spr1 .......... ...C...... .......... .......... ......GT.. .......... car1 .......... ...C.GA... ......A... ..T....... ....G.GT.. .........G dom-spr1: 3/60 = 0.05 dom-car1: 9/60 = 0.15 spr1-car1: 6/60 = 0.10 となる。 19
  20. 20. region Bとregion Cにおける違い regionBとregionCの長さと、ペア毎のnumber of differencesと p distanceをもとめる region B bp region C bp pair number of differences p distance number of differences p distance dom – mol dom – cas dom – mus dom – spr dom – car mol - cas mol – mus mol – spr mol – car cas – mus cas – spr cas – car mus – spr mus – car spr – car 20
  21. 21. Biostringsを使ってp distanceを計算する1 library(Biostrings) #Rを起動し直した場合は、ここから #Makorin1-p1.fastaのdomesticusの配列を””の中にコピーをして、 # DNA配列として変数domに代入する > dom <- DNAString("") #domの配列の1番目から617番目までを変数domBに代入 > domB <- substring(dom,1,617) #domBの塩基の数を求めて変数lengthBに代入(p distanceをもとめるための分母となる)→この値をメモ > lengthB <- length(domB) #domの配列の618番目から1256番目までを変数domCに代入 > domC <- substring(dom, 618,1256) #domCの塩基の数を求めて変数lengthCに代入(p distanceをもとめるための分母となる)→この値をメモ > lengthC <- length(domC) #変数に代入した結果を見たい場合には、変数をコマンドとして入れる #例えば、lengthBに代入された結果は、以下のように表示される。 > lengthB [1] 617 21
  22. 22. Biostringsを使ってp distanceを計算する2 #Makorin1-p1.fastaのmolossinusの配列を””の中にコピーをして、 # DNA配列として変数molに代入する > mol <- DNAString("") #molの配列の1番目から617番目までを変数molBに代入 > molB <- substring(mol,1,617) #molの配列の618番目から1256番目までを変数molCに代入 > molC <- substring(mol, 618,1256) #ここからの手順は、他のcastaneus(cas), musculus(mus), spretus(spr), caroli(car) #についても行い、表にあるペアについて領域毎にnumber of differencesとp distanceを #もとめ、表に記入していく。 22
  23. 23. Biostringsを使ってp distanceを計算する3 #domBをmolB比べて、その結果をdom_molBに代入 > dom_molB <- c(compareStrings(domB,molB)) #異なる部分は?で表記されるため、?を削除 > sub_dom_molB <- gsub("(['?'])", "", dom_molB) #sub_dom_molBをDNA配列として、subt_dom_molBに代入 > subt_dom_molB <- DNAString(sub_dom_molB) #sub_dom_molBの長さを、dif_dom_molBに代入 > dif_dom_molB <- length(subt_dom_molB) #domBとmolBで異なる塩基の数をdifference_dom_molBに代入 > difference_dom_molB <- (lengthB - dif_dom_molB ) > difference_dom_molB #difference_dom_molBを表示→この値を表にメモ #regionBの p distanceを求める > pdis_dom_molB <- difference_dom_molB/lengthB > pdis_dom_molB #p distanceを表示→小数点以下第4位を四捨五入した値を表にメモ 23
  24. 24. Biostringsを使ってp distanceを計算する4 #regionB において行ったのと同様にregionCにおけるp distanceをもとめる > dom_molC <- c(compareStrings(domC,molC)) > sub_dom_molC <- gsub("(['?'])", "", dom_molC) > subt_dom_molC <- DNAString(sub_dom_molC) > dif_dom_molC <- length(subt_dom_molC) > difference_dom_molC <- (lengthC - dif_dom_molC ) > difference_dom_molC #この値を表にメモ > pdis_dom_molC <- difference_dom_molC/lengthC > pdis_dom_molC #小数点以下第4位を四捨五入した値を表にメモ 24
  25. 25. region Bとregion Cにおける違い (結果) region B 617 bp region C 639 bp pair number of differences p distance number of differences p distance dom – mol 6 0.010 7 0.011 dom – cas 6 0.010 7 0.011 dom – mus 8 0.013 8 0.013 dom – spr 16 0.026 14 0.022 dom – car 30 0.049 39 0.061 mol – cas 0 0 0 0 mol – mus 4 0.006 1 0.002 mol – spr 14 0.023 17 0.027 mol – car 28 0.045 38 0.059 cas – mus 4 0.006 1 0.002 cas – spr 14 0.023 17 0.027 cas – car 28 0.045 38 0.059 mus – spr 14 0.023 18 0.028 mus – car 28 0.045 39 0.061 spr – car 32 0.052 37 0.058 25
  26. 26. 散布図の作成 1 1) regionBのp distanceをx軸の値として、変数xに代入 > x <- c(x軸のデータ) 2) regionCのp distanceをy軸の値として、変数y に代入 > y <- c(y軸のデータ) 3) それぞれの座標の最大値を取得 ( x軸、y軸のスケールを指定するため) 4) plot()で散布図の作成 > plot(x,y,xlim=c(軸の始まりの値,軸の終りの値), ylim=c(軸の始まりの値,軸の終わりの値)) 26
  27. 27. 散布図の作成 1 答え 1) regionBのp distanceをx軸の値として、変数xに代入 > x <- c(0.010, 0.010, 0.013, 0.026, 0.049, 0, 0.006 ,0.023, 0.045, 0.006 , 0.023 , 0.045, 0.023, 0.045, 0.052 ) 2) regionCのp distanceをy軸の値として、変数y に代入 > y <- c(0.011, 0.011, 0.013, 0.022, 0.061, 0, 0.002, 0.027, 0.059, 0.002, 0.027, 0.059, 0.028, 0.061, 0.058 ) 3) max()でそれぞれのデータの最大値を取得 ( x軸、y軸のスケールを指定したいので) > max(x) [1] 0.052 > max(y) [1] 0.061 4) plot()で散布図の作成 > plot(x,y,xlim=c(0,0.065), ylim=c(0,0.065)) 27
  28. 28. 散布図の作成 2 4’) それぞれの軸のラベルの名前を指定する > plot(x,y,xlab='regionB',ylab='regionC', xlim=c(0,0.065), ylim=c(0,0.065)) regionBとregionCのp distanceをもとめ、散布図を作成した。 regionBとregionCに起きた変異量が等しいのであれば、このプロットは対角線上に 並ぶことが期待される。 このことを示すために、次に回帰直線を引く。 28
  29. 29. 散布図の回帰直線 1 回帰直線とは、データの残差が最小になるように引く直線のこと。 線形回帰は、回帰直線と各データのずれ具合である偏差(d)の二乗の和をとり、 この二乗の和を最小にする(最小二乗法)。 回帰直線は y  a  bx の式で与えられる。 a は、定数、 b は傾きであり、 bについては以下の式で表される。 y  a  bx n (x3,y3)  (x i  x )( y i  y ) d3 b i 1 n d4 (x1,y1) (x4,y4)  ( xi  x ) 2 i 1 d1 d2 (x2,y2) 29
  30. 30. 散布図の回帰直線 2 散布図を作成する際に用いたデータについて、最小二乗法による線形回帰をもとめる。 線形の回帰直線は y  a  bx 。 a は、定数、 b は傾き。 n xi x n  (x i  x )( y i  y ) i 1 n x, y と表記する場合は、 b i 1 n y n y i 平均値を意味します。  ( xi  x ) 2 i 1 i 1 n > xdev <- (x-mean(x)) # xの偏差を計算 > ydev <- (y-mean(y)) # yの偏差を計算 > bnumin <- xdev*ydev # xとyの偏差をかける > bnum <- sum(bnumin) # xとyの偏差をかけたものの総和(分子) > bdenin <- xdev^2 # xの偏差の2乗 > bden <- sum(bdenin) # xの偏差の2乗の総和(分母) > b <- bnum/bden # b (傾き) >b [1] 1.317939 30
  31. 31. 散布図の回帰直線 3 散布図を作成する際に用いたデータについて、最小二乗法による線形回帰をもとめる。 回帰直線は y  a  bx の式で与えられる。 a は以下の式で表される。 n n yi xi a  b i 1 n i 1 n b  1.317939 > a1 <- sum(y)/length(y) > a2 <- b*(sum(x)/length(x)) > a <- a1-a2 [1] -0.003636326 y  0.0036  1.3x > abline (a,b) #a、bは切片と傾き。直線 y = a + bx を描く 「regionBとregionCに起きる変異量は等しい」ということは、y=xの回帰直線が期 待される。 ここで得られた回帰直線y=-0.0036+1.3xは、y=xとどの程度違っているのかにつ いては、ここでは扱いません。 c2 各ペアの領域ごとの変異量の違いを、 検定により検証する。 31
  32. 32. 散布図の回帰直線 解釈 y  0.0036  1.3x 「regionBとregionCに起きる変異量は等しい」ということは、y=xの回帰直線が期待される。 散布図から得られた結果からは、regionBとregionCに起きている変異量は、 回帰直線y=-0.0036+1.3xによく合っているということが分かります。 (y=-0.0036+1.3xは、y=xとどの程度違っているのかについては、ここでは扱いません。) 次に「regionBとregionCに起きる変異量は等しい」 ことを、 c2 各ペアの領域ごとの変異量の違いについて、 検定を行うことにより検証します。 32
  33. 33. 作業の自動化 p distanceの計算、散布図を作成、回帰直線1 -pdis_line.R- library("Biostrings"); x <- "" dom <- "[domesticusの配列]"; mol <- "[molossinusの配列]"; cas <- "[castaneusの配列]"; mus <- "[musculusの配列]"; spr <- "[spretusの配列]"; car <- "[caroliの配列]"; seqs <- c(dom,mol,cas,mus,spr,car); seqnames <- c("dom","mol","cas","mus","spr","car"); nseqs <- length(seqs); npoints <- length(x); x = vector(length=npoints); y = vector(length=npoints); k = 0; 次のページに続く 33
  34. 34. 作業の自動化 p distanceの計算、散布図を作成、回帰直線2 for (i1 in 1:(nseqs-1)){ for (i2 in (i1+1):nseqs ){ k = k + 1; # cat(sprintf("%d %d¥n",i1,i2)); seq1 = DNAString(seqs[i1]); seq2 = DNAString(seqs[i2]); seq_b1 = substring( seq1, 1, 617 ); seq_c1 = substring( seq1, 618, 1256 ); seq_b2 = substring( seq2, 1, 617 ); seq_c2 = substring( seq2, 618, 1256 ); len_b = length( seq_b1 ); cmp_b = c(compareStrings(seq_b1,seq_b2)); sub_b = gsub("(['?'])","",cmp_b); subt_b = DNAString(sub_b); dif_b = length(subt_b); n_b = len_b - dif_b; pdis_b = n_b / len_b; 次のページに続く 34
  35. 35. 作業の自動化 p distanceの計算、散布図を作成、回帰直線3 -pdis_line.R- x[k] = pdis_b; len_c = length( seq_c1 ); cmp_c = c(compareStrings(seq_c1,seq_c2)); sub_c = gsub("(['?'])","",cmp_c); subt_c = DNAString(sub_c); dif_c = length(subt_c); n_c = len_c - dif_c; pdis_c = n_c / len_c; y[k] = pdis_c; cat(sprintf('%s %s %d %g %g¥n',seqnames[i1],seqnames[i2],k,pdis_b,pdis_c)); } } xdev <- x-mean(x); ydev <- y-mean(y); b <- sum(xdev*ydev)/sum(xdev*xdev); a <- mean(y) - b*mean(x); cat(sprintf('a=%g, b=%g¥n',a,b)); 35
  36. 36. 作業の自動化 p distanceの計算、散布図を作成、回帰直線4 pdis_line.R このプログラムはhttp://www.net-machine.net/seijogaku-h21/にあります。 コピーして、CotEditorに貼付け[Macintosh HD/ユーザ/tg03/bin]に保存します。 実行するには、赤い四角で囲ったところをクリックし、ファイルを読み込みます。 もしくは、Rコンソールに source("/Users/tg03/bin/pdis_line.R") と入れます。 (作業ディレクトリがbinの場合にはpathは必要なく、ファイル名のみでよいです。) 36
  37. 37. c 検定 例1 2 c 2 とは、実際に観察された値と、期待される値との違いの尺度のことで、 以下の式でもとめることができる。 (O  E ) 2 c  2 Oは観察値、Eは期待値 E 具体例 メンデルの分離の法則 雑種第2代 F2の形質 エンドウマメの豆の形についての c 検定(期待される分離比は まる:しわ 3:1) 2 観察値 期待値 偏差 偏差の2乗 偏差の2乗 O E (O-E) (O-E)2 (O-E)2/E まる 5475 5493 -19 361 0.06572 しわ 1850 1831 19 361 0.19716 (O  E ) 2 c  2  0.26 E 自由度1のときの5%有意水準は、3.84である。 ここで得られたchi square値はそれよりも小 さいために、観察値と期待値の間には差がない、つまり観察されたF2の形質は、メンデル の分離の法則に従いまる:しわが3:1で出現していると判断する。 37
  38. 38. c 検定 有意水準 2 自由度1の c 2分布の場合 5% 有意水準は 3.84, 1% 有意水準は6.63 c 2値が3.84のところでグラフを区切ると、それよりも左側で0.95(95%)、それよりも右側で c2 0.05(5%)の面積になる。つまり、 値が3.84よりも大きい値は、5%の確率でしか起こら ないことを示す。 (O  E ) 2 c2   E Oは観察値、Eは期待値 3.84 6.63 38
  39. 39. c 検定 2 c 2の分布は、自由度によって変わる。 検定に用いたサンプル数についての自由度にしたがう c 2 分布を用いて有意水準が与えられる。 (O  E ) 2 c2   E Oは観察値、Eは期待値 c 2分布 自由度:1 自由度:3 自由度:5 39
  40. 40. c 検定 例1 Rでの手順 2 例:メンデルの分離の法則 雑種第2代 F2の形質 エンドウマメの豆の形についての c 2 検定(期待される分離比は丸:しわ 3:1) > obs1 <- 5474 >obs2 <- 1850 > exp1 <- (obs1+obs2)*(3/4) 「まる対しわの豆は3:1で表れる」と > exp1 いう帰無仮説のもとに検定を行う。 > exp2 <- (obs1+obs2)*(1/4) > exp2 まる しわ > dev1 <- obs1-exp1 観察値 5474 1850 > num1 <- (dev1)^2 > dev2 <- obs2-exp2 期待値 5493 1831 > num2 <- (dev2)^2 > chi1 <- num1/exp1 (O  E ) 2 > chi2 <- num2/exp2 c  2 E > chi <- chi1+chi2 Oは観察値、Eは期待値 > chi [1] 0.2628800 40
  41. 41. c 検定 例2 2 Makorin1-p1の配列については、「regionBとregionCに起きる変異量は等しい」という 帰無仮説のもとにregionBとregionCそれぞれに起きた、number of differencesを用いて c 2 検定を行う。(region Bは、617bp, regionCは、639bpである。) 例として、domesticusとmolossinusの比較を用いて示す。 観察値 期待値 偏差 偏差の2乗 偏差の2乗 O E (O-E) (O-E)2 (O-E)2/E regionB 6 6.758998 -0.758998 0.576078 0.08523127 regionC 7 6.213938 0.786062 0.6178935 0.0994367 (O  E ) 2 c  2  0.18 E *ここで、期待値は、regionBについてはregionCから得られる値(7/639)*617を使い、 regionCについては、regionBから得られる値(6/617)*639を使っています。 実際の実験データを用いる場合にはさまざまな制約により (この場合には、processed pseudogeneであることなどが理由になっています) モデル通りの検定ができないことがあります。 41
  42. 42. c 検定 例2 Rでの手順 2 Makorin1-p1の配列については、「regionBとregionCに起きる変異量は等しい」という帰 無仮説のもとにregionBとregionCそれぞれに起きた、number of differencesを用いて c 2 検定を行う。 region Bは、617bp, regionCは、639bpである。 regionB regionC > obsB <- 6 > obsC <- 7 dom-mol 観察値 6 7 > expB <- (obsC/639)*617 dom-mol 期待値 6.758998 6.213938 > expB [1] 6.758998 expC <- (obsB/617)*639 (O  E ) 2 > expC c  2 E [1] 6.213938 > devB <- (obsB-expB) Oは観察値、Eは期待値 > devC <- (obsC-expC) > chiB <- (devB^2) /expB > chiC <- (devC^2)/expC > chisqrt <- chiB+chiC > chisqrt [1] 0.1846679 #小数点以下第3位以下を四捨五入する 42
  43. 43. c 検定 (演習) 2 Makorin1-p1の配列については、「regionBとregionCに起きる変異量は等しい」という帰 無仮説のもとにregionBとregionCそれぞれに起きた、number of differencesを用いて c 2 検定を行う。 (O  E ) 2 c 2 E Oは観察値、Eは期待値 c2 それぞれ配列の比較を行ったpair毎に、 検定を行って、 「regionBとregionCに起きる変異量は等しい」という仮説を検証して下さい。 なお、有意水準95%, 自由度1の c 値は、 2 > qchisq(0.95, 1) で得ることができます。 有意水準の c 値よりも大きな c 値が得られたとき 2 2 帰無仮説は棄却されます。 43
  44. 44. 期待値とc をもとめる 2 region B 617 bp region C 639 bp pair observed expected observed expected chi square dom – mol 6 6.759 7 6.214 0.18 dom – cas 6 7 dom – mus 8 8 dom – spr 16 14 dom – car 30 39 mol – spr 14 17 mol – car 28 38 cas – spr 14 17 cas – car 28 38 mus – spr 14 18 mus – car 28 39 spr – car 32 37 44
  45. 45. c 検定 (結果) 2 region B 617 bp region C 639 bp pair observed expected observed expected chi square dom – mol 6 6.759 7 6.214 0.18 dom – cas 6 6.759 7 6.214 0.18 dom – mus 8 7.725 8 8.285 0.02 dom – spr 16 13.518 14 16.571 0.85 dom – car 30 37.657 39 31.070 3.58 mol – spr 14 16.415 17 14.499 0.79 mol – car 28 36.692 38 28.998 4.85 * cas – spr 14 16.415 17 14.499 0.79 cas – car 28 36.692 38 28.998 4.85 * mus – spr 14 17.380 18 14.499 1.50 mus – car 28 37.657 39 28.998 5.93 * spr – car 32 35.726 37 33.141 0.84 * : p < 0.05 molossinus, castaneus, musculusとcaroliとの比較において、regionBとregionCに起こる 変異量が等しいということは、5%有意水準で棄却された。 45
  46. 46. 例として用いたデータの 解釈と補足 Makorin1-p1は、Makorin1遺伝子のmRNAの分解を時間的に遅らせることができる。 これはMakorin1-p1のregionBのMakorin1との相同性が関与していることが分かっている。 Makorin1-p1のregionBでは、変異量が抑えられることが期待される。 機能との関係は持たず、同じ進化の過程を経ているregionCを用い、 「regionBとregionCの変異量は同じである」という帰無仮説を立て、検証した。 その結果、molossinus, castaneus, musculusとcaroliとの比較において、regionBとregionCに 起こる変異量が等しいということは、5%有意水準で棄却された。 このことは、regionBは機能的な制約を受け、変異量が抑えられている可能性があることを 示唆している。 -補足- 検定をする場合には、サンプル数があればあるほど、検定の精度は上がります。 しかし、実験には制約がつきもので、その理由としては、経済的なもの、実験試料が手に入 らないなどさまざまです。 Makorin1-p1の場合には、M. caroli以遠の種には存在していない、 regionIは機能により定義されたものなので、広げることができないなどの制約があります。 また、processed pseudogeneにはCpGサイトにおける塩基置換速度の加速があるために、 比較対象としてregionIIが600bp程度しかないけれど、最適ということになります。 小さい標本が含まれる場合(変数が5以下)の検定法などもあるので、 自分のデータに合う検定方法を選ぶことが必要です。 46
  47. 47. 付録 ・Bioconductor(Biostrings)の使用例 ・Bioconductor(GeneR)の使用例 ・塩基置換を観察する(transition,transversionの違い) ・塩基配列の進化距離 ・分子時計を観察する ・統計について 47
  48. 48. Bioconductor/Biostrings 使用例2 54-letter "DNAString" instance seq: CGTACGTAGTAGCTAGCTAGCTAGCTAGCTGATCGATGCTAGCTGATCGATGCT > alphabetFrequency(DNAString(x), baseOnly=TRUE) #配列中の各塩基の数 A C G T other [1,] 12 12 15 15 0 > reverseComplement(DNAString(x)) #相補鎖に変換 54-letter "DNAString" instance seq: AGCATCGATCAGCTAGCATCGATCAGCTAGCTAGCTAGCTAGCTACTACGTACG > dna2rna(DNAString(x)) #RNA配列に変換(T ->U) 54-letter "RNAString" instance seq: CGUACGUAGUAGCUAGCUAGCUAGCUAGCUGAUCGAUGCUAGCUGAUCGAUGCU 48
  49. 49. Bioconductor/Biostrings 使用例3 54-letter "DNAString" instance seq: CGTACGTAGTAGCTAGCTAGCTAGCTAGCTGATCGATGCTAGCTGATCGATGCT > m1 <- matchPattern(“GCTA”, DNAString(x) ) #モチーフなど指定した配列を探す > m1 Views on a 54-letter DNAString subject subject: CGTACGTAGTAGCTAGCTAGCTAGCTAGCTGATCGATGCTAGCTGATCGATGCT views: start end width [1] 12 15 4 [GCTA] [2] 16 19 4 [GCTA] [3] 20 23 4 [GCTA] [4] 24 27 4 [GCTA] [5] 38 41 4 [GCTA] 49
  50. 50. Bioconductor/GeneR 使用例1 Rコンソールの作業ディレクトリを「Users/tg03/bin」に変更 > source("http://www.bioconductor.org/biocLite.R") > biocLite("GeneR") > library(GeneR) > ls(“package:GeneR”) #GeneRで定義されている関数をみることができます 50
  51. 51. Bioconductor/GeneR 使用例1 > s<-"gtcatgcatgctaggtgacagttaaaatgcgtctaggtgacagtctaacaa" > placeString(s) #GeneRの場合は、DNAString()ではなくplaceString()に入れます [1] 0 > translate() #与えた配列の1文字目から翻訳 [1] "VMHAR*QLKCV*VTV*Q" > translate (from=c(1,2,3),to=c(0,0,0)) #3つ全ての読み枠で翻訳 [1] "VMHAR*QLKCV*VTV*Q" "SCMLGDS*NASR*QSN" "HAC*VTVKMRLGDSLT" > strCompoSeq(s, wsize=1) #配列の塩基組成(%で表示) T C A G X [1,] 0.2549020 0.1764706 0.3137255 0.2549020 0 > strCompoSeq(s, wsize=2) #配列の2つ組塩基の組成 TT TC TA TG TX CT CC CA CG CX AT AC AA AG AX GT GC [1,] 0 0 0.04 0.08 0 0.12 0 0.2 0 0 0.04 0 0.08 0.08 0 0.24 0.04 GA GG GX XT XC XA XG XX [1,] 0.08 0 0 0 0 0 0 0 51
  52. 52. Bioconductor/GeneR 使用例2 > strCompoSeq(s, wsize=3) #配列の3つ組塩基の組成 TTT TTC TTA TTG TTX TCT TCC TCA TCG TCX TAT TAC TAA [1,] 0 0 0.05882353 0 0 0 0 0 0 0 0 0 0.05882353 TAG TAX TGT TGC TGA TGG TGX TXT TXC TXA TXG TXX [1,] 0.05882353 0 0 0.05882353 0.05882353 0 0 0 0 0 0 0 CTT CTC CTA CTG CTX CCT CCC CCA CCG CCX CAT CAC [1,] 0 0 0 0 0 0 0 0 0 0.05882353 0 0.05882353 CAA CAG CAX CGT CGC CGA CGG CGX CXT CXC CXA CXG CXX ATT [1,] 0.05882353 0 0 0 0 0 0 0 0 0 0 0 0 0 ATC ATA ATG ATX ACT ACC ACA ACG ACX AAT AAC AAA [1,] 0.05882353 0 0 0 0.05882353 0 0 0 0 0.05882353 0 0 AAG AAX AGT AGC AGA AGG AGX AXT AXC AXA AXG AXX GTT [1,] 0 0 0 0.05882353 0 0 0 0 0 0 0.1764706 0 0.05882353 GTC GTA GTG GTX GCT GCC GCA GCG GCX GAT GAC GAA GAG GAX GGT GGC [1,] 0 0.05882353 0 0 0 0 0 0 0 0 0 0 0 0 0 0 GGA GGG GGX GXT GXC GXA GXG GXX XTT XTC XTA XTG XTX XCT XCC XCA XCG XCX [1,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 XAT XAC XAA XAG XAX XGT XGC XGA XGG XGX XXT XXC XXA XXG XXX [1,] 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 エクセルにコピーをして データ -> 区切り位置 -> スペースにより区切ると指定すると、この情報をきれいに表示す ることができます。 52
  53. 53. 塩基置換を観察する -Rhodopsin遺伝子を例に- Rhodopsin遺伝子は、脊椎動物の網膜の光受容細胞で発現し、光認識を行うタンパク をコードしています。 Rhodopsin (RHO) 5 exons, CDS 1047bp (348a.a.) human, chimpanzee, macaqueのRhodopsin遺伝子の配列を比較して transition, transversionの起こり方の違いを観察する。 1) GeneRを利用して、NCBIから配列を取得 2) 取得したファイルでCDSを確認し、RでCDSの領域の配列を切り取る 3) ClustalWでmultiple alignmentをする 4) 変異のtransitionとtransversionを区別して数える 53
  54. 54. 塩基置換 塩基(nucleotide)は、A,T,G,Cの4種類からなり、 骨格としてA,Gはpurine塩基、T,Cはpyrimidine塩基を持つ。 AとTは2本の水素結合、GとCは3本の水素結合で相補的に結合している。 purine塩基間、pyrimidine塩基間で起きる変異をtransition purine塩基とpyrimidine塩基の間で起きる変異をtransversionと呼び区別している。 C a T b b b b A T a A G a :transition b :transversion G C purine pyrimidine 54 Figure 4-4 Molecular Biology of the Cell (© Garland Science 2008)
  55. 55. 塩基置換を観察する transition/transversionを数える RhodopsinのCDS(coding sequence)は、1047bpです。 transition: A G, C T transversion: A,G C,T human – chimpanzee, human – macaqueの間の比較で、 (NM_000539)-(XM_516740) (NM_000539)-(XM_001094250) 塩基置換が起きている箇所について、transitionとtransversionに分けて数えて下さい。 また、配列の長さに対して置換数の割合を示すp-distaceを出して下さい。 p-distance = 置換数/配列の全体の長さになります。 transition transversion p-distance human- chimpanzee human- macaque 55
  56. 56. Clustalwとは http://www.clustal.org/ Clustalwは、塩基配列とアミノ酸配列のmultiple alignmentを行うソフトです。 alignmentの後の解析で使用するソフトに合わせて、outputファイルのformatが選べます。 Clustalwは、コマンドラインからの使用。 Clustalxは、GUIによる使用です。 最新版をダウンロードするために、 EBI ftp siteに接続します。 56
  57. 57. Clustalwのインストール 最新版 Clustalw-2.0.11 (2009年7月12日 現在)をインストールする。 clustalw-2.0.11-macosx.dmgをクリックすると 一番下の図の画面が開く。 「clustalw-2.0.11-macosx」フォルダをコピーして 「Users/tg03/bin」へ貼付ける。 終わったら「ftp.ebi.ac.uk」と 「clustalw-2.0.11-macosx」の二つを アンマウントしておく。 57
  58. 58. Bioconductor/GeneRで塩基配列を取得 1 Rコンソールの作業ディレクトリを「Users/tg03/bin」に変更 > library(GeneR) #Rを使い始める場合には、ここから 1) GeneRを利用して、NCBIからhumanの配列を取得 > seqNcbi(“NM_000539”,file=“NM_000539.gbk”,type=“G”) > readGbk(“NM_000539.gbk”) #Genbank formatのファイルを読み込むための準備 2) 取得したファイルでCDSを確認し、RでCDSの領域の配列を切り取る CotEditorでNM_000539.gbkファイルを開いて、CDSの領域を確認 NM_000539.gbkでは、CDSは96から1142 #切り取った配列をrhodopsin.txtにfasta形式で保存 > writeFasta(file="rhodopsin.txt",from =96, to=1142, append=F) [1] 1 # 1:コマンドの実行成功, -1:コマンドの実行失敗 なので、ファイルはできている。 Warning message: In file.remove(file) : ファイル 'rhodopsin.txt' を削除できません, 理由は 'No such file or directory' です 58
  59. 59. Bioconductor/GeneRで塩基配列を取得 2 1’) GeneRを利用して、NCBIからchimpanzeeの配列を取得 > seqNcbi("XM_516740",file="XM_516740.gbk",type="G") > readGbk("XM_516740.gbk") 2’) 取得したファイルでCDSを確認し、RでCDSの領域の配列を切り取る CotEditorでXM_516740.gbkファイルを開いて、CDSの領域を確認(102..1148) > writeFasta(file=“rhodopsin.txt”, from =102, to=1148, append=T) #ファイルに追加 1’’) GeneRを利用して、NCBIからmacaqueの配列を取得 seqNcbi("XM_001094250",file="XM_001094250.gbk",type="G") readGbk("XM_001094250.gbk") 2’’) 取得したファイルでCDSを確認し、RでCDSの領域の配列を切り取る CotEditorでXM_516740.gbkファイルを開いて、CDSの領域を確認(102..1148) writeFasta(file="rhodopsin.txt",from =102, to=1148, append=T) #ファイルに追加 「Users/tg03/bin」にできているrhodopsin.txtを確認して下さい。 59
  60. 60. Clustalwの実行 3) ターミナルからClustalWでmultiple alignmentをする $ export PATH=/Users/tg03/bin/clustalw-2.0.11-macosx $ cd /Users/tg03/bin/clustalw-2.0.11-macosx $ clustalw2 -INFILE=rhodopsin.txt -OUTFILE=rho.aln rho.alnファイル CotEditorで開いて「フォーマット/フォント」でCourierもしくはCourier Newを選んで下さい。 4) 変異のtransitionとtransversionを区別して数える 60
  61. 61. 塩基置換を観察する 答え RhodopsinのCDS(coding sequence)は、1047bpです。 transition: A G, C T transversion: A,G C,T human – chimpanzee, human – macaqueの間の比較で、 (NM_000539)-(XM_516740) (NM_000539)-(XM_001094250) 塩基置換が起きている箇所について、transitionとtransversionに分けて数えて下さい。 transition transversion p-distance human- 5 1 6/1047 = 0.006 chimpanzee human- 32 8 40/1047 = 0.038 macaque ヒトとチンパンジーの種分岐が約600万年前、 ヒトとマカクの種分岐が約2500万年 61
  62. 62. 置換数の推定 二つの配列の比較により観察される置換は、共通の祖先から分かれて(種分岐、遺伝子 重複)現在に至るまでに起きたものである。 実際は、共通祖先の配列は分からないので、過去に起きた変異の全てを観察することは できない。ある程度の時間が経過した場合は、ひとつの場所に2回の置換が起こる、ひと つの場所に2回置換が起き、最初の塩基に戻ることなども考えられる。 これらの可能性の他に、塩基間、アミノ酸間での特性を考慮することも加えた複数の置換 数の推定方法がある。 共通祖先1 共通祖先2 TCTGAGACCT TCTGTGACCT 5th A→T 6th G→C 3th T→A 6th G→C 6th G→C 3th T→A 9th C→G 9th C→G 5th A→T 6th C→G TCAGTGACCT TCTGTCACGT TCAGTGACCT TCTGTCACGT ヒト チンパンジー ヒト チンパンジー 62
  63. 63. 塩基配列の進化距離 塩基配列間の違い 共通の祖先から二つの塩基配列が生じると、それぞれの子孫配列は徐々に塩基置換を 蓄積し分化していく。この分化の程度を進化距離として表す。 1) p distance: p  nd / n n d : 二つの配列の間で異なる塩基の数, n : 調べた塩基の総数 2) Jukes and Cantor model (1969): A T C G すべての塩基置換が同じ確率で起こると仮定したモデル a a a      A - d   3 ln 1  4 p T a - a a 4 3 G a a - a 3) Kimura’s two parameter model (1980): C a a a - transition型の塩基置換速度を a、 transvesion型の塩基置換速度を b として、別々に扱うモデル A T C G   4  P  1 1  2e 4a  b t  e 8 bt A - b b a    Q  1 1  e 8 bt 2 T b - a G b a - b d  2rt  2at  4bt       1 ln(1  2 P  Q)  1 ln(1  2Q) 2 4 C a b b - 63
  64. 64. 塩基配列の進化距離 基本的な考え方1 共通の祖先遺伝子(遺伝子a)からできた遺伝子a’,a”のあるひとつのサイトに注目する。 時間tから時間t+1になる間の塩基置換について考える。 遺伝子a’ t t+1 T a’ T a’ T a’ (1-r)2 遺伝子a T a A G C 遺伝子a’’ 1-2r T a” T a” T a” rは10-8,10-9 A G C なので 塩基置換速度:r =3a r2の項は (どの塩基間も同じ割合 時間t以前に T a’ T a’ ほぼ無視できる で置換する場合) 遺伝子a”で置換 塩基置換が起きる:r C a” T a” 2r(1-r)/3 起きない:1-r 2r/3 起きた塩基置換が 時間t以前に A a’ T a’ 比較しているものと同 遺伝子a’で置換 じ塩基になる確率:1/3 T a” T a” 64
  65. 65. 塩基配列の進化距離 基本的な考え方2 Jukes and Cantor model (1969):すべての塩基置換が同じ確率で起こると仮定したモデル の式の説明 時間tから時間t+1の間に同じ塩基であり続ける可能性について考える。 前のページのqtとqt+1の関係を式にすると 2 qt 1  (1  2r )qt  r (1  qt ) 3 これは、以下のように書き換えられる。 2r 8r qt 1  qt   qt 3 3 連続時間モデルを考え、qtのtを省略し、qt+1-qtをdq/dtと書き換えると微分方程式にするこ とができる。 dq 2r 8r   q dt 3 3 初期条件 t  0で q  1 となるこの方程式の解は、以下のようになる。 3 8rt q  1  (1  e 3 ) 4 このモデルでは、二つの配列の間に生じたサイトあたりの塩基置換数(d)の期待値は 2rtとなる。したがって、dは、以下の式になる。 d      3 ln 1  4 p 4 3 qt:注目するサイトが同じ塩基である確率 pt=(1-qt):注目するサイトが異なる塩基になる確率 p:塩基配列中に観察された異なる塩基の割合 (p distance) 65
  66. 66. 塩基配列の進化距離 演習 human, chimanzee, macaqueのRhodopsin遺伝子の塩基配列の違いを用いて、 Jukes and Cantor modelの進化距離を計算して下さい。 transition transversion p-distance JC distance human- 5 1 6/1047 = 0.006 chimpanzee human- 31 9 40/1047 = 0.038 macaque      d   3 ln 1  4 p 4 3 小数点第4位を四捨五入して下さい。 > -(3/4)*log(1-(4/3)*0.006) 66
  67. 67. 分子時計を観察する -hemoglobin遺伝子を例に- 「分子時計」 (molecular clock)とは、アミノ酸や塩基配列の置換速度は生物進化の過 程でおよそ一定であるとする仮説である。 1960年代に、ヘモグロビン、チトクロームc、フィブリノペプチドの研究から観察された。 DNAの損傷とその修復機構などが影響してくるために、厳密に一定の速度で進化して いるとはいえないが、傾向を見ることはできる。 Hemoglobin subunit alpha (Hemoglobin alpha chain) 3 exons, CDS 577bp (142a.a.) ヘモグロビン(hemoglobin)は、ヒトを含む全ての脊椎動 物や一部のその他の動物の血液中に存在する赤血球の 中にあるタンパク質である。 成人のヘモグロビンはαサブユニットとβサブユニットと呼 ばれる2種類のサブユニットそれぞれ2つから構成される ヘモグロビンの 四量体構造をしている。 立体構造の模式図 67
  68. 68. 分子時計を観察する 手順1 – hemoglobin- 1) TogoWSのRESTで配列を取得する。 改行を含まないよう(/seq)を使う。 2) Rで配列の比較を行い、p distanceを計算する。 3) x軸に種の分岐年代、y軸にp distanceをプロットする。 取得する配列とそれらとhumanとのおおよその種分岐年代を下の表に示している。 humanからの uniprot ID 種分岐年代 p distance (百万年) human HBA_HUMAN - horse HBA_HORSE 80 wallaby HBA_MACEU 150 chicken HBA_CHICK 300 frog HBA_XENTR 350 zebra fish HBA_DANRE 420 68
  69. 69. 分子時計を観察する 手順2 – hemoglobin- 1) TogoWSのRESTで配列を取得する。 改行を含まないよう(/seq)を使う。 http://togows.dbcls.jp/entry/ebi-uniprot/HBA_HUMAN/seq apple mark+aで全てを選択し、Rの画面に貼り付ける。 2) Rで配列の比較を行い、p distanceを計算する。 human <- “HBA_humanの アミノ酸配列” len <- AAString(human) total <-length(len) #アミノ酸配列の長さ horse <- “” comp <-c(compareStrings(human, horse)) #文字列を比較する 比較する変数を変更 subs <-gsub(“(*‘?’+)”, “”, comp) #compareStringsでは、異なる配列は?で表示されるため aas <- AAString(subs) aasame <- length(aas) #同じ配列の数を求める diff <- (total-aasame) #違う配列の数 pdis <- diff/total #human-horse, human-wallaby, human-chicken, human-frog, human-zebra fishについて行う #compareStrings()は同じ長さしか受け付けないため、zebra fishの配列については、 YFSHW「A」DLSPGのA(48番目)をRコンソールの画面上で削除して下さい。 3) x軸に種の分岐年代、y軸にp distanceをプロットする。 69
  70. 70. 分子時計を観察する 解説 – hemoglobin- x <- c(80,150,300,350,420) y <- c(0.120,0.197,0.296,0.423,0.465) plot(x,y,xlim=c(0,450), ylim=c(0,0.5)) humanからの uniprot ID 種分岐年代 p distance (百万年) human HBA_HUMAN - horse HBA_HORSE 80 0.120 wallaby HBA_MACEU 150 0.197 chicken HBA_CHICK 300 0.296 frog HBA_XENTR 350 0.423 zebra fish HBA_DANRE 420 0.465 時間に比例して、進化距離が増え、おおよそ一定の塩基置換速度を持っているように見えます。ヘ モグロビン遺伝子や1960年代に研究されたタンパク質は生存に必須であるため、生物種を超えて保 存されており、分子時計が観察しやすいものです。 注目するタンパク質がある程度の変異を許す場合(olfactory receptorなど)には、観察する長さが限 られているので、多重置換が起こり、変異量が頭打ち(飽和)になり、直線にはならないことが多いで す。 70
  71. 71. 分子時計を観察する 演習 –Makorin1, Makorin2- 1) TogoWSのRESTで配列を取得する。 改行を含まないよう(/seq)を使う。 2) Rで配列の比較を行い、p distanceを計算する。 3) x軸に種の分岐年代、y軸にp distanceをプロットする。 取得する配列とそれらとhumanとのおおよその種分岐年代を下の表に示しめしている。 今回のalignmentには、モチーフが含まれている領域を用いる。 *理由1:Makorin1遺伝子はモチーフ付近は保存されているが、その他の部分は長さが違うため。 理由2:Makorin2でMakorin1とalignmentできる領域は、モチーフ付近に限られるため。 humanからの 切り取る uniprot ID 領域 種分岐年代 p distance (百万年) human MKRN1_HUMAN 193-401 - mouse MKRN1_MOUSE 193-401 80 wallaby MKRN1_MACEU 189-397 150 frog MKRN1_XENLA 159-367 350 zebra fish MKRN1_DANRE 148-356 420 mouse MKRN2_MOUSE 150-358 80 71
  72. 72. 分子時計を観察する 手順 –Makorin1, Makorin2- 1) TogoWSのRESTで配列を取得する。 改行を含まないよう(/seq)を使う。 2) Rで配列の比較を行い、p distanceを計算する。 > human <- "" > all1 <- AAString(human) > humanc <- substring(all1, 193, 401) #指定した部分だけを抜き出す > total <-length(humanc) > mouse <- "" > all2 <- AAString(mouse) > mousec <- substring(all2, 193, 401) > comp <-c(compareStrings(humanc, mousec)) #同じ長さでないと受け付けない > subs <-gsub("(['?'])", "", comp) > aas <- AAString(subs) > aasame <- length(aas) > diff <- (total-aasame) > pdis <- diff/total #human-mouse, human-wallaby, human-frog, human-zebra fish, human-mouse2について行う 3) x軸に種の分岐年代、y軸にp distanceをプロットする。 72
  73. 73. 分子時計を観察する 解説 –Makorin1, Makorin2- x <- c(80,150,420,350,80) y <- c(0.024,0.053,0.177,0.139,0.407) plot(x,y,xlim=c(0,450), ylim=c(0,0.5)) humanからの uniprot ID 種分岐年代 p distance (百万年) human MKRN1_HUMAN - mouse MKRN1_MOUSE 80 0.024 wallaby MKRN1_MACEU 150 0.053 frog MKRN1_XENLA 350 0.139 zebra fish MKRN1_DANRE 420 0.177 mouse MKRN2_MOUSE 80 0.407 Makorin1遺伝子のプロットに注目すると、時間に比例して増えていることが観察される。hemoglobin のプロットと比較すると、Makorin1の方が傾きが小さい。これは、保存性の高い領域だけを用いたた めであり、Makorin1のモチーフ領域はかなり重要な役割を持つことを示唆している。 また、Makorin1のパラログであるMakorin2のプロットは、Makorin1の直線には乗らない。そして、 Makorin1のhuman-zebra fishとの進化距離よりも大きいことから、脊椎動物の共通祖先よりも前に 遺伝子重複を起こしたことを示唆している。 Makorin2遺伝子の重複時期を推定したい場合には、 距離からではなく、種分岐に沿って生物種を遡ってorthologを確認する方が良い。なぜなら、進化距 離は分岐からの時間が経つほど多重置換を補正できず過小評価になるからである。 73
  74. 74. 統計について ・なぜ統計が必要なのか/統計の考え方 ・統計(母集団、サンプル/有意性、p値/平均/分散/標準偏差/正規 分布/中央値、最頻値/自由度 74
  75. 75. なぜ統計学が必要なのか 「もの」や「こと」を観察する場合には、そこから得られる数字データには常にばらつき (誤差)がある。 統計で扱う数字データは、純粋な数学的な値、例えば、円周率 p = 3.1415926535… とは異なる性質を持っている。 円周率は、「円の周囲の長さと直径との比」と定義されているが、 それは現実に描かれた円の周囲と直径を測定して得られるものではなく、 理論上の「理想的な円」についての値である。 そこで、観察により得られた数字データの確からしさや特徴を表現するために、統計学 を用いる。 観察されたデータの表現方法としては、平均や分散、有意性検定、有意性を数値で表 すp値などがある。 → 観察した事象について客観的な判断を行うためには、統計が必要である。 75
  76. 76. 統計 –母集団、サンプル 1- 母集団とは、調査対象になりうる個々の全てのものを意味する。 実際に全てを調べることはできないので、一部を抽出し調査することになる。 母集団から選ばれたものをサンプル(標本)という。 サンプルから集められたデータは観測値、集団中の個体の違いは変数と呼ばれる。 サンプル 標本 母集団 サンプルは、母集団をうまく代表していなくてはならないため、無作為抽出(ランダム抽 出)されなくてはならない。 無作為抽出を行うためには、通常は乱数が使われる。 乱数表から取る、またはコンピュータのプログラムを使って生成することもできる。 76
  77. 77. 統計 –母集団、サンプル 2- ゲノム配列のあるひとつのサイトに注目した場合、 ヒト集団中で多型(A:68%, G:28%, C: 4%)であったとする、 10個体をサンプルとして抽出して、塩基配列を決定した結果、A:60%, G40%であった。 ある程度のサンプル数を取らないと母集団を上手く推定することができない。 また、非常にまれなものは見落とす可能性がある。 サンプル 標本 ヒト01 A ヒト集団全体 ヒト02 A 母集団 ヒト03 G ヒト04 G A G A A G ヒト05 A G AGA A ヒト06 A G A C G G A A A AA ヒト07 A A A A A ヒト08 G A ヒト09 A ヒト10 G 77
  78. 78. 統計 –有意性、p値- 結果は有意(significant)である、というとき統計学では、 「その結果は偶然に起こっているようではない」ということを意味している。 すなわち「帰無仮説が正しいならば、起こるようなものではない」ことを意味している。 ここで 5%以下の確率で起こるような事象に対して このようにあらかじめ定められた確率を有意水準(significance level)と呼ぶ。 p値(p-value)とは、帰無仮説が正しいときに、ある観測された結果以上に極端なものが 偶然により得られる確率のことである。 簡単に言うとp値は帰無仮説の信憑性を測るものさしである。 確率的には非常に起こりそうもないことが起こっているとき、 例えばp値<0.001のとき、統計的に有意であると呼んでいる。 78
  79. 79. 統計 –平均、分散、標準偏差- 平均:相加平均(算術平均)のこと (すべてのデータの和をデータの数で割ったもの) 1 n x  x n i 1 分散:データが平均のまわりでどのくらい散らばっているかを示す尺度。 それぞれの変数から平均を引いて偏差をもとめ、それを二乗したものを すべて足し合わせ、標本数で割ったもの(標本分散)。 1 n  2   (x  xi ) 2 n i 1 (標本数-1)で割ったもの(不偏分散)母集団の分散。 1 n 2   n  1 i 1 (x  xi ) 2 標準偏差:データが平均のまわりでどのくらい散らばっているかを示す尺度。 分散の平方根   2 79
  80. 80. 統計 –平均、標準偏差- 観察された標本について表現する際に、平均や標準偏差を用いる。 標本の標準偏差とは、標本のばらつきを示すものである。 下のように平均がどれも同じ5の標本であっ ても、標準偏差が違うことによって、標本を 構成する要素は異なる。 偏差 平均5, 標準偏差0.5 平均 平均5, 標準偏差1.0 平均5, 標準偏差2.0 80
  81. 81. 統計 –正規分布- サイコロを2個投げて、出た目の和の平均は 繰り返すほどその値はベル型の分布(正規分布)に近付いていく。 出た目の和 2 3 4 5 6 7 8 9 10 11 12 確率 1/36 2/36 3/36 4/36 5/36 6/36 5/36 4/36 3/36 2/36 1/36 100回の平均 1000回の平均 10000回の平均 81
  82. 82. 統計 –中央値、最頻値- 中央値:サンプルの中で、それよりも大きい値の数と小さい値の数が同じくなる点のこと 対称な分布の場合、平均と等しくなる。 非対称な分布の場合、分布の代表値として中央値が適切である。 最頻値:最も度数の多い測定値のこと 二峰性分布の場合のように平均を一つに決めにくい場合に用いられる。 二峰性分布には、たいてい二つの集団が混ざっていることを示唆するので、 この場合は、平均や中央値は分布の適切な尺度ではない。 対称な分布 非対称な分布 二峰性の分布 82
  83. 83. 統計 –自由度- 自由度とは、d.f. (degree of freedom)とも表記されるもので、 標本数から推定されたサンプルの数を引いたものである。 自由度の考え方 A,B,Cという観測値がある。 「3つの観測値がある」という情報しかなければ、A,B,Cそれぞれ自由に値を与えること ができる。 このときの自由度は3である。 しかし、「3つの観測値があり、それらの平均」 の情報があるときには、 A,Bなど2つの値が与えられた時点で、Cの値が決まる。 このときの自由度は、2である。 また、「3つの観測値とそれらの平均と標準偏差」の情報があるときには、 A,B,Cいずれかの値が1つ決まれば、他の2つの値が決まる。 このときの自由度は1である。 1 n *標準偏差とは、観測値の平均からのばらつきを示す値。    (x  xi )2 n i 1 83
  84. 84. まとめ ・統計処理を行うソフト Rをインストールし、基本的な使い方について 説明と演習を行いました。 ・実際のデータを例に、散布図の作成、回帰直線(線形)、 c 2 検定を行いました。 付録では、 ・Rのゲノム配列などの解析用のパッケージ集(Biostrings, GeneR)を 用いて、塩基配列やアミノ酸配列を取り扱っています。 ・塩基置換の特徴について(transition/transversionの違い、分子時 計)を実際のデータを使っています。 ・統計について一般的な言葉の定義を扱っています。 84
  85. 85. 相同性検索の自動化と統計処理の基礎 のまとめ データベースには、たくさんの情報が入っています。また、目的に応じて、迅速 かつ的確な取り出し方ができるためのツールも揃っています。使い方を覚える と豊富なデータを使いこなすことができるようになります。 データを取得した後の解析は、目的やデータの性質に合う方法を 選ぶ必要があります。コマンドやプログラムを使って単純な作業は自動化をす ると、解析方法についての勉強や実験に時間を割くことができるようになるの で、この講義を離れても繰り返し使って下さい。 85

×