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
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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"