Mercurial > repos > portiahollyoak > temp
annotate scripts/pickUniqPos_MEM.pl.orig @ 21:9672fe07a232 draft default tip
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
author | mvdbeek |
---|---|
date | Mon, 05 Dec 2016 09:58:47 -0500 |
parents | |
children |
rev | line source |
---|---|
21
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
1 #!/share/bin/perl |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
2 use Bio::Seq; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
3 use List::Util qw(sum); |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
4 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
5 die "perl $0 <sam>\n" if @ARGV<1; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
6 open in,$ARGV[0]; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
7 my %pe; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
8 while(<in>) |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
9 { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
10 chomp; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
11 my @f=split/\t/,$_,12; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
12 ## read number 1 or 2 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
13 my ($rnum)=$f[1]=~/(\d)$/; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
14 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
15 ## XT:A:* |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
16 my $xt=""; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
17 my @a=split(/\s+/, $_); |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
18 my $as=0; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
19 my $xs=0; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
20 for my $i (11..$#a) { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
21 if ($a[$i] =~ /^AS:i:/) { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
22 $a[$i] =~ s/AS:i://; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
23 $as=$a[$i]; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
24 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
25 elsif ($a[$i] =~ /^XS:i:/) { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
26 $a[$i] =~ s/XS:i://; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
27 $xs=$a[$i]; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
28 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
29 if (($xs > 0) && ($as-$xs <= $ARGV[1])) {$xt="R";} |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
30 elsif ($as > 0) {$xt="U";} |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
31 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
32 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
33 my $strand="+"; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
34 ## revcomp |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
35 if($f[1]=~/r/) |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
36 { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
37 my $seq=Bio::Seq->new(-seq=>$f[9], -alphabet => 'dna'); |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
38 $f[9]=$seq->revcom->seq; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
39 $strand="-"; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
40 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
41 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
42 ## parse CIGAR |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
43 if($xt eq "U") |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
44 { |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
45 # CIGAR |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
46 my (@cigar_m)=$f[5]=~/(\d+)M/g; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
47 my (@cigar_d)=$f[5]=~/(\d+)D/g; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
48 my (@cigar_s)=$f[5]=~/(\d+)S/g; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
49 my (@cigar_i)=$f[5]=~/(\d+)I/g; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
50 my $aln_ln=sum(@cigar_m,@cigar_d); |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
51 |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
52 print $f[2],"\t",$f[3]-1,"\t",$f[3]-1+$aln_ln,"\t$f[0]/$rnum\t",$f[9],"\t",$strand,"\n"; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
53 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
54 } |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
55 close in; |
9672fe07a232
planemo upload for repository https://github.com/portiahollyoak/Tools commit 0fea84d05f8976b8360a8b4943ecb01b87e3ade0-dirty
mvdbeek
parents:
diff
changeset
|
56 |