From 9a49aa067653a1ea6e22e8e876d01aec63e21e10 Mon Sep 17 00:00:00 2001 From: Alistair Rust <rust@sanger.ac.uk> Date: Tue, 17 Dec 2002 17:51:52 +0000 Subject: [PATCH] Access to relevant_xref_id stuff. --- modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm | 48 +++++++++++++++++++++++- modules/Bio/EnsEMBL/Gene.pm | 30 +++++++++++++++ 2 files changed, 76 insertions(+), 2 deletions(-) diff --git a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm index f2075b0989..944d5a3761 100644 --- a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm @@ -711,9 +711,17 @@ sub store { $type = $gene->type; } + my $xref_id = 0; +# if (defined ($gene->relevant_xref)) { +# $xref_id = $gene->relevant_xref; +# } +# else { +# $xref_id = 0; +# } + my $sth2 = $self->prepare("INSERT INTO gene(type, analysis_id, - transcript_count) - VALUES('$type', $analysisId, $trans_count)" ); + transcript_count, relevant_xref_id) + VALUES('$type', $analysisId, $trans_count, $xref_id)" ); $sth2->execute(); @@ -941,6 +949,7 @@ sub get_external_name { return $xref; } + =head2 get_external_dbname Arg [1] : int $dbID @@ -982,6 +991,41 @@ sub get_external_dbname { } +=head2 get_relevant_xref_id + + Arg [1] : int $dbID + the database identifier of the gene for which the name of + external db from which its external name is derived. + Example : $external_dbname = $gene_adaptor->get_relevant_xref_id(42); + Description: Retrieves the relevant_xref_id for a gene. + Returntype : int + Exceptions : thrown if $dbId arg is not defined + Caller : general + +=cut + +sub get_relevant_xref_id { + my ($self, $dbID) = @_; + + if( !defined $dbID ) { + $self->throw("Must call with a dbID"); + } + + my $sth = $self->prepare("SELECT relevant_xref_id + FROM gene + WHERE gene_id = ? + "); + $sth->execute($dbID); + + my ($xref_id) = $sth->fetchrow_array(); + if( !defined $xref_id ) { + return undef; + } + + return $xref_id; +} + + 1; __END__ diff --git a/modules/Bio/EnsEMBL/Gene.pm b/modules/Bio/EnsEMBL/Gene.pm index 8f3e1e55a6..89dea7b25b 100755 --- a/modules/Bio/EnsEMBL/Gene.pm +++ b/modules/Bio/EnsEMBL/Gene.pm @@ -914,4 +914,34 @@ sub species { } +=head2 relevant_xref + + Arg [1] : int $relevant_xref_id + Example : $gene->relevant_xref(42); + Description: get/set/lazy_loaded relevant_xref_id for this gene + Returntype : int + Exceptions : none + Caller : general + +=cut + +sub relevant_xref{ + + my ($self,$value) = @_; + + if( defined $value ) { + $self->{'relevant_xref'} = $value; + return; + } + + if( exists $self->{'relevant_xref'} ) { + return $self->{'relevant_xref'}; + } + + $self->{'relevant_xref'} = $self->adaptor->get_relevant_xref_id($self->dbID); + + return $self->{'relevant_xref'}; +} + + 1; -- GitLab