NAME

GOBO::Parsers::OBOParser

SYNOPSIS

my $fh = new FileHandle("t/data/cell.obo");
my $parser = new GOBO::Parsers::OBOParser(fh=>$fh);
$parser->parse;
print $parser->graph;

my $writer = new GOBO::Writers::OBOWriter;
$writer->graph($parser->graph);
$writer->write();

DESCRIPTION

An GOBO::Parsers::Parser that parses OBO Files.

The goal is to be obof1.3 compliant:

http://www.geneontology.org/GO.format.obo-1_3.shtml

however, obof1.2 and obof1.0 are also supported

Term stanzas

These are converted to GOBO::TermNode objects

Typedef stanzas

These are converted to GOBO::RelationNode objects

Instance stanzas

These are converted to GOBO::InstanceNode objects

Statements

is_a and relationship tags are converted to GOBO::LinkStatement objects and added to the graph

intersection_of tags

These are added to the graph as GOBO::LinkStatement objects, with is_intersection=>1

You can call

$g->convert_intersection_links_to_logical_definitions

To move these links from the graph to $term->logical_definition

TBD: do this as the default? TBD: generalize for all links? sometimes it is convenient to have the links available in the Node object...?