Author image Endre Sebestyen
and 1 contributors


Bio::DOOP::Graphics::Feature - Graphical representation of the features


Version 0.18



This object represents a picture that contains all the sequences and sequence features of a subset. The module is fast enough to use it in your CGI scripts. You can also use it to visualize the subset.


Tibor Nagy, Godollo, Hungary



Creates a new picture. Later you can add your own graphical elements to it.

Arguments: Bio::DOOP::DBSQL object and subset primary id.

Return type: Bio::DOOP::Graphics::Feature object

  $picture = Bio::DOOP::Graphics::Feature->create($db,"1234");


Add an RGB color to the specified element.

The available elements are the following : background, label, strip, utr, motif, tss, frame, fuzzres.



Sets all 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, the results will be strange.


Draws the scale on the picture.


Draws scale lines through the whole image background.


Draws a specified sequence on the picture. This is internal code, do not use it directly.


Draws all sequences of the subset. The first one is the reference species.


Returns the png image. Use this when you finish the work and would like to see the result.

  open IMAGE,">picture.png";
  binmode IMAGE;
  print IMAGE $image->get_png;
  close IMAGE;


Returns the drawn image pointer. Useful for adding your own GD methods for unique picture manipulation.


Returns a hash of arrays of hash of arrays reference that contains the image 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 somewhat difficult, but if you are familiar with references and nested data structures, you will understand it.


Returns only the arrayref of motif hashes.


With this, you can get a motif id, if you specify the coordinates of a pixel.

  $motif_id = $image->get_motif_id_by_coord(100,200);


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.



You can draw the fuzznuc result on the picture 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.