File: elink_scores.t

package info (click to toggle)
bioperl 1.6.1-2
  • links: PTS, VCS
  • area: main
  • in suites: squeeze
  • size: 40,768 kB
  • ctags: 12,005
  • sloc: perl: 174,299; xml: 13,923; sh: 1,941; lisp: 1,803; asm: 109; makefile: 53
file content (114 lines) | stat: -rw-r--r-- 3,023 bytes parent folder | download | duplicates (2)
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
# -*-Perl-*- Test Harness script for Bioperl
# $Id: epost.t 15112 2008-12-08 18:12:38Z sendu $

use strict;
use warnings;

BEGIN {
    use lib '.';
	use Bio::Root::Test;
	
	test_begin(-tests => 58,
			   -requires_module => 'XML::Simple');
	
    use_ok('Bio::Tools::EUtilities');
    use_ok('Bio::Tools::EUtilities::EUtilParameters');
}

# check -correspondence => 0 (default) - this is set up to return the
# exact same thing as correspondece = 1, tested below)
my $eutil = Bio::Tools::EUtilities->new(
    -eutil      => 'elink',
    -file       => test_input_file('eutils','elink_scores.xml'));

isa_ok($eutil, 'Bio::Tools::EUtilities::Link');
is(join(',',$eutil->get_databases), 'protein');

# for elinks, IDs are globbed together when called from the parser unless a database is specified
is(join(',',$eutil->get_ids), '15622530,15921743,70607303,68567951,145702933,'.
   '146304683,6015889,13813749,15897502,15622530,74573864,15921743', 'get_ids');
my @ls = $eutil->get_LinkSets;
is(scalar(@ls), 2, 'uncorrelated LinkSets lump everything together');
is(join(',',$ls[1]->get_databases), 'protein');
isa_ok($ls[0], 'Bio::Tools::EUtilities::EUtilDataI');
isa_ok($ls[0], 'Bio::Tools::EUtilities::Link::LinkSet');

# check data in LinkSets
is(join(',',$ls[0]->get_ids), '15622530,15921743,70607303,68567951,145702933,'.
   '146304683,6015889,13813749,15897502');
is(join(',',$ls[0]->get_databases), 'protein');
is(join(',',$ls[0]->get_submitted_ids), '15622530');
is($ls[0]->get_dbfrom, 'protein');
is(join(',',$ls[0]->get_link_names), 'protein_protein');
is($ls[0]->has_linkout, 0);
is($ls[0]->has_neighbor, 0);

# has relatedness scores!
is($ls[0]->has_scores, 1);

my %sd = (
    15622530 => 2147483647,
    15921743 => 381,
    70607303 => 178,
    68567951 => 178,
    145702933 => 161,
    146304683 => 161,
    6015889 => 142,
    13813749 => 142,
    15897502 => 142);

my %sc = $ls[0]->get_scores;
for my $id ($ls[0]->get_ids) {
    ok(exists($sc{$id}));
    is($sc{$id}, $sd{$id});
    delete $sd{$id};
}
is(keys %sd, 0);

# no LinkInfo
my @info = $ls[0]->get_LinkInfo;
is(scalar(@info), 0);

# no UrlLinks
my @urls = $ls[0]->get_UrlLinks;
is(scalar(@urls), 0);

is(join(',',$ls[1]->get_ids), '15622530,74573864,15921743');
is(join(',',$ls[1]->get_databases), 'protein');
is(join(',',$ls[1]->get_submitted_ids), '15622530');
is(join(',',$ls[1]->get_link_names), 'protein_protein_identical');
is($ls[1]->get_webenv, undef);
is($ls[1]->get_dbfrom, 'protein');
is($ls[1]->has_linkout, 0);
is($ls[1]->has_neighbor, 0);

# has relatedness scores!
is($ls[1]->has_scores, 1);

%sd = (
    15622530 => 2147483647,
    74573864 => 0,
    15921743 => 0,
);

%sc = $ls[1]->get_scores;
for my $id ($ls[1]->get_ids) {
    ok(exists($sc{$id}));
    is($sc{$id}, $sd{$id});
    delete $sd{$id};
}

is(keys %sd, 0);

# HistoryI
is($ls[1]->get_webenv, undef);
is($ls[1]->get_query_key, undef);

# no LinkInfo
@info = $ls[1]->get_LinkInfo;
is(scalar(@info), 0);

# no UrlLinks
@urls = $ls[1]->get_UrlLinks;
is(scalar(@urls), 0);