Permalink
Browse files

Bugfix: reverse (complement) sequence and phred string if alternative…

… alignment has different orientation than primary alignment
  • Loading branch information...
Tobias Marschall Tobias Marschall
Tobias Marschall authored and Tobias Marschall committed Sep 7, 2011
1 parent 4f7734e commit 3536e2113ceef0c4cd5e7b11e89f76dc7043190c
Showing with 10 additions and 1 deletion.
  1. +10 −1 xa2multi.pl
View
@@ -10,7 +10,16 @@
my @t = split("\t");
while ($l =~ /([^,;]+),([-+]\d+),([^,]+),(\d+);/g) {
my $mchr = ($t[6] eq $1)? '=' : $t[6]; # FIXME: TLEN/ISIZE is not calculated!
- print(join("\t", $t[0], 0x100|($t[1]&0x6e9)|($2<0?0x10:0), $1, abs($2), 0, $3, @t[6..7], 0, @t[9..10], "NM:i:$4"), "\n");
+ my $seq = $t[9];
+ my $phred = $t[10];
+ # if alternative alignment has other orientation than primary,
+ # then print the reverse (complement) of sequence and phred string
+ if ((($t[1]&0x10)>0) xor ($2<0)) {
+ $seq = reverse $seq;
+ $seq =~ tr/ACGTacgt/TGCAtgca/;
+ $phred = reverse $phred;
+ }
+ print(join("\t", $t[0], 0x100|($t[1]&0x6e9)|($2<0?0x10:0), $1, abs($2), 0, $3, @t[6..7], 0, $seq, $phred, "NM:i:$4"), "\n");
}
} else { print; }
}

0 comments on commit 3536e21

Please sign in to comment.