/usr/share/perl5/RG/Reprof/Converter.pm is in librg-reprof-bundle-perl 1.0.1-5.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 | package RG::Reprof::Converter;
use strict;
use Carp;
require Exporter;
our @ISA = qw(Exporter);
our @EXPORT_OK = qw(aa aa_features sec_features acc_norm acc_features normalize);
my $aa_features = {
'A' => {'number' => 0, 'mass' => 0.109, 'volume' => 0.170, 'hydrophobicity' => 0.700, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'R' => {'number' => 1, 'mass' => 0.767, 'volume' => 0.676, 'hydrophobicity' => 0.000, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 1, 'polarity' => 0},
'N' => {'number' => 2, 'mass' => 0.442, 'volume' => 0.322, 'hydrophobicity' => 0.111, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 1},
'D' => {'number' => 3, 'mass' => 0.450, 'volume' => 0.304, 'hydrophobicity' => 0.111, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0, 'polarity' => 1},
'C' => {'number' => 4, 'mass' => 0.357, 'volume' => 0.289, 'hydrophobicity' => 0.778, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'Q' => {'number' => 5, 'mass' => 0.550, 'volume' => 0.499, 'hydrophobicity' => 0.111, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 1},
'E' => {'number' => 6, 'mass' => 0.558, 'volume' => 0.467, 'hydrophobicity' => 0.111, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0, 'polarity' => 1},
'G' => {'number' => 7, 'mass' => 0.000, 'volume' => 0.000, 'hydrophobicity' => 0.456, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'H' => {'number' => 8, 'mass' => 0.620, 'volume' => 0.555, 'hydrophobicity' => 0.144, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 1, 'polarity' => 1},
'I' => {'number' => 9, 'mass' => 0.434, 'volume' => 0.636, 'hydrophobicity' => 1.000, 'cbeta' => 1, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'L' => {'number' => 10, 'mass' => 0.434, 'volume' => 0.636, 'hydrophobicity' => 0.922, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'K' => {'number' => 11, 'mass' => 0.550, 'volume' => 0.647, 'hydrophobicity' => 0.067, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 1, 'polarity' => 1},
'M' => {'number' => 12, 'mass' => 0.574, 'volume' => 0.613, 'hydrophobicity' => 0.711, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'F' => {'number' => 13, 'mass' => 0.698, 'volume' => 0.774, 'hydrophobicity' => 0.811, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'P' => {'number' => 14, 'mass' => 0.310, 'volume' => 0.314, 'hydrophobicity' => 0.322, 'cbeta' => 0, 'hbreaker' => 1, 'charge' => 0.5, 'polarity' => 0},
'S' => {'number' => 15, 'mass' => 0.233, 'volume' => 0.172, 'hydrophobicity' => 0.411, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 1},
'T' => {'number' => 16, 'mass' => 0.341, 'volume' => 0.334, 'hydrophobicity' => 0.422, 'cbeta' => 1, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 1},
'W' => {'number' => 17, 'mass' => 1.000, 'volume' => 1.000, 'hydrophobicity' => 0.400, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'Y' => {'number' => 18, 'mass' => 0.822, 'volume' => 0.796, 'hydrophobicity' => 0.356, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 1},
'V' => {'number' => 19, 'mass' => 0.326, 'volume' => 0.476, 'hydrophobicity' => 0.967, 'cbeta' => 1, 'hbreaker' => 0, 'charge' => 0.5, 'polarity' => 0},
'X' => {'number' => 20, 'mass' => 0, 'volume' => 0, 'hydrophobicity' => 0, 'cbeta' => 0, 'hbreaker' => 0, 'charge' => 0, 'polarity' => 0},
};
sub aa_features {
my ($in, $out) = @_;
return $aa_features->{$in}{$out};
}
my $sec_features = {
H => { number => 0, oneletter => 'H' },
G => { number => 0, oneletter => 'H' },
I => { number => 0, oneletter => 'H' },
E => { number => 1, oneletter => 'E' },
B => { number => 1, oneletter => 'E' },
L => { number => 2, oneletter => 'L' },
S => { number => 2, oneletter => 'L' },
T => { number => 2, oneletter => 'L' },
'' => { number => 2, oneletter => 'L' },
' ' => { number => 2, oneletter => 'L' }
};
sub sec_features {
my ($in, $out) = @_;
return $sec_features->{$in}{$out};
}
my $acc_norm = {
A => 106,
B => 160, # D or N
C => 135,
D => 163,
E => 194,
F => 197,
G => 84,
H => 184,
I => 169,
K => 205,
L => 164,
M => 188,
N => 157,
P => 136,
Q => 198,
R => 248,
S => 130,
T => 142,
V => 142,
W => 227,
X => 180, # undetermined (deliberate)
Y => 222,
Z => 196, # E or Q
max=>248
};
sub acc_norm {
my ($in) = @_;
return $acc_norm->{$in};
}
my $acc_features = {
b => { two => 0, three => 0 },
i => { two => 0, three => 1 },
e => { two => 1, three => 2 },
};
sub acc_features {
my ($in, $out) = @_;
return $acc_features->{$in}{$out};
}
my $aa = {
A => 1,
C => 1,
D => 1,
E => 1,
F => 1,
G => 1,
H => 1,
I => 1,
K => 1,
L => 1,
M => 1,
N => 1,
P => 1,
Q => 1,
R => 1,
S => 1,
T => 1,
V => 1,
W => 1,
Y => 1,
X => 1,
};
sub aa {
my ($in) = @_;
return $aa->{$in};
}
sub normalize {
my $x = shift;
my $t = shift || 0;
return 1.0 / (1.0 + exp(-($x - $t)));
}
1;
|