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

Uploaded BWA
author ashvark
date Fri, 18 Jul 2014 07:55:14 -0400
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bwa-0.6.2/xa2multi.pl	Fri Jul 18 07:55:14 2014 -0400
@@ -0,0 +1,25 @@
+#!/usr/bin/perl -w
+
+use strict;
+use warnings;
+
+while (<>) {
+	if (/\tXA:Z:(\S+)/) {
+		my $l = $1;
+		print;
+		my @t = split("\t");
+		while ($l =~ /([^,;]+),([-+]\d+),([^,]+),(\d+);/g) {
+			my $mchr = ($t[6] eq $1)? '=' : $t[6]; # FIXME: TLEN/ISIZE is not calculated!
+			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; }
+}