#!/usr/bin/perl -w use strict; my $previous = ''; my $exon = 1; while (<>) { chomp; my(@gtf) = split; chop($gtf[8] = join ":", @gtf[8,9]); chop($gtf[10] = join ":", @gtf[10,11]); chop($gtf[12] = join ":", @gtf[12,13]); # Restart exon# for different gene names if ( $gtf[9] ne $previous ) { $gtf[2] = 'exon1'; } elsif ( $gtf[9] eq $previous ) { $exon =~ s/(\d+)/$1+1/e; } $previous = $gtf[9]; $exon = $gtf[2]; $gtf[8] = join "_", @gtf[8,10,12,2]; my $bed = join "\t", @gtf[0,3,4,8]; print "$bed\n"; }