comparison variant_effect_predictor/Bio/Graphics.pm @ 0:1f6dce3d34e0

Uploaded
author mahtabm
date Thu, 11 Apr 2013 02:01:53 -0400
parents
children
comparison
equal deleted inserted replaced
-1:000000000000 0:1f6dce3d34e0
1 package Bio::Graphics;
2
3 use Bio::Graphics::Panel;
4 use strict;
5
6 use vars '$VERSION';
7 $VERSION = 1.2003;
8
9 1;
10
11 =head1 NAME
12
13 Bio::Graphics - Generate GD images of Bio::Seq objects
14
15 =head1 SYNOPSIS
16
17 # This script generates a PNG picture of a 10K region containing a
18 # set of red features and a set of blue features. Call it like this:
19 # red_and_blue.pl > redblue.png
20 # you can now view the picture with your favorite image application
21
22
23 # This script parses a GenBank or EMBL file named on the command
24 # line and produces a PNG rendering of it. Call it like this:
25 # render.pl my_file.embl | display -
26
27 use strict;
28 use Bio::Graphics;
29 use Bio::SeqIO;
30
31 my $file = shift or die "provide a sequence file as the argument";
32 my $io = Bio::SeqIO->new(-file=>$file) or die "could not create Bio::SeqIO";
33 my $seq = $io->next_seq or die "could not find a sequence in the file";
34
35 my @features = $seq->all_SeqFeatures;
36
37 # sort features by their primary tags
38 my %sorted_features;
39 for my $f (@features) {
40 my $tag = $f->primary_tag;
41 push @{$sorted_features{$tag}},$f;
42 }
43
44 my $wholeseq = Bio::SeqFeature::Generic->new(-start=>1,-end=>$seq->length);
45
46 my $panel = Bio::Graphics::Panel->new(
47 -length => $seq->length,
48 -key_style => 'between',
49 -width => 800,
50 -pad_left => 10,
51 -pad_right => 10,
52 );
53 $panel->add_track($wholeseq,
54 -glyph => 'arrow',
55 -bump => 0,
56 -double=>1,
57 -tick => 2);
58
59 $panel->add_track($seq,
60 -glyph => 'generic',
61 -bgcolor => 'blue',
62 -label => 1,
63 );
64
65 # general case
66 my @colors = qw(cyan orange blue purple green chartreuse magenta yellow aqua);
67 my $idx = 0;
68 for my $tag (sort keys %sorted_features) {
69 my $features = $sorted_features{$tag};
70 $panel->add_track($features,
71 -glyph => 'generic',
72 -bgcolor => $colors[$idx++ % @colors],
73 -fgcolor => 'black',
74 -font2color => 'red',
75 -key => "${tag}s",
76 -bump => +1,
77 -height => 8,
78 -label => 1,
79 -description => 1,
80 );
81 }
82
83 print $panel->png;
84 exit 0;
85
86 =head1 DESCRIPTION
87
88 Please see L<Bio::Graphics::Panel> for the full interface.
89
90 =head1 SEE ALSO
91
92 L<Bio::Graphics::Panel>,
93 L<Bio::Graphics::Glyph>,
94 L<Bio::SeqI>,
95 L<Bio::SeqFeatureI>,
96 L<Bio::Das>,
97 L<Bio::DB::GFF::Feature>,
98 L<Ace::Sequence>,
99 L<GD>
100
101 =head1 AUTHOR
102
103 Lincoln Stein E<lt>lstein@cshl.orgE<gt>.
104
105 Copyright (c) 2001 Cold Spring Harbor Laboratory
106
107 This library is free software; you can redistribute it and/or modify
108 it under the same terms as Perl itself. See DISCLAIMER.txt for
109 disclaimers of warranty.
110
111 =cut
112