File: SwissProt.t

package info (click to toggle)
libbio-db-swissprot-perl 1.7.4-2
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 144 kB
  • sloc: perl: 315; makefile: 2
file content (92 lines) | stat: -rw-r--r-- 3,523 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
#!/usr/bin/env perl
use utf8;

use strict;
use warnings;

use Test::More;
use Test::Needs qw(LWP::UserAgent HTTP::Request::Common Data::Stag);
use Test::RequiresInternet;

use Bio::DB::SwissProt;

ok my $gb = Bio::DB::SwissProt->new(-retrievaltype => 'pipeline',
                                    -delay         => 0);

my %expected_lengths = (
                        'NDP_MOUSE'   => 131,
                        'NDP_HUMAN'   => 133,
                        'BOLA_HAEIN'  => 103,
                        'YNB3_YEAST'  => 125,
                        'O39869'      => 56,
                        'DEGP_CHLTR'  => 497,
                        'DEGPL_CHLTR' => 497
                        );

my ($seq, $seqio);

# keep the SKIP block to deal with intermittent fails
SKIP: {
    eval {$seq = $gb->get_Seq_by_id('YNB3_YEAST');};
    skip "Couldn't connect to SwissProt with Bio::DB::SwissProt.pm. Skipping those tests", 14 if $@;
    is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
    is $seq->division, 'YEAST';

    eval {$seq = $gb->get_Seq_by_acc('P43780');};
    skip "Couldn't connect to SwissProt with Bio::DB::SwissProt.pm. Skipping those tests", 12 if $@;
    is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
    eval {$seq = $gb->get_Seq_by_acc('O39869');};
    skip "Couldn't connect to SwissProt with Bio::DB::SwissProt.pm. Skipping those tests", 11 if $@;
    is $seq->length, $expected_lengths{$seq->accession_number}, $seq->accession_number;
    is $seq->accession_number, 'O39869';
    is $seq->division, '9PICO';

    # test for bug #958
    eval {$seq = $gb->get_Seq_by_id('P18584');};
    skip "Couldn't connect to SwissProt with Bio::DB::SwissProt.pm. Skipping those tests", 8 if $@;
    ok exists $expected_lengths{$seq->display_id}, 'P18584';
    is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
    is $seq->division, 'CHLTR';

    ok $gb = Bio::DB::SwissProt->new('-retrievaltype' => 'tempfile', '-delay' => 0);
    eval {$seqio = $gb->get_Stream_by_id(['NDP_MOUSE', 'NDP_HUMAN']);};
    skip "Couldn't connect to SwissProt with Bio::DB::SwissProt.pm. Skipping those tests", 4 if $@;
    undef $gb; # testing to see if we can remove gb
    ok $seq = $seqio->next_seq();
    is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
    ok $seq = $seqio->next_seq();
    is $seq->length, $expected_lengths{$seq->display_id}, $seq->display_id;
}

# test idtracker() method
ok $gb = Bio::DB::SwissProt->new(-retrievaltype => 'pipeline',
                                 -delay         => 0,
                                 -verbose       => 2);

SKIP: {
    my $map;
    # check old ID
    eval {$map = $gb->id_mapper(-from => 'ACC+ID',
                                -to   => 'ACC',
                                -ids  => [qw(MYOD1_PIG PYRC_YEAST)]
                                )};
    skip("Problem with idtracker(), skipping these tests: $@", 6) if $@;

    cmp_ok(@{$map->{MYOD1_PIG}}, '>=', 1);
    is($map->{MYOD1_PIG}[0], 'P49811');
    cmp_ok(@{$map->{PYRC_YEAST}}, '>=', 1);
    is($map->{PYRC_YEAST}[0], 'P20051');

    eval {$map = $gb->id_mapper(-from => 'ACC+ID',
                                -to   => 'EMBL',
                                -ids  => [qw(PYRC_YEAST)]
                                )};
    skip("Problem with idtracker(), skipping these tests: $@", 2) if $@;

    cmp_ok(@{$map->{PYRC_YEAST}}, '>=', 2);
    like($map->{PYRC_YEAST}[0], qr/^[A-Z0-9]/);
}

done_testing();

1;