annotate bin/get.frag.size.pl @ 5:2ebca9da5e42 draft default tip

planemo upload
author bioitcore
date Thu, 07 Sep 2017 17:39:24 -0400
parents adc0f7765d85
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
1 #for the results from paired end
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
2 #The two inputs are the results from the two ends
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
3 use strict;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
4 my $read_size = $ARGV[2];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
5 open(input1, $ARGV[0]);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
6 open(input2, $ARGV[1]);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
7 open(output, ">$ARGV[0].fragsize");
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
8 #open(fusefile,">$ARGV[0].fuse");
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
9
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
10 #my $LongMarker="L";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
11 #my $ShortMarker="S";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
12
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
13 while(my $line1=<input1>)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
14 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
15 my $line2=<input2>;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
16 chomp($line1);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
17 chomp($line2);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
18 next if($line1=~/$\NM/ or $line2=~/$\NM/ or $line1=~/$\MT/ or $line2=~/$\MT/);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
19 my @array1 = split("\t",$line1);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
20 #my $read_size=length($array1[1]);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
21 my @array2 = split("\t",$line2);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
22 my $match1=$array1[3];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
23 my $match2=$array2[3];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
24 # my $marker=$LongMarker.$ShortMarker;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
25 my @sizes=();
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
26 #while($match1=~/\/(\S[^,]*\[[$marker]\])\S[^,]*:(\d*)[RF]/g)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
27 while($match1=~/\/(\S[^,]*\[\w+\])\S[^,]*:(\d*)[RF]/g)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
28 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
29 my $name=$1;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
30 my $posa=$2;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
31 #print $name,"\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
32
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
33 if($match2=~/\Q$name\E\S[^,]*:(\d*)[RF]/)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
34 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
35 #print "match\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
36 my $posb=$1;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
37 push @sizes, abs($posb-$posa)+$read_size;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
38
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
39 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
40
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
41 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
42 my %saw;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
43 @saw{@sizes}=();
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
44 my @keya= keys %saw;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
45 #print scalar(@keya),"\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
46 if(scalar(@keya)==1)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
47 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
48 print output $keya[0],"\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
49 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
50
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
51 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
52 #close(fusefile);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
53 close(output);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
54 close(input2);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
55 close(input1);