NAME
Bio::Graphics::Glyph::ternary_plot - Draw ternary plot data
SYNOPSIS
#!/usr/bin/perl
use
strict;
use
warnings;
use
Bio::Graphics;
my
$segment
= Bio::Graphics::Feature->new(
-start
=>1,
-end
=>700);
my
$snp1
= Bio::Graphics::Feature->new(
-start
=> 500,
-end
=> 501,
-name
=>
'rs000001'
,
-attributes
=> {
triples
=> [
[0.01, 0.81, 0.18,
'red'
,
'CEPH'
],
[0.25, 0.25, 0.50,
'blue'
,
'JPT+CHB'
],
[0.81, 0.01, 0.18,
'green'
,
'YRI'
],
]
}
);
my
$snp2
= Bio::Graphics::Feature->new(
-start
=> 300,
-end
=> 301,
-name
=>
'rs12345'
,
-attributes
=> {
triples
=> [
[0.04, 0.64, 0.32,
'red'
,
'Controls'
],
[0.16, 0.36, 0.48,
'blue'
,
'Cases'
],
]
}
);
my
$panel
= Bio::Graphics::Panel->new(
-segment
=>
$segment
,
-width
=>800);
$panel
->add_track(
$segment
,
-glyph
=>
'arrow'
,
-double
=>1,
-tick
=>2);
$panel
->add_track([
$snp1
,
$snp2
],
-glyph
=>
'ternary_plot'
,
-height
=> 80,
-fgcolor
=>
'lightgrey'
,
-vertices
=> [
'AA'
,
'GG'
,
'AG'
],
-label
=> 1,
);
$panel
->png;
DESCRIPTION
This glyph draws a light gray equilateral triangle with its base centered on the feature. The top of the equilateral triangle is equal to the specified height. To look good, please choose a height of >= 15.
Inside, the glyph will plot one or more data points using ternary plot conventions (see http://en.wikipedia.org/wiki/Ternary_plot). The data consists of a series of (A,B,C) triplets chosen such that the range of each component is [0.0,1.0] and A + B + C = 1.0. The left, right and apex of the triangle represent the proportions of A, B and C respectively. As a component approaches 1.0, it gets closer to its corresponding vertex.
The data can be represented as one or more feature tags called "triples" each in the format:
A1,B1,C1,<color>,<label>
# (color and label are optional)
or as a callback specified by the option -triples, which should return a list of arrays, where each array is a triple, followed by an optional color. E.G.
sub
my_calback {
my
$feature
=
shift
;
return
[[0.1,0.5,0.4,
'red'
,
'pt1'
],[0.2,0.2,0.6,
'blue'
,
'pt2'
],[0.8,0.2,0.0,
'green'
,
'pt4'
]];
}
The color, if it is missing, will be the same as the bgcolor.
OPTIONS
In addition to the common options, the following glyph-specific options are recognized:
Option Description
------ -----------
-triples The callback to
return
triple data.
-vertices Labels
for
the left,right & top vertices
BUGS
Please report them.
SEE ALSO
Bio::Graphics::Panel, Bio::Graphics::Glyph, Bio::Graphics::Glyph::arrow, Bio::Graphics::Glyph::cds, Bio::Graphics::Glyph::crossbox, Bio::Graphics::Glyph::diamond, Bio::Graphics::Glyph::dna, Bio::Graphics::Glyph::dot, Bio::Graphics::Glyph::ellipse, Bio::Graphics::Glyph::extending_arrow, Bio::Graphics::Glyph::generic, Bio::Graphics::Glyph::graded_segments, Bio::Graphics::Glyph::heterogeneous_segments, Bio::Graphics::Glyph::line, Bio::Graphics::Glyph::pinsertion, Bio::Graphics::Glyph::primers, Bio::Graphics::Glyph::rndrect, Bio::Graphics::Glyph::segments, Bio::Graphics::Glyph::ruler_arrow, Bio::Graphics::Glyph::toomany, Bio::Graphics::Glyph::transcript, Bio::Graphics::Glyph::transcript2, Bio::Graphics::Glyph::translation, Bio::Graphics::Glyph::triangle, Bio::Graphics::Glyph::whiskerplot, Bio::DB::GFF, Bio::SeqI, Bio::SeqFeatureI, Bio::Das, GD
AUTHOR
Lincoln Stein <lstein@cshl.org>.
Copyright (c) 2006 Cold Spring Harbor Laboratory
This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. See DISCLAIMER.txt for disclaimers of warranty.