annotate Roary/t/Bio/Roary/QC/Report.t @ 0:c47a5f61bc9f draft

Uploaded
author dereeper
date Fri, 14 May 2021 20:27:06 +0000
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
1 #!/usr/bin/env perl
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
2 use strict;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
3 use warnings;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
4 use Data::Dumper;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
5 use Test::Files;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
6 use File::Which;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
7
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
8 BEGIN { unshift( @INC, './lib' ) }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
9
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
10 BEGIN {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
11 use Test::Most;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
12 use_ok('Bio::Roary::QC::Report');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
13 }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
14
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
15
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
16
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
17 my $kraken_data = [
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
18 [ 'assembly1', 'Clostridium', 'Clostridium difficile' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
19 [ 'assembly2', 'Escherichia', 'Escherichia coli' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
20 [ 'assembly3', 'Streptococcus', 'Streptococcus pneumoniae' ]
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
21 ];
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
22
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
23 ok(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
24 my $qc_report_obj = Bio::Roary::QC::Report->new(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
25 input_files => [],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
26 outfile => "kraken_report.csv",
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
27 _kraken_data => $kraken_data,
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
28 kraken_db => 't/data/kraken_test/',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
29 job_runner => "Local"
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
30 ),
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
31 'QC report object created with no input gff files'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
32 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
33
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
34 ok( $qc_report_obj->report, 'report generated' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
35 ok( -e 'kraken_report.csv', 'report file exists' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
36
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
37 compare_ok('kraken_report.csv',"t/data/exp_qc_report.csv", 'report file correct' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
38
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
39 unlink('kraken_report.csv');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
40
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
41
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
42 ok(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
43 $qc_report_obj = Bio::Roary::QC::Report->new(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
44 input_files => [ 't/data/query_1.gff', 't/data/query_2.gff' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
45 outfile => "kraken_report.csv",
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
46 job_runner => "Local",
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
47 kraken_db => 't/data/kraken_test/',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
48 verbose => 0,
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
49 ),
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
50 'QC report object created with data'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
51 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
52
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
53 is( $qc_report_obj->_tmp_directory . '/abc.fna', $qc_report_obj->_nuc_fasta_filename('abc.gff'), 'filename of nuc from gff' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
54 is(
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
55 'sed -n \'/##FASTA/,//p\' abc.gff | grep -v \'##FASTA\' > ' . $qc_report_obj->_tmp_directory . '/abc.fna',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
56 $qc_report_obj->_extract_nuc_fasta_cmd('abc.gff'),
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
57 'extract nuc command'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
58 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
59
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
60 ok( my $nuc_files = $qc_report_obj->_extract_nuc_files_from_all_gffs(), 'extract nuc files from gffs' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
61
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
62 is_deeply( [ $qc_report_obj->_tmp_directory . '/query_1.fna', $qc_report_obj->_tmp_directory . '/query_2.fna' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
63 $nuc_files, 'check extracted nuc files from gffs list' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
64
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
65 compare_ok( $qc_report_obj->_tmp_directory . '/query_1.fna' ,
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
66 't/data/expected_query_1.fna',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
67 'Check FASTA file 1 extracted as expected'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
68 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
69 compare_ok( $qc_report_obj->_tmp_directory . '/query_2.fna' ,
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
70 't/data/expected_query_2.fna',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
71 'Check FASTA file 2 extracted as expected'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
72 );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
73
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
74 SKIP:
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
75 {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
76
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
77 skip "kraken not installed", 2 unless ( which('kraken') );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
78 skip "kraken-report not installed", 2 unless ( which('kraken-report') );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
79
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
80 ok( my $kraken_files = $qc_report_obj->_run_kraken_on_nuc_files($nuc_files), 'run kraken over everything' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
81 is_deeply( [ $qc_report_obj->_tmp_directory . '/query_1.kraken', $qc_report_obj->_tmp_directory . '/query_2.kraken' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
82 $kraken_files, 'check kraken files are created from nuc files' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
83
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
84 ok(my $kraken_report_files = $qc_report_obj->_run_kraken_report_on_kraken_files( $kraken_files ), 'build reports');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
85 is_deeply( [ $qc_report_obj->_tmp_directory . '/query_1.kraken.report', $qc_report_obj->_tmp_directory . '/query_2.kraken.report' ],
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
86 $kraken_report_files, 'check kraken report files are created from kraken files' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
87
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
88 is_deeply([['query_1','Staphylococcus', 'Staphylococcus aureus'],['query_2','Staphylococcus', 'Staphylococcus aureus']],$qc_report_obj->_parse_kraken_reports($kraken_report_files),'check output report');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
89
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
90
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
91 ok( $qc_report_obj->report, 'report generated with real data' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
92 ok( -e 'kraken_report.csv', 'report file exists with real data' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
93 compare_ok('kraken_report.csv',"t/data/exp_qc_report_real.csv", 'report file correct' );
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
94 unlink('kraken_report.csv');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
95
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
96 }
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
97
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
98
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
99 done_testing();
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
100