The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Bio::Align::Graphics - Graphic Rendering of Bio::Align::AlignI Objects

SYNOPSIS

use Bio::Align::Graphics;

#Get an AlignI object, usually by using Bio::AlignIO

my $file=shift @ARGV;
my $in=new Bio::AlignIO(-file=>$file, -format=>'clustalw');
my $aln=$in->next_aln();


#Create a new Graphics object
my $print_align = new Bio::Align::Graphics(align => $aln);

#Draw the alignment
$print_align->draw();

DESCRIPTION

Bio::Align::Graphics is a module designed to create image files out of Bio::Align::AlignI objects. An alignment may be manipulated with various formatting and highlighting options.

An example:

#!/usr/bin/perl -w

use Bio::AlignIO;
use Bio::Align::Graphics;
use strict;

#Get an alignment file
my $file = shift @ARGV;

#Create an AlignI object using AlignIO
my $in=new Bio::AlignIO(-file=>$file, -format=>'clustalw');

#Read the alignment
my $aln=$in->next_aln();

#Create some domains for highlighting
my @domain_start = ( 25 , 50, 80 );
my @domain_end = ( 40 , 60 , 100 );
my @domain_color = ( 'red' , 'cyan' , 'green' );

#Create Labels for the domains
my @dml = ("CARD", "Proline Rich", "Transmembrane");
my @dml_start = (25, 50, 80);
my @dml_end = (40, 60, 100);
my @dml_color = ("lightpink", "lightblue", "lightgreen");


#Create individual labels
my %labels = ( 145 => "Hep-c target");


my $print_align = new Bio::Align::Graphics( align => $aln,
				pad_bottom => 5,
				domain_start => \@domain_start,
				domain_end => \@domain_end,
				dm_color => \@domain_color,
				dm_labels => \@dml,
				dm_label_start => \@dml_start,
				dm_label_end => \@dml_end,
				dm_label_color => \@dml_color,
				labels => \%labels,
				out_format => "png");
				
$print_align->draw();

METHODS

This section describes the class and object methods for Bio::Align::Graphics.

Typically you will begin by creating a Bio::Align::Graphics object, passing it an alignment object created using Bio::AlignIO. The Bio::Align::Graphics->new() method has a number of configuration variables that allow you to control the appearance of the final image.

You will then call the draw() method to output the final image.

CONSTRUCTORS

new() is the constructor for Bio::Align::Graphics:

$print_align = Bio::Align::Graphics->new(@options)

The new() method creates a new graphics object. The options are a set of tag/value pairs as follows:

  Option         Value                                  Default
  ------         -----                                  -------

  align		 Bio::AlignI object                     None, must be 
						        supplied to draw
						        an alignment

  output	 Filename to print image to	        STDOUT

  out_format	 png, jpeg, gif, gd		        png

  font		 Size of font, ranging from 1 to 5      2
		 and equal to the standard GD fonts
		 ranging from gdTinyFont to 
		 gdGiantFont

  x_label	 Draws a scale numbering alignment      true
		 bases along top of image, every x
		 bases are numbered, where x is the
		 block_size option

  y_label	 Draws sequence ids of alignment        true
		 along left side of image

  bg_color	 Background color of the image	        white

  font_color	 Color of the font used for drawing     black
		 the alignment characters

  x_label_color  Color of the font used for drawing     red
		 the base scale characters

  y_label_color  Color of the font used for drawing     blue
		 the sequence id characters

  p_color	 Colors protein bases according to      false
		 a coloring scheme proposed by W.R.
		 Taylor(Protein Engineering, vol 10
		 no 7, 1997), only works with
		 protein alignments

  pad_top	 Additional whitespace characters       5
		 between top of image and x-label

  pad_bottom	 Additional whitespace characters       5
		 between bottom of image and
		 alignment

  pad_left	 Additional whitespace characters       5
		 between left side of image and 
		 y-label

  pad_right	 Additional whitespace characters       5
		 between right side of image and 
		 alignment

  x_label_space  Additional whitespace characters       1
		 between x_label and alignment

  y_label_space  Additional whitespace characters       1
		 between y_label and alignment

  reference	 Characters which are identical to      false
		 the reference sequence are replaced
		 with the match character

  reference_id	 Sequence id of the sequence to use     First sequence
		 as the reference			supplied in alignment

  match_char	 Character to replace identical bases   .
		 in aligned sequences

  block_size	 Number of bases to group together	10
		 when printing alignment, groups are
		 separated by whitespace

  block_space	 Amount of character whitespace to	2
		 separate groups of bases by

  labels	 A hash containing labels to be 	none
		 printed beneath the alignment, 
		 where the keys are the bases to
		 print the values at

  dm_start	 An array containing start bases	none
		 for highlighting of segments of
		 the alignment, paired with dm_end
		 option

  dm_end	 An array containing end bases		none
		 for highlighting of segments of
		 the alignment, paired with dm_start
		 options

  dm_color	 An array containing colors for	        silver
		 highlighting segments of bases
		 denoted by the coordinates
		 located in the dm_start and dm_end
		 options

  dml_start	 An array containing start bases	none
		 for addition of domain labels
		 underneath the alignment, paired
		 with dml_end

  dml_end	 An array containing end bases		none
		 for addition of domain labels
		 underneath the alignment, paired
		 with dml_start

  dml_color	 An array containing colors for 	silver
		 the domain labels denoted by the
		 coordinates located in the 
		 dml_start and dml_end options

  dm_labels	 An array containing labels to be	none
		 printed underneath specified
		 domains, each label should
		 correspond with the base position
		 located in the dml_start option
		 
  show_nonsynonymous  Boolean value to turn option	false
  		 on or off. If 0 (or undef), option
  		 is off. If 1 (or non-0), option is on.
  		 Only valid for nucleotide alignments.
  		 Output images are wider with this option on.

Note that all arrays and hashes must be passed by reference.

OBJECT METHODS

$draw_align->draw();

The draw() method draws the image with the options that were specified with new().

$draw_align->width();

Get the width of the image created with new(), in pixels.

$draw_align->height();

Get the height of the image created with new(), in pixels.

$draw_align->aln_length();

Get the length of the alignment submitted to new().

$draw_align->aln_format();

Get the format of the alignment submitted to new().

$draw_align->no_sequences();

Get the number of sequences in the alignment submitted to new().

AUTHORS AND CONTRIBUTORS

William McCaig, <wmccaig@gmail.com>

Mikhail Bekarev, <mbekarev@hunter.cuny.edu>

Yözen Hernández, <yzhernand@gmail.com>

Weigang Qiu (Corresponding Developer), <weigang@genectr.hunter.cuny.edu>

COPYRIGHT AND LICENSE

Copyright (C) 2006-2008 by William McCaig

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.3 or, at your option, any later version of Perl 5 you may have available.

SEE ALSO

Bio::Align::AlignI, Bio::AlignIO, GD, GD::Simple