my ($self, $input) = @_;
$self->throw("one argument needed") unless($input and defined($input));
$self->throw("a Bio::Tools::Prediction::Gene object needed")
unless(ref($input) && $input->isa('Bio::Tools::Prediction::Gene'));
my @exons = sort {$a->start <=> $b->start} $input->exons;
# Not sure on the correctivity of phase calculation.
my $previous_end_phase = -1;
foreach(@exons){
my $length = $_->length;
my $frame = $_->frame;
my $phase = ($previous_end_phase+1) %3;
my $end_phase = ($length-$frame) %1;
$previous_end_phase = $end_phase;
$_->add_tag_value("phase", $phase);
$_->add_tag_value("end_phase", $end_phase);
}
my @ens_exons = @{$self->{_predictionExonConverter}->convert(\@exons)};
$output->add_Exon($_) foreach(@ens_exons);
return $output;
}