[Bioperl-l] addition of GD::graphic object to Bio::Graphics

sergei ryazansky dr.hogart at gmail.com
Tue Apr 29 03:56:24 EDT 2008


Thank you very much! It is exactly that I was looking for.

On Tue, 29 Apr 2008 01:15:16 +0400, Smithies, Russell  
<Russell.Smithies at agresearch.co.nz> wrote:

> I thought it was a bit of a hack but I guess if someone else is doing it
> too, it can't be all bad  :-)
>
> It looks like you can combine your drawing methods like this:
> (I'm sure Lincoln will tell us this is bad but it seems to work ok)
> ------------------------------------------------------------------------
> -------------
>
> #!perl -w
> use GD::Graph::lines;
> use GD::Graph::colour;
> use GD::Graph::Data;
>
> use Bio::Graphics;
> use Bio::SeqFeature::Generic;
>
> # create and draw on a graphics panel
> my $panel = Bio::Graphics::Panel->new(
>                                       -length => 500,
>                                       -width  => 500
>                                      );
> my $track = $panel->add_track(
>                               -glyph => 'generic',
>                               -label => 1
>                              );
>
> # create and add a few features
> for($i = 100; $i < 500; $i+= 100){
>   my $feature = Bio::SeqFeature::Generic->new(
>                                               -display_name => "feature:
> $i",
>                                               -score        => $i,
>                                               -start        => $i,
>                                               -end          => $i + 100
>                                              );
>   $track->add_feature($feature);
> }
>
>
> # create and draw the graph
> my @data = (
>     ["1st","2nd","3rd","4th","5th","6th","7th", "8th", "9th"],
>     [    1,    2,    5,    6,    3,  1.5,    1,     3,     4],
>     [ sort { $a <=> $b } (1, 2, 5, 6, 3, 1.5, 1, 3, 4) ]
> );
> my $graph = GD::Graph::lines->new(500, 300);
>
> $graph->set(
>       x_label           => 'X Label',
>       y_label           => 'Y label',
>       title             => 'Some simple graph',
>       y_max_value       => 8,
>       y_tick_number     => 8,
>       y_label_skip      => 2
> ) or die $graph->error;
>
> $graph->set( dclrs => [ qw( green blue black red pink) ] );
>
> my $gd = $graph->plot(\@data) or die $graph->error;
>
> # combine the two images
> my $combined = $panel->gd($gd);
>
> open(IMG, '>file.png') or die $!;
> binmode IMG;
> print IMG $combined->png;
>
> ------------------------------------------------------------------------
> ------------------
>
>> -----Original Message-----
>> From: Chris Fields [mailto:cjfields at uiuc.edu]
>> Sent: Monday, 28 April 2008 9:54 a.m.
>> To: Smithies, Russell
>> Cc: sergei ryazansky; bioperl-l at bioperl.org
>> Subject: Re: [Bioperl-l] addition of GD::graphic object to
> Bio::Graphics
>>
>> I think this is how some of the synteny mapping is done using
>> SynBrowse (the trapezoids connecting syntenous genes on different
>> tracks).
>>
>> http://www.gmod.org/wiki/index.php/SynView
>>
>> chris
>>
>> On Apr 27, 2008, at 4:27 PM, Smithies, Russell wrote:
>>
>> > You can get the GD object back from the Bio::Graphics::Panel  then
>> > draw
>> > on it using GD methods
>> >
>> > Eg:
>> >
>> > #create a BioPerl panel
>> > my $panel = Bio::Graphics::Panel->new(
>> >                              			-length   => 600
>> >                              			-width    =>
> 800,
>> > 					-bgcolor  => 'white'
>> > 					);
>> > # add your features
>> > my $feature = Bio::SeqFeature::Generic->new( -start => 1,-end   =>
>> > 200,);
>> > $panel->add_track($feature, glyph   =>   'segments',
>> > 					-label   =>   0,
>> > 					-height  =>   30,
>> > 					-bgcolor  =>  'red',
>> > 					-fgcolor  => 'red'
>> > 					 );
>> >
>> > # grab the GD thingy
>> > my $gd = $panel->gd;
>> >
>> > #create a color - not sure if there's a better way?
>> > $black = $gd->colorAllocate(0,0,0);
>> >
>> > #draw on your GD thingy
>> > $gd->line(10,10,$panel->width -10,10,$black);
>> > $gd->string(gdSmallFont,20,10,'test' ,'$black);
>> >
>> > # print it as normal
>> > print $panel->png;
>> >
>> >
>> >
>> >
>> >> -----Original Message-----
>> >> From: bioperl-l-bounces at lists.open-bio.org
>> > [mailto:bioperl-l-bounces at lists.open-
>> >> bio.org] On Behalf Of sergei ryazansky
>> >> Sent: Monday, 28 April 2008 2:05 a.m.
>> >> To: bioperl-l at bioperl.org
>> >> Subject: [Bioperl-l] addition of GD::graphic object to
> Bio::Graphics
>> >>
>> >> Hi all,
>> >>
>> >> is it possible to add a GD::graphic object (chart) to Bio::Graphics
>> > panel
>> >> to obtain a file with image of both the chart and bioseq object?
>> >>
>> >> _______________________________________________
>> >> Bioperl-l mailing list
>> >> Bioperl-l at lists.open-bio.org
>> >> http://lists.open-bio.org/mailman/listinfo/bioperl-l
>> > =
>> >
>> =============================================================
>> =========
>> > Attention: The information contained in this message and/or
>> > attachments
>> > from AgResearch Limited is intended only for the persons or entities
>> > to which it is addressed and may contain confidential and/or
>> > privileged
>> > material. Any review, retransmission, dissemination or other use of,
>> > or
>> > taking of any action in reliance upon, this information by persons
> or
>> > entities other than the intended recipients is prohibited by
>> > AgResearch
>> > Limited. If you have received this message in error, please notify
> the
>> > sender immediately.
>> > =
>> >
>> =============================================================
>> =========
>> >
>> > _______________________________________________
>> > Bioperl-l mailing list
>> > Bioperl-l at lists.open-bio.org
>> > http://lists.open-bio.org/mailman/listinfo/bioperl-l
>>
>> Christopher Fields
>> Postdoctoral Researcher
>> Lab of Dr. Robert Switzer
>> Dept of Biochemistry
>> University of Illinois Urbana-Champaign
>>
>>
>
> =======================================================================
> Attention: The information contained in this message and/or attachments
> from AgResearch Limited is intended only for the persons or entities
> to which it is addressed and may contain confidential and/or privileged
> material. Any review, retransmission, dissemination or other use of, or
> taking of any action in reliance upon, this information by persons or
> entities other than the intended recipients is prohibited by AgResearch
> Limited. If you have received this message in error, please notify the
> sender immediately.
> =======================================================================



-- 
Отправлено M2, революционной почтовой программой Opera:  
http://www.opera.com/mail/mail/



More information about the Bioperl-l mailing list