forked from Sunhh/NGS_data_processing
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathsolQ2phredQ.pl
executable file
·50 lines (43 loc) · 1.21 KB
/
solQ2phredQ.pl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#!/usr/bin/perl
use warnings;
use strict;
-t and !@ARGV and die "perl $0 in_sol.fq\n";
# rawS=|>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|
# newS=|# !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]
#my %h;
#my @rawS = ();
#my @newS = ();
#for my $qual_num (-2 .. 70) {
# my $acsii_sol = chr( $qual_num + 64 );
# my $acsii_san = chr( $qual_num + 33 );
# $qual_num <= 0 and $acsii_san = chr( 2 + 33 );
# $h{$acsii_sol} = $acsii_san;
# push(@rawS, $acsii_sol);
# push(@newS, $acsii_san);
#}
#print "rawS=|",join("",@rawS),"\nnewS=|",join("",@newS),"\n";
#exit 1;
my $tn=0;
while (my $rdID=<>) {
$tn % 1000000 == 1 and &tmsg("$tn lines.\n");
$rdID =~ m/^@/ or die "Format wrong:$_\n";
my $rdSeq=<>; <>;
my $rdQua=<>;
chomp($rdQua);
# my $newQua = &sol2san(\$rdQua);
$rdQua =~ tr!>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \\ ]^_`abcdefghijklmnopqrstuvwxyz \{ |}~!#####$%&'()*+,-./0123456789:;< \= >?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[ \\ ]^_!;
print STDOUT $rdID . ${rdSeq} . "+\n" . $rdQua . "\n";
$tn ++;
}
sub tmsg {
my $tt=scalar(localtime());
warn join("", "$tt ", @_);
}
#sub sol2san {
# my $qR=shift(@_);
# my $back = '';
# while ($$qR =~ /(.)/g) {
# $back .= $h{$1};
# }
# return $back;
#}