diff --git a/modules/Bio/EnsEMBL/Utils/IO/GTFSerializer.pm b/modules/Bio/EnsEMBL/Utils/IO/GTFSerializer.pm index aabae221bf8fd5dd0714fe09326f15426a98dafc..ca0bd88299c14ba821c17c09c617edbe8e5298fa 100644 --- a/modules/Bio/EnsEMBL/Utils/IO/GTFSerializer.pm +++ b/modules/Bio/EnsEMBL/Utils/IO/GTFSerializer.pm @@ -389,11 +389,11 @@ sub _check_start_and_stop { # transcript could be annotated has having incomplete # CDS at either 5', 3' end or both - # my @attrib = @{$trans->get_all_Attributes('cds_start_NF')}; - # $has_start = scalar @attrib == 1 and $attrib[0]->value() == 1?0:1; - # @attrib = @{$trans->get_all_Attributes('cds_end_NF')}; - # $has_end = scalar @attrib == 1 and $attrib[0]->value() == 1?0:1; - # return (0, 0) unless $has_start and $has_end; + my @attrib = @{$trans->get_all_Attributes('cds_start_NF')}; + $has_start = (scalar @attrib == 1 and $attrib[0]->value() == 1)?0:1; + @attrib = @{$trans->get_all_Attributes('cds_end_NF')}; + $has_end = (scalar @attrib == 1 and $attrib[0]->value() == 1)?0:1; + return (0, 0) unless $has_start and $has_end; # # even if the transcript is not annotated with incomplete start/end @@ -402,19 +402,18 @@ sub _check_start_and_stop { # use translateable_seq (CDS) instead of spliced_seq (CDNA) which is # not padded for non-triplet issues # - # my $cds_seq = uc($trans->translateable_seq); - # my $startseq = substr($cds_seq, 0, 3); - # my $endseq = substr($cds_seq, -3); - - $has_start = $has_end = 1; - my $coding_start = $trans->cdna_coding_start; - my $coding_end = $trans->cdna_coding_end; - my $cdna_seq = uc($trans->spliced_seq); - my $startseq = substr($cdna_seq, $coding_start-1, 3); - my $endseq = substr($cdna_seq, $coding_end-3, 3); + # $has_start = $has_end = 1; + # my $coding_start = $trans->cdna_coding_start; + # my $coding_end = $trans->cdna_coding_end; + # my $cdna_seq = uc($trans->spliced_seq); + # my $startseq = substr($cdna_seq, $coding_start-1, 3); + # my $endseq = substr($cdna_seq, $coding_end-3, 3); + # + my $cds_seq = uc($trans->translateable_seq); + my $startseq = substr($cds_seq, 0, 3); + my $endseq = substr($cds_seq, -3); # reimplemented since there are alternatively valid codon tables - # $has_start = $has_end = 1; # $has_start = 0 if ($startseq ne "ATG"); # $has_end = 0 if ($endseq ne "TAG" && $endseq ne "TGA" && $endseq ne "TAA");