File Coverage

blib/lib/Bio/Palantir/Roles/Domainable.pm
Criterion Covered Total %
statement 9 25 36.0
branch 0 70 0.0
condition n/a
subroutine 3 6 50.0
pod 0 3 0.0
total 12 104 11.5


line stmt bran cond sub pod time code
1             package Bio::Palantir::Roles::Domainable;
2             # ABSTRACT: Domainable Moose role for Domain and DomainPlus objects
3             $Bio::Palantir::Roles::Domainable::VERSION = '0.201670';
4 1     1   747 use Moose::Role;
  1         2  
  1         10  
5              
6 1     1   5953 use autodie;
  1         3  
  1         11  
7              
8              
9             requires qw(
10             rank function chemistry
11             protein_sequence begin
12             end size coordinates
13             monomer
14             ); # dna_* from gene_locations method (Domain.pm) create bugs because, as
15             # there is no DNA sequence when doing protein analyses, no strand can
16             # be determined in antismash 4 and 5 versions
17              
18              
19              
20             sub symbol {
21 0     0 0   my $self = shift;
22            
23 0           my $name = $self->function;
24              
25 0 0         return 'na' unless $name;
26              
27 0 0         my $symbol =
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
28             $name =~ m/^ACL$ | ^CAL/xms
29             ? 'CAL'
30             : $name =~ m/^A$ | AMP-binding/xms
31             ? 'A'
32             : $name =~ m/^PCP | PP-binding/xms
33             ? 'PCP'
34             : $name =~ m/^C$ | Condensation | ^X$ | Cglyc | Cter$/xms
35             ? 'C'
36             : $name =~ m/^E$ | Epimerization/xms
37             ? 'E'
38             : $name =~ m/^H$ | Heterocyclization/xms
39             ? 'H'
40             : $name =~ m/^TE$ | Thioesterase/xmsi
41             ? 'TE'
42             : $name =~ m/^Red$ | ^TD$ /xmsi
43             ? 'Red'
44             : $name =~ m/Aminotran/xms
45             ? 'Amt'
46             : $name =~ m/^PKS_/xms
47             ? $name =~ s/PKS_//r
48             : $name
49             ; # no need to reappoint domains like cMT, oMT, B, Hal,...
50            
51             # KS domain
52 0 0         $symbol = $symbol =~ m/^KS/xms
53             ? 'KS'
54             : $symbol
55             ;
56              
57 0           return $symbol;
58             }
59              
60             sub class {
61 0     0 0   my $self = shift;
62            
63 0           my $name = $self->function;
64              
65 0 0         return 'NA'
66             if $name eq 'NA';
67              
68 0 0         my $class =
    0          
    0          
    0          
69             $name =~ m/^A$ | AMP-binding | A-OX | Minowa | Khayatt | CAL | ACL
70             | AT$ | ^Trans\-AT/xms
71             ? 'substrate-selection'
72             : $name =~ m/PCP | ACP$ | ACP_beta | PP-binding/xms
73             ? 'carrier-protein'
74             : $name =~ m/^C$ | Condensation | ^X$ | Cglyc | ^KS | _KS
75             | Heterocyclization | ^H$/xms
76             ? 'condensation'
77             : $name =~ m/Thioesterase | TE | Red | TD | Cter | NAD/xms
78             ? 'termination'
79             : 'tailoring/other'
80             ;
81              
82 0           return $class;
83             }
84              
85             sub name {
86 0     0 0   my $self = shift;
87            
88 0           my $name = $self->function;
89              
90 0 0         return 'na' unless $name;
91              
92 0 0         my $std_name =
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
    0          
93             $name =~ m/^A$ | AMP-binding/xms
94             ? 'Adenylation domain'
95             : $name=~ m/A-OX/xms
96             ? 'Adenylation domain with integrated oxidase'
97             : $name =~ m/^PCP | PP-binding/xms
98             ? 'Peptidyl Carrier Protein domain'
99             : $name =~ m/^C$ | Condensation | ^X$ | Cglyc | Cter$/xms
100             ? 'Condensation domain'
101             : $name =~ m/^E$ | Epimerization/xms
102             ? 'Epimerization domain'
103             : $name =~ m/^H$ | Heterocyclization/xms
104             ? 'Heterocyclization domain'
105             : $name =~ m/^TE$ | Thioesterase/xmsi
106             ? 'Thioesterase domain'
107             : $name =~ m/^Red$ | ^TD$ /xmsi
108             ? 'Terminal reductase domain'
109             : $name =~ m/Aminotran/xms
110             ? 'Aminotransferase domain'
111             : $name =~ m/(?:PKS\_)?AT/xms
112             ? 'Acyltransferase domain'
113             : $name =~ m/(?:PKS\_)?ACP/xms
114             ? 'Acyl Carrier Protein domain'
115             : $name =~ m/(?:PKS\_)?KS/xms
116             ? 'Ketosynthase domain'
117             : $name =~ m/(?:PKS\_)?KR/xms
118             ? 'Ketoreductase domain'
119             : $name =~ m/(?:PKS\_)?DH/xms
120             ? 'Dehydratase domain'
121             : $name =~ m/(?:PKS\_)?ER/xms
122             ? 'Enoylreductase domain'
123             : $name =~ m/^ACL$ | ^CAL$/xms
124             ? 'Co-enzyme A ligase domain'
125             : $name =~ m/^MT$/xms
126             ? 'Methyl transferase domain'
127             : $name
128             ;
129              
130 0           return $std_name;
131             }
132              
133              
134 1     1   6720 no Moose::Role;
  1         3  
  1         8  
135             1;
136              
137             __END__
138              
139             =pod
140              
141             =head1 NAME
142              
143             Bio::Palantir::Roles::Domainable - Domainable Moose role for Domain and DomainPlus objects
144              
145             =head1 VERSION
146              
147             version 0.201670
148              
149             =head1 SYNOPSIS
150              
151             # TODO
152              
153             =head1 DESCRIPTION
154              
155             # TODO
156              
157             =head1 AUTHOR
158              
159             Loic MEUNIER <lmeunier@uliege.be>
160              
161             =head1 COPYRIGHT AND LICENSE
162              
163             This software is copyright (c) 2019 by University of Liege / Unit of Eukaryotic Phylogenomics / Loic MEUNIER and Denis BAURAIN.
164              
165             This is free software; you can redistribute it and/or modify it under
166             the same terms as the Perl 5 programming language system itself.
167              
168             =cut