[Bioperl-l] Bio::Graphics::Panel can't locate object method 'start'...

Lincoln Stein lstein at cshl.org
Fri Mar 14 14:06:08 EST 2003


You can either CVS update to the most recent version of bioperl, wait for the 
next release, which is coming in a week or so, or change this line:

   my $panel = Bio::Panel->new(
				     -start => 1,
  				      -end   => $seq->length,
 				      -key_style => 'between',
  				      -width     => 800,
  				      -pad_left  => 10,
 				      -pad_right => 10,
  				      );

Lincoln

On Thursday 13 March 2003 06:20 pm, Benjamin Berman wrote:
> Hey Lincoln,
>
> Sorry if you've already gone over this, but I looked through the
> bioperl-l mails and couldn't find an explanation.  I'm having problems
>
> running the example script listed in the "Panel" documentation:
> > use strict;
> >  use Bio::Graphics;
> >  use Bio::SeqIO;
> >
> >  my $file = shift                       or die "provide a sequence
> > file as the argument";
> >  my $io = Bio::SeqIO->new(-file=>$file) or die "couldn't create
> > Bio::SeqIO";
> >  my $seq = $io->next_seq                or die "couldn't find a
> > sequence in the file";
> >
> >  my @features = $seq->all_SeqFeatures;
> >
> >  # sort features by their primary tags
> >  my %sorted_features;
> >  for my $f (@features) {
> >    my $tag = $f->primary_tag;
> >    push @{$sorted_features{$tag}},$f;
> >  }
> >
> >  my $panel = Bio::Panel->new(
> >  				      -segment   => $seq,
> >  				      -key_style => 'between',
> >  				      -width     => 800,
> >  				      -pad_left  => 10,
> >  				      -pad_right => 10,
> >  				      );
> >  $panel->add_track($seq,
> >  		  -glyph => 'arrow',
> >  		  -bump => 0,
> >  		  -double=>1,
> >  		  -tick => 2);
> >
> >  $panel->add_track($seq,
> >  		  -glyph  => 'generic',
> >  		  -bgcolor => 'blue',
> >  		  -label  => 1,
> >  		 );
>
> Now I'm not having any problems with the call to Panel->new, as others
> have reported.  Instead, I am having a problem when $panel->add_track
> is called.  This creates a new Feature, using $seq as the segment; in
> Feature::new, Feature::add_segment($seq) is called.  The script dies
> within this call because it tries to call the function $seq->start.
>
> > Can't locate object method "start" via package "Bio::Seq::RichSeq" at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Feature.pm line 210, <DATA>
> > line 191.
>
> (line 210:   $self->{start}    = $self->{segments}[0]->start;)
>
>
> I printed out a stack trace of where it is when it dies...
>
> > Adding segment Bio::Seq::RichSeq=HASH(0x8693dd4) at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Feature.pm line 211
> >
> > Bio::Graphics::Feature::add_segment('Bio::Graphics::Feature=HASH(0x86a3
> > 7b4)','Bio::Seq::RichSeq=HASH(0x8693dd4)') called at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Feature.pm line 175
> >
> > Bio::Graphics::Feature::new('Bio::Graphics::Feature','-
> > segments','ARRAY(0x86a3748)','-start',1,'-stop',1027,'-
> > type','track',...) called at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Panel.pm line 303
> >
> > Bio::Graphics::Panel::_add_track('Bio::Graphics::Panel=HASH(0x86a1d30)'
> > ,0,'Bio::Seq::RichSeq=HASH(0x8693dd4)','-map','CODE(0x8691c4c)','-
> > stylesheet','undef','-options','HASH(0x82d8ef8)',...) called at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Panel.pm line 282
> >
> > Bio::Graphics::Panel::_do_add_track('Bio::Graphics::Panel=HASH(0x86a1d3
> > 0)',0,'Bio::Seq::RichSeq=HASH(0x8693dd4)','-glyph','arrow','-
> > bump',0,'-double',1,...) called at
> > /root/cvs_benb/bioperl-live/Bio/Graphics/Panel.pm line 210
> >
> > Bio::Graphics::Panel::add_track('Bio::Graphics::Panel=HASH(0x86a1d30)',
> > 'Bio::Seq::RichSeq=HASH(0x8693dd4)','-glyph','arrow','-bump',0,'-
> > double',1,'-tick',...) called at ./bio_graphics_test.pl line 38

-- 
========================================================================
Lincoln D. Stein                           Cold Spring Harbor Laboratory
lstein at cshl.org			                  Cold Spring Harbor, NY
========================================================================




More information about the Bioperl-l mailing list