File: t070parseannot2obj.t

package info (click to toggle)
libgo-perl 0.15-7
  • links: PTS, VCS
  • area: main
  • in suites: buster
  • size: 8,108 kB
  • sloc: perl: 13,147; sh: 21; makefile: 7
file content (72 lines) | stat: -rw-r--r-- 2,384 bytes parent folder | download | duplicates (7)
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
#!/usr/local/bin/perl -w

use lib '.';
BEGIN {
    eval { require Test; };
    use Test;    
    plan tests => 5;
}

# All tests must be run from the software directory;
# make sure we are getting the modules from here:
use strict;
use GO::Parser;

# ----- REQUIREMENTS -----

# ------------------------

my $parser = new GO::Parser ({format=>'go_ont',
			      handler=>'obj'});

#$parser->handler->add_root;
ok(1);
$parser->parse (shift @ARGV || "./t/data/generic.0208");
my $a2n = $parser->acc2name_h;
#$parser->parse (shift @ARGV || "./t/data/go-truncated.obo");
$parser = new GO::Parser ({format=>'go_assoc',
                           handler=>$parser->handler});
$parser->acc2name_h($a2n);
$parser->cache_errors;
$parser->parse (shift @ARGV || "./t/data/test-gene_association.fb");

# we expect one error because of the deliberately bogus last line
# refering to a non-existent GO ID
my @errs = $parser->errlist;
#print $_->sxpr foreach @errs;
ok(@errs == 1); # bogus last line

my $graph = $parser->handler->graph;
my $it = $graph->create_iterator;
while(my $node = $it->next_node_instance){
    my $term = $node->term;
    #use Data::Dumper;
    #print Dumper $graph;
    printf "TERM: %s %s\n", $term->acc, $term->name;
    die $term->acc unless $term->namespace || $term->is_relationship_type;
    my $aspect = $term->get_code_from_namespace;
    die $term->acc unless ($term->is_relationship_type || $term->namespace =~ /Gene/ || $aspect eq 'F' || $aspect eq 'C' || $aspect eq 'P');
    my $assocs = $term->association_list;

    foreach my $assoc (@$assocs) {
        my $prod = 
          $assoc->gene_product;
        printf " PROD: %s\n", $prod->symbol;
        die unless $assoc->assigned_by eq 'FB';
        die unless $assoc->assocdate eq '20040228';
        die unless $prod->species->ncbi_taxa_id eq '7227';
    }
    #this causes an error
    my $deep_assocs = 
      $graph->deep_association_list($term->public_acc);
    printf "  *DEEP: %d\n", scalar(@$deep_assocs);
}

my $term = $graph->get_term('GO:0003673');
ok(!@{$term->association_list || []});
printf "annots: %d\n", scalar @{$graph->deep_association_list('GO:0003673')};
ok(@{$graph->deep_association_list('GO:0003673')} == 86);
#ok(@{$term->deep_association_list} == 86);

my $prods = $graph->deep_product_list($term->acc);
ok((grep {printf "Type:%s\n", $_->type;$_->type eq 'gene'} @$prods) == 16);