File: Blast.t

package info (click to toggle)
bioperl 1.7.7-2
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 35,888 kB
  • sloc: perl: 94,151; xml: 14,982; makefile: 20
file content (72 lines) | stat: -rw-r--r-- 1,823 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
# -*-Perl-*- Test Harness script for Bioperl
# $Id$

use strict;
use File::Spec;
use File::Temp;

BEGIN {
    use Bio::Root::Test;

    test_begin(-tests => 5,
               -requires_module => 'IO::String');

    use_ok('Cwd');
    use_ok('Bio::SearchIO');
    use_ok('Bio::Index::Blast');
}

sub test_results {
    my $index = shift;
    my @ids = @_;

    foreach my $id (@ids) {
        my $fh = $index->get_stream($id);
        ok($fh);
        ok( ! eof($fh) );
        my $report = Bio::SearchIO->new(-noclose => 1,
                                        -format  => 'blast',
                                        -fh      => $fh);
        my $result = $report->next_result;
        like($result->query_name, qr/$id/);
        ok( $result->next_hit);

        like( $index->fetch_report($id)->query_name, qr/$id/);
    }
}


subtest 'BLASTP' => sub {
    plan tests => 2 + 2*5;

    my $dir = File::Temp->newdir();
    my $basename = 'Wibbl';
    my $filepath = File::Spec->catfile($dir, $basename);

    my $index = Bio::Index::Blast->new(-filename => $filepath,
                                       -write_flag => 1);
    ok($index);

    $index->make_index(test_input_file('multi_blast.bls'));
    ($index->dbm_package eq 'SDBM_File') ?
        (ok(-e "$filepath.pag" && -e "$filepath.dir")) :
        (ok(-e "$filepath"));

    test_results($index, qw(CATH_RAT PAPA_CARPA));
};

subtest 'RPS-BLAST' => sub {
    plan tests => 1 + 2*5;

    my $dir = File::Temp->newdir();
    my $basename = 'Wibbl.index';
    my $filepath = File::Spec->catfile($dir, $basename);

    my $index = Bio::Index::Blast->new(-filename => $filepath,
                                       -write_flag => 1);
    ok($index);

    $index->make_index(test_input_file('rpsblast.bls'));

    test_results($index, qw(orf20 orf40));
};