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