[Bioperl-l] Graphics:Panel /SeqFeature::Generic

Lincoln Stein lstein at cshl.edu
Tue Nov 18 13:53:34 EST 2003


Hi Dan,

Try changing the "generic" glyph to "segments."  The first glyph doesn't know 
how to deal with subparts (such as HSPs), the second does.

Lincoln

On Monday 17 November 2003 05:06 am, Daniel Lang wrote:
> Hi,
> I want to generate overview graphics from BLAST reports, where the hits
> are sorted and colored (>1e-10 -->green, ...)according their evalues...
>
> So I thought, I could solve this using a callback function for the
> bgcolor and using the 'low_score' sort_order, but when applied to a
> BLAST report, it results in sorted but only red hits?
> I also tried introducing the evalues as additional tags like done with
> 'bits' or 'range', but when testing for this tag in the callback
> (has_tag) its not available?
> So I wander if the function is envoked for each hit in the while loop?
>
> Here the code sniplet:
>
> my $track = $panel->add_track(-glyph       => 'generic',
>                                  -label       => 1,
>                                  -connector   => 'dashed',
> 				-height      => 5,
>                                  -bgcolor     =>  sub {
> 						    my $feature = shift;
> 						    my $evalue = $feature->score;
> 						    if ($evalue < 1e-10) {return 'green';}
> 						    else {return 'red';}}
> 						    ,
> 				-fontcolor   => 'green',
>                                  -font2color  => 'red',
>                                  -sort_order  => 'low_score',
> 				-min_score => '1e-1000',
> 				-max_score => '10000',
>                                  -description => sub {
>                                    my $feature = shift;
>                                    return unless $feature->has_tag('bits');
>                                    my ($description) =
> $feature->each_tag_value('bits');
>                                    my $score = $feature->score;
>                                    my ($range) =
> $feature->each_tag_value('range');
> 				  "Score=$description bits, E-value=$score, $range";
>                                   });
>
>      while( my $hit = $result->next_hit ) {
> 	my $evalue = $hit->significance;
> 	my $feature = Bio::SeqFeature::Generic->new(-score   => $evalue,
> 						    -display_name => $hit->name,
> 						    -tag     => { 'bits' => $hit->bits,
> 								  'range' => "from ". $hit->start('query') . " to " .
> $hit->end('query'),
> 								  },
> 						    );
> 	while( my $hsp = $hit->next_hsp ) {
> 	   $feature->add_sub_SeqFeature($hsp,'EXPAND');
> 	 }
> 	$track->add_feature($feature);
>    }
>
> Thanks in advance,
> Daniel
>
> _______________________________________________
> Bioperl-l mailing list
> Bioperl-l at portal.open-bio.org
> http://portal.open-bio.org/mailman/listinfo/bioperl-l

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




More information about the Bioperl-l mailing list