Mercurial > repos > dereeper > roary_plots
comparison Roary/t/Bio/Roary/AssemblyStatistics.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 | |
7 BEGIN { unshift( @INC, './lib' ) } | |
8 | |
9 BEGIN { | |
10 use Test::Most; | |
11 use_ok('Bio::Roary::AssemblyStatistics'); | |
12 } | |
13 | |
14 my $obj; | |
15 ok( $obj = Bio::Roary::AssemblyStatistics->new( spreadsheet => 't/data/input_block_spreadsheet.csv' ), 'initialise spreadsheet' ); | |
16 | |
17 my @genes = sort keys %{ $obj->_genes_to_rows }; | |
18 is_deeply( | |
19 \@genes, | |
20 [ | |
21 'SBOV29371', 'SBOV38871', 'SBOV43201', 'STY3593', 'STY4162', 'bcsC_1', 'betC_2', 'comM_2', | |
22 'dmsA4_1', 'dosC', 'dsbA_3', 'fadH_1', 'fimD_3', 'fliB_2', 'fliF', 'ftsN', | |
23 'gatY_1', 'glfT2', 'group_1000', 'group_1001', 'group_1004', 'group_1006', 'group_1009', 'group_220', | |
24 'group_277', 'group_281', 'group_283', 'group_284', 'group_288', 'hemD', 'hsrA_2', 'icsA', | |
25 'kdpD', 'ligB_1', 'marT_1', 'nepI', 'rffH', 'rpoS', 'selA_1', 'speC_3', | |
26 'sptP', 'srgB', 'stp', 'tmcA', 'tub', 'yadA', 'ybbW_1', 'yhaO_2', | |
27 'yicJ_1', 'yigZ' | |
28 ], | |
29 'all gene rows available' | |
30 ); | |
31 | |
32 is_deeply( | |
33 $obj->ordered_genes, | |
34 [ | |
35 'dmsA4_1', 'group_1000', 'group_1001', 'SBOV43201', 'dosC', 'stp', 'fliB_2', 'fliF', | |
36 'dsbA_3', 'srgB', 'fimD_3', 'betC_2', 'tmcA', 'tub', 'rffH', 'hemD', | |
37 'group_1006', 'STY3593', 'group_1004', 'yigZ', 'group_220', 'glfT2', 'kdpD', 'speC_3', | |
38 'ybbW_1', 'sptP', 'SBOV29371', 'rpoS', 'fadH_1', 'yhaO_2', 'bcsC_1', 'STY4162', | |
39 'yadA', 'ligB_1', 'icsA', 'marT_1', 'selA_1', 'nepI', 'gatY_1', 'SBOV38871', | |
40 'group_288', 'hsrA_2', 'group_281', 'group_283', 'group_284', 'yicJ_1', 'ftsN', 'group_277', | |
41 'group_1009', 'comM_2' | |
42 ], | |
43 'ordered genes' | |
44 ); | |
45 | |
46 is_deeply( | |
47 $obj->sample_names_to_column_index, | |
48 { | |
49 'threeblocks' => 18, | |
50 'nocontigs' => 17, | |
51 'contigwithgaps' => 16, | |
52 'oneblock' => 14, | |
53 'threeblocksinversion' => 19, | |
54 'oneblockrev' => 15 | |
55 }, | |
56 'sample names to column index' | |
57 ); | |
58 | |
59 is_deeply( $obj->_sample_statistics('oneblock'), { num_blocks => 1, largest_block_size => 50 }, 'one block' ); | |
60 is_deeply( $obj->_sample_statistics('oneblockrev'), { num_blocks => 1, largest_block_size => 50 }, 'one block reversed' ); | |
61 is_deeply( | |
62 $obj->_sample_statistics('contigwithgaps'), | |
63 { num_blocks => 1, largest_block_size => 50 }, | |
64 'one block where there are gaps everywhere' | |
65 ); | |
66 is_deeply( $obj->_sample_statistics('nocontigs'), { num_blocks => 50, largest_block_size => 1 }, 'no contiguous blocks' ); | |
67 is_deeply( $obj->_sample_statistics('threeblocks'), { num_blocks => 3, largest_block_size => 21 }, 'three blocks' ); | |
68 is_deeply( | |
69 $obj->_sample_statistics('threeblocksinversion'), | |
70 { num_blocks => 3, largest_block_size => 20 }, | |
71 'three blocks with an inversion in the middle' | |
72 ); | |
73 is_deeply( $obj->gene_category_count, { core => 50 }, 'Gene category counts' ); | |
74 | |
75 # t/data/gene_category_count.csv | |
76 ok( $obj = Bio::Roary::AssemblyStatistics->new( spreadsheet => 't/data/gene_category_count.csv' ), | |
77 'initialise spreadsheet with variable numbers of genes in samples' ); | |
78 is_deeply( | |
79 $obj->gene_category_count, | |
80 { | |
81 'core' => 1, | |
82 'cloud' => 4, | |
83 'soft_core' => 1, | |
84 'shell' => 24 | |
85 }, | |
86 'Categories as expected' | |
87 ); | |
88 ok($obj->create_summary_output, 'create output file'); | |
89 compare_ok('summary_statistics.txt', 't/data/expected_summary_statistics.txt', 'summary statistics as expected'); | |
90 | |
91 | |
92 # t/data/gene_category_count.csv | |
93 ok( $obj = Bio::Roary::AssemblyStatistics->new( spreadsheet => 't/data/gene_category_count.csv', core_definition => 0.9667 ), | |
94 'initialise spreadsheet with core of 96.67%' ); | |
95 is_deeply( | |
96 $obj->gene_category_count, | |
97 { | |
98 'core' => 1, | |
99 'soft_core' => 1, | |
100 'cloud' => 4, | |
101 'shell' => 24 | |
102 }, | |
103 'Categories as expected with cd of 96.67%' | |
104 ); | |
105 | |
106 # t/data/gene_category_count.csv | |
107 ok( $obj = Bio::Roary::AssemblyStatistics->new( spreadsheet => 't/data/gene_category_count.csv', core_definition => 0.9666 ), | |
108 'initialise spreadsheet with core of 96.66%' ); | |
109 is_deeply( | |
110 $obj->gene_category_count, | |
111 { | |
112 'core' => 2, | |
113 'cloud' => 4, | |
114 'shell' => 24 | |
115 }, | |
116 'Categories as expected with cd of 96.66%' | |
117 ); | |
118 | |
119 | |
120 unlink('summary_statistics.txt'); | |
121 done_testing(); |