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/10/31 09:17]
gaou
tutorialcodonusagejapanese [2014/01/18 07:44] (current)
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)