Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/Ontology/OntologyI.pm @ 0:1f6dce3d34e0
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 02:01:53 -0400 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
-1:000000000000 | 0:1f6dce3d34e0 |
---|---|
1 # $Id: OntologyI.pm,v 1.2.2.4 2003/03/27 10:07:56 lapp Exp $ | |
2 # | |
3 # BioPerl module for Bio::Ontology::OntologyI | |
4 # | |
5 # Cared for by Hilmar Lapp <hlapp at gmx.net> | |
6 # | |
7 # Copyright Hilmar Lapp | |
8 # | |
9 # You may distribute this module under the same terms as perl itself | |
10 | |
11 # | |
12 # (c) Hilmar Lapp, hlapp at gmx.net, 2003. | |
13 # (c) GNF, Genomics Institute of the Novartis Research Foundation, 2003. | |
14 # | |
15 # You may distribute this module under the same terms as perl itself. | |
16 # Refer to the Perl Artistic License (see the license accompanying this | |
17 # software package, or see http://www.perl.com/language/misc/Artistic.html) | |
18 # for the terms under which you may use, modify, and redistribute this module. | |
19 # | |
20 # THIS PACKAGE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR IMPLIED | |
21 # WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF | |
22 # MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. | |
23 # | |
24 | |
25 # POD documentation - main docs before the code | |
26 | |
27 =head1 NAME | |
28 | |
29 Bio::Ontology::OntologyI - Interface for an ontology implementation | |
30 | |
31 =head1 SYNOPSIS | |
32 | |
33 # see method documentation | |
34 | |
35 =head1 DESCRIPTION | |
36 | |
37 This describes the minimal interface an ontology implementation must | |
38 provide. In essence, it represents a namespace with description on top | |
39 of the query interface OntologyEngineI. | |
40 | |
41 This interface inherits from L<Bio::Ontology::OntologyEngineI>. | |
42 | |
43 =head1 FEEDBACK | |
44 | |
45 =head2 Mailing Lists | |
46 | |
47 User feedback is an integral part of the evolution of this and other | |
48 Bioperl modules. Send your comments and suggestions preferably to | |
49 the Bioperl mailing list. Your participation is much appreciated. | |
50 | |
51 bioperl-l@bioperl.org - General discussion | |
52 http://bioperl.org/MailList.shtml - About the mailing lists | |
53 | |
54 =head2 Reporting Bugs | |
55 | |
56 Report bugs to the Bioperl bug tracking system to help us keep track | |
57 of the bugs and their resolution. Bug reports can be submitted via | |
58 email or the web: | |
59 | |
60 http://bugzilla.bioperl.org/ | |
61 | |
62 =head1 AUTHOR - Hilmar Lapp | |
63 | |
64 Email hlapp at gmx.net | |
65 | |
66 =head1 CONTRIBUTORS | |
67 | |
68 Additional contributors names and emails here | |
69 | |
70 =head1 APPENDIX | |
71 | |
72 The rest of the documentation details each of the object methods. | |
73 Internal methods are usually preceded with a _ | |
74 | |
75 =cut | |
76 | |
77 | |
78 # Let the code begin... | |
79 | |
80 | |
81 package Bio::Ontology::OntologyI; | |
82 use vars qw(@ISA); | |
83 use strict; | |
84 | |
85 use Bio::Ontology::OntologyEngineI; | |
86 | |
87 @ISA = qw( Bio::Ontology::OntologyEngineI ); | |
88 | |
89 =head1 Methods defined in this interface. | |
90 | |
91 =cut | |
92 | |
93 =head2 name | |
94 | |
95 Title : name | |
96 Usage : $obj->name($newval) | |
97 Function: Get/set the name of this ontology. | |
98 Example : | |
99 Returns : value of name (a scalar) | |
100 Args : | |
101 | |
102 | |
103 =cut | |
104 | |
105 sub name{ | |
106 shift->throw_not_implemented(); | |
107 } | |
108 | |
109 =head2 authority | |
110 | |
111 Title : authority | |
112 Usage : $auth = $obj->authority() | |
113 Function: Get/set the authority for this ontology, for instance the | |
114 DNS base for the organization granting the name of the | |
115 ontology and identifiers for the terms. | |
116 | |
117 This attribute is optional and should not generally | |
118 expected by applications to have been set. It is here to | |
119 follow the rules for namespaces, which ontologies serve as | |
120 for terms. | |
121 | |
122 Example : | |
123 Returns : value of authority (a scalar) | |
124 Args : | |
125 | |
126 | |
127 =cut | |
128 | |
129 sub authority{ | |
130 shift->throw_not_implemented(); | |
131 } | |
132 | |
133 =head2 identifier | |
134 | |
135 Title : identifier | |
136 Usage : $id = $obj->identifier() | |
137 Function: Get an identifier for this ontology. | |
138 | |
139 This is primarily intended for look-up purposes. Clients | |
140 should not expect the value to be modifiable, and it may | |
141 not be allowed to set its value from outside. Also, the | |
142 identifier's uniqueness may only hold within the scope of a | |
143 particular application's run time, i.e., it may be a memory | |
144 location. | |
145 | |
146 Example : | |
147 Returns : value of identifier (a scalar) | |
148 Args : | |
149 | |
150 | |
151 =cut | |
152 | |
153 sub identifier{ | |
154 shift->throw_not_implemented(); | |
155 } | |
156 | |
157 =head2 definition | |
158 | |
159 Title : definition | |
160 Usage : $def = $obj->definition() | |
161 Function: Get a descriptive definition for this ontology. | |
162 Example : | |
163 Returns : value of definition (a scalar) | |
164 Args : | |
165 | |
166 | |
167 =cut | |
168 | |
169 sub definition{ | |
170 shift->throw_not_implemented(); | |
171 } | |
172 | |
173 =head2 close | |
174 | |
175 Title : close | |
176 Usage : | |
177 Function: Release any resources this ontology may occupy. In order | |
178 to efficiently release used memory or file handles, you | |
179 should call this method once you are finished with an | |
180 ontology. | |
181 | |
182 Example : | |
183 Returns : TRUE on success and FALSE otherwise | |
184 Args : none | |
185 | |
186 | |
187 =cut | |
188 | |
189 sub close{ | |
190 shift->throw_not_implemented(); | |
191 } | |
192 | |
193 =head1 Methods inherited from L<Bio::Ontology::OntologyEngineI> | |
194 | |
195 Their documentations are copied here for completeness. In most use | |
196 cases, you will want to access the query methods of an ontology, not | |
197 just the name and description ... | |
198 | |
199 =cut | |
200 | |
201 =head2 add_term | |
202 | |
203 Title : add_term | |
204 Usage : add_term(TermI term): TermI | |
205 Function: Adds TermI object to the ontology engine term store. | |
206 | |
207 For ease of use, if the ontology property of the term | |
208 object was not set, an implementation is encouraged to set | |
209 it to itself upon adding the term. | |
210 | |
211 Example : $oe->add_term($term) | |
212 Returns : its argument. | |
213 Args : object of class TermI. | |
214 | |
215 | |
216 =cut | |
217 | |
218 =head2 add_relationship | |
219 | |
220 Title : add_relationship | |
221 Usage : add_relationship(RelationshipI relationship): RelationshipI | |
222 Function: Adds a relationship object to the ontology engine. | |
223 Example : | |
224 Returns : Its argument. | |
225 Args : A RelationshipI object. | |
226 | |
227 | |
228 =cut | |
229 | |
230 =head2 get_relationships | |
231 | |
232 Title : get_relationships | |
233 Usage : get_relationships(TermI term): RelationshipI[] | |
234 Function: Retrieves all relationship objects from this ontology engine, | |
235 or all relationships of a term if a term is supplied. | |
236 Example : | |
237 Returns : Array of Bio::Ontology::RelationshipI objects | |
238 Args : None, or a Bio::Ontology::TermI compliant object for which | |
239 to retrieve the relationships. | |
240 | |
241 | |
242 =cut | |
243 | |
244 =head2 get_predicate_terms | |
245 | |
246 Title : get_predicate_terms | |
247 Usage : get_predicate_terms(): TermI[] | |
248 Function: | |
249 Example : | |
250 Returns : | |
251 Args : | |
252 | |
253 | |
254 =cut | |
255 | |
256 =head2 get_child_terms | |
257 | |
258 Title : get_child_terms | |
259 Usage : get_child_terms(TermI term, TermI[] predicate_terms): TermI[] | |
260 Function: Retrieves all child terms of a given term, that satisfy a | |
261 relationship among those that are specified in the second | |
262 argument or undef otherwise. get_child_terms is a special | |
263 case of get_descendant_terms, limiting the search to the | |
264 direct descendants. | |
265 | |
266 Example : | |
267 Returns : Array of TermI objects. | |
268 Args : First argument is the term of interest, second is the list | |
269 of relationship type terms. | |
270 | |
271 | |
272 =cut | |
273 | |
274 =head2 get_descendant_terms | |
275 | |
276 Title : get_descendant_terms | |
277 Usage : get_descendant_terms(TermI term, TermI[] rel_types): TermI[] | |
278 Function: Retrieves all descendant terms of a given term, that | |
279 satisfy a relationship among those that are specified in | |
280 the second argument or undef otherwise. | |
281 Example : | |
282 Returns : Array of TermI objects. | |
283 Args : First argument is the term of interest, second is the list | |
284 of relationship type terms. | |
285 | |
286 | |
287 =cut | |
288 | |
289 =head2 get_parent_terms | |
290 | |
291 Title : get_parent_terms | |
292 Usage : get_parent_terms(TermI term, TermI[] predicate_terms): TermI[] | |
293 Function: Retrieves all parent terms of a given term, that satisfy a | |
294 relationship among those that are specified in the second | |
295 argument or undef otherwise. get_parent_terms is a special | |
296 case of get_ancestor_terms, limiting the search to the | |
297 direct ancestors. | |
298 | |
299 Example : | |
300 Returns : Array of TermI objects. | |
301 Args : First argument is the term of interest, second is the list | |
302 of relationship type terms. | |
303 | |
304 | |
305 =cut | |
306 | |
307 =head2 get_ancestor_terms | |
308 | |
309 Title : get_ancestor_terms | |
310 Usage : get_ancestor_terms(TermI term, TermI[] predicate_terms): TermI[] | |
311 Function: Retrieves all ancestor terms of a given term, that satisfy | |
312 a relationship among those that are specified in the second | |
313 argument or undef otherwise. | |
314 | |
315 Example : | |
316 Returns : Array of TermI objects. | |
317 Args : First argument is the term of interest, second is the list | |
318 of relationship type terms. | |
319 | |
320 | |
321 =cut | |
322 | |
323 =head2 get_leaf_terms | |
324 | |
325 Title : get_leaf_terms | |
326 Usage : get_leaf_terms(): TermI[] | |
327 Function: Retrieves all leaf terms from the ontology. Leaf term is a | |
328 term w/o descendants. | |
329 | |
330 Example : @leaf_terms = $obj->get_leaf_terms() | |
331 Returns : Array of TermI objects. | |
332 Args : | |
333 | |
334 | |
335 =cut | |
336 | |
337 =head2 get_root_terms() | |
338 | |
339 Title : get_root_terms | |
340 Usage : get_root_terms(): TermI[] | |
341 Function: Retrieves all root terms from the ontology. Root term is a | |
342 term w/o descendants. | |
343 | |
344 Example : @root_terms = $obj->get_root_terms() | |
345 Returns : Array of TermI objects. | |
346 Args : | |
347 | |
348 | |
349 =cut | |
350 | |
351 =head2 get_all_terms | |
352 | |
353 Title : get_all_terms | |
354 Usage : get_all_terms: TermI[] | |
355 Function: Retrieves all terms from the ontology. | |
356 | |
357 We do not mandate an order here in which the terms are | |
358 returned. In fact, the default implementation will return | |
359 them in unpredictable order. | |
360 | |
361 Example : @terms = $obj->get_all_terms() | |
362 Returns : Array of TermI objects. | |
363 Args : | |
364 | |
365 | |
366 =cut | |
367 | |
368 | |
369 =head2 find_terms | |
370 | |
371 Title : find_terms | |
372 Usage : ($term) = $oe->find_terms(-identifier => "SO:0000263"); | |
373 Function: Find term instances matching queries for their attributes. | |
374 | |
375 An implementation may not support querying for arbitrary | |
376 attributes, but can generally be expected to accept | |
377 -identifier and -name as queries. If both are provided, | |
378 they are implicitly intersected. | |
379 | |
380 Example : | |
381 Returns : an array of zero or more Bio::Ontology::TermI objects | |
382 Args : Named parameters. The following parameters should be recognized | |
383 by any implementation: | |
384 | |
385 -identifier query by the given identifier | |
386 -name query by the given name | |
387 | |
388 | |
389 =cut | |
390 | |
391 =head1 Factory for relationships and terms | |
392 | |
393 =cut | |
394 | |
395 =head2 relationship_factory | |
396 | |
397 Title : relationship_factory | |
398 Usage : $fact = $obj->relationship_factory() | |
399 Function: Get (and set, if the implementation supports it) the object | |
400 factory to be used when relationship objects are created by | |
401 the implementation on-the-fly. | |
402 | |
403 Example : | |
404 Returns : value of relationship_factory (a Bio::Factory::ObjectFactoryI | |
405 compliant object) | |
406 Args : | |
407 | |
408 | |
409 =cut | |
410 | |
411 sub relationship_factory{ | |
412 return shift->throw_not_implemented(); | |
413 } | |
414 | |
415 =head2 term_factory | |
416 | |
417 Title : term_factory | |
418 Usage : $fact = $obj->term_factory() | |
419 Function: Get (and set, if the implementation supports it) the object | |
420 factory to be used when term objects are created by | |
421 the implementation on-the-fly. | |
422 | |
423 Example : | |
424 Returns : value of term_factory (a Bio::Factory::ObjectFactoryI | |
425 compliant object) | |
426 Args : | |
427 | |
428 | |
429 =cut | |
430 | |
431 sub term_factory{ | |
432 return shift->throw_not_implemented(); | |
433 } | |
434 | |
435 1; |