Merge branch 'master' of https://github.com/solgenomics/sgn
[sgn.git] / t / unit / CXGN / Graphics / vigsgraph.t
blob6ee45989bf07b7dd4137b9665ceb445604ff6cf5
2 use strict;
4 use Test::More qw | no_plan |;
5 use Data::Dumper;
6 use CXGN::Graphics::VigsGraph;
8 my $vg = CXGN::Graphics::VigsGraph->new();
10 # 1. check VigsGraph is defined
11 ok( defined($vg), "VigsGraphs defined test" );
12 # 2. check VigsGraph object
13 ok( $vg->isa('CXGN::Graphics::VigsGraph'), "VigsGraph object test" );
15 # get bowtie2 test file
16 $vg->bwafile('t/data/vigstool/bt2_test');
18 $vg->query_seq(<<SEQ);
19 ATGGAGGAAGTAACCAATGTCATGGAGTATGAGGCCATTGCCAAGAAAAAGTTGCCAAAGATGGTTTTTGACTACTATGCCTCTGGTGCTGAAGACCAGTGGACTCTGGCTGAGAACAGAAATGCCTTCTCAAGAATTCTGTTTAGGCCCCGTATTCTAATTGATGTGAGCAAAATTGACATGAGCACCACTGTGCTAGGATTCAAGATTTCAATGCCTATCATGATTGCACCAACAGCCATGCAGAAAATGGCACATCCTGAAGGGGAGTATGCTACAGCAAGAGCAGCATCAGCAGCAGGGACAATCATGACATTGTCATCTTGGGCCACTTCCAGTGTCGAGGAGGTTGCTTCAACAGGACCTGGCATCCGTTTCTTCCAGCTTTATGTCTACAAGGACAGGAATGTTGTTGCTCAGCTTGTGCGAAGAGCTGAAAGAGCAGGTTTCAAGGCTATAGCCCTCACTGTTGATACCCCAAGGCTGGGACGTAGAGAAGCTGATATTAAGAACAGATTTGTTTTGCCACCATTTTTGACGTTGAAAAACTTTGAAGGATTGGACCTTGGCAAGATGGACCAAGCAAGTGACTCTGGATTAGCTTCATATGTTGCTGGTCAAATTGATCGCACTCTGAGTTGGAAGGATGTTCAGTGGCTCCAGACTATCACTTCATTGCCAATCCTGGTAAAGGGTGTACTTACGGCTGAGGATGCTAGGCTTGCAGTTCAGGCTGGAGCAGCTGGTATCATTGTGTCAAACCATGGTGCTCGCCAACTCGATTATGTCCCTTCGACAATCATGGCTCTTGAAGAGGTTGTGAAAGCTGCACAAGGCCGGATTCCTGTATTCTTGGATGGAGGTGTCCGCCGTGGAACAGATGTCTTCAAAGCTTTGGCACTTGGAGCTTCAGGCATTTTCATTGGAAGGCCAGTAGTTTTCTCATTAGCTGCTGAAGGAGAAGCTGGAATCAAAAAAGTGTTGCAAATGTTGCGCGATGAGTTTGAGCTAACTATGGCATTGAGTGGCTGCCGCTCACTGAACGAGATTACCCGCAACCATATTGTCACTGAGTGGGATGCTCCACGTGCTGCTCTTCCAGCCCCAAGGTTGTGA
20 SEQ
22 # 3. check parse bowtie2 file
23 ok( ref($vg->parse()), "parse result test");
25 my $matches = $vg->matches();
27 # 4. check matches found in parse (number of subjects)
28 is(scalar(keys(%$matches)), 7, "all subjects count");
30 #$vg->seq_window_size(200);
31 ##my @seqs = $vg->get_best_vigs_seqs(1);
33 #my ($best, $regions) = $vg->get_best_coverage();
34 my $coverage = $vg->get_best_coverage();
35 # 5. check coverage value
36 is($coverage, 2, "coverage test (target subjects)");
38 # check target_graph
39 my @targets = $vg->target_graph(1);
41 # 6. check a mapped target position with coverage=1 
42 is($targets[100], 1, "targets, test a one target position");
43 # 7. check a not mapped target position with coverage=1 
44 is($targets[1000], undef, "targets, test a not covered region");
46 @targets = $vg->target_graph(2);
48 # 8. check a mapped position with 2 targets and coverage=2 
49 is($targets[500], 2, "targets, test a two target position");
50 # 9. check a mapped position with 1 target and coverage=2 
51 is($targets[200], 1, "targets, test a one target position with a coverage velue=2");
53 # check off_target_graph
54 my @off_targets = $vg->off_target_graph(2);
55 #print STDERR join ",", @off_targets;
57 # 10. check a position without off_targets
58 is($off_targets[100], undef, "off targets, in a position without off targets");
59 # 11. check a position with 3 off targets
60 is($off_targets[360], 3, "off targets, in a position with 3 off targets");
62 @off_targets = $vg->off_target_graph(1);
63 # 12. check a position with off targets and coverage=1
64 is($off_targets[360], 4, "off targets, in a position with coverage=1");
66 #print STDERR "\n";
68 # check longest_vigs_sequence
69 my @regions = $vg ->longest_vigs_sequence(2,1116);
70 #print Dumper(\@regions);
72 # 13. check best region start
73 is($regions[4], 377, "best region start coord test");
74 # 14. check best region end
75 is($regions[5], 676, "best region end coord test");
77 # 15. check score value
78 is($regions[1], 366, "score test");
80 # only one target match
81 @regions = $vg ->longest_vigs_sequence(3,1116);
83 # 16. check best region start when coverage=3
84 is($regions[4], 587, "three target best region start test");
85 # 17. check best region end when coverage=3
86 is($regions[5], 886, "three target best region end test");