diff --git a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm index 19e12072e652d44e283609ea2a83fdea74ee795e..2d390514b70cdbf18f38198a8cfc58b359b7d3b8 100644 --- a/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/GeneAdaptor.pm @@ -837,12 +837,12 @@ sub fetch_all_by_external_name { my @ids = $entryAdaptor->list_gene_ids_by_extids($external_name, $external_db_name, $override); - my %genes_by_dbIDs = - map { $_->dbID(), $_ } @{$self->fetch_all_by_dbID_list(\@ids)}; + my %genes_by_dbIDs = map { $_->dbID(), $_ } @{$self->fetch_all_by_dbID_list(\@ids)}; - my @result = map { $genes_by_dbIDs{$_} } @ids; - - return \@result; + my @features = map { $genes_by_dbIDs{$_} } @ids; + my @reference = grep { $_->slice()->is_reference() } @features; + my @non_reference = grep { ! $_->slice()->is_reference() } @features; + return [ @reference, @non_reference ]; } =head2 fetch_all_by_description diff --git a/modules/Bio/EnsEMBL/DBSQL/TranscriptAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/TranscriptAdaptor.pm index 933d491abbc7d05c9f6beec9c6e5cfd14e099f3d..7c459cbfd509a8923a443718208c0e64cc4a4c8d 100644 --- a/modules/Bio/EnsEMBL/DBSQL/TranscriptAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/TranscriptAdaptor.pm @@ -519,7 +519,10 @@ sub fetch_all_by_external_name { $entryAdaptor->list_transcript_ids_by_extids( $external_name, $external_db_name, $override ); - return $self->fetch_all_by_dbID_list( \@ids ); + my @features = @{ $self->fetch_all_by_dbID_list( \@ids ) }; + my @reference = grep { $_->slice()->is_reference() } @features; + my @non_reference = grep { ! $_->slice()->is_reference() } @features; + return [ @reference, @non_reference ]; } =head2 fetch_all_by_GOTerm diff --git a/modules/Bio/EnsEMBL/DBSQL/TranslationAdaptor.pm b/modules/Bio/EnsEMBL/DBSQL/TranslationAdaptor.pm index 0de5dfafab767022c5eb9416ff2f3c4ff29a3265..9588fbd43db8e91e7c627ba8b2c011395f059c24 100644 --- a/modules/Bio/EnsEMBL/DBSQL/TranslationAdaptor.pm +++ b/modules/Bio/EnsEMBL/DBSQL/TranslationAdaptor.pm @@ -313,16 +313,23 @@ sub fetch_all_by_external_name { my $transcript_adaptor = $self->db()->get_TranscriptAdaptor(); - my @out; + my @reference; + my @non_reference; foreach my $id (@ids) { my $transcript = $transcript_adaptor->fetch_by_translation_id($id); if ( defined($transcript) ) { - push @out, $self->fetch_by_Transcript($transcript); + my $translation = $self->fetch_by_Transcript($transcript); + if($transcript->slice()->is_reference()) { + push(@reference, $translation); + } + else { + push(@non_reference, $translation); + } } } - return \@out; + return [@reference, @non_reference]; } =head2 fetch_all_by_GOTerm