Ewan Birney > bioperl-gui-0.7 > Bio::Tk::HitDisplay

Download:
bioperl-gui-0.7.tar.gz

Annotate this POD

CPAN RT

Open  0
Report a bug
Source  

NAME ^

Bio::Tk::HitDisplay - Frame-based widget for displaying Fasta or Blast hits/HSPs with optional text annotation

SYNOPSIS ^

 use Bio::Tk::HitDisplay;
 ...
 $hds = $parent->HitDisplay(?options?);

DESCRIPTION ^

HitDisplay is a Frame-based widget which contains a Canvas. When provided with a list of data structures, each representing a hit of a query sequence to a database, it draws:

The coordinates of the hits/HSPs on the subject sequence (i.e. the sequence in the database) are indicated below the ends of each line.

The HitDisplay delegates all standard options to the Canvas contained within it. The non-standard options for HitDisplay are:

-hitdata => \@hitdata

The structure of each element of this list is quite complex. They are normally generated from object(s) representing Blast or Fasta hits e.g.

 Bio::PSU::IO::Blast::Hit
 Bio::PSU::IO::Fasta::Hit

by their respective adapters

 Bio::PSU::IO::Blast::HitAdapter
 Bio::PSU::IO::Fasta::HitAdapter

This is normally hidden, unless you want to go and look.

Each element is a reference to a hash containing the following keys and values:

          { q_id     => 'query id',
            s_id     => 'subject id',
            expect   => 'expect value',
            score    => 'percentage identity',
            overlap  => 'length of hit',
            q_len    => 'query length',
            s_len    => 'subject length',
            data     => \@data,
            text     => "Some text",
            callback => $callback }

@data is a list of references to lists, each of which contains the coordinates of a single Fasta hit or Blast HSP on both the query and subject sequences. Each innermost list contains 4 values; the start and end coordinates on the query sequence (indices 0 and 1) and the start and end coordinates on the subject sequence (indices 2 and 3). A Blast hit with 3 HSPs will look like this:

          [ [ q_start1, q_end1, s_start1, s_end1 ],
            [ q_start2, q_end2, s_start2, s_end2 ],
            [ q_start3, q_end3, s_start3, s_end3 ] ]

The text field may contain any text which should be associated with that hit e.g. a more detailed account of the result or of the subject sequence. The display of this text is bound to a right mouse button click on the subject id in the canvas window. The text will appear just below the hit with one click and a subsequent click will hide it again.

The callback is a code reference which, if defined, will be bound to a left mouse button click on the subject id in the canvas window.

-hitcolours => \%colourhash

The hits or HSPs will be colour-coded according to percentage identity according to the key->value pairs in the colourhash. The default values are:

          { 90 => 'red',
            80 => 'orange',
            60 => 'gold',
            40 => 'yellow' }

This indicates that hits where the query is >= 90% identical to the subject will be red, >= 80% will be orange etc. The hash supplied to -hitcolours will override the defaults.

-interval => integer >= 10

This defines the vertical spacing between hit lines on the canvas. The minimum (and default) value is 10.

Mouse bindings provided:

Possible improvements:

METHODS ^

Interaction with this widget should generally be by means of the standard Perl/Tk options. Internal methods are documented below.

AUTHOR ^

Keith James (kdj@sanger.ac.uk)

ACKNOWLEDGEMENTS ^

See Bio::PSU.pod

COPYRIGHT ^

Copyright (C) 2000 Keith James. All Rights Reserved.

DISCLAIMER ^

This module is provided "as is" without warranty of any kind. It may redistributed under the same conditions as Perl itself.

Populate

 Title   : Populate
 Usage   : N/A
 Function: Standard composite Frame-based widget setup.
         : See 'man Tk::composite' for details
 Returns : Nothing
 Args    : Hash reference

draw_align

 Title   : draw_align
 Usage   : N/A
 Function: Draws hit text, line and coords for the hits
 Returns : Nothing
 Args    : Canvas, hitdata hash reference, left margin for text,
         : x coord for lines, y coord for lines, interval between
         : sets of lines (representing 1 Fasta hit or 1+ Blast
         : HSPs), hitcolours hash reference

h_line

 Title   : h_line
 Usage   : N/A
 Function: Draws a single hit/HSP line with the subject coords
         : below it
 Returns : Nothing
 Args    : Canvas, hit hash reference, x coord for line,
         : y coord for line, line width, line colour

draw_scale

 Title   : draw_scale
 Usage   : N/A
 Function: Draws scale alongside line representing query
         : sequence
 Returns : Nothing
 Args    : Canvas, hit hash reference, left margin for text
         : x coord for line, y coord for line

deannotate_hit

 Title   : deannotate_hit
 Usage   : N/A
 Function: Reverses the effect of annotate_hit
 Returns : Nothing
 Args    : Canvas, text item (subject id), text to be inserted
         : in gap, interval between hits

annotate_hit

 Title   : annotate_hit
 Usage   : N/A
 Function: Displays hit annotation below a hit line by shuffling
         : all canvas elements down the canvas and placing the
         : annotation text in the gap
 Returns : Nothing
Args    : Canvas, text item (subject id), text to be inserted
         : in gap, interval between hits