1#!/usr/bin/env perl 2 3use strict; 4use warnings; 5use FindBin; 6use lib ("/usr/local/lib/perl5/site_perl/transdecoder"); 7use Gene_obj; 8use GFF3_utils2; 9use Carp; 10use Nuc_translator; 11use File::Basename; 12 13my $usage = "\n\nusage: $0 gff3_file\n\n"; 14 15my $gff3_file = $ARGV[0] or die $usage; 16 17my $gene_obj_indexer_href = {}; 18 19## associate gene identifiers with contig id's. 20my $contig_to_gene_list_href = &GFF3_utils2::index_GFF3_gene_objs($gff3_file, $gene_obj_indexer_href); 21 22print "track name=\'" . basename($gff3_file) . "\'\n"; 23 24foreach my $asmbl_id (sort keys %$contig_to_gene_list_href) { 25 26 my @gene_ids = @{$contig_to_gene_list_href->{$asmbl_id}}; 27 28 foreach my $gene_id (@gene_ids) { 29 30 my $gene_obj_ref = $gene_obj_indexer_href->{$gene_id}; 31 32 foreach my $gene ($gene_obj_ref, $gene_obj_ref->get_additional_isoforms()) { 33 34 my $bed = $gene->to_BED_format(); 35 36 print $bed; 37 } 38 } 39} 40 41 42exit(0); 43 44