2008年6月20日金曜日

go-perl (GO::Model::Grap)

今回は、GO::Model::Graphオブジェクトについて。

GO::Model::Graphのフィールドは、
  1. GO::Model::Term
  2. GO::Model::Path
  3. GO::Model::Association
  4. GO::Model::GeneProduct
  5. GO::Model::Relationship
の様子。
ということで、各オブジェクトのフィールドとメソッドを把握しておけば使えるはず。

とりあえず、GO::Model::Graphにあるサンプルコードを試してみる。

# FETCHING GRAPH FROM FILES
use GO::Parser;
my $parser = new GO::Parser({handler=>'obj'});
$parser->parse("gene_ontology.obo"); # ontology
$parser->parse("gene-associations.sgd"); # gene assocs
# get L object
my $graph = $parser->handler->graph;
my $terms = $graph->term_query("/transmembrane/"); # matching terms
foreach my $term (@$terms) {
# find gene products associated to this term
my $assocs = $graph->deep_association_list($term->acc);
printf "Term: %s %s\n", $term->acc, $term->name;
print " Associations (direct and via transitive closure_\n";
foreach my $assoc (@$assocs) {
next if $assoc->is_not;
printf " Assoc evidence: %s to: %s %s\n",
join(';', map {$_->code} @{$assoc->evidence_list}),
$assoc->gene_product->xref->as_str,
$assoc->gene_product->symbol;
}
}

ところが、gene-association.sgdファイルのパースでエラーが出る。
GO::ParserのFormatの項目によると、

go_assoc
Annotations of genes or gene products using GO
Files with prefix "gene-association."

となっているが、実際に、ここにおいてあるファイルは、
gene_association.sgd.gz
このような名前であり、しかもontologyのHandlerが自動的に選択されている様だ。
そこで、

$parser->parse("gene-associations.sgd"); # gene assocs

ここを、

$parser->parse("gene_association.sgd"); # gene assocs

この様に変更したところ動いた。

0 件のコメント: