#!/usr/bin/perl

use strict;
use lib "$ENV{HOME}/lib";

use Bio::Graphics;
use Bio::Graphics::Feature;
my $ftr= 'Bio::Graphics::Feature';

# processed_transcript
my $trans1 = $ftr->new(-start=>50,-end=>10,-name=>'ZK154.1',-type=>"3'-UTR");
my $trans2 = $ftr->new(-start=>100,-end=>50,-name=>'ZK154.2',-type=>'CDS');
my $trans3 = $ftr->new(-start=>350,-end=>225,-name=>'ZK154.3',-type=>'CDS', -source=>'a');
my $trans4 = $ftr->new(-start=>650,-end=>500,-name=>'ZK154.3',-type=>'CDS', -source=>'a');
my $trans5 = $ftr->new(-start=>700,-end=>650,-name=>'ZK154.3',-type=>"5'-UTR");
my $trans  = $ftr->new(-segments=>[$trans1,$trans2,$trans3,$trans4,$trans5]);

my $panel= Bio::Graphics::Panel->new(-width=>1200,
                                           -length=>1050,
                                           -start =>0,
#                                           -pad_left=>12,
#                                           -pad_right=>12,
                                           -postgrid=>\&gap_it);

# the following track works as I expected in bioperl 1.2.3, but not in 1.5 and 1.6
#$panel->add_track([$trans41,$trans31],
#          -glyph   => 'background',
#                  -block_bgcolor => sub{return (shift->source eq 'a')?'#cccccc':'#fffc22'},
#                  );

$panel->add_track($ftr->new(-start=>0,-end=>1000),
                -glyph=>'arrow',
                -double=>1,
                -tick=>2);

$panel->add_track($trans,
                -glyph   => 'transcript2', # 'transcript2', #process_5utr',
                -fgcolor => 'darkred',
                -bgcolor => 'darkred',
                -title => '$source',
                -link => 'http://www.ensembl.org/Homo_sapiens/transview?transcript=$name',  #EnsEMBL
                );
print $panel->png;

exit();

sub gap_it {
   my $gd    = shift;
   my $panel = shift;
   my ($gap_start,$gap_end) = $panel->location2pixel(500,600);
   my $top                  = $panel->top;
   my $bottom               = $gd->height, #panel->bottom;
   my $gray                 = $panel->translate_color('red');
   $gd->filledRectangle($gap_start,$top,$gap_end,$bottom,$gray);
}

