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 件のコメント:
コメントを投稿