This file is indexed.

/usr/bin/go-show-assocs-by-node is in libgo-perl 0.15-1.

This file is owned by root:root, with mode 0o755.

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
#!/usr/bin/perl

eval 'exec /usr/bin/perl  -S $0 ${1+"$@"}'
    if 0; # not running under some shell

# POD docs at end of file

use strict;
use Getopt::Long;
use FileHandle;
use GO::Parser;
use Data::Stag;

$|=1;

my $opt = {};
GetOptions($opt,
	   "help|h",
           "format|p=s",
	   "err|e=s",
           "id=s@",
           "names",
           "use_cache",
           "count",
	  );

if ($opt->{help}) {
    system("perldoc $0");
    exit;
}

my $errf = $opt->{err};
my $errhandler = Data::Stag->getformathandler('xml');
if ($errf) {
    $errhandler->file($errf);
}
else {
    $errhandler->fh(\*STDERR);
}

my @ids = @{$opt->{id} || []};
if (!@ids) {
    print STDERR "specify id list with -id ID option\n";
    exit 1;
}

my $outer_parser = new GO::Parser({handler=>'obj'});
my $handler = $outer_parser->handler;
my @files = GO::Parser->new->normalize_files(@ARGV);
while (my $fn = shift @files) {
    my $fn = shift;
    my %h = %$opt;
    my $fmt;
    if ($fn =~ /\.obo/) {
        $fmt = 'obo_text';
    }
    if ($fn =~ /\gene_assoc/) {
        $fmt = 'go_assoc';
    }
    if ($fmt && !$h{format}) {
        $h{format} = $fmt;
    }
    my $parser = new GO::Parser(%h);
    $parser->handler($handler);
    #$parser->litemode(1);
    $parser->errhandler($errhandler);
    $parser->parse($fn);
}
my $g = $handler->graph;

foreach my $id (@ids) {
    if ($opt->{count}) {
        my $prods = $g->deep_product_list($id);
        printf STDERR "Count: %d\n", scalar(@$prods);
    } else {
        my $assocs = $g->deep_association_list($id);
        foreach my $assoc (@$assocs) {
            my $prod = $assoc->gene_product;
            my $evs = $assoc->evidence_list;
            my @codes = map {$_->code} @$evs;
            printf "%s %s %s\n", "@codes", $prod->xref->as_str, $prod->symbol;
        }
    }
}
$errhandler->finish;
exit 0;

__END__

=head1 NAME

go-show-assocs-by-node.pl - find association for a GO term

=head1 SYNOPSIS

  go-show-assocs-by-node.pl -id GO:0008021 gene_ontology.obo gene_associations.fb

=head1 DESCRIPTION


=head1 ARGUMENTS

=head3 -c

performs a count of gene products, rather than listing them

=head3 -e ERRFILE

writes parse errors in XML - defaults to STDERR
(there should be no parse errors in well formed files)

=head3 -p FORMAT

determines which parser to use; if left unspecified, will make a guess
based on file suffix. See below for formats

=head2 DOCUMENTATION

L<http://www.godatabase.org/dev>

=cut