The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

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...?