File: BlastTable.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 (59 lines) | stat: -rw-r--r-- 1,571 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
# -*-Perl-*- Test Harness script for Bioperl
# $Id: Blast.t 16293 2009-10-27 20:03:02Z cjfields $

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


BEGIN {
    use Bio::Root::Test;

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

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

                       # -m 9                -m 8
my @test_cases = qw(multi.blast.m9      multi.blast.m8);

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

    my $index = Bio::Index::BlastTable->new(-filename => $filepath,
                                            -write_flag => 1);
    ok($index);
    $index->id_parser(\&my_id_parser);
    $index->make_index(test_input_file($file));
    ($index->dbm_package eq 'SDBM_File') ?
        (ok(-e "$filepath.pag" && -e "$filepath.dir")) :
        (ok(-e $filepath));

    foreach my $id ( qw(SP130_MOUSE IKZF1_MOUSE) ) {
        my $fh = $index->get_stream($id);
        ok($fh);
        ok( ! eof($fh) );
        my $report = Bio::SearchIO->new(-noclose => 1,
                       -format  => 'blasttable',
                       -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/);
    }
}

# test id_parser
sub my_id_parser {
    if ($_[0] =~ /^\S+\|(\S+)/) {
        return $1;
    } else {
        return;
    }
}