annotate variant_effect_predictor/Bio/Ontology/OntologyStore.pm @ 3:d30fa12e4cc5 default tip

Merge heads 2:a5976b2dce6f and 1:09613ce8151e which were created as a result of a recently fixed bug.
author devteam <devteam@galaxyproject.org>
date Mon, 13 Jan 2014 10:38:30 -0500
parents 1f6dce3d34e0
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
1 # $Id: OntologyStore.pm,v 1.1.2.2 2003/03/27 10:07:56 lapp Exp $
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
2 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
3 # BioPerl module for Bio::Ontology::OntologyStore
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
4 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
5 # Cared for by Hilmar Lapp <hlapp at gmx.net>
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
6 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
7 # Copyright Hilmar Lapp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
8 #
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
9 # You may distribute this module under the same terms as perl itself
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
10
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
11 # POD documentation - main docs before the code
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
12
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
13 =head1 NAME
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
14
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
15 Bio::Ontology::OntologyStore - A repository of ontologies
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
16
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
17 =head1 SYNOPSIS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
18
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
19 # see documentation of methods
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
20
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
21 =head1 DESCRIPTION
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
22
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
23 The primary purpose of this module is that of a singleton repository
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
24 of L<Bio::Ontology::OntologyI> instances from which an Ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
25 instance can be retrieved by name or identifier. This enables TermI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
26 implementations to return their corresponding OntologyI through using
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
27 this singleton store instead of storing a direct reference to the
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
28 Ontology object. The latter would almost inevitably lead to memory
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
29 cycles, and would therefore potentially blow up an application.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
30
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
31 As a user of Ontology objects and Term objects you almost certainly
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
32 will not need to deal with this module.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
33
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
34 =head1 FEEDBACK
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
35
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
36 =head2 Mailing Lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
37
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
38 User feedback is an integral part of the evolution of this and other
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
39 Bioperl modules. Send your comments and suggestions preferably to
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
40 the Bioperl mailing list. Your participation is much appreciated.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
41
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
42 bioperl-l@bioperl.org - General discussion
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
43 http://bioperl.org/MailList.shtml - About the mailing lists
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
44
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
45 =head2 Reporting Bugs
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
46
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
47 Report bugs to the Bioperl bug tracking system to help us keep track
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
48 of the bugs and their resolution. Bug reports can be submitted via
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
49 the web:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
50
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
51 http://bugzilla.bioperl.org/
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
52
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
53 =head1 AUTHOR - Hilmar Lapp
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
54
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
55 Email hlapp at gmx.net
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
56
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
57 =head1 CONTRIBUTORS
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
58
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
59 Additional contributors names and emails here
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
60
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
61 =head1 APPENDIX
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
62
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
63 The rest of the documentation details each of the object methods.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
64 Internal methods are usually preceded with a _
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
65
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
66 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
67
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
68
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
69 # Let the code begin...
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
70
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
71
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
72 package Bio::Ontology::OntologyStore;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
73 use vars qw(@ISA);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
74 use strict;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
75
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
76 # Object preamble - inherits from Bio::Root::Root
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
77
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
78 use Bio::Root::Root;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
79
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
80
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
81 @ISA = qw(Bio::Root::Root );
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
82
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
83 # these are the static ontology stores by name and by identifier - there is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
84 # only one of each in any application
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
85 my %ont_store_by_name = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
86 my %ont_store_by_id = ();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
87 # also, this is really meant as a singleton object, so we try to enforce it
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
88 my $instance = undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
89
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
90 =head2 new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
91
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
92 Title : new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
93 Usage : my $obj = new Bio::Ontology::OntologyStore();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
94 Function: Returns the Bio::Ontology::OntologyStore object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
95
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
96 Unlike usual implementations of new, this implementation
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
97 will try to return a previously instantiated store, if
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
98 there is any. It is just a synonym for get_instance. In
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
99 order to avoid ambiguities in your code, you may rather
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
100 want to call rather get_instance explicitly, which also
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
101 usually is better associated with this kind of behaviour.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
102
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
103 Returns : an instance of Bio::Ontology::OntologyStore
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
104 Args :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
105
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
106
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
107 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
108
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
109 sub new {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
110 return shift->get_instance(@_);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
111 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
112
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
113 =head2 get_instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
114
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
115 Title : get_instance
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
116 Usage :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
117 Function: Get an instance of this class for perusal.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
118
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
119 Since by design this class is meant to be used as a
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
120 singleton, the implementation will return a previously
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
121 instantianted store if there is one, and instantiate a new
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
122 one otherwise. In order to use this class by means of an
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
123 instance, call this method for added code clarity, not
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
124 new().
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
125
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
126 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
127 Returns : an instance of this class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
128 Args : named parameters, if any (currently, there are no
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
129 class-specific parameters other than those accepted by
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
130 L<Bio::Root::Root>.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
131
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
132
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
133 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
134
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
135 sub get_instance{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
136 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
137
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
138 if(! $instance) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
139 $instance = $self->SUPER::new(@args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
140 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
141 return $instance;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
142 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
143
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
144 =head2 get_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
145
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
146 Title : get_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
147 Usage :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
148 Function: Get a previously instantiated and registered instance of
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
149 this class by name or by identifier.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
150
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
151 One of the main purposes of this class is to enable TermI
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
152 implementations to return their respective ontology without
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
153 keeping a strong reference to the respective ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
154 object. Only objects previously registered objects can be
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
155 retrieved.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
156
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
157 This is a class method, hence you can call it on the class
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
158 name, without dereferencing an object.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
159
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
160 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
161 Returns : a L<Bio::Ontology::OntologyI> implementing object, or undef
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
162 if the query could not be satisfied
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
163 Args : Named parameters specifying the query. The following parameters
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
164 are recognized:
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
165 -name query the store for an ontology with the given name
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
166 -id query for an ontology with the given identifier
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
167 If both are specified, an implicit AND logical operator is
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
168 assumed.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
169
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
170 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
171
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
172 sub get_ontology{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
173 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
174 my $ont;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
175
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
176 my ($name,$id) = $self->_rearrange([qw(NAME ID)], @args);
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
177 if($id) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
178 $ont = $ont_store_by_id{$id};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
179 return unless $ont; # no AND can be satisfied in this case
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
180 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
181 if($name) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
182 my $o = $ont_store_by_name{$name};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
183 if((! $ont) || ($ont->identifier() eq $o->identifier())) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
184 $ont = $o;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
185 } else {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
186 $ont = undef;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
187 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
188 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
189 return $ont;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
190 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
191
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
192 =head2 register_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
193
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
194 Title : register_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
195 Usage :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
196 Function: Registers the given Ontology object for later retrieval
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
197 by name and identifier.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
198
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
199 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
200 Returns : TRUE on success and FALSE otherwise
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
201 Args : the L<Bio::Ontology::OntologyI> object(s) to register
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
202
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
203
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
204 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
205
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
206 sub register_ontology{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
207 my ($self,@args) = @_;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
208 my $ret = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
209
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
210 foreach my $ont (@args) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
211 if(! (ref($ont) && $ont->isa("Bio::Ontology::OntologyI"))) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
212 $self->throw((ref($ont) ? ref($ont) : $ont)." does not implement ".
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
213 "Bio::Ontology::OntologyI or is not an object");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
214 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
215 if($self->get_ontology(-name => $ont->name())) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
216 $self->warn("ontology with name \"".$ont->name().
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
217 "\" already exists in the store, ignoring new one");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
218 $ret = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
219 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
220 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
221 if($self->get_ontology(-id => $ont->identifier())) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
222 $self->warn("ontology with id \"".$ont->identifier().
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
223 "\" already exists in the store, ignoring new one");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
224 $ret = 0;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
225 next;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
226 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
227 $ont_store_by_name{$ont->name()} = $ont;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
228 $ont_store_by_id{$ont->identifier()} = $ont;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
229 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
230 return $ret;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
231 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
232
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
233 =head2 remove_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
234
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
235 Title : remove_ontology
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
236 Usage :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
237 Function: Remove the specified ontology from the store.
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
238 Example :
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
239 Returns : TRUE on success and FALSE otherwise
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
240 Args : the L<Bio::Ontology::OntologyI> implementing object(s)
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
241 to be removed from the store
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
242
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
243
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
244 =cut
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
245
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
246 sub remove_ontology{
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
247 my $self = shift;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
248 my $ret = 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
249
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
250 foreach my $ont (@_) {
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
251 $self->throw(ref($ont)." does not implement Bio::Ontology::OntologyI")
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
252 unless $ont && ref($ont) && $ont->isa("Bio::Ontology::OntologyI");
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
253 # remove it from both the id hash and the name hash
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
254 delete $ont_store_by_id{$ont->identifier()};
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
255 delete $ont_store_by_name{$ont->name()} if $ont->name();
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
256 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
257 return 1;
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
258 }
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
259
1f6dce3d34e0 Uploaded
mahtabm
parents:
diff changeset
260 1;