Mercurial > repos > mahtabm > ensembl
comparison variant_effect_predictor/Bio/IdentifiableI.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: IdentifiableI.pm,v 1.6 2002/10/23 18:07:49 lapp Exp $ | |
2 | |
3 # | |
4 # This module is licensed under the same terms as Perl itself. You use, | |
5 # modify, and redistribute it under the terms of the Perl Artistic License. | |
6 # | |
7 | |
8 =head1 NAME | |
9 | |
10 Bio::IdentifiableI - interface for objects with identifiers | |
11 | |
12 =head1 SYNOPSIS | |
13 | |
14 | |
15 # to test this is an identifiable object | |
16 | |
17 $obj->isa("Bio::IdentifiableI") || | |
18 $obj->throw("$obj does not implement the Bio::IdentifiableI interface"); | |
19 | |
20 # accessors | |
21 | |
22 $object_id = $obj->object_id(); | |
23 $namespace = $obj->namespace(); | |
24 $authority = $obj->authority(); | |
25 $version = $obj->version(); | |
26 | |
27 # utility function | |
28 | |
29 $lsid = $obj->lsid_string(); # gives authority:namespace:object_id | |
30 $ns_string = $obj->namespace_string(); # gives namespace:object_id.version | |
31 | |
32 | |
33 =head1 DESCRIPTION | |
34 | |
35 This interface describes methods expected on identifiable objects, ie | |
36 ones which have identifiers expected to make sense across a number of | |
37 instances and/or domains. This interface is modeled after pretty much | |
38 ubiquitous ideas for names in bioinformatics being | |
39 | |
40 databasename:object_id.version | |
41 | |
42 examples being | |
43 | |
44 swissprot:P012334.2 | |
45 | |
46 or | |
47 | |
48 GO:0007048 | |
49 | |
50 We also work well with LSID proposals which adds in the concept of an | |
51 authority, being the DNS name of the organisation assigning the namespace. | |
52 Helper functions are provided to make useful strings being | |
53 | |
54 | |
55 lsid_string - string complying to the LSID standard | |
56 namespace_string - string complying to the usual convention of | |
57 namespace:object_id.version | |
58 | |
59 =head1 FEEDBACK | |
60 | |
61 =head2 Mailing Lists | |
62 | |
63 User feedback is an integral part of the evolution of this and other | |
64 Bioperl modules. Send your comments and suggestions preferably to one | |
65 of the Bioperl mailing lists. Your participation is much appreciated. | |
66 | |
67 bioperl-l@bioperl.org - General discussion | |
68 http://bio.perl.org/MailList.html - About the mailing lists | |
69 | |
70 =head2 Reporting Bugs | |
71 | |
72 Report bugs to the Bioperl bug tracking system to help us keep track | |
73 the bugs and their resolution. Bug reports can be submitted via email | |
74 or the web: | |
75 | |
76 bioperl-bugs@bio.perl.org | |
77 http://bugzilla.bioperl.org/ | |
78 | |
79 =head1 AUTHOR - Ewan Birney | |
80 | |
81 Email birney@sanger.ac.uk | |
82 | |
83 =cut | |
84 | |
85 package Bio::IdentifiableI; | |
86 use vars qw(@ISA ); | |
87 use strict; | |
88 use Bio::Root::RootI; | |
89 | |
90 | |
91 @ISA = qw(Bio::Root::RootI); | |
92 | |
93 =head1 Implementation Specific Functions | |
94 | |
95 These functions are the ones that a specific implementation must | |
96 define. | |
97 | |
98 =head2 object_id | |
99 | |
100 Title : object_id | |
101 Usage : $string = $obj->object_id() | |
102 Function: a string which represents the stable primary identifier | |
103 in this namespace of this object. For DNA sequences this | |
104 is its accession_number, similarly for protein sequences | |
105 | |
106 Returns : A scalar | |
107 Status : Virtual | |
108 | |
109 =cut | |
110 | |
111 sub object_id { | |
112 my ($self) = @_; | |
113 $self->throw_not_implemented(); | |
114 } | |
115 | |
116 =head2 version | |
117 | |
118 Title : version | |
119 Usage : $version = $obj->version() | |
120 Function: a number which differentiates between versions of | |
121 the same object. Higher numbers are considered to be | |
122 later and more relevant, but a single object described | |
123 the same identifier should represent the same concept | |
124 | |
125 Returns : A number | |
126 Status : Virtual | |
127 | |
128 =cut | |
129 | |
130 sub version { | |
131 my ($self) = @_; | |
132 $self->throw_not_implemented(); | |
133 } | |
134 | |
135 | |
136 =head2 authority | |
137 | |
138 Title : authority | |
139 Usage : $authority = $obj->authority() | |
140 Function: a string which represents the organisation which | |
141 granted the namespace, written as the DNS name for | |
142 organisation (eg, wormbase.org) | |
143 | |
144 Returns : A scalar | |
145 Status : Virtual | |
146 | |
147 =cut | |
148 | |
149 sub authority { | |
150 my ($self) = @_; | |
151 $self->throw_not_implemented(); | |
152 } | |
153 | |
154 | |
155 =head2 namespace | |
156 | |
157 Title : namespace | |
158 Usage : $string = $obj->namespace() | |
159 Function: A string representing the name space this identifier | |
160 is valid in, often the database name or the name | |
161 describing the collection | |
162 | |
163 Returns : A scalar | |
164 Status : Virtual | |
165 | |
166 =cut | |
167 | |
168 sub namespace { | |
169 my ($self) = @_; | |
170 $self->throw_not_implemented(); | |
171 } | |
172 | |
173 | |
174 | |
175 =head1 Implementation optional functions | |
176 | |
177 These functions are helper functions that are provided by | |
178 the interface but can be overridden if so wished | |
179 | |
180 =head2 lsid_string | |
181 | |
182 Title : lsid_string | |
183 Usage : $string = $obj->lsid_string() | |
184 Function: a string which gives the LSID standard | |
185 notation for the identifier of interest | |
186 | |
187 | |
188 Returns : A scalar | |
189 | |
190 =cut | |
191 | |
192 sub lsid_string { | |
193 my ($self) = @_; | |
194 | |
195 return $self->authority.":".$self->namespace.":".$self->object_id; | |
196 } | |
197 | |
198 | |
199 | |
200 =head2 namespace_string | |
201 | |
202 Title : namespace_string | |
203 Usage : $string = $obj->namespace_string() | |
204 Function: a string which gives the common notation of | |
205 namespace:object_id.version | |
206 | |
207 Returns : A scalar | |
208 | |
209 =cut | |
210 | |
211 sub namespace_string { | |
212 my ($self) = @_; | |
213 | |
214 return $self->namespace.":".$self->object_id . | |
215 (defined($self->version()) ? ".".$self->version : ''); | |
216 } | |
217 | |
218 1; |