2008年6月20日金曜日

go-perlサンプルコードを読んでみた

まずは、昨日走らせたサンプルルコードを読んでみる。

tomo$ less go-perl.pl
#!/usr/bin/perl

use GO::Parser;

my $parser = new GO::Parser({handler=>'obj'}); # create parser object
$parser->parse("gene_ontology.obo"); # parse file -> objects
my $graph = $parser->handler->graph; # get L object
my $term = $graph->get_term("GO:0001303"); # fetch a term by ID
printf "Got term: %s %sn", $term->acc, $term->name;
my $ancestor_terms = $graph->get_recursive_parent_terms($term->acc);
foreach my $anc_term (@$ancestor_terms) {
printf " Ancestor term: %s %sn", $anc_term->acc, $anc_term->name;
}

GO::Parserというのがこのモジュールの名前らしい。

my $parser = new GO::Parser({handler=>'obj'}); # create parser object
$parser->parse("gene_ontology.obo"); # parse file -> objects

ここで、GO::parserオブジェクトをGO object modelをhandlerとして作成。そして、"gene_ontology.obo"ファイルをパースして、gene ontologyのデータをGO::Parserオブジェクトに取り込む。
handlerとして選択可能なモデルは、ここにあるGO::Handler::*すべてのようだ。
パース可能なファイルフォーマットは、こちらに記載されている。このサンプルでは、各Gene ontologyの階層関係を記述したgene_ontology.oboファイルを読み込んでいる。

my $graph = $parser->handler->graph; # get L object

ここでは、GO::Parserオブジェクトのhandlerメソッドを呼び出し、得られたGO::Handler::objのgraphメソッドを呼び出して、GO::Model::Graphオブジェクトを得ている。
このGO::Model::Graphオブジェクトに、ファイルから読み出した情報が格納されていることになる。
GO::Model::Graphオブジェクトのメソッドは、こちらに列記されている。

my $term = $graph->get_term("GO:0001303"); # fetch a term by ID

ここでは、GO::Model::Graphオブジェクトのget_termメソッドを使用して、GO IDからGO::Model::Termオブジェクトを獲得し、

printf "Got term: %s %sn", $term->acc, $term->name;

ここで、GO::Model::Termオブジェクトの要素をそれぞれ呼び出して表示する。

要するに、GO::Model::GraphオブジェクトとGO::Model::Termオブジェクトの内容を調べれば、一通り扱えそうだ。

0 件のコメント: