Mercurial > repos > portiahollyoak > temp
comparison scripts/pickClippedFastq.pl @ 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 | 28d1a6f8143f |
| children |
comparison
equal
deleted
inserted
replaced
| 20:6e02b9179a24 | 21:9672fe07a232 |
|---|---|
| 36 | 36 |
| 37 my $lower=$a[1]-15; | 37 my $lower=$a[1]-15; |
| 38 my $upper=$a[2]+15; | 38 my $upper=$a[2]+15; |
| 39 if (($lower > 0)&&($upper > 0)) | 39 if (($lower > 0)&&($upper > 0)) |
| 40 { | 40 { |
| 41 system("samtools view -hXf 0x2 $ARGV[0].sorted.bam $a[0]\:$lower\-$upper > temp.sam"); | 41 system("samtools view -hf 0x2 $ARGV[0].sorted.bam $a[0]\:$lower\-$upper > temp.sam"); |
| 42 | 42 |
| 43 open in,"temp.sam"; | 43 open in,"temp.sam"; |
| 44 my %pe1; | 44 my %pe1; |
| 45 my %pe2; | 45 my %pe2; |
| 46 while(<in>) | 46 while(<in>) |
| 47 { | 47 { |
| 48 chomp; | 48 chomp; |
| 49 my @f=split/\t/,$_,12; | 49 my @f=split/\t/,$_,12; |
| 50 ## read number 1 or 2 | 50 ## read number 1 or 2 |
| 51 my ($rnum)=$f[1]=~/(\d)$/; | 51 #my ($rnum)=$f[1]=~/(\d)$/; |
| 52 my $rnum=1; | |
| 53 if (($f[1] & 128) == 128) {$rnum=2;} | |
| 52 | 54 |
| 53 ## XT:A:* | 55 ## XT:A:* |
| 54 my ($xt)=$f[11]=~/XT:A:(.)/; | 56 my ($xt)=$f[11]=~/XT:A:(.)/; |
| 55 | 57 |
| 56 if ($f[5]=~/S/) { | 58 if ($f[5]=~/S/) { |
| 60 my $strand=""; | 62 my $strand=""; |
| 61 my $final=""; | 63 my $final=""; |
| 62 my $clipseq=""; | 64 my $clipseq=""; |
| 63 my @z=split(/M/, $f[5]); | 65 my @z=split(/M/, $f[5]); |
| 64 | 66 |
| 65 if (($f[5]=~/S$/)&&($f[1]=~/r/)) | 67 if (($f[5]=~/S$/)&&(($f[1] & 16) == 16)) |
| 66 { | 68 { |
| 67 my (@cigar_m)=$f[5]=~/(\d+)M/g; | 69 my (@cigar_m)=$f[5]=~/(\d+)M/g; |
| 68 my (@cigar_d)=$f[5]=~/(\d+)D/g; | 70 my (@cigar_d)=$f[5]=~/(\d+)D/g; |
| 69 my (@cigar_s)=$f[5]=~/(\d+)S/g; | 71 my (@cigar_s)=$f[5]=~/(\d+)S/g; |
| 70 my (@cigar_i)=$f[5]=~/(\d+)I/g; | 72 my (@cigar_i)=$f[5]=~/(\d+)I/g; |
| 77 if ($cliplen >= 15) { | 79 if ($cliplen >= 15) { |
| 78 $clipseq=substr($f[9], length($f[9])-$cliplen, $cliplen); | 80 $clipseq=substr($f[9], length($f[9])-$cliplen, $cliplen); |
| 79 } | 81 } |
| 80 } | 82 } |
| 81 | 83 |
| 82 elsif (($f[1]=~/R/)&&($z[0]=~/S/)) | 84 elsif ((($f[1] & 32) == 32)&&($z[0]=~/S/)) |
| 83 { | 85 { |
| 84 $coor=$f[3]; $strand="+"; | 86 $coor=$f[3]; $strand="+"; |
| 85 | 87 |
| 86 my (@clipped)=$z[0]=~/(\d+)S/g; | 88 my (@clipped)=$z[0]=~/(\d+)S/g; |
| 87 my $cliplen=sum(@clipped); | 89 my $cliplen=sum(@clipped); |
| 119 open in,"temp.sam"; | 121 open in,"temp.sam"; |
| 120 while(<in>) | 122 while(<in>) |
| 121 { | 123 { |
| 122 chomp; | 124 chomp; |
| 123 my @f=split/\t/,$_,12; | 125 my @f=split/\t/,$_,12; |
| 124 my ($rnum)=$f[1]=~/(\d)$/; | 126 #my ($rnum)=$f[1]=~/(\d)$/; |
| 127 my $rnum=1; | |
| 128 if (($f[1] & 128) == 128) {$rnum=2;} | |
| 125 my ($xt)=$f[11]=~/XT:A:(.)/; | 129 my ($xt)=$f[11]=~/XT:A:(.)/; |
| 126 | 130 |
| 127 if ($f[5]=~/S/) { | 131 if ($f[5]=~/S/) { |
| 128 | 132 |
| 129 my $coor=-10; | 133 my $coor=-10; |
| 130 my $strand=""; | 134 my $strand=""; |
| 131 my $final=""; | 135 my $final=""; |
| 132 my $clipseq=""; | 136 my $clipseq=""; |
| 133 my @z=split(/M/, $f[5]); | 137 my @z=split(/M/, $f[5]); |
| 134 | 138 |
| 135 if (($f[5]=~/S$/)&&($f[1]=~/r/)) | 139 if (($f[5]=~/S$/)&&(($f[1] & 16) == 16)) |
| 136 { | 140 { |
| 137 my (@cigar_m)=$f[5]=~/(\d+)M/g; | 141 my (@cigar_m)=$f[5]=~/(\d+)M/g; |
| 138 my (@cigar_d)=$f[5]=~/(\d+)D/g; | 142 my (@cigar_d)=$f[5]=~/(\d+)D/g; |
| 139 my (@cigar_s)=$f[5]=~/(\d+)S/g; | 143 my (@cigar_s)=$f[5]=~/(\d+)S/g; |
| 140 my (@cigar_i)=$f[5]=~/(\d+)I/g; | 144 my (@cigar_i)=$f[5]=~/(\d+)I/g; |
| 147 if ($cliplen >= 6) { | 151 if ($cliplen >= 6) { |
| 148 $clipseq=substr($f[9], length($f[9])-$cliplen, $cliplen); | 152 $clipseq=substr($f[9], length($f[9])-$cliplen, $cliplen); |
| 149 } | 153 } |
| 150 } | 154 } |
| 151 | 155 |
| 152 elsif (($f[1]=~/R/)&&($z[0]=~/S/)) | 156 elsif ((($f[1] & 32) == 32)&&($z[0]=~/S/)) |
| 153 { | 157 { |
| 154 $coor=$f[3]; $strand="+"; | 158 $coor=$f[3]; $strand="+"; |
| 155 | 159 |
| 156 my (@clipped)=$z[0]=~/(\d+)S/g; | 160 my (@clipped)=$z[0]=~/(\d+)S/g; |
| 157 my $cliplen=sum(@clipped); | 161 my $cliplen=sum(@clipped); |
