comparison variant_effect_predictor/Bio/Annotation/Reference.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: Reference.pm,v 1.18 2002/09/25 18:11:33 lapp Exp $
2 #
3 # BioPerl module for Bio::Annotation::Reference
4 #
5 # Cared for by Ewan Birney <birney@ebi.ac.uk>
6 #
7 # Copyright Ewan Birney
8 #
9 # You may distribute this module under the same terms as perl itself
10
11 # POD documentation - main docs before the code
12
13 =head1 NAME
14
15 Bio::Annotation::Reference - Specialised DBLink object for Literature References
16
17 =head1 SYNOPSIS
18
19 $reg = Bio::Annotation::Reference->new( -title => 'title line',
20 -location => 'location line',
21 -authors => 'author line',
22 -medline => 998122 );
23
24 =head1 DESCRIPTION
25
26 Object which presents a literature reference. This is considered to be
27 a specialised form of database link. The additional methods provided
28 are all set/get methods to store strings commonly associated with
29 references, in particular title, location (ie, journal page) and
30 authors line.
31
32 There is no attempt to do anything more than store these things as
33 strings for processing elsewhere. This is mainly because parsing these
34 things suck and generally are specific to the specific format one is
35 using. To provide an easy route to go format --E<gt> object --E<gt> format
36 without losing data, we keep them as strings. Feel free to post the
37 list for a better solution, but in general this gets very messy very
38 fast...
39
40 =head1 CONTACT
41
42 Describe contact details here
43
44 =head1 APPENDIX
45
46 The rest of the documentation details each of the object methods. Internal methods are usually preceded with a _
47
48 =cut
49
50
51 # Let the code begin...
52
53 package Bio::Annotation::Reference;
54 use vars qw(@ISA);
55 use strict;
56
57 use Bio::Annotation::DBLink;
58 use Bio::AnnotationI;
59
60 @ISA = qw(Bio::Annotation::DBLink);
61
62 =head2 new
63
64 Title : new
65 Usage : $ref = Bio::Annotation::Reference->new( -title => 'title line',
66 -authors => 'author line',
67 -location => 'location line',
68 -medline => 9988812);
69 Function:
70 Example :
71 Returns : a new Bio::Annotation::Reference object
72 Args : a hash with optional title, authors, location, medline, start and end
73 attributes
74
75
76 =cut
77
78 sub new{
79 my ($class,@args) = @_;
80
81 my $self = $class->SUPER::new(@args);
82
83 my ($start,$end,$authors,$location,$title,$medline,$tag) =
84 $self->_rearrange([qw(START
85 END
86 AUTHORS
87 LOCATION
88 TITLE
89 MEDLINE
90 TAGNAME
91 )],@args);
92
93 defined $start && $self->start($start);
94 defined $end && $self->end($end);
95 defined $authors && $self->authors($authors);
96 defined $location && $self->location($location);
97 defined $title && $self->title($title);
98 defined $medline && $self->medline($medline);
99 defined $tag && $self->tagname($tag);
100
101 return $self;
102 }
103
104
105 =head1 AnnotationI implementing functions
106
107 =cut
108
109 =head2 as_text
110
111 Title : as_text
112 Usage :
113 Function:
114 Example :
115 Returns :
116 Args :
117
118
119 =cut
120
121 sub as_text{
122 my ($self) = @_;
123
124 # this could get out of hand!
125 return "Reference: ".$self->title;
126 }
127
128
129 =head2 hash_tree
130
131 Title : hash_tree
132 Usage :
133 Function:
134 Example :
135 Returns :
136 Args :
137
138
139 =cut
140
141 sub hash_tree{
142 my ($self) = @_;
143
144 my $h = {};
145 $h->{'title'} = $self->title;
146 $h->{'authors'} = $self->authors;
147 $h->{'location'} = $self->location;
148 if( defined $self->start ) {
149 $h->{'start'} = $self->start;
150 }
151 if( defined $self->end ) {
152 $h->{'end'} = $self->end;
153 }
154 $h->{'medline'} = $self->medline;
155
156 return $h;
157 }
158
159 =head2 tagname
160
161 Title : tagname
162 Usage : $obj->tagname($newval)
163 Function: Get/set the tagname for this annotation value.
164
165 Setting this is optional. If set, it obviates the need to provide
166 a tag to Bio::AnnotationCollectionI when adding this object. When
167 obtaining an AnnotationI object from the collection, the collection
168 will set the value to the tag under which it was stored unless the
169 object has a tag stored already.
170 Example :
171 Returns : value of tagname (a scalar)
172 Args : new value (a scalar, optional)
173
174
175 =cut
176
177 sub tagname{
178 my ($self,$value) = @_;
179 if( defined $value) {
180 $self->{'tagname'} = $value;
181 }
182 return $self->{'tagname'};
183 }
184
185
186 =head1 Specific accessors for References
187
188 =cut
189
190
191 =head2 start
192
193 Title : start
194 Usage : $self->start($newval)
195 Function: Gives the reference start base
196 Example :
197 Returns : value of start
198 Args : newvalue (optional)
199
200
201 =cut
202
203 sub start {
204 my ($self,$value) = @_;
205 if( defined $value) {
206 $self->{'start'} = $value;
207 }
208 return $self->{'start'};
209
210 }
211
212 =head2 end
213
214 Title : end
215 Usage : $self->end($newval)
216 Function: Gives the reference end base
217 Example :
218 Returns : value of end
219 Args : newvalue (optional)
220
221
222 =cut
223
224 sub end {
225 my ($self,$value) = @_;
226 if( defined $value) {
227 $self->{'end'} = $value;
228 }
229 return $self->{'end'};
230 }
231
232 =head2 rp
233
234 Title : rp
235 Usage : $self->rp($newval)
236 Function: Gives the RP line. No attempt is made to parse this line.
237 Example :
238 Returns : value of rp
239 Args : newvalue (optional)
240
241
242 =cut
243
244 sub rp{
245 my ($self,$value) = @_;
246 if( defined $value) {
247 $self->{'rp'} = $value;
248 }
249 return $self->{'rp'};
250
251 }
252
253 =head2 authors
254
255 Title : authors
256 Usage : $self->authors($newval)
257 Function: Gives the author line. No attempt is made to parse the author line
258 Example :
259 Returns : value of authors
260 Args : newvalue (optional)
261
262
263 =cut
264
265 sub authors{
266 my ($self,$value) = @_;
267 if( defined $value) {
268 $self->{'authors'} = $value;
269 }
270 return $self->{'authors'};
271
272 }
273
274 =head2 location
275
276 Title : location
277 Usage : $self->location($newval)
278 Function: Gives the location line. No attempt is made to parse the location line
279 Example :
280 Returns : value of location
281 Args : newvalue (optional)
282
283
284 =cut
285
286 sub location{
287 my ($self,$value) = @_;
288 if( defined $value) {
289 $self->{'location'} = $value;
290 }
291 return $self->{'location'};
292
293 }
294
295 =head2 title
296
297 Title : title
298 Usage : $self->title($newval)
299 Function: Gives the title line (if exists)
300 Example :
301 Returns : value of title
302 Args : newvalue (optional)
303
304
305 =cut
306
307 sub title{
308 my ($self,$value) = @_;
309 if( defined $value) {
310 $self->{'title'} = $value;
311 }
312 return $self->{'title'};
313
314 }
315
316 =head2 medline
317
318 Title : medline
319 Usage : $self->medline($newval)
320 Function: Gives the medline number
321 Example :
322 Returns : value of medline
323 Args : newvalue (optional)
324
325
326 =cut
327
328 sub medline{
329 my ($self,$value) = @_;
330 if( defined $value) {
331 $self->{'medline'} = $value;
332 }
333 return $self->{'medline'};
334 }
335
336 =head2 pubmed
337
338 Title : pubmed
339 Usage : $refobj->pubmed($newval)
340 Function: Get/Set the PubMed number, if it is different from the MedLine
341 number.
342 Example :
343 Returns : value of medline
344 Args : newvalue (optional)
345
346
347 =cut
348
349 sub pubmed {
350 my ($self,$value) = @_;
351 if( defined $value) {
352 $self->{'pubmed'} = $value;
353 }
354 return $self->{'pubmed'};
355 }
356
357 =head2 database
358
359 Title : database
360 Usage :
361 Function: Overrides DBLink database to be hard coded to 'MEDLINE', unless
362 the database has been set explicitely before.
363 Example :
364 Returns :
365 Args :
366
367
368 =cut
369
370 sub database{
371 my ($self, @args) = @_;
372
373 return $self->SUPER::database(@args) || 'MEDLINE';
374 }
375
376 =head2 primary_id
377
378 Title : primary_id
379 Usage :
380 Function: Overrides DBLink primary_id to provide medline number
381 Example :
382 Returns :
383 Args :
384
385
386 =cut
387
388 sub primary_id{
389 my ($self, @args) = @_;
390
391 return $self->medline(@args);
392 }
393
394 =head2 optional_id
395
396 Title : optional_id
397 Usage :
398 Function: Overrides DBLink optional_id to provide the PubMed number.
399 Example :
400 Returns :
401 Args :
402
403
404 =cut
405
406 sub optional_id{
407 my ($self, @args) = @_;
408
409 return $self->pubmed(@args);
410 }
411
412 =head2 publisher
413
414 Title : publisher
415 Usage : $self->publisher($newval)
416 Function: Gives the publisher line. No attempt is made to parse the publisher line
417 Example :
418 Returns : value of publisher
419 Args : newvalue (optional)
420
421
422 =cut
423
424 sub publisher {
425 my ($self,$value) = @_;
426 if( defined $value) {
427 $self->{'publisher'} = $value;
428 }
429 return $self->{'publisher'};
430 }
431
432
433 =head2 editors
434
435 Title : editors
436 Usage : $self->editors($newval)
437 Function: Gives the editors line. No attempt is made to parse the editors line
438 Example :
439 Returns : value of editors
440 Args : newvalue (optional)
441
442
443 =cut
444
445 sub editors {
446 my ($self,$value) = @_;
447 if( defined $value) {
448 $self->{'editors'} = $value;
449 }
450 return $self->{'editors'};
451 }
452
453
454 =head2 encoded_ref
455
456 Title : encoded_ref
457 Usage : $self->encoded_ref($newval)
458 Function: Gives the encoded_ref line. No attempt is made to parse the encoded_ref line
459 (this is added for reading PDB records (REFN record), where this contains
460 ISBN/ISSN/ASTM code)
461 Example :
462 Returns : value of encoded_ref
463 Args : newvalue (optional)
464
465
466 =cut
467
468 sub encoded_ref {
469 my ($self,$value) = @_;
470 if( defined $value) {
471 $self->{'encoded_ref'} = $value;
472 }
473 return $self->{'encoded_ref'};
474 }
475
476
477 1;