Mercurial > repos > mahtabm > ensemb_rep_gvl
diff variant_effect_predictor/Bio/EnsEMBL/DBEntry.pm @ 0:2bc9b66ada89 draft default tip
Uploaded
author | mahtabm |
---|---|
date | Thu, 11 Apr 2013 06:29:17 -0400 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/variant_effect_predictor/Bio/EnsEMBL/DBEntry.pm Thu Apr 11 06:29:17 2013 -0400 @@ -0,0 +1,715 @@ +=head1 LICENSE + + Copyright (c) 1999-2012 The European Bioinformatics Institute and + Genome Research Limited. All rights reserved. + + This software is distributed under a modified Apache license. + For license details, please see + + http://www.ensembl.org/info/about/code_licence.html + +=head1 CONTACT + + Please email comments or questions to the public Ensembl + developers list at <dev@ensembl.org>. + + Questions may also be sent to the Ensembl help desk at + <helpdesk@ensembl.org>. + +=cut + +=head1 NAME + +Bio::EnsEMBL::DBEntry - +Object representing an external reference (xref) + +=head1 DESCRIPTION + +This object holds information about external references (xrefs) to +Ensembl objects. + +=head1 METHODS + +=cut + +package Bio::EnsEMBL::DBEntry; + +use strict; +use warnings; +no warnings qw(uninitialized); + +use Bio::EnsEMBL::Storable; +use Bio::Annotation::DBLink; + +use Bio::EnsEMBL::Utils::Argument qw(rearrange); +use Bio::EnsEMBL::Utils::Exception qw(deprecate); +use Scalar::Util qw(weaken isweak); + +our @ISA = qw(Bio::EnsEMBL::Storable Bio::Annotation::DBLink); + + +=head2 new_fast + + Arg [1] : Hashref $hashref - hash reference to bless as new DBEntry object + Description: A very quick constructor that requires internal knowledge of + the class. This is used in speed critical sections of the code + where many objects need to be created quickly. + Returntype : Bio::EnsEMBL::DBEntry + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub new_fast { + my $class = shift; + my $hashref = shift; + my $self = bless $hashref, $class; + weaken($self->{adaptor}) if ( ! isweak($self->{adaptor}) ); + return $self; +} + + +=head2 new + + Args [...] : list of named parameters + Example : my $dbentry = new Bio::EnsEMBL::DBEntry( + -adaptor => $adaptor, + -primary_id => $pid, + -version => $version, + -dbname => $dbname, + -release => $release, + -display_id => $did, + -description => $description, + -priority => $priority, + -db_display_name => $db_display_name, + -info_type => $info_type, + -info_text => $info_text, + -type => $type, + -secondary_db_name => $secondary_db_name, + -secondary_db_table => $secondary_db_table + -linkage_annotation => $object_xref_text); + Description: Creates a new DBEntry object + Returntype : Bio::EnsEMBL::DBEntry + Exceptions : none + Caller : Bio::EnsEMBL::DBEntryAdaptor + Status : At Risk + Due to 'PRIORITY', + 'INFO_TYPE', 'INFO_TEXT', ''DB_DISPLAY_NAME', 'TYPE', + 'SECONDARY_DB_NAME', 'SECONDARY_DB_TABLE' + being under development - if you don't use any of these the + method can be considered Stable + +=cut + +sub new { + my ($class, @args) = @_; + + my $self = bless {},$class; + + my ( $adaptor, $dbID, $primary_id, $version, + $dbname, $release, $display_id, $description, + $priority, + $db_display_name, $info_type, $info_text, $type, + $secondary_db_name, $secondary_db_table, $link_annotation, $analysis) = + rearrange ( ['ADAPTOR','DBID','PRIMARY_ID','VERSION', + 'DBNAME','RELEASE','DISPLAY_ID','DESCRIPTION', + 'PRIORITY', + 'DB_DISPLAY_NAME', 'INFO_TYPE', 'INFO_TEXT', 'TYPE', + 'SECONDARY_DB_NAME', 'SECONDARY_DB_TABLE', 'LINKAGE_ANNOTATION', 'ANALYSIS'], @args ); + + $self->adaptor($adaptor); + $self->{'dbID'} = $dbID; + + if( defined $primary_id ) { $self->primary_id( $primary_id ) } + if( defined $version ) { $self->version( $version ) } else + { $self->version( 0 ); } + if( defined $dbname ) { $self->dbname( $dbname ) } + if( defined $release) { $self->release( $release ) } + if( defined $display_id) { $self->display_id( $display_id ) } + if( defined $description) { $self->description($description) } + if( defined $priority) { $self->priority($priority) } + if( defined $db_display_name) { $self->db_display_name($db_display_name) } + if( defined $info_type) { $self->info_type($info_type) } + if( defined $info_text) { $self->info_text($info_text) } + if( defined $type) { $self->type($type) } + if( defined $secondary_db_name) { $self->secondary_db_name($secondary_db_name) } + if( defined $secondary_db_table) { $self->secondary_db_table($secondary_db_table) } + + $self->linkage_annotation($link_annotation) if defined $link_annotation; + $self->analysis($analysis) if defined $analysis; + + + return $self; +} + + +=head2 primary_id + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'primary_id'. + This is the object's primary id in the external database. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub primary_id { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{primary_id} = $arg; + } + return $self->{primary_id}; +} + + +=head2 display_id + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'display_id'. + The object's preferred display name. This can be the same + as primary_id or ensembl-specific. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub display_id{ + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{display_id} = $arg; + } + return $self->{display_id}; +} + + +=head2 optional_id + + Args : none + Example : none + Description: Additional getter for attribute 'display_id'. + The object's preferred display name. + Only include for BioPerl interface compliance, please use + $self->display_id(). + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub optional_id { + my $self = shift; + return $self->display_id; +} + + +=head2 dbname + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'dbname'. + The name of the external database. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub dbname { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{dbname} = $arg; + } + return $self->{dbname}; +} + + +=head2 database + + Args : none + Example : none + Description: Additional getter for attribute 'dbname'. + The name of the external database. + Only include for BioPerl interface compliance, please use + $self->dbname(). + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub database { + my $self = shift; + return $self->dbname(); +} + + +=head2 release + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'release'. + The external database release name. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub release { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{release} = $arg; + } + return $self->{release}; +} + + +=head2 version + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'version'. + The object's version in the external database. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub version { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{version} = $arg; + } + return $self->{version}; +} + + +=head2 description + + Arg [1] : (optional) String $arg - value to set + Example : none + Description: Getter/setter for attribute 'description'. + The object's description, from the xref table + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub description { + my ( $self, $arg ) = @_; + + if ( defined($arg) ) { $self->{'description'} = $arg } + + return $self->{description}; +} + +=head2 analysis + + Arg [1] : Bio::EnsEMBL::Analysis $analysis + Example : none + Description: get/set for attribute analysis + Returntype : Bio::EnsEMBL::Analysis + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub analysis { + my $self = shift; + $self->{analysis} = shift if( @_ ); + return $self->{analysis}; +} + +=head2 comment + + Args : none + Example : none + Description: Additional getter for attribute 'description'. + The object's description. + Only include for BioPerl interface compliance, please use + $self->description(). + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub comment { + my $self = shift; + return $self->description(); +} + + +=head2 priority + + Arg [1] : int $priority + Example : none + Priority : Getter/setter for attribute 'priority'. Note this + is the priority from the external_db table. + Returntype : String + Exceptions : none + Caller : general + Status : At Risk + : due to it being under development + +=cut + +sub priority { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{priority} = $arg; + } + return $self->{priority}; +} + + +=head2 db_display_name + + Arg [1] : String $db_display_name + Example : none + Description: Getter/setter for attribute 'db_display_name'. + The preferred display name for the external database. Has + "Projected " prepended if info_type='PROJECTION'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub db_display_name { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{db_display_name} = $arg; + } + + my $name; + if ($self->{info_type} && $self->{info_type} eq "PROJECTION") { + $name = "Projected " . $self->{db_display_name}; + } else { + $name = $self->{db_display_name}; + } + + return $name; +} + + +=head2 info_type + + Arg [1] : String $info_type + Example : none + Description: Getter/setter for attribute 'info_type'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub info_type { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{info_type} = $arg; + } + return $self->{info_type}; + } + + +=head2 info_text + + Arg [1] : String $info_text + Example : none + Description: Getter/setter for attribute 'info_text'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub info_text { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{info_text} = $arg; + } + return $self->{info_text}; +} + +=head2 linkage_annotation + + Arg [1] : String $object_xref_text + Example : none + Description: Getter/setter for attribute 'linkage_annotation'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub linkage_annotation { + my ( $self, $arg ) = @_; + + $self->{linkage_annotation} = $arg if defined $arg; + + return $self->{linkage_annotation}; +} + + +=head2 type + + Arg [1] : String $type + Example : none + Description: Getter/setter for attribute 'type'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub type { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{type} = $arg; + } + return $self->{type}; +} + +=head2 secondary_db_name + + Arg [1] : String $secondary_db_name + Description: Getter/setter for attribute 'secondary_db_name'. + Returntype : String + Exceptions : none + Caller : general + +=cut + +sub secondary_db_name { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{secondary_db_name} = $arg; + } + return $self->{secondary_db_name}; +} + + +=head2 secondary_db_table + + Arg [1] : String $secondary_db_table + Description: Getter/setter for attribute 'secondary_db_table'. + Returns : String + Exceptions : none + Caller : general + +=cut + +sub secondary_db_table { + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{secondary_db_table} = $arg; + } + return $self->{secondary_db_table}; +} + + +=head2 add_synonym + + Arg [1] : String $arg - synonym to add + Description: Add a synonym for the external object. + Returntype : none + Exceptions : none + Caller : general + Status : Stable + +=cut + + +sub add_synonym { + my ( $self, $arg ) = @_; + if( defined $arg ) { + push( @{$self->{synonyms}}, $arg ); + } +} + + +=head2 get_all_synonyms + + Args : none + Example : my @synonyms = @{ $db_entry->get_all_synonyms }; + Description: Get a list of synonyms known for this object. + Synonyms are lazy-loaded if required. + Returntype : listref of strings. May be empty. + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub get_all_synonyms { + + my $self = shift; + + # lazy-load synonyms if required + if (!$self->{synonyms} && $self->adaptor()) { + $self->{synonyms} = $self->adaptor()->fetch_all_synonyms($self->dbID()); + } + + return $self->{synonyms}; +} + + +=head2 get_all_dependents + + Args[1] : (optional) Bio::EnsEMBL::Gene, Transcript or Translation object + Example : my @dependents = @{ $db_entry->get_all_dependents }; + Description: Get a list of DBEntrys that are depenednet on the DBEntry. + if an ensembl gene transcript or translation is given then only + the ones on that object will be given + Returntype : listref of DBEntrys. May be empty. + Exceptions : none + Caller : general + Status : UnStable + +=cut + +sub get_all_dependents { + my $self = shift; + my $ensembl_object = shift; + + return $self->adaptor()->get_all_dependents($self->dbID(), $ensembl_object); +} + +=head2 get_all_masters + + Args[1] : (optional) Bio::EnsEMBL::Gene, Transcript or Translation object + Example : my @masters = @{ $db_entry->get_all_masters }; + Description: Get a list of DBEntrys that are the masters of the DBEntry. + if an ensembl gene transcript or translation is given then only + the ones on that object will be given. + Returntype : listref of DBEntrys. May be empty. + Exceptions : none + Caller : general + Status : UnStable + +=cut + +sub get_all_masters { + my $self = shift; + my $ensembl_object = shift; + + return $self->adaptor()->get_all_masters($self->dbID(), $ensembl_object); +} + + +=head2 flush_synonyms + + Args : none + Description: Remove all synonyms from this object. + Returntype : none + Exceptions : none + Caller : general + Status : Stable + +=cut + +sub flush_synonyms { + my $self = shift; + $self->{synonyms} = []; +} + + +=head2 status + + Arg [1] : (optional) String $arg - value to set + Description: Getter/setter for attribute 'status'. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + + +sub status{ + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{status} = $arg; + } + return $self->{status}; +} + +=head2 ensembl_object_type + + Arg [1] : (optional) String $arg - value to set + Description: Getter/setter for attribute ensembl_object_type. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + + +sub ensembl_object_type{ + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{ensembl_object_type} = $arg; + } + return $self->{ensembl_object_type}; +} + +=head2 ensembl_id + + Arg [1] : (optional) String $arg - value to set + Description: Getter/setter for attribute ensembl_id. + Returntype : String + Exceptions : none + Caller : general + Status : Stable + +=cut + + +sub ensembl_id{ + my ( $self, $arg ) = @_; + if( defined $arg ) { + $self->{ensembl_id} = $arg; + } + return $self->{ensembl_id}; +} + + + +=head1 DEPRECATED METHODS + +=cut + +=head2 get_synonyms + + DEPRECATED use get_all_synonyms instead + +=cut + +sub get_synonyms { + my $self = shift; + + deprecate("get_synonyms has been renamed get_all_synonyms."); + return $self->get_all_synonyms; +} + +1; +