annotate Roary/t/Bio/Roary/ReformatInputGFFs.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 File::Path qw(remove_tree);
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
6 use Test::Files;
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 $ENV{PATH} .= ":./bin";
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
10
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
11 BEGIN {
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
12 use Test::Most;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
13 use_ok('Bio::Roary::ReformatInputGFFs');
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 $obj;
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
18 remove_tree('fixed_input_files');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
19 ok($obj = Bio::Roary::ReformatInputGFFs->new(gff_files => ['t/data/reformat_input_gffs/query_1.gff']), 'initialise with one input gff');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
20 ok($obj->fix_duplicate_gene_ids, 'fix duplicates with one input gff');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
21 is_deeply($obj->fixed_gff_files, ['t/data/reformat_input_gffs/query_1.gff'] ,'list of gff files with one input gff, nothing should change');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
22 ok(!( -d 'fixed_input_files'), 'Directory shouldnt exist because there arent any fixed input files');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
23
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
24
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
25 ok($obj = Bio::Roary::ReformatInputGFFs->new(gff_files => ['t/data/reformat_input_gffs/query_1.gff', 't/data/reformat_input_gffs/query_2.gff',]), 'initialise with 2 input gffs');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
26 ok(!( -d 'fixed_input_files'), 'Directory shouldnt exist before running');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
27 is_deeply($obj->_get_ids_for_gff_file('t/data/reformat_input_gffs/query_1.gff'),[
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
28 '1_1',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
29 'abc_00002',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
30 'abc_00003',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
31 'abc_00004',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
32 '1_2'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
33 ],'extract ids');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
34 is_deeply($obj->_get_ids_for_gff_file('t/data/reformat_input_gffs/query_2.gff'),[
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
35 '1_1',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
36 'abc_00002',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
37 'abc_00003',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
38 'abc_00004',
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
39 '1_2'
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
40 ],'extract ids');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
41 ok($obj->fix_duplicate_gene_ids, 'fix duplicates with 2 input gffs');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
42 ok(( -d 'fixed_input_files'), 'Directory should exist because there is one gff thats fixed');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
43 is_deeply($obj->fixed_gff_files, ['t/data/reformat_input_gffs/query_1.gff','fixed_input_files/query_2.gff' ] ,'list of gff files one in the fixed directory');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
44 ok(( -e 'fixed_input_files/query_2.gff'), 'fixed file should exist');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
45 compare_ok('fixed_input_files/query_2.gff', 't/data/reformat_input_gffs/expected_fixed_query_2.gff', 'fixed file should have expected changes');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
46 remove_tree('fixed_input_files');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
47
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
48 ok($obj = Bio::Roary::ReformatInputGFFs->new(gff_files => ['t/data/reformat_input_gffs/query_1.gff', 't/data/reformat_input_gffs/query_2.gff', 't/data/reformat_input_gffs/query_3.gff']), 'initialise with 3 input gffs, 2 identical duplicates');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
49 ok(!( -d 'fixed_input_files'), 'Directory shouldnt exist before running');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
50 ok($obj->fix_duplicate_gene_ids, 'fix duplicates with 3 input gffs');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
51 ok(( -d 'fixed_input_files'), 'Directory should exist because there are 2 gffs thats fixed');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
52 is_deeply($obj->fixed_gff_files, ['t/data/reformat_input_gffs/query_1.gff','fixed_input_files/query_2.gff' ] ,'list of gff files 2 in the fixed directory');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
53 ok(( -e 'fixed_input_files/query_2.gff'), 'fixed file should exist');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
54 ok(!( -e 'fixed_input_files/query_3.gff'), 'fixed file should exist');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
55 compare_ok('fixed_input_files/query_2.gff','t/data/reformat_input_gffs/expected_fixed_query_2.gff', 'fixed file should have expected changes');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
56 remove_tree('fixed_input_files');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
57
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
58
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
59 ok($obj = Bio::Roary::ReformatInputGFFs->new(gff_files => ['t/data/reformat_input_gffs/real_1.gff']), 'initialise with 1 gff that has shown to have a bug');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
60 ok(my $fixed_file = $obj->_add_suffix_to_gene_ids_and_return_new_file('t/data/reformat_input_gffs/real_1.gff', 'id__'), 'fix duplicates');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
61 ok(( -e 'fixed_input_files/real_1.gff'), 'fixed file should exist');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
62 compare_ok('fixed_input_files/real_1.gff', 't/data/reformat_input_gffs/expected_real_1.gff', 'fixed file should have expected changes');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
63 remove_tree('fixed_input_files');
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
64
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
65
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
66 done_testing();
c47a5f61bc9f Uploaded
dereeper
parents:
diff changeset
67