This file is indexed.

/usr/share/perl5/RG/Reprof/blastPsiMat.pm is in librg-reprof-bundle-perl 1.0.1-1.

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
package RG::Reprof::blastPsiMat;

use strict;
use warnings;
use Carp;
use RG::Reprof::Converter qw(normalize);

sub new {
    my ($class, $file) = @_;

    my $self = {
        raw  => [],
        normalized => [],
        percentage   => [],
        info       => [],
        weight     => [],
        res         => [],
    };

    bless $self, $class;
    return $self->parse($file);
}

sub parse {
    my ($self, $file) = @_;

    open PSSM, $file or croak "Could not open $self->{file} ...\n";

    my $to_check = <PSSM>;
    $to_check = <PSSM>;
    if ($to_check !~ m/^Last position-specific scoring matrix/) {
        return undef;
    }

    my @pssm_cont = grep /^\s*\d+/, (<PSSM>);
    chomp @pssm_cont;
    close PSSM;
    
    my $length = $self->{_length} = scalar @pssm_cont;

    foreach my $line (@pssm_cont) {
        $line =~ s/^\s+//;
        my @split = split /\s+/, $line;

        my $res = $split[1];
        push @{$self->{res}}, $res;
        my @raws = @split[2..21];
        my @norms = map {normalize($_)} @raws;
        push @{$self->{raw}}, \@raws;
        push @{$self->{normalized}}, \@norms;
        my @pcs = @split[22 .. 41];
        my @pc_norms = map {$_ / 100} @pcs;
        push @{$self->{percentage}}, \@pc_norms;
        push @{$self->{info}}, ($split[42]);
        if ($split[43] eq "inf") {
            push @{$self->{weight}}, 0;
        }
        else {
            push @{$self->{weight}}, ($split[43]);
        }
    }

    return $self;
}

sub res {
    my $self = shift;
    return @{$self->{res}};
}

sub raw {
    my $self = shift;
    return @{$self->{raw}};
}

sub normalized {
    my $self = shift;
    return @{$self->{normalized}};
}

sub percentage {
    my $self = shift;
    return @{$self->{percentage}};
}

sub info {
    my $self = shift;
    return @{$self->{info}};
}

sub weight {
    my $self = shift;
    return @{$self->{weight}};
}

1;