annotate variant_effect_predictor/Bio/Graphics.pm @ 3:d30fa12e4cc5 default tip

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