User Tools

Site Tools


tutorialcodonusagejapanese

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
tutorialcodonusagejapanese [2007/08/27 10:36]
yves
tutorialcodonusagejapanese [2008/04/14 07:31]
gaou
Line 2: Line 2:
  
  
-タンパク質を構成するアミノ酸の配列順序を決めるのは、核酸塩基の配列順序です。 それぞれのアミノ酸は、4種の核酸塩基(A,​ T/U, G, C)のうち3塩基の連鎖(コドン) でコードされています。アミノ酸の種類が20種類であるのに対し、3個の塩基の並び方は 4x4x4で64通り考えられます。実際、1つのアミノ酸に複数のコドンが対応すること が知られており、このように、同一のアミノ酸をコードするコドンを 同義コドン (synonym ​codon)と呼びます。 同義コドンの使用頻度には、生物種固有の偏りが存在することが知られています。+タンパク質を構成するアミノ酸の配列順序を決めるのは、核酸塩基の配列順序です。それぞれのアミノ酸は、4種の核酸塩基(A,​ T/U, G, C)のうち3塩基の連鎖(コドン) でコードされています。アミノ酸の種類が20種類であるのに対し、3個の塩基の並び方は 4x4x4で64通り考えられます。実際、1つのアミノ酸に複数のコドンが対応すること が知られており、このように、同一のアミノ酸をコードするコドンを 同義コドン (synonymous ​codon)と呼びます。 同義コドンの使用頻度には、生物種固有の偏りが存在することが知られています。
  
  
Line 11: Line 11:
 それでは、コドン使用頻度の解析を実際に行う前に、まずG-language System を起動 しましょう。G-language System を使用すれば、ゲノム解析は非常にシンプルです。 それでは、コドン使用頻度の解析を実際に行う前に、まずG-language System を起動 しましょう。G-language System を使用すれば、ゲノム解析は非常にシンプルです。
  
-例えば、カレトディレクトリにある "bsub.gbk" というデータファイル(Genbank形式の Bacillus subtilis のコンプリートゲノム)を使用して解析をするなら、テキストエディタ に以下の二行を書き込むだけで準備は終了します。 +例えば、G-language Systemに標準でバドルされている"​bsub"​というデータ(Genbank形式の ​//Bacillus subtilis// のコンプリートゲノム)を使用して解析をするなら、テキストエディタ に以下の二行を書き込むだけで準備は終了します。
  
 +<code perl>
   use G;    use G; 
-  $gb = new G("​bsub.gbk"​); ​+  $gb = new G("​bsub"​); ​ 
 +</​code>​ 
 試しに、このPerlスクリプトを実行してみましょう。(ファイル名を test.pl とします) 試しに、このPerlスクリプトを実行してみましょう。(ファイル名を test.pl とします)
  
   perl test.pl ​ [ENTER] ​   perl test.pl ​ [ENTER] ​
 +
 以下のような出力が得られましたか? 以下のような出力が得られましたか?
  
Line 51: Line 54:
           GC Content :    43.52% ​           GC Content :    43.52% ​
   ​   ​
-このアクセッション番号と塩基含量の統計値の出力によって、G-language System は データファイル("​bsub.gbk"​)を無事読み込んだことを知らせてくれます。+このアクセッション番号と塩基含量の統計値の出力によって、G-language System は データファイル("​bsub"​)を無事読み込んだことを知らせてくれます。
  
  
 では、スクリプトの説明をしましょう。 では、スクリプトの説明をしましょう。
-use G; で、Gのモジュールをインポートします。 +   ​* ​use G; で、Gのモジュールをインポートします。 
-$gb = new G("​bsub.gbk"); で、カレントィレクトリにある"​bsub.gbk"​ というファイルを読み込み、$gb という変数に アノテーションと塩基配列 を格納します。+   *  ​$gb = new G("​bsub"​);​ で、データを読み込み、$gb という変数に アノテーションと塩基配列 を格納します。ここではG-language Systemが持っている"​bsub"​というデータを使っていますが、ここにRefSeqのアクセッション番号や、スクリプトを実行している場所にあるGenBankファイル名などを入力しても同様に扱えます。 
  
  
Line 62: Line 66:
  
 === 課題0 :  === === 課題0 :  ===
-他の細菌のコンプリートゲノムデータ("​ecoli.gbk"​、"​hbsp.gbk"​、"​mgen.gbk" など) を読み込んで下さい。そして、G+C含量(GC Content)の生物種間差を調べましょう。 +他の細菌のコンプリートゲノムデータ("​ecoli"​、"​cyano"​、"​mgen"​ など) を読み込んで下さい。そして、G+C含量(GC Content)の生物種間差を調べましょう。 
-[ヒント] 上記スクリプトの $gb->​new G("​bsub.gbk"); の行を書き換えます。+[ヒント] 上記スクリプトの $gb->​new G("​bsub"​);​ の行を書き換えます。
  
 ====== Step1: 標準関数の使用例(1) : 遺伝子全体でのコドン使用頻度の解析 ​ ====== ====== Step1: 標準関数の使用例(1) : 遺伝子全体でのコドン使用頻度の解析 ​ ======
  
-G-language System にはゲノム解析のための関数が標準で多数用意されています。 ここでは、標準関数の一つである codon_usage() を用いて、B. subtilis のコドン使用頻度 を解析しましょう。Step 0で作成したPerlスクリプトに、codon_usage()関数を使用する 一行を書き足して下さい。 codon_usage()関数には、$gb を引数として渡します。 +G-language System にはゲノム解析のための関数が標準で多数用意されています。 ここでは、標準関数の一つである codon_usage() を用いて、//B. subtilis// のコドン使用頻度 を解析しましょう。Step 0で作成したPerlスクリプトに、codon_usage()関数を使用する 一行を書き足して下さい。 codon_usage()関数には、$gb を引数として渡します。
  
 +<code perl>
   use G;    use G; 
-  $gb = new G("​bsub.gbk"​); ​+  $gb = new G("​bsub"​); ​
   codon_usage($gb); ​   codon_usage($gb); ​
 +</​code>​
 +
 上記スクリプトを実行すると、コドン使用頻度がディスプレイに出力される とともに、 以下のようなコドンテーブルが表示されるはずです。 上記スクリプトを実行すると、コドン使用頻度がディスプレイに出力される とともに、 以下のようなコドンテーブルが表示されるはずです。
  
 {{http://​www.g-language.org/​data/​haruo/​codon_table.gif}} {{http://​www.g-language.org/​data/​haruo/​codon_table.gif}}
  
-Tこれは、B. subtilis ゲノム全体で同義コドンの頻度を計算した結果を表にしたものです。 各アミノ酸における同義コドンの頻度を合計すると 1 になります。 例えば、フェニルアラニン(略号 : F )では、TTTの頻度 0.685 に対してTTC の頻度は 0.315 と、2つある同義コドンのうち TTT を多用し、 イソロイシン(略号 : I )では3つある同義コドンのうち ATT を多用している といったように、各アミノ酸で特定のコドンを偏って使用する傾向がみられます。+これは、//B. subtilis// ゲノム全体で同義コドンの頻度を計算した結果を表にしたものです。 各アミノ酸における同義コドンの頻度を合計すると 1 になります。 例えば、フェニルアラニン(略号 : F )では、TTTの頻度 0.685 に対してTTC の頻度は 0.315 と、2つある同義コドンのうち TTT を多用し、 イソロイシン(略号 : I )では3つある同義コドンのうち ATT を多用している といったように、各アミノ酸で特定のコドンを偏って使用する傾向がみられます。
  
  
Line 85: Line 91:
 === 課題1: === === 課題1: ===
  
-Mycoplasma genitalium("​mgen.gbk"​)における各アミノ酸の同義コドン使用の偏りと B. subtilis のそれとを比較検討してみてください。+//Mycoplasma genitalium//("​mgen"​)における各アミノ酸の同義コドン使用の偏りと ​//B. subtilis// のそれとを比較検討してみてください。
  
-[ヒント] 上記スクリプトの $gb->​new G("​bsub.gbk"); の行を書き換えます。+[ヒント] 上記スクリプトの $gb->​new G("​bsub"​);​ の行を書き換えます。
  
 ====== Step2 -標準関数の使用例(2) : 遺伝子毎のコドン使用頻度の解析 ​ ====== ====== Step2 -標準関数の使用例(2) : 遺伝子毎のコドン使用頻度の解析 ​ ======
Line 101: Line 107:
 オプションは オプションは
  
 +<code perl>
   codon_usage($gb,​ -output=>'​f',​ -filename=>'​bsub_CodonUsage.csv'​); ​   codon_usage($gb,​ -output=>'​f',​ -filename=>'​bsub_CodonUsage.csv'​); ​
 +</​code>​
 +
 のように、"​-"​ をオプション名の頭に付け、"​=>"​ で値と結びます。 のように、"​-"​ をオプション名の頭に付け、"​=>"​ で値と結びます。
  
Line 109: Line 118:
 Step 1 で作成したスクリプトを以下のように書き換えて下さい。 Step 1 で作成したスクリプトを以下のように書き換えて下さい。
  
 +<code perl>
   use G;    use G; 
-  $gb = new G("​bsub.gbk"​); ​+  $gb = new G("​bsub"​); ​
   codon_usage($gb,​ -CDSid=>'​CDS113'​); ​   codon_usage($gb,​ -CDSid=>'​CDS113'​); ​
-'​CDS113'​は、伸長因子(elongation factor Tu, EF-Tu)をコードする遺伝子(tufA)に対応しています。 上記スクリプトを実行すると、以下に示すような tufA 遺伝子のコドン使用頻度がディスプレイに出力されるはずです。+</​code>​ 
 + 
 +'​CDS113'​は、伸長因子(elongation factor Tu, EF-Tu)をコードする遺伝子(//tufA//)に対応しています。 上記スクリプトを実行すると、以下に示すような ​//tufA// 遺伝子のコドン使用頻度がディスプレイに出力されるはずです。
  
    
-/ -> taa -> 1   1.000  +  ​/ -> taa -> 1   1.000  
-A -> gca -> 2   0.074  +  A -> gca -> 2   0.074  
-A -> gcc -> 2   0.074  +  A -> gcc -> 2   0.074  
-A -> gcg -> 3   0.111  +  A -> gcg -> 3   0.111  
-A -> gct -> 20   0.741  +  A -> gct -> 20   0.741  
-C -> tgc -> 2   1.000  +  C -> tgc -> 2   1.000  
-D -> gac -> 15   0.600  +  D -> gac -> 15   0.600  
-D -> gat -> 10   0.400  +  D -> gat -> 10   0.400  
-E -> gaa -> 32   0.762  +  E -> gaa -> 32   0.762  
-E -> gag -> 10   0.238  +  E -> gag -> 10   0.238  
-F -> ttc -> 13   1.000  +  F -> ttc -> 13   1.000  
-G -> gga -> 9   0.243  +  G -> gga -> 9   0.243  
-G -> ggc -> 5   0.135  +  G -> ggc -> 5   0.135  
-G -> ggt -> 23   0.622  +  G -> ggt -> 23   0.622  
-H -> cac -> 7   0.583  +  H -> cac -> 7   0.583  
-H -> cat -> 5   0.417  +  H -> cat -> 5   0.417  
-I -> atc -> 19   0.760  +  I -> atc -> 19   0.760  
-I -> att -> 6   0.240  +  I -> att -> 6   0.240  
-K -> aaa -> 19   0.864  +  K -> aaa -> 19   0.864  
-K -> aag -> 3   0.136  +  K -> aag -> 3   0.136  
-L -> cta -> 1   0.043  +  L -> cta -> 1   0.043  
-L -> ctt -> 20   0.870  +  L -> ctt -> 20   0.870  
-L -> tta -> 2   0.087  +  L -> tta -> 2   0.087  
-M -> atg -> 14   1.000  +  M -> atg -> 14   1.000  
-N -> aac -> 8   0.889  +  N -> aac -> 8   0.889  
-N -> aat -> 1   0.111  +  N -> aat -> 1   0.111  
-P -> cca -> 14   0.824  +  P -> cca -> 14   0.824  
-P -> cct -> 3   0.176  +  P -> cct -> 3   0.176  
-Q -> caa -> 7   0.875  +  Q -> caa -> 7   0.875  
-Q -> cag -> 1   0.125  +  Q -> cag -> 1   0.125  
-R -> cgc -> 6   0.300  +  R -> cgc -> 6   0.300  
-R -> cgt -> 14   0.700  +  R -> cgt -> 14   0.700  
-S -> agc -> 2   0.118  +  S -> agc -> 2   0.118  
-S -> tca -> 3   0.176  +  S -> tca -> 3   0.176  
-S -> tcc -> 1   0.059  +  S -> tcc -> 1   0.059  
-S -> tct -> 11   0.647  +  S -> tct -> 11   0.647  
-T -> aca -> 13   0.394  +  T -> aca -> 13   0.394  
-T -> act -> 20   0.606  +  T -> act -> 20   0.606  
-V -> gta -> 13   0.342  +  V -> gta -> 13   0.342  
-V -> gtc -> 1   0.026  +  V -> gtc -> 1   0.026  
-V -> gtt -> 24   0.632  +  V -> gtt -> 24   0.632  
-W -> tgg -> 1   1.000  +  W -> tgg -> 1   1.000  
-Y -> tac -> 9   0.818  +  Y -> tac -> 9   0.818  
-Y -> tat -> 2   0.182  +  Y -> tat -> 2   0.182  
-total -> 397 +  total -> 397 
    
 左から順に 左から順に
Line 165: Line 177:
 アミノ酸の略号 -> コドン -> コドンの計数値 -> 同義コドンの頻度 ​ アミノ酸の略号 -> コドン -> コドンの計数値 -> 同義コドンの頻度 ​
 ('/'​は終止コドンを意味します) ​ ('/'​は終止コドンを意味します) ​
-を表しています。 この出力結果から、tufA 遺伝子における同義コドン使用の偏りは、 遺伝子全体の傾向とは大きく異なっていることがわかります。例えば、 フェニルアラニン(略号 : F )では2つある同義コドンのうち TTC のみを使用し、 アラニン(略号 : A )では4つある同義コドンのうち GCT を多用しています。+を表しています。 この出力結果から、//tufA// 遺伝子における同義コドン使用の偏りは、 遺伝子全体の傾向とは大きく異なっていることがわかります。例えば、 フェニルアラニン(略号 : F )では2つある同義コドンのうち TTC のみを使用し、 アラニン(略号 : A )では4つある同義コドンのうち GCT を多用しています。
  
  
Line 171: Line 183:
  
 === 課題2 :  === === 課題2 :  ===
-DNA複製開始にかかわっているDnaA タンパクをコードする遺伝子(dnaA)のコドン使用頻度 を計算し、先程のtufA 遺伝子の出力結果と比較してみましょう。 dnaA 遺伝子の CDS ID は、'​CDS1'​です。+DNA複製開始にかかわっているDnaA タンパクをコードする遺伝子(//dnaA//)のコドン使用頻度 を計算し、先程の//tufA// 遺伝子の出力結果と比較してみましょう。 ​//dnaA// 遺伝子の CDS ID は、'​CDS1'​です。
  
 [ヒント] 上記スクリプトの codon_usage($gb,​ -CDSid=>'​CDS113'​);​ の行を書き換えます。 [ヒント] 上記スクリプトの codon_usage($gb,​ -CDSid=>'​CDS113'​);​ の行を書き換えます。
Line 182: Line 194:
  
   perldoc G.pm  [ENTER] ​   perldoc G.pm  [ENTER] ​
 +
 を実行し、G.pm のperldocドキュメンテーション([[http://​www.g-language.org/​documentation/​1.7.1/​G.html#​SYNOPSIS|Prelude-manual]])を参照して下さい。 を実行し、G.pm のperldocドキュメンテーション([[http://​www.g-language.org/​documentation/​1.7.1/​G.html#​SYNOPSIS|Prelude-manual]])を参照して下さい。
  
-さて、以下に今回使用したデータファイル("​bsub.gbk"​)の一部を示します。+さて、以下に今回使用したデータファイル("​bsub"​)の一部を示します。
    
   LOCUS       ​AL009126 ​ 4214814 bp          circular ​ BCT       ​10-MAY-1999 ​   LOCUS       ​AL009126 ​ 4214814 bp          circular ​ BCT       ​10-MAY-1999 ​
Line 213: Line 226:
                      ​LSREMTDSSLPKIGEEFGGRDHTTVIHAHEKISKLLADDEQLQQHVKEIKEQLK" ​                      ​LSREMTDSSLPKIGEEFGGRDHTTVIHAHEKISKLLADDEQLQQHVKEIKEQLK" ​
   (中略) ​   (中略) ​
-BASE COUNT  1187757 a 919167 c 915023 g1192867 t  +  ​BASE COUNT  1187757 a 919167 c 915023 g1192867 t  
-ORIGIN ​      +  ORIGIN ​      
         1 atctttttcg gcttttttta gtatccacag aggttatcga caacattttc acattaccaa ​         1 atctttttcg gcttttttta gtatccacag aggttatcga caacattttc acattaccaa ​
-(中略) ​+  ​(中略) ​
   4214761 ttacggaaaa aagacaaatt caaacaattt gcccctaaaa tcacgcatgt ggat    4214761 ttacggaaaa aagacaaatt caaacaattt gcccctaaaa tcacgcatgt ggat 
-// +  ​// 
    
 $gb は $gb は
Line 227: Line 240:
 例えば、各CDSの情報は CDS1, CDS2, ... , CDS4100(CDS+番号) という名前の 構造体に入っており、それぞれの情報には 例えば、各CDSの情報は CDS1, CDS2, ... , CDS4100(CDS+番号) という名前の 構造体に入っており、それぞれの情報には
  
 +<code perl>
   $gb->​{CDS480}->​{gene} ​   $gb->​{CDS480}->​{gene} ​
 +</​code>​
 のように階層的にアクセスします。 のように階層的にアクセスします。
  
 また、ORIGIN以降の全塩基配列は また、ORIGIN以降の全塩基配列は
 +<code perl>
   $gb->​{SEQ}  ​   $gb->​{SEQ}  ​
 +</​code>​
 の中に入っています。 の中に入っています。
  
Line 238: Line 254:
 === 課題3 :   === === 課題3 :   ===
 Step 0で作成したスクリプトに、'​CDS1'​の開始位置と終了位置を出力する 次の一行を書き込んで実行してください。 Step 0で作成したスクリプトに、'​CDS1'​の開始位置と終了位置を出力する 次の一行を書き込んで実行してください。
 +<code perl>
   print "​$gb->​{CDS1}->​{start}..$gb->​{CDS1}->​{end}"; ​   print "​$gb->​{CDS1}->​{start}..$gb->​{CDS1}->​{end}"; ​
 +</​code>​
 そして、出力結果が上記データファイルに一致することを確認してください。 そして、出力結果が上記データファイルに一致することを確認してください。
  
 ====== Step 4-より高度な解析のために ====== ====== Step 4-より高度な解析のために ======
  
-G-language System にはゲノム解析関数が標準で多数用意されており、それらの 標準関数のみでも幅広い解析を行うことが可能です。しかし、実際の研究においては、 より高度な解析を行う場面も想定されます。そのためには、ある程度のプログラミング 能力は不可欠です。Perl初心者は、初心者用講座や新人勉強会などの テキストを参考にして下さい。+G-language System にはゲノム解析関数が標準で多数用意されており、それらの 標準関数のみでも幅広い解析を行うことが可能です。しかし、実際の研究においては、 より高度な解析を行う場面も想定されます。そのためには、ある程度のプログラミング 能力は不可欠です。Perl初心者は、まずはPerlのテキスト本などを参考にして下さい。
  
 G-language System はゲノム解析のための関数だけでなく、ゲノムデータベースを 扱い易くするためのプラットフォームを提供します。そのプラットフォームとは、 $gb というG-language System のインスタンスから呼び出せる関数であり、 遺伝子毎の処理、開始コドン・終止コドン周辺の処理、イントロン・エキソン処理 など多岐に渡ります。 詳しくは、G.pm のperldocドキュメンテーション([[http://​www.g-language.org/​documentation/​1.7.1/​G.html#​SYNOPSIS|Prelude-manual]] G-language System はゲノム解析のための関数だけでなく、ゲノムデータベースを 扱い易くするためのプラットフォームを提供します。そのプラットフォームとは、 $gb というG-language System のインスタンスから呼び出せる関数であり、 遺伝子毎の処理、開始コドン・終止コドン周辺の処理、イントロン・エキソン処理 など多岐に渡ります。 詳しくは、G.pm のperldocドキュメンテーション([[http://​www.g-language.org/​documentation/​1.7.1/​G.html#​SYNOPSIS|Prelude-manual]]
Line 250: Line 267:
  
  
-$gb->​cds() は、$gb に格納されている全CDSのオブジェクト名を配列で返します。 例えば、課題2で作成したdnaA 遺伝子のコドン使用頻度解析用のスクリプトは、 $gb->​cds() を使って以下のように書き換えても同じ結果が得られるはずです。 +$gb->​cds() は、$gb に格納されている全CDSのオブジェクト名を配列で返します。 例えば、課題2で作成した//dnaA// 遺伝子のコドン使用頻度解析用のスクリプトは、 $gb->​cds() を使って以下のように書き換えても同じ結果が得られるはずです。
  
 +<code perl>
   use G;    use G; 
-  $gb = new G("​bsub.gbk"​); ​+  $gb = new G("​bsub"​); ​
        
   foreach $cds ($gb->​cds()){ ​   foreach $cds ($gb->​cds()){ ​
Line 261: Line 278:
     }      } 
   }    } 
 +</​code>​
  
 では、スクリプトの説明をしましょう。 では、スクリプトの説明をしましょう。
 (1) foreach文は次のような構造をしています。 (1) foreach文は次のような構造をしています。
  
 +<code perl>
   foreach $variable (@array){ ​   foreach $variable (@array){ ​
-       some process here.+       #some process here.
    ​} ​    ​} ​
 +</​code>​
  
 配列の要素が先頭から順に変数に代入され、代入されるたびに処理が行われます。よって 配列の要素が先頭から順に変数に代入され、代入されるたびに処理が行われます。よって
 +
 +<code perl>
    ​foreach $cds ($gb->​cds()){ ​    ​foreach $cds ($gb->​cds()){ ​
-       ​処理 ​+       #処理 ​
    ​} ​    ​} ​
 +</​code>​
 +
 は、配列の要素(CDSのオブジェクト名)を順次 $cds という変数に代入して処理せよ という意味です。これは、G-language Systemにおいて遺伝子毎の処理をする基本的な方法の一つです。 は、配列の要素(CDSのオブジェクト名)を順次 $cds という変数に代入して処理せよ という意味です。これは、G-language Systemにおいて遺伝子毎の処理をする基本的な方法の一つです。
  
 (2) Perlでは正規表現と呼ばれる強力な表現を使うことができます。よくある使い方としては、 「ある正規表現は、ある文字列にマッチするか?」というものです。これは、変数 =~ /​正規表現/​ と記述します。 (2) Perlでは正規表現と呼ばれる強力な表現を使うことができます。よくある使い方としては、 「ある正規表現は、ある文字列にマッチするか?」というものです。これは、変数 =~ /​正規表現/​ と記述します。
  
 +<code perl>
    ​if($gb->​{$cds}->​{gene} =~ /​dnaA/​){ ​    ​if($gb->​{$cds}->​{gene} =~ /​dnaA/​){ ​
         codon_usage($gb,​ -CDSid=>​$cds); ​         codon_usage($gb,​ -CDSid=>​$cds); ​
    ​} ​    ​} ​
 +</​code>​
 +
 は、もし遺伝子名($gb->​{$cds}->​{gene})が"​dnaA"​にマッチするなら、そのCDSのコドン使用頻度を計算せよ という意味です。 は、もし遺伝子名($gb->​{$cds}->​{gene})が"​dnaA"​にマッチするなら、そのCDSのコドン使用頻度を計算せよ という意味です。
  
 ここで示した例は非常に簡単なものですが、より複雑な解析を効率よく容易に行うことができます。 ここで示した例は非常に簡単なものですが、より複雑な解析を効率よく容易に行うことができます。
tutorialcodonusagejapanese.txt · Last modified: 2014/01/18 07:44 (external edit)