diff --git a/modules/Bio/EnsEMBL/Utils/TranscriptAlleles.pm b/modules/Bio/EnsEMBL/Utils/TranscriptAlleles.pm index bb74845580ee6bc18e525944bd87a8c77d05e04b..91ab625ff2fff2933990e3c4cc45db875a736073 100644 --- a/modules/Bio/EnsEMBL/Utils/TranscriptAlleles.pm +++ b/modules/Bio/EnsEMBL/Utils/TranscriptAlleles.pm @@ -42,11 +42,12 @@ use Bio::EnsEMBL::Utils::Exception qw(throw warning); use Bio::EnsEMBL::Variation::ConsequenceType; use vars qw(@ISA @EXPORT_OK); +use Data::Dumper; + @ISA = qw(Exporter); @EXPORT_OK = qw(get_all_ConsequenceType type_variation); -use Data::Dumper; =head2 get_all_ConsequenceType @@ -75,7 +76,7 @@ sub get_all_ConsequenceType { throw('Bio::EnsEMBL::Transcript argument is required.'); } - if(!ref($alleles) || (ref($alleles) ne 'ARRAY') { + if(!ref($alleles) || (ref($alleles) ne 'ARRAY')) { throw('Reference to a list of Bio::EnsEMBL::Variation::AlleleFeature objects is required'); } @@ -185,14 +186,16 @@ sub type_variation { return []; } - my @features = $tr->fetch_all_regulatory_features(); + my @features = @{$tr->fetch_all_regulatory_features()}; #regulatory_features and consequence_type feature are all in genomic coordinates, - #so just to check whether they overlap with each other or not - foreach my $feature (@features) { - if ($var->end >= $feature->start and $var->start <= $feature->end) { - $var->regulatory_region('REGULATORY_REGION'); - last; + #so just to check whether they overlap with each other or not also in same strand + if (@features) { + foreach my $feature (@features) { + if ($var->end >= $feature->start and $var->start <= $feature->end and $var->strand == $feature->strand) { + $var->regulatory_region('REGULATORY_REGION'); + last; + } } }