[Bioperl-l] Graphics:Panel /SeqFeature::Generic
Daniel Lang
Daniel.Lang at biologie.uni-freiburg.de
Mon Nov 24 07:25:12 EST 2003
Hi Lincoln,
Thanks for your help, but this didn´t improve the situation:(
I know now for sure, that the $feature->score is not the evalue, that is
set in the while loop, but the normal score!!
Additionally, I tried again introducing it as an additional tag, but
this tag isn´t available in the callback with e.g. get_tag_values('evalue').
I´m using it in a mod_perl Handler, could this be part of the problem?
Thanks in advance,
Daniel
Lincoln Stein wrote:
> 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
>
>
More information about the Bioperl-l
mailing list