3 Jul 18:22
[Bio::Graphics::Panel] code reference cannot pass to -link, why?
Xianjun Dong <Xianjun.Dong <at> bccs.uib.no>
2009-07-03 16:22:01 GMT
2009-07-03 16:22:01 GMT
Hi, I have a problem while using the -link in Bio::Graphics (version 1.96): As the POD of Bio::Graphics described (http://search.cpan.org/~lds/Bio-Graphics-1.96/lib/Bio/Graphics/Panel.pm#Creating_Imagemaps), link format like: -link => 'http://www.google.com/search?q=$description' works well in my code, but the format like -link => sub { my ($feature,$panel) = @_; my $type = $feature->primary_tag; my $name = $feature->display_name; if ($primary_tag eq 'clone') { return "http://www.google.com/search?q=$name"; } else { return "http://www.yahoo.com/search?p=$name"; } does not output image map as expected. Here I attached a simple code as example for anyone who is willing to test for me: #!/usr/bin/perl use strict; use Bio::Graphics; use Bio::Graphics::Feature; my $ftr= 'Bio::Graphics::Feature'; # processed_transcript my $trans1 = $ftr->new(-start=>50,-end=>10,-display_name=>'ZK154.1',-type=>'UTR'); my $trans2 = $ftr->new(-start=>100,-end=>50,-display_name=>'ZK154.2',-type=>'CDS'); my $trans3 = $ftr->new(-start=>350,-end=>225,-display_name=>'ZK154.3',-type=>'CDS', -source=>'a'); my $trans4 = $ftr->new(-start=>700,-end=>650,-display_name=>'ZK154.4',-type=>'UTR'); my @trans = ($trans1,$trans2,$trans3,$trans4); my $panel= Bio::Graphics::Panel->new(-start =>0,-length=>1050); $panel->add_track(\@trans, -glyph => 'transcript2', # This works well! #-link => 'http://www.google.com/search?q=$name', # while, the following code does not work as expected. -link => sub { my ($feature,$panel) = @_; my $type = $feature->primary_tag; my $name = $feature->display_name; if ($type eq 'CDS') { return "http://www.google.com/search?q=$name"; } else { return "http://www.yahoo.com/search?p=$name"; } } ); my $map = $panel->create_web_map("mapname"); print $map; $panel->finished(); In my test (Bioperl 1.6.0), its output is: <map name="mapname" id="mapname"> <area shape="rect" coords="11,0,58,7" href="http://www.yahoo.com/search?p=" /> <area shape="rect" coords="57,10,115,17" href="http://www.yahoo.com/search?p=" /> <area shape="rect" coords="257,0,401,7" href="http://www.yahoo.com/search?p=" /> <area shape="rect" coords="743,0,801,7" href="http://www.yahoo.com/search?p=" /> </map> It seems $feature->primary_tag returns 'track' (I don't know where this come from...), but not the type of features. Anyone has clue for this problem? Thanks -- -- ========================================== Xianjun Dong PhD student, Lenhard group Computational Biology Unit Bergen Center for Computational Science University of Bergen Hoyteknologisenteret, Thormohlensgate 55 N-5008 Bergen, Norway E-mail: xianjun.dong <at> bccs.uib.no Tel.: +47 555 84022 Fax : +47 555 84295 ==========================================
RSS Feed