annotate bwa-0.6.2/xa2multi.pl @ 0:dd1186b11b3b draft

Uploaded BWA
author ashvark
date Fri, 18 Jul 2014 07:55:14 -0400
parents
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
1 #!/usr/bin/perl -w
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
2
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
3 use strict;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
4 use warnings;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
5
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
6 while (<>) {
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
7 if (/\tXA:Z:(\S+)/) {
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
8 my $l = $1;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
9 print;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
10 my @t = split("\t");
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
11 while ($l =~ /([^,;]+),([-+]\d+),([^,]+),(\d+);/g) {
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
12 my $mchr = ($t[6] eq $1)? '=' : $t[6]; # FIXME: TLEN/ISIZE is not calculated!
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
13 my $seq = $t[9];
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
14 my $phred = $t[10];
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
15 # if alternative alignment has other orientation than primary,
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
16 # then print the reverse (complement) of sequence and phred string
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
17 if ((($t[1]&0x10)>0) xor ($2<0)) {
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
18 $seq = reverse $seq;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
19 $seq =~ tr/ACGTacgt/TGCAtgca/;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
20 $phred = reverse $phred;
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
21 }
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
22 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");
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
23 }
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
24 } else { print; }
dd1186b11b3b Uploaded BWA
ashvark
parents:
diff changeset
25 }