Mercurial > repos > ldelisle > revertr2orientationinbam
annotate revertR2orientationInBam.sh @ 1:2c86ad672f52 draft default tip
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
author | ldelisle |
---|---|
date | Wed, 19 Oct 2022 08:34:43 +0000 |
parents | |
children |
rev | line source |
---|---|
1
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
1 #!/bin/bash |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
2 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
3 inputBam=$1 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
4 outputBam=$2 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
5 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
6 samtools view -h "$inputBam" | awk -v OFS="\t" '{ |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
7 # Process only non header lines |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
8 if(!($1~/^@/)){ |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
9 # SAM flag is field 2 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
10 n=$2 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
11 # Change only the second in pair flag is 128 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
12 d=128 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
13 q=(n-n%d)/d+(n<0) |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
14 if(q%2==1){ |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
15 # Evaluate the strand reverse strand flag is 16 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
16 d=16 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
17 q=(n-n%d)/d+(n<0) |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
18 if(q%2==1){ |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
19 # It is reverse it is now forward |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
20 $2-=16 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
21 }else{ |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
22 # It is forward it is now reverse |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
23 $2+=16 |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
24 } |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
25 } |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
26 } |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
27 print |
2c86ad672f52
planemo upload commit 89aa8abdc88aa922cab8d9c5f17078ba1e388339-dirty
ldelisle
parents:
diff
changeset
|
28 }' | samtools view -b - > "$outputBam" |