—package
Bio::Graphics::Glyph::minmax;
# $Id: minmax.pm,v 1.2.6.1 2006/10/02 23:10:20 sendu Exp $
use
strict;
sub
minmax {
my
$self
=
shift
;
my
$parts
=
shift
;
# figure out the colors
my
$max_score
=
$self
->option(
'max_score'
);
my
$min_score
=
$self
->option(
'min_score'
);
my
$do_min
= !
defined
$min_score
;
my
$do_max
= !
defined
$max_score
;
if
(
$do_min
or
$do_max
) {
my
$first
=
$parts
->[0];
for
my
$part
(
@$parts
) {
my
$s
=
eval
{
$part
->feature->score };
next
unless
defined
$s
;
$max_score
=
$s
if
$do_max
&& (!
defined
$max_score
or
$s
>
$max_score
);
$min_score
=
$s
if
$do_min
&& (!
defined
$min_score
or
$s
<
$min_score
);
}
}
(
$min_score
,
$max_score
);
}
1;
__END__
=head1 NAME
Bio::Graphics::Glyph::minmax - The minmax glyph
=head1 SYNOPSIS
See L<Bio::Graphics::Panel> and L<Bio::Graphics::Glyph>.
=head1 DESCRIPTION
This glyph is a common base class for
L<Bio::Graphics::Glyph::graded_segments> and
L<Bio::Graphics::Glyph::xyplot>. It adds an internal method named
minmax() for calculating the upper and lower boundaries of scored
features, and is not intended for end users.
=head1 BUGS
Please report them.
=head1 SEE ALSO
L<Bio::Graphics::Panel>,
L<Bio::Graphics::Track>,
L<Bio::Graphics::Glyph::graded_segments>,
L<Bio::Graphics::Glyph::xyplot>,
=head1 AUTHOR
Lincoln Stein E<lt>lstein@cshl.orgE<gt>
Copyright (c) 2003 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.
=cut