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