annotate variant_effect_predictor/Bio/Graphics.pm @ 0:2bc9b66ada89 draft default tip

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