id
Usage - print $term->id() or $term->id($id)
Returns - the term ID (string)
Args - the term ID (string)
Function - gets/sets the ID of this term
idspace
Usage - print $term->idspace()
Returns - the idspace of this term; otherwise, 'NN'
Args - none
Function - gets the idspace of this term # TODO Does this method still makes sense?
subnamespace
Usage - print $term->subnamespace()
Returns - the subnamespace of this term (character); otherwise, 'X'
Args - none
Function - gets the subnamespace of this term
code
Usage - print $term->code()
Returns - the code of this term (character); otherwise, '0000000'
Args - none
Function - gets the code of this term
name
Usage - print $term->name() or $term->name($name)
Returns - the name (string) of this term
Args - the name (string) of this term
Function - gets/sets the name of this term
is_anonymous
Usage - print $term->is_anonymous() or $term->is_anonymous("1")
Returns - either 1 (true) or 0 (false)
Args - either 1 (true) or 0 (false)
Function - tells whether this term is anonymous or not.
alt_id
Usage - $term->alt_id() or $term->alt_id($id1, $id2, $id3, ...)
Returns - a set (OBO::Util::Set) with the alternate id(s) of this term
Args - the alternate id(s) (string) of this term
Function - gets/sets the alternate id(s) of this term
def
Usage - $term->def() or $term->def($def)
Returns - the definition (OBO::Core::Def) of this term
Args - the definition (OBO::Core::Def) of this term
Function - gets/sets the definition of the term
def_as_string
Usage - $term->def_as_string() or $term->def_as_string("During meiosis, the synthesis of DNA proceeding from the broken 3' single-strand DNA end that uses the homologous intact duplex as the template.", "[GOC:elh, PMID:9334324]")
Returns - the definition (string) of this term
Args - the definition (string) of this term plus the dbxref list (string) describing the source of this definition
Function - gets/sets the definition of this term
Remark - make sure that colons (,) are scaped (\,) when necessary
namespace
Usage - $term->namespace() or $term->namespace($ns1, $ns2, $ns3, ...)
Returns - an array with the namespace(s) to which this term belongs
Args - the namespace(s) to which this term belongs
Function - gets/sets the namespace(s) to which this term belongs
comment
Usage - print $term->comment() or $term->comment("This is a comment")
Returns - the comment (string) of this term
Args - the comment (string) of this term
Function - gets/sets the comment of this term
subset
Usage - $term->subset() or $term->subset($ss_name1, $ss_name2, $ss_name3, ...)
Returns - an array with the subset name(s) to which this term belongs
Args - the subset name(s) (string) to which this term belongs
Function - gets/sets the subset name(s) to which this term belongs
synonym_set
Usage - $term->synonym_set() or $term->synonym_set($synonym1, $synonym2, $synonym3, ...)
Returns - an array with the synonym(s) of this term
Args - the synonym(s) (OBO::Core::Synonym) of this term
Function - gets/sets the synonym(s) of this term
Remark1 - if the synonym (text) is already in the set of synonyms of this term, its scope (and their dbxref's) will be updated (provided they have the same synonym type name)
Remark2 - a synonym text identical to the term name is not added to the set of synonyms of this term
synonym_as_string
Usage - print $term->synonym_as_string() or $term->synonym_as_string('this is a synonym text', '[APO:ea]', 'EXACT', 'UK_SPELLING')
Returns - an array with the synonym(s) of this term
Args - the synonym text (string), the dbxrefs (string), synonym scope (string) of this term, and optionally the synonym type name (string)
Function - gets/sets the synonym(s) of this term
Remark1 - if the synonym (text) is already in the set of synonyms of this term, its scope (and their dbxref's) will be updated (provided they have the same synonym type name)
Remark2 - a synonym text identical to the term name is not added to the set of synonyms of this term
xref_set
Usage - $term->xref_set() or $term->xref_set($dbxref_set)
Returns - a Dbxref set (OBO::Util::DbxrefSet) with the analogous xref(s) of this term in another vocabulary
Args - a set of analogous xref(s) (OBO::Util::DbxrefSet) of this term in another vocabulary
Function - gets/sets the analogous xref(s) set of this term in another vocabulary
xref_set_as_string
Usage - $term->xref_set_as_string() or $term->xref_set_as_string("[Reactome:20610, EC:2.3.2.12]")
Returns - the dbxref set with the analogous xref(s) of this term; [] if the set is empty
Args - the dbxref set with the analogous xref(s) of this term
Function - gets/sets the dbxref set with the analogous xref(s) of this term
Remark - make sure that colons (,) are scaped (\,) when necessary
property_value
Usage - $term->property_value() or $term->property_value($p_value1, $p_value2, $p_value3, ...)
Returns - an array with the property value(s) of this term
Args - the relationship(s) (OBO::Core::Relationship) of this term with its property value(s)
Function - gets/sets the property_value(s) of this term
Remark - WARNING: this code might change!
class_of
Usage - $term->class_of() or $term->class_of($instance1, $instance2, $instance3, ...)
Returns - an array with the instance(s) of this term
Args - the instance(s) (OBO::Core::Instance) of this term
Function - gets/sets the instance(s) of this term
is_class_of
Usage - $term->is_class_of($instance)
Returns - either 1 (true) or 0 (false)
Args - an instance (OBO::Core::Instance) of which this object might be class of
Function - tells whether this object is a class of $instance
intersection_of
Usage - $term->intersection_of() or $term->intersection_of($t1, $t2, $r1, ...)
Returns - an array with the terms/relations which define this term
Args - a set (strings) of terms/relations which define this term
Function - gets/sets the set of terms/relationships defining this term
union_of
Usage - $term->union_of() or $term->union_of($t1, $t2, $r1, ...)
Returns - an array with the terms/relations which define this term
Args - a set (strings) of terms/relations which define this term
Function - gets/sets the set of terms/relationships defining this term
disjoint_from
Usage - $term->disjoint_from() or $term->disjoint_from($disjoint_term_id1, $disjoint_term_id2, $disjoint_term_id3, ...)
Returns - the disjoint term id(s) (string(s)) from this one
Args - the term id(s) (string) that is (are) disjoint from this one
Function - gets/sets the disjoint term(s) from this one
created_by
Usage - print $term->created_by() or $term->created_by("erick_antezana")
Returns - name (string) of the creator of the term, may be a short username, initials or ID
Args - name (string) of the creator of the term, may be a short username, initials or ID
Function - gets/sets the name of the creator of the term
creation_date
Usage - print $term->creation_date() or $term->creation_date("2010-04-13T01:32:36Z")
Returns - date (string) of creation of the term specified in ISO 8601 format
Args - date (string) of creation of the term specified in ISO 8601 format
Function - gets/sets the date of creation of the term
Remark - You can get an ISO 8601 date as follows:
use POSIX qw(strftime);
my $datetime = strftime("%Y-%m-%dT%H:%M:%S", localtime());
modified_by
Usage - print $term->modified_by() or $term->modified_by("erick_antezana")
Returns - name (string) of the modificator of the term, may be a short username, initials or ID
Args - name (string) of the modificator of the term, may be a short username, initials or ID
Function - gets/sets the name of the modificator of the term
modification_date
Usage - print $term->modification_date() or $term->modification_date("2010-04-13T01:32:36Z")
Returns - date (string) of modification of the term specified in ISO 8601 format
Args - date (string) of modification of the term specified in ISO 8601 format
Function - gets/sets the date of modification of the term
Remark - You can get an ISO 8601 date as follows:
use POSIX qw(strftime);
my $datetime = strftime("%Y-%m-%dT%H:%M:%S", localtime());
is_obsolete
Usage - $term->is_obsolete(1) or print $term->is_obsolete()
Returns - either 1 (true) or 0 (false)
Args - either 1 (true) or 0 (false)
Function - tells whether the term is obsolete or not. 'false' by default.
replaced_by
Usage - $term->replaced_by() or $term->replaced_by($id1, $id2, $id3, ...)
Returns - a set (OBO::Util::Set) with the id(s) of the replacing term(s)
Args - the the id(s) of the replacing term(s) (string)
Function - gets/sets the the id(s) of the replacing term(s)
consider
Usage - $term->consider() or $term->consider($id1, $id2, $id3, ...)
Returns - a set (OBO::Util::Set) with the appropiate substitute(s) for an obsolete term
Args - the appropiate substitute(s) for an obsolete term (string)
Function - gets/sets the appropiate substitute(s) for this obsolete term
builtin
Usage - $term->builtin() or $term->builtin(1) or $term->builtin(0)
Returns - tells if this term is builtin to the OBO format; false by default
Args - 1 (true) or 0 (false)
Function - gets/sets the value indicating whether this term is builtin to the OBO format
equals
Usage - print $term->equals($another_term)
Returns - either 1 (true) or 0 (false)
Args - the term (OBO::Core::Term) to compare with
Function - tells whether this term is equal to the parameter
NAME
OBO::Core::Term - A universal/term/class/concept in an ontology.
SYNOPSIS
use OBO::Core::Term;
use OBO::Core::Def;
use OBO::Util::DbxrefSet;
use OBO::Core::Dbxref;
use OBO::Core::Synonym;
use strict;
# three new terms
my $n1 = OBO::Core::Term->new();
my $n2 = OBO::Core::Term->new();
my $n3 = OBO::Core::Term->new();
# id's
$n1->id("APO:P0000001");
$n2->id("APO:P0000002");
$n3->id("APO:P0000003");
# alt_id
$n1->alt_id("APO:P0000001_alt_id");
$n2->alt_id("APO:P0000002_alt_id1", "APO:P0000002_alt_id2", "APO:P0000002_alt_id3", "APO:P0000002_alt_id4");
# name
$n1->name("One");
$n2->name("Two");
$n3->name("Three");
$n1->is_obsolete(1);
$n1->is_obsolete(0);
$n1->is_anonymous(1);
$n1->is_anonymous(0);
# synonyms
my $syn1 = OBO::Core::Synonym->new();
$syn1->scope('EXACT');
my $def1 = OBO::Core::Def->new();
$def1->text("Hola mundo1");
my $sref1 = OBO::Core::Dbxref->new();
$sref1->name("APO:vm");
my $srefs_set1 = OBO::Util::DbxrefSet->new();
$srefs_set1->add($sref1);
$def1->dbxref_set($srefs_set1);
$syn1->def($def1);
$n1->synonym($syn1);
my $syn2 = OBO::Core::Synonym->new();
$syn2->scope('BROAD');
my $def2 = OBO::Core::Def->new();
$def2->text("Hola mundo2");
my $sref2 = OBO::Core::Dbxref->new();
$sref2->name("APO:ls");
$srefs_set1->add_all($sref1);
my $srefs_set2 = OBO::Util::DbxrefSet->new();
$srefs_set2->add_all($sref1, $sref2);
$def2->dbxref_set($srefs_set2);
$syn2->def($def2);
$n2->synonym($syn2);
my $syn3 = OBO::Core::Synonym->new();
$syn3->scope('BROAD');
my $def3 = OBO::Core::Def->new();
$def3->text("Hola mundo2");
my $sref3 = OBO::Core::Dbxref->new();
$sref3->name("APO:ls");
my $srefs_set3 = OBO::Util::DbxrefSet->new();
$srefs_set3->add_all($sref1, $sref2);
$def3->dbxref_set($srefs_set3);
$syn3->def($def3);
$n3->synonym($syn3);
# synonym as string
$n2->synonym_as_string("Hello world2", "[APO:vm2, APO:ls2]", "EXACT");
# creator + date
$n1->created_by("erick_antezana");
$n1->creation_date("2009-04-13T01:32:36Z ");
# xref
$n1->xref("Uno");
$n1->xref("Eins");
$n1->xref("Een");
$n1->xref("Un");
$n1->xref("Uj");
my $xref_length = $n1->xref()->size();
my $def = OBO::Core::Def->new();
$def->text("Hola mundo");
my $ref1 = OBO::Core::Dbxref->new();
my $ref2 = OBO::Core::Dbxref->new();
my $ref3 = OBO::Core::Dbxref->new();
$ref1->name("APO:vm");
$ref2->name("APO:ls");
$ref3->name("APO:ea");
my $refs_set = OBO::Util::DbxrefSet->new();
$refs_set->add_all($ref1,$ref2,$ref3);
$def->dbxref_set($refs_set);
$n1->def($def);
$n2->def($def);
# def as string
$n2->def_as_string("This is a dummy definition", '[APO:vm, APO:ls, APO:ea "Erick Antezana"] {opt=first}');
my @refs_n2 = $n2->def()->dbxref_set()->get_set();
my %r_n2;
foreach my $ref_n2 (@refs_n2) {
$r_n2{$ref_n2->name()} = $ref_n2->name();
}
DESCRIPTION
A Term in the ontology. c.f. OBO flat file specification.
Recommended: http://ontology.buffalo.edu/bfo/Terminology_for_Ontologies.pdf
AUTHOR
Erick Antezana, <erick.antezana -@- gmail.com>
COPYRIGHT AND LICENSE
Copyright (c) 2006-2015 by Erick Antezana. All rights reserved.
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.7 or, at your option, any later version of Perl 5 you may have available.