[Bio] / FigKernelPackages / Phage.pm Repository:
ViewVC logotype

Annotation of /FigKernelPackages/Phage.pm

Parent Directory Parent Directory | Revision Log Revision Log


Revision 1.2 - (view) (download) (as text)

1 : redwards 1.1 #_perl_
2 :    
3 :     =pod
4 :    
5 :     =head1
6 :    
7 :     Methods used by Rob and others to access the phage genomes.
8 :    
9 :     =cut
10 :    
11 :     package Phage;
12 :     use strict;
13 : redwards 1.2 use Data::Dumper;
14 : redwards 1.1 use FIG;
15 :    
16 :     =head2 Methods
17 :    
18 :     =head3 new
19 :    
20 :     Just instantiate the object and return $self
21 :     Can also provide a fig object to the class.
22 :    
23 :     =cut
24 :    
25 :     sub new {
26 :     my ($class, $fig)=@_;
27 :     my $self={};
28 :     if (defined $fig) {
29 :     $self->{'fig'}=$fig;
30 :     }
31 :     else {
32 :     $self->{'fig'}=new FIG;
33 :     }
34 :     return bless $self, $class;
35 :     }
36 :    
37 :    
38 :     =head3 phages
39 :    
40 :     Get a list of all the phage genome IDs.
41 :    
42 :     my @phages = Phage->phages();
43 :    
44 :     =cut
45 :    
46 :     sub phages {
47 :     my $self=shift;
48 : redwards 1.2 my %seen;
49 :     return grep {!$seen{$_}++} grep { $self->{'fig'}->is_genome($_) } map {$_->[0]} $self->{'fig'}->get_attributes(undef, 'virus_type', 'Phage');
50 : redwards 1.1 }
51 :    
52 :    
53 :     =head3 is_phage_function
54 :    
55 :     Is the function a phage function.
56 :     my $bool = $phage->is_phage_function($fn);
57 :    
58 :     =cut
59 :    
60 :     sub is_phage_function {
61 :     my ($self, $fn)=@_;
62 :     if (
63 :     $fn =~ /\bphage\b/i ||
64 :     $fn =~ /integrase/i ||
65 :     $fn =~ /tail protein/i ||
66 :     $fn =~ /minor structural protein/i ||
67 :     $fn =~ /major structural protein/i ||
68 :     $fn =~ /tail fiber/i ||
69 :     $fn =~ /baseplate/i ||
70 :     $fn =~ /tape measure/i
71 :     ) {
72 :     return 1;
73 :     }
74 :     return 0;
75 :     }
76 :    
77 : redwards 1.2 =head3 prophages_in_genome
78 :    
79 :     Get the ids of all the known prophages in the genome
80 :    
81 :     my @prophage_ids = $phage->prophages_in_genome($genome);
82 :    
83 :     =cut
84 :    
85 :     sub prophages_in_genome {
86 :     my ($self, $genome) = @_;
87 :     return $self->{'fig'}->all_features($genome, "pp");
88 :     }
89 :    
90 :    
91 :     =head3 prophage_pegs
92 :    
93 :     Get all the pegs in the prophages in a genome
94 :    
95 :     my @pegs = $phage->prophage_pegs($genome);
96 :    
97 :     =cut
98 :    
99 :     sub prophage_pegs {
100 :     my ($self, $genome) = @_;
101 :     my @pegs = ();
102 :     foreach my $pp ($self->prophages_in_genome($genome)) {
103 :     my ($contig, $beg, $end)=$self->{'fig'}->boundaries_of($self->{'fig'}->feature_location($pp));
104 :     my ($temp, $start, $end) = $self->{'fig'}->genes_in_region($genome, $contig, $beg, $end);
105 :     push @pegs, grep {m/\.peg\./} @$temp;
106 :     }
107 :     return @pegs;
108 :     }
109 :    
110 :    
111 :    
112 : redwards 1.1 1;
113 :    

MCS Webmaster
ViewVC Help
Powered by ViewVC 1.0.3