Bio-MUST-Apps-HmmCleaner

 view release on metacpan or  search on metacpan

t/hmmcleaner.t  view on Meta::CPAN

#!/usr/bin/env perl

use Test::Most;
use Test::Files;

use autodie;
use Modern::Perl;

use Smart::Comments;

use Path::Class qw(file);

use Bio::MUST::Apps::HmmCleaner;

say 'Note: tests designed for: HMMER 3.3.2 (Nov 2020); http://hmmer.org/';

my $class = 'Bio::MUST::Apps::HmmCleaner';

#~ check_test('GNTPAN12210.ali', 'GNTPAN12210_hmm10_global', { 'perseq' => 0, 'X' => 0});

check_cleaner('GNTPAN12210.ali', 'GNTPAN12210_hmm', { 'perseq' => 0, 'X' => 0});
check_cleaner('GNTPAN12210.ali', 'GNTPAN12210_hmm_X', { 'perseq' => 0, 'X' => 1});
check_cleaner('GNTPAN12210.ali', 'GNTPAN12210_hmm_perseqX', { 'perseq' => 1, 'X' => 1});
check_cleaner('GNTPAN12210.ali', 'GNTPAN12210_hmm_changeID', { 'perseq' => 0, 'X' => 1, changeID => 1});
check_cleaner('GNTPAN12210.ali', 'GNTPAN12210_hmm_changeCost', { 'perseq' => 0, 'X' => 1, costs => [-0.2, -0.05, 0.10, 0.5]});


sub check_cleaner {
    my $file = shift;
    my $expected_outfile = shift;
    my $args = shift // {};

    explain $expected_outfile;

    # read configuration file
    my $actual_args = {
        ali             => file('test',$file),
        ali_model       => file('test',$file),
        consider_X      => $$args{'X'},
        perseq_profile  => $$args{'perseq'},
        outfile_type    => 1, # working in Ali format
    };

    $$actual_args{changeID} = $$args{changeID} if exists $$args{changeID};
    $$actual_args{delchar} = $$args{delchar} if exists $$args{delchar};
    $$actual_args{costs} = $$args{costs} if exists $$args{costs};

    ### Creating object for file : $file
    my $cleaner = $class->new($actual_args);
    $cleaner->_set_outfile('test/testfile');
    $cleaner->store_all;

    my @goners = (
        file('test', 'testfile.ali'),
        file('test', 'testfile.log'),
        file('test', 'testfile.score'),
    );

    compare_ok(
        $goners[0],
        file('test', "$expected_outfile.ali"),
            "wrote expected Ali for: $expected_outfile"
    );

    compare_ok(
        $goners[1],
        file('test', "$expected_outfile.log"),



( run in 3.319 seconds using v1.01-cache-2.11-cpan-5c0b1e786e0 )