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>
Yoezen Hernandez, <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