NAME
Bio::DOOP::Graphics::Feature - graphical representation of the features.
SYNOPSIS
VERSION
Version 0.17
DESCRIPTION
This object represents a picture that contains all the sequence features of a subset.
The module is quick enough to use it in your CGI scripts. You can also use it to visualize
the subset.
AUTHOR
Tibor Nagy, Godollo, Hungary
METHODS
create
$pic = Bio::DOOP::Graphics::Feature->create($db,"1234");
Create a new picture. Later you can add your own graphical elements to it.
Arguments :
1. Bio::DOOP::DBSQL object
2. subset primary id
Return type :
Bio::DOOP::Graphics::Feature object
add_color
Add an RGB color to the specified element.
$image->add_color("background",200,200,200);
$image->set_colors;
The available elements are the following : background, label, strip, utr, motif, tss, frame, fuzzres.
set_colors
Set all the colors. Allocate colors previously with add_color. Use this method only ONCE after you set
all the colors. If you use it more than once, results will be strange.
add_scale
Draws the scale on the picture.
add_bck_lines
Draws scale lines through the whole image background.
add_seq
Draws a specified sequence on the picture. This is internal code, so do not use it directly.
add_all_seq
Draws all sequences of the subset. The first one is the reference species.
get_png
open IMAGE,">picture.png";
binmode IMAGE;
print IMAGE $image->get_png;
close IMAGE;
Returns the png image. Use this when you finish the work and would like to see the result.
get_image
Returns the drawn image pointer. Useful for adding your own GD methods for unique picture manipulation.
get_map
Returns a hash of arrays of hash of arrays reference that contains the map information.
Here is a real world example of how to handle this method :
use Bio::DOOP::DOOP;
$db = Bio::DOOP::DBSQL->connect($user,$passwd,"doop-plant-1_5","localhost");
$cluster = Bio::DOOP::Cluster->new($db,'81001110','500');
$image = Bio::DOOP::Graphics::Feature->create($db,$cluster);
for $motif (@{$image->get_map->{motif}}){
for $motif_id (keys %{$motif}){
@coords = @{$$motif{$motif_id}};
# Print out the motif primary id and the four coordinates in the picture
# id x1 y1 x2 y2
print "$motif_id $coords[0] $coords[1] $coords[2] $coords[3]\n";
}
}
It is a somewhat difficult, but if you are familiar with references and nested data structures, you
will understand it.
get_motif_map
Returns only the arrayref of motif hashes.
get_motif_id_by_coord
$motif_id = $image->get_motif_id_by_coord(100,200);
Maybe this is the most useful method. You can get a motif id, if you specify the coordinates of a pixel.
Return type :
string
draw_motif_frame
$image->draw_motif_frame($motifid);
This method draws a frame around a given motif.
Arguments :
motif primary id
Return type :
0 if success, -1 if the given motif id is not in the picture.
draw_fuzz_result
$image->draw_fuzz_result(357,20,70);
You can draw a fuzznuc result with this method.
Arguments :
sequence primary id, start position, end position
To set drawing color, you can use the setcolor("fuzzres",$r,$g,$b) method.
The method shows the orientation. The arrow always points to the start position.
Return value :
0 if success, -1 if the given sequence id can't be found.