Mercurial > repos > mahtabm > ensemb_rep_gvl
diff variant_effect_predictor/Bio/Ontology/OntologyI.pm @ 0:2bc9b66ada89 draft default tip
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 06:29:17 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/Ontology/OntologyI.pm Thu Apr 11 06:29:17 2013 -0400 @@ -0,0 +1,435 @@ +# $Id: OntologyI.pm,v 1.2.2.4 2003/03/27 10:07:56 lapp Exp $ +# +# BioPerl module for Bio::Ontology::OntologyI +# +# Cared for by Hilmar Lapp <hlapp at gmx.net> +# +# Copyright Hilmar Lapp +# +# You may distribute this module under the same terms as perl itself + +# +# (c) Hilmar Lapp, hlapp at gmx.net, 2003. +# (c) GNF, Genomics Institute of the Novartis Research Foundation, 2003. +# +# You may distribute this module under the same terms as perl itself. +# Refer to the Perl Artistic License (see the license accompanying this +# software package, or see http://www.perl.com/language/misc/Artistic.html) +# for the terms under which you may use, modify, and redistribute this module. +# +# THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED +# WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF +# MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. +# + +# POD documentation - main docs before the code + +=head1 NAME + +Bio::Ontology::OntologyI - Interface for an ontology implementation + +=head1 SYNOPSIS + + # see method documentation + +=head1 DESCRIPTION + +This describes the minimal interface an ontology implementation must +provide. In essence, it represents a namespace with description on top +of the query interface OntologyEngineI. + +This interface inherits from L<Bio::Ontology::OntologyEngineI>. + +=head1 FEEDBACK + +=head2 Mailing Lists + +User feedback is an integral part of the evolution of this and other +Bioperl modules. Send your comments and suggestions preferably to +the Bioperl mailing list. Your participation is much appreciated. + + bioperl-l@bioperl.org - General discussion + http://bioperl.org/MailList.shtml - About the mailing lists + +=head2 Reporting Bugs + +Report bugs to the Bioperl bug tracking system to help us keep track +of the bugs and their resolution. Bug reports can be submitted via +email or the web: + + http://bugzilla.bioperl.org/ + +=head1 AUTHOR - Hilmar Lapp + +Email hlapp at gmx.net + +=head1 CONTRIBUTORS + +Additional contributors names and emails here + +=head1 APPENDIX + +The rest of the documentation details each of the object methods. +Internal methods are usually preceded with a _ + +=cut + + +# Let the code begin... + + +package Bio::Ontology::OntologyI; +use vars qw(@ISA); +use strict; + +use Bio::Ontology::OntologyEngineI; + +@ISA = qw( Bio::Ontology::OntologyEngineI ); + +=head1 Methods defined in this interface. + +=cut + +=head2 name + + Title : name + Usage : $obj->name($newval) + Function: Get/set the name of this ontology. + Example : + Returns : value of name (a scalar) + Args : + + +=cut + +sub name{ + shift->throw_not_implemented(); +} + +=head2 authority + + Title : authority + Usage : $auth = $obj->authority() + Function: Get/set the authority for this ontology, for instance the + DNS base for the organization granting the name of the + ontology and identifiers for the terms. + + This attribute is optional and should not generally + expected by applications to have been set. It is here to + follow the rules for namespaces, which ontologies serve as + for terms. + + Example : + Returns : value of authority (a scalar) + Args : + + +=cut + +sub authority{ + shift->throw_not_implemented(); +} + +=head2 identifier + + Title : identifier + Usage : $id = $obj->identifier() + Function: Get an identifier for this ontology. + + This is primarily intended for look-up purposes. Clients + should not expect the value to be modifiable, and it may + not be allowed to set its value from outside. Also, the + identifier's uniqueness may only hold within the scope of a + particular application's run time, i.e., it may be a memory + location. + + Example : + Returns : value of identifier (a scalar) + Args : + + +=cut + +sub identifier{ + shift->throw_not_implemented(); +} + +=head2 definition + + Title : definition + Usage : $def = $obj->definition() + Function: Get a descriptive definition for this ontology. + Example : + Returns : value of definition (a scalar) + Args : + + +=cut + +sub definition{ + shift->throw_not_implemented(); +} + +=head2 close + + Title : close + Usage : + Function: Release any resources this ontology may occupy. In order + to efficiently release used memory or file handles, you + should call this method once you are finished with an + ontology. + + Example : + Returns : TRUE on success and FALSE otherwise + Args : none + + +=cut + +sub close{ + shift->throw_not_implemented(); +} + +=head1 Methods inherited from L<Bio::Ontology::OntologyEngineI> + +Their documentations are copied here for completeness. In most use +cases, you will want to access the query methods of an ontology, not +just the name and description ... + +=cut + +=head2 add_term + + Title : add_term + Usage : add_term(TermI term): TermI + Function: Adds TermI object to the ontology engine term store. + + For ease of use, if the ontology property of the term + object was not set, an implementation is encouraged to set + it to itself upon adding the term. + + Example : $oe->add_term($term) + Returns : its argument. + Args : object of class TermI. + + +=cut + +=head2 add_relationship + + Title : add_relationship + Usage : add_relationship(RelationshipI relationship): RelationshipI + Function: Adds a relationship object to the ontology engine. + Example : + Returns : Its argument. + Args : A RelationshipI object. + + +=cut + +=head2 get_relationships + + Title : get_relationships + Usage : get_relationships(TermI term): RelationshipI[] + Function: Retrieves all relationship objects from this ontology engine, + or all relationships of a term if a term is supplied. + Example : + Returns : Array of Bio::Ontology::RelationshipI objects + Args : None, or a Bio::Ontology::TermI compliant object for which + to retrieve the relationships. + + +=cut + +=head2 get_predicate_terms + + Title : get_predicate_terms + Usage : get_predicate_terms(): TermI[] + Function: + Example : + Returns : + Args : + + +=cut + +=head2 get_child_terms + + Title : get_child_terms + Usage : get_child_terms(TermI term, TermI[] predicate_terms): TermI[] + Function: Retrieves all child terms of a given term, that satisfy a + relationship among those that are specified in the second + argument or undef otherwise. get_child_terms is a special + case of get_descendant_terms, limiting the search to the + direct descendants. + + Example : + Returns : Array of TermI objects. + Args : First argument is the term of interest, second is the list + of relationship type terms. + + +=cut + +=head2 get_descendant_terms + + Title : get_descendant_terms + Usage : get_descendant_terms(TermI term, TermI[] rel_types): TermI[] + Function: Retrieves all descendant terms of a given term, that + satisfy a relationship among those that are specified in + the second argument or undef otherwise. + Example : + Returns : Array of TermI objects. + Args : First argument is the term of interest, second is the list + of relationship type terms. + + +=cut + +=head2 get_parent_terms + + Title : get_parent_terms + Usage : get_parent_terms(TermI term, TermI[] predicate_terms): TermI[] + Function: Retrieves all parent terms of a given term, that satisfy a + relationship among those that are specified in the second + argument or undef otherwise. get_parent_terms is a special + case of get_ancestor_terms, limiting the search to the + direct ancestors. + + Example : + Returns : Array of TermI objects. + Args : First argument is the term of interest, second is the list + of relationship type terms. + + +=cut + +=head2 get_ancestor_terms + + Title : get_ancestor_terms + Usage : get_ancestor_terms(TermI term, TermI[] predicate_terms): TermI[] + Function: Retrieves all ancestor terms of a given term, that satisfy + a relationship among those that are specified in the second + argument or undef otherwise. + + Example : + Returns : Array of TermI objects. + Args : First argument is the term of interest, second is the list + of relationship type terms. + + +=cut + +=head2 get_leaf_terms + + Title : get_leaf_terms + Usage : get_leaf_terms(): TermI[] + Function: Retrieves all leaf terms from the ontology. Leaf term is a + term w/o descendants. + + Example : @leaf_terms = $obj->get_leaf_terms() + Returns : Array of TermI objects. + Args : + + +=cut + +=head2 get_root_terms() + + Title : get_root_terms + Usage : get_root_terms(): TermI[] + Function: Retrieves all root terms from the ontology. Root term is a + term w/o descendants. + + Example : @root_terms = $obj->get_root_terms() + Returns : Array of TermI objects. + Args : + + +=cut + +=head2 get_all_terms + + Title : get_all_terms + Usage : get_all_terms: TermI[] + Function: Retrieves all terms from the ontology. + + We do not mandate an order here in which the terms are + returned. In fact, the default implementation will return + them in unpredictable order. + + Example : @terms = $obj->get_all_terms() + Returns : Array of TermI objects. + Args : + + +=cut + + +=head2 find_terms + + Title : find_terms + Usage : ($term) = $oe->find_terms(-identifier => "SO:0000263"); + Function: Find term instances matching queries for their attributes. + + An implementation may not support querying for arbitrary + attributes, but can generally be expected to accept + -identifier and -name as queries. If both are provided, + they are implicitly intersected. + + Example : + Returns : an array of zero or more Bio::Ontology::TermI objects + Args : Named parameters. The following parameters should be recognized + by any implementation: + + -identifier query by the given identifier + -name query by the given name + + +=cut + +=head1 Factory for relationships and terms + +=cut + +=head2 relationship_factory + + Title : relationship_factory + Usage : $fact = $obj->relationship_factory() + Function: Get (and set, if the implementation supports it) the object + factory to be used when relationship objects are created by + the implementation on-the-fly. + + Example : + Returns : value of relationship_factory (a Bio::Factory::ObjectFactoryI + compliant object) + Args : + + +=cut + +sub relationship_factory{ + return shift->throw_not_implemented(); +} + +=head2 term_factory + + Title : term_factory + Usage : $fact = $obj->term_factory() + Function: Get (and set, if the implementation supports it) the object + factory to be used when term objects are created by + the implementation on-the-fly. + + Example : + Returns : value of term_factory (a Bio::Factory::ObjectFactoryI + compliant object) + Args : + + +=cut + +sub term_factory{ + return shift->throw_not_implemented(); +} + +1;