diff variant_effect_predictor/Bio/Biblio/Ref.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/variant_effect_predictor/Bio/Biblio/Ref.pm	Thu Apr 11 02:01:53 2013 -0400
@@ -0,0 +1,251 @@
+# $Id: Ref.pm,v 1.5 2002/10/22 07:45:11 lapp Exp $
+#
+# BioPerl module for Bio::Biblio::Ref
+#
+# Cared for by Martin Senger <senger@ebi.ac.uk>
+# For copyright and disclaimer see below.
+
+# POD documentation - main docs before the code
+
+=head1 NAME
+
+Bio::Biblio::Ref - Representation of a bibliographic reference
+
+=head1 SYNOPSIS
+
+    $obj = new Bio::Biblio::Ref (-type  => 'Letter',
+				 -title => 'Onegin to Tatiana');
+ --- OR ---
+
+    $obj = new Bio::Biblio::Ref;
+    $obj->type ('Letter');
+
+=head1 DESCRIPTION
+
+A storage object for a general bibliographic reference (a citation).
+See its place in the class hierarchy in
+http://industry.ebi.ac.uk/openBQS/images/bibobjects_perl.gif
+
+=head2 Attributes
+
+The following attributes are specific to this class, 
+and they are inherited by all citation types.
+
+  author_list_complete            values: 'Y'  (default) or 'N'
+  authors                         type:   array ref of Bio::Biblio::Provider's
+  cross_references                type:   array ref of Bio::Annotation::DBLink's
+  cross_references_list_complete  values: 'Y' (default) or 'N'
+  abstract
+  abstract_language
+  abstract_type
+  codes                           type:   hash ref
+  contributors                    type:   array ref of Bio::Biblio::Provider's
+  date
+  date_completed
+  date_created
+  date_revised
+  format
+  identifier
+  keywords
+  language
+  last_modified_date
+  publisher                       type:   Bio::Biblio::Provider
+  repository_subset
+  rights
+  spatial_location
+  subject_headings                type:   hash ref
+  subject_headings_source
+  temporal_period
+  title
+  toc
+  toc_type
+  type
+
+=head1 SEE ALSO
+
+=over
+
+=item *
+
+OpenBQS home page: http://industry.ebi.ac.uk/openBQS
+
+=item *
+
+Comments to the Perl client: http://industry.ebi.ac.uk/openBQS/Client_perl.html
+
+=back
+
+=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:
+
+  bioperl-bugs@bioperl.org
+  http://bugzilla.bioperl.org/
+
+=head1 AUTHORS
+
+Heikki Lehvaslaiho (heikki@ebi.ac.uk),
+Martin Senger (senger@ebi.ac.uk)
+
+=head1 COPYRIGHT
+
+Copyright (c) 2002 European Bioinformatics Institute. All Rights Reserved.
+
+This module is free software; you can redistribute it and/or modify
+it under the same terms as Perl itself.
+
+=head1 DISCLAIMER
+
+This software is provided "as is" without warranty of any kind.
+
+=head1 APPENDIX
+
+The rest of the documentation details each of the object
+methods. Internal methods are preceded with a _
+
+=cut
+
+
+# Let the code begin...
+
+
+package Bio::Biblio::Ref;
+use strict;
+use vars qw(@ISA $AUTOLOAD);
+
+use Bio::Biblio::BiblioBase;
+use Bio::Annotation::DBLink;
+
+@ISA = qw(Bio::Biblio::BiblioBase);
+
+#
+# a closure with a list of allowed attribute names (these names
+# correspond with the allowed 'get' and 'set' methods); each name also
+# keep what type the attribute should be (use 'undef' if it is a
+# simple scalar)
+#
+{
+    my %_allowed =
+	(
+	 _author_list_complete => undef,
+	 _authors => 'ARRAY',  # of Bio::Biblio::Provider
+	 _cross_references => 'ARRAY',   # of Bio::Annotation::DBLink
+	 _cross_references_list_complete => undef,
+	 _abstract => undef,
+	 _abstract_language => undef,
+	 _abstract_type => undef,
+	 _codes => 'HASH',
+	 _contributors => 'ARRAY',  # of Bio::Biblio::Provider
+	 _date => undef,
+	 _date_completed => undef,
+	 _date_created => undef,
+	 _date_revised => undef,
+	 _format => undef,
+	 _identifier => undef,
+	 _keywords => 'HASH',
+	 _language => undef,
+	 _last_modified_date => undef,
+	 _publisher => 'Bio::Biblio::Provider',
+	 _repository_subset => undef,
+	 _rights => undef,
+	 _spatial_location => undef,
+	 _subject_headings => 'HASH',
+	 _subject_headings_source => undef,
+	 _temporal_period => undef,
+	 _title => undef,
+	 _toc => undef,
+	 _toc_type => undef,
+	 _type => undef,
+	 );
+
+    # return 1 if $attr is allowed to be set/get in this class
+    sub _accessible {
+	my ($self, $attr) = @_;
+	exists $_allowed{$attr};
+    }
+
+    # return an expected type of given $attr
+    sub _attr_type {
+	my ($self, $attr) = @_;
+	$_allowed{$attr};
+    }
+}
+
+
+=head2 add_cross_reference
+
+ Usage   : $self->add_cross_reference
+               (new Bio::Annotation::DBLink (-database   => 'EMBL',
+					     -primary_id => 'V00808');
+ Function: adding a link to a database entry
+ Returns : new value of 'cross_references'
+ Args    : an object of type Bio::Annotation::DBLink
+
+=cut
+
+sub add_cross_reference {
+    my ($self, $value) = @_;
+    $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Annotation::DBLink'))
+	unless (UNIVERSAL::isa ($value, 'Bio::Annotation::DBLink'));
+    (defined $self->cross_references) ?
+	push (@{ $self->cross_references }, $value) :
+	    return $self->cross_references ( [$value] );
+    return $self->cross_references;
+}
+
+
+=head2 add_author
+
+ Usage   : $self->add_author (new Bio::Biblio::Person (-lastname => 'Novak');
+ Function: adding an author to a list of authors
+ Returns : new value of 'authors' (a full list)
+ Args    : an object of type Bio::Biblio::Provider
+
+=cut
+
+
+sub add_author {
+    my ($self, $value) = @_;
+    $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Biblio::Provider'))
+	unless (UNIVERSAL::isa ($value, 'Bio::Biblio::Provider'));
+    (defined $self->authors) ?
+	push (@{ $self->authors }, $value) :
+	    return $self->authors ( [$value] );
+    return $self->authors;
+}
+
+=head2 add_contributor
+
+ Usage   : $self->add_contributor (new Bio::Biblio::Person (-lastname => 'Novak');
+ Function: adding a contributor to a list of contributors
+ Returns : new value of 'contributors' (a full list)
+ Args    : an object of type Bio::Biblio::Provider
+
+=cut
+
+sub add_contributor {
+    my ($self, $value) = @_;
+    $self->throw ($self->_wrong_type_msg (ref $value, 'Bio::Biblio::Provider'))
+	unless (UNIVERSAL::isa ($value, 'Bio::Biblio::Provider'));
+    (defined $self->contributors) ?
+	push (@{ $self->contributors }, $value) :
+	    return $self->contributors ( [$value] );
+    return $self->contributors;
+}
+
+
+1;
+__END__