[Bioperl-l] Bio::Graphics::Panel->add_track problem

mql201 M.Q.Lewis at exeter.ac.uk
Wed Aug 4 16:25:08 EDT 2004


Hello

I want to print out a number of glyphs of different colours on the same track, 
but with this code there doesn't seem to be a way round having more than 1 
colour per track:

## start with an array of colours
#
@colours = qw(white red green blue black yellow ...);   # 190 colours in all

## specify new panel once, background white
#
$panel = Bio::Graphics::Panel->new(-length => 700,      # length of panel in 
nt
                                   -width  => 700,  # physical width of img
                                   -pad_top => 10,     # padding
                                   -pad_bottom => 10,
                                   -pad_left => 10,
                                   -pad_right => 10,
                                   -bgcolor => 'white',    # colour of panel
                                   -key_color => 'white',
                                   -key_style => 'bottom');

## the following code should create a 28 track panel (down)  with 6 glyphs on 
## each track (across), with each glyph a different colour got out of the 
array
## @colours.
# 
my($start) = 10;
my($end) = 60;
for($x = 0; $x <=28; $x++) {       # 28 tracks to make
  ## define glyph track
  #
  $track = $panel->add_track(-glyph => 'graded_segments',
                             -linewidth => 2,
                             -height => 8,
                             -fontcolor => '#1d4305',
                            # -bgcolor => 'some color',
                             -label  => 1,
                             -bump => 1,
                             -description => 1);

  ## but instead i want to use -bgcolor in the for loop below
  #
  for ($i = 0; $i <= 6; $i++) {
    my($feature) = Bio::SeqFeature::Generic->new(-display_name=>$key,
                                                 -score=>2000,
                                                 -start=>$start,
   ERROR, THIS SHOULD BE IN ADD_TRACK ABOVE ->   -bgcolor => shift(@colours),
   ALTHOUGH I WANT IT IN HERE               ->   -end=>$end);

    $track->add_feature($feature);
    $start += 90;
    $end += 90;
  }
$start = 10;
$end = 60;
}


As you can see, its a std way of adding tracks, and glyphs to tracks, except i 
can't work out how to add glyphs without them having the same colour as the 
glyphs on the same track because i'd have specified the colour of the glyphs 
on that track, rather than the colour of the individual glyph.

i've a feeling its a simple solution.  Anybody have any idea?

Many ta IA
Mark



More information about the Bioperl-l mailing list