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
tutorialcodonusagejapanese [2007/10/31 09:17]
gaou
tutorialcodonusagejapanese [2008/04/14 07:31]
gaou
Line 13: Line 13:
 例えば、G-language Systemに標準でバンドルされている"​bsub"​というデータ(Genbank形式の //Bacillus subtilis// のコンプリートゲノム)を使用して解析をするなら、テキストエディタ に以下の二行を書き込むだけで準備は終了します。 例えば、G-language Systemに標準でバンドルされている"​bsub"​というデータ(Genbank形式の //Bacillus subtilis// のコンプリートゲノム)を使用して解析をするなら、テキストエディタ に以下の二行を書き込むだけで準備は終了します。
  
 +<code perl>
   use G;    use G; 
   $gb = new G("​bsub"​); ​   $gb = new G("​bsub"​); ​
 +</​code>​
 +
 試しに、このPerlスクリプトを実行してみましょう。(ファイル名を test.pl とします) 試しに、このPerlスクリプトを実行してみましょう。(ファイル名を test.pl とします)
  
   perl test.pl ​ [ENTER] ​   perl test.pl ​ [ENTER] ​
 +
 以下のような出力が得られましたか? 以下のような出力が得られましたか?
  
Line 70: Line 73:
 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"​); ​   $gb = new G("​bsub"​); ​
   codon_usage($gb); ​   codon_usage($gb); ​
 +</​code>​
 +
 上記スクリプトを実行すると、コドン使用頻度がディスプレイに出力される とともに、 以下のようなコドンテーブルが表示されるはずです。 上記スクリプトを実行すると、コドン使用頻度がディスプレイに出力される とともに、 以下のようなコドンテーブルが表示されるはずです。
  
Line 102: Line 107:
 オプションは オプションは
  
 +<code perl>
   codon_usage($gb,​ -output=>'​f',​ -filename=>'​bsub_CodonUsage.csv'​); ​   codon_usage($gb,​ -output=>'​f',​ -filename=>'​bsub_CodonUsage.csv'​); ​
 +</​code>​
 +
 のように、"​-"​ をオプション名の頭に付け、"​=>"​ で値と結びます。 のように、"​-"​ をオプション名の頭に付け、"​=>"​ で値と結びます。
  
Line 110: Line 118:
 Step 1 で作成したスクリプトを以下のように書き換えて下さい。 Step 1 で作成したスクリプトを以下のように書き換えて下さい。
  
 +<code perl>
   use G;    use G; 
   $gb = new G("​bsub"​); ​   $gb = new G("​bsub"​); ​
   codon_usage($gb,​ -CDSid=>'​CDS113'​); ​   codon_usage($gb,​ -CDSid=>'​CDS113'​); ​
 +</​code>​
 +
 '​CDS113'​は、伸長因子(elongation factor Tu, EF-Tu)をコードする遺伝子(//​tufA//​)に対応しています。 上記スクリプトを実行すると、以下に示すような //tufA// 遺伝子のコドン使用頻度がディスプレイに出力されるはずです。 '​CDS113'​は、伸長因子(elongation factor Tu, EF-Tu)をコードする遺伝子(//​tufA//​)に対応しています。 上記スクリプトを実行すると、以下に示すような //tufA// 遺伝子のコドン使用頻度がディスプレイに出力されるはずです。
  
Line 183: 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]])を参照して下さい。
  
Line 228: 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 239: 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>​
 そして、出力結果が上記データファイルに一致することを確認してください。 そして、出力結果が上記データファイルに一致することを確認してください。
  
Line 254: Line 269:
 $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"​); ​   $gb = new G("​bsub"​); ​
Line 263: 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)