23
23
my $string_quals = "10 20 30 40 50 40 30 20 10";
24
24
print("Quals are $string_quals\n") if($DEBUG);
25
my $qualobj = Bio::Seq::PrimaryQual->new(
26
'-qual' => $string_quals,
27
'-id' => 'QualityFragment-12',
28
'-accession_number' => 'X78121',
31
is($qualobj->display_id, 'QualityFragment-12');
32
is($qualobj->accession_number, 'X78121');
34
my @q2 = split/ /,$string_quals;
35
$qualobj = Bio::Seq::PrimaryQual->new
37
'-primary_id' => 'chads primary_id',
38
'-desc' => 'chads desc',
39
'-accession_number' => 'chads accession_number',
41
'-header' => 'chads header'
44
is($qualobj->primary_id, 'chads primary_id');
45
my $rqual = $qualobj->qual();
46
is(ref($rqual),"ARRAY");
25
ok my $qualobj = Bio::Seq::PrimaryQual->new(
26
-qual => $string_quals,
27
-id => 'QualityFragment-12',
28
-accession_number => 'X78121',
30
is $qualobj->display_id, 'QualityFragment-12';
31
is $qualobj->accession_number, 'X78121';
33
my @q2 = split / /, $string_quals;
34
$qualobj = Bio::Seq::PrimaryQual->new(
36
-primary_id => 'chads primary_id',
37
-desc => 'chads desc',
38
-accession_number => 'chads accession_number',
40
-header => 'chads header'
43
is $qualobj->primary_id, 'chads primary_id';
44
isa_ok $qualobj->qual(), 'ARRAY';
48
46
my $newqualstring = "50 90 1000 20 12 0 0";
50
$qualobj->qual($newqualstring);
51
my $retrieved_quality = $qualobj->qual();
52
my $retrieved_quality_string = join(' ', @$retrieved_quality);
53
is($retrieved_quality_string,$newqualstring);
55
my @newqualarray = split/ /,$newqualstring;
56
$qualobj->qual(\@newqualarray);
57
$retrieved_quality = $qualobj->qual();
58
$retrieved_quality_string = join(' ',@$retrieved_quality);
59
is($retrieved_quality_string,$newqualstring);
62
$qualobj->qual("chad");
64
like($@, qr/not look healthy/);
66
eval { $qualobj->qual(""); };
69
eval { $qualobj->qual(" 4"); };
72
$qualobj->qual("4 10");
74
is($qualobj->length(),2 );
48
ok $qualobj->qual($newqualstring);
49
is join(' ', @{$qualobj->qual()}), $newqualstring;
51
my @newqualarray = split / /,$newqualstring;
52
ok $qualobj->qual(\@newqualarray);
53
is join(' ', @{$qualobj->qual()}), $newqualstring;
55
is $qualobj->validate_qual($string_quals ), 1;
56
is $qualobj->validate_qual("" ), 1;
57
is $qualobj->validate_qual("0" ), 1;
58
is $qualobj->validate_qual(undef ), 1;
59
is $qualobj->validate_qual(" " ), 1;
60
is $qualobj->validate_qual("10 20 30 30" ), 1;
61
is $qualobj->validate_qual(" 20 9 5 " ), 1;
62
is $qualobj->validate_qual("+1 9.3 50e-1"), 1;
63
is $qualobj->validate_qual(" 4" ), 1;
64
is $qualobj->validate_qual("chad" ), 0;
65
is $qualobj->validate_qual("10 one" ), 0;
67
ok $qualobj->qual("10 20 30 30");
68
ok $qualobj->qual("+1 9.3 50e-1");
69
throws_ok { $qualobj->qual("chad"); } qr/.+/;
70
throws_ok { $qualobj->validate_qual("chad", 1) } qr/.+/;
72
ok $qualobj->qual("4 10");
73
is $qualobj->length(), 2;
76
75
$qualobj->qual("10 20 30 40 50 40 30 20 10");
77
my @subquals = @{$qualobj->subqual(3,6);};
79
# chad, note to self, evaluate border conditions
80
is ("30 20 10", join(' ',@{$qualobj->subqual(7,9)}));
83
my @false_comparator = qw(30 40 70 40);
84
my @true_comparator = qw(30 40 50 40);
85
ok(!&compare_arrays(\@subquals,\@true_comparator));
87
eval { $qualobj->subqual(-1,6); };
89
eval { $qualobj->subqual(1,6); };
91
eval { $qualobj->subqual(1,9); };
93
eval { $qualobj->subqual(9,1); };
97
is($qualobj->display_id(), "chads id");
98
$qualobj->display_id("chads new display_id");
99
is($qualobj->display_id(), "chads new display_id");
101
is($qualobj->accession_number(), "chads accession_number");
102
$qualobj->accession_number("chads new accession_number");
103
is($qualobj->accession_number(), "chads new accession_number");
104
is($qualobj->primary_id(), "chads primary_id");
105
$qualobj->primary_id("chads new primary_id");
106
is($qualobj->primary_id(), "chads new primary_id");
108
is($qualobj->desc(), "chads desc");
109
$qualobj->desc("chads new desc");
110
is($qualobj->desc(), "chads new desc");
111
is($qualobj->display_id(), "chads new display_id");
112
$qualobj->display_id("chads new id");
113
is($qualobj->display_id(), "chads new id");
115
is($qualobj->header(), "chads header");
117
my $in_qual = Bio::SeqIO->new(-file => test_input_file('qualfile.qual') ,
119
'-verbose' => $verbose);
121
my $pq = $in_qual->next_seq();
122
is($pq->qual()->[99], '39'); # spot check boundary
123
is($pq->qual()->[100], '39'); # spot check boundary
125
my $out_qual = Bio::SeqIO->new('-file' => ">".test_output_file(),
127
'-verbose' => $verbose);
128
$out_qual->write_seq(-source => $pq);
130
my $swq545 = Bio::Seq::Quality->new ( -seq => "ATA",
133
$out_qual->write_seq(-source => $swq545);
135
$in_qual = Bio::SeqIO->new('-file' => test_input_file('qualfile.qual') ,
137
'-verbose' => $verbose);
139
my $out_qual2 = Bio::SeqIO->new('-file' => ">".test_output_file(),
141
'-verbose' => $verbose);
76
ok my @subquals = @{$qualobj->subqual(3,6);};
78
is "30 20 10", join(' ',@{$qualobj->subqual(7,9)});
80
throws_ok { $qualobj->subqual(-1,6); } qr/EX/;
81
ok $qualobj->subqual(1,6);
82
ok $qualobj->subqual(1,9);
83
throws_ok { $qualobj->subqual(9,1); } qr/EX/;
86
is $qualobj->display_id(), "chads id";
87
is $qualobj->display_id("chads new display_id"), "chads new display_id";
88
is $qualobj->display_id(), "chads new display_id";
90
is $qualobj->accession_number(), "chads accession_number";
91
is $qualobj->accession_number("chads new accession_number"), "chads new accession_number";
92
is $qualobj->accession_number(), "chads new accession_number";
93
is $qualobj->primary_id(), "chads primary_id";
94
is $qualobj->primary_id("chads new primary_id"), "chads new primary_id";
95
is $qualobj->primary_id(), "chads new primary_id";
97
is $qualobj->desc(), "chads desc";
98
is $qualobj->desc("chads new desc"), "chads new desc";
99
is $qualobj->desc(), "chads new desc";
100
is $qualobj->display_id(), "chads new display_id";
101
is $qualobj->display_id("chads new id"), ("chads new id");
102
is $qualobj->display_id(), "chads new id";
104
is $qualobj->header(), "chads header";
106
ok my $in_qual = Bio::SeqIO->new(
107
-file => test_input_file('qualfile.qual'),
109
-verbose => $verbose,
111
ok my $pq = $in_qual->next_seq();
112
is $pq->qual()->[99] , '39'; # spot check boundary
113
is $pq->qual()->[100], '39'; # spot check boundary
115
ok my $out_qual = Bio::SeqIO->new(
116
-file => ">".test_output_file(),
118
-verbose => $verbose,
120
ok $out_qual->write_seq(-source => $pq);
122
ok my $swq545 = Bio::Seq::Quality->new (
126
ok $out_qual->write_seq(-source => $swq545);
128
ok $in_qual = Bio::SeqIO->new(
129
-file => test_input_file('qualfile.qual'),
131
-verbose => $verbose,
134
ok my $out_qual2 = Bio::SeqIO->new(
135
-file => ">".test_output_file(),
137
-verbose => $verbose,
143
140
while ( my $batch_qual = $in_qual->next_seq() ) {
144
$out_qual2->write_seq(-source => $batch_qual);
150
print("I saw these in qualfile.qual:\n") ;
151
while ( my $qual = $in_qual->next_seq() ) {
152
# ::dumpValue($qual);
153
print($qual->display_id()."\n");
154
@quals = @{$qual->qual()};
155
print("(".scalar(@quals).") quality values.\n");
160
# dumpValue($qualobj);
164
return 1 if (scalar(@{$a1}) != scalar(@{$a2}));
165
my ($v1,$v2,$diff,$curr);
166
for ($curr=0;$curr<scalar(@{$a1});$curr++){
167
return 1 if ($a1->[$curr] ne $a2->[$curr]);
141
ok $out_qual2->write_seq(-source => $batch_qual);