annotate bin/ApplyCutoff.jie.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 #apply our cuttoff hash table on the IR calculated by Jie
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
2 #Modified from Martin's code
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
3 use strict;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
4
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
5 use Cwd;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
6 my $PROG = $0;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
7 my $CUR_DIR = Cwd::abs_path(Cwd::cwd());
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
8 my $PROG_ABS_PATH = Cwd::abs_path($PROG);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
9 my $SrcFolder=`dirname $PROG_ABS_PATH`;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
10 chomp($SrcFolder);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
11
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
12 my %cutoff;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
13 my @Exlen;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
14
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
15 my $cutoff_level=$ARGV[1];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
16 my $JunctionCut = $ARGV[2];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
17 my $noirm = $ARGV[3];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
18
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
19 my $cutoff_level_index=7;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
20
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
21 $cutoff_level_index=8 if $cutoff_level eq "H";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
22 $cutoff_level_index=6 if $cutoff_level eq "L";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
23
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
24 open(CUT,"$SrcFolder/../cutoffs/cutoff.pair.0".$cutoff_level_index.".txt") || die "cutoff file not found $!\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
25
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
26 while(<CUT>){
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
27 chomp;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
28 my @a=split(/\t/,$_);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
29 push @Exlen,$a[0];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
30 $cutoff{$a[0]}=$a[1];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
31 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
32 close(CUT);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
33
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
34 open(IN,$ARGV[0]);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
35
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
36 while(<IN>){
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
37 chomp;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
38 my @a=split(/\t/,$_);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
39 my $Ez='Ez=yes';
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
40 my $print=$_;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
41 if($a[0]=~m/#/g){next}
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
42 my $eventid=substr($a[0],0,2);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
43 my $bir =$a[2];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
44 $bir =$a[1] if($noirm eq "noirm");
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
45 my $j12 = $a[8];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
46 my $j23 = $a[9];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
47 my $j13 = $a[10];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
48 my $cov1=$a[11];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
49 my $cov2=$a[12];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
50 my $cov3=$a[13];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
51 my $siz1=$a[15];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
52 my $siz2=$a[16];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
53 my $siz3=$a[17];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
54
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
55
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
56 my $stat1='exon1='.cutoff($siz1,$cov1,\@Exlen,%cutoff);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
57 my $stat2='exon2='.cutoff($siz2,$cov2,\@Exlen,%cutoff);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
58 my $stat3='exon3='.cutoff($siz3,$cov3,\@Exlen,%cutoff);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
59 if($stat1 eq "exon1=yes" and $stat3 eq "exon3=yes")
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
60 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
61 #$Ez="passed";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
62 $Ez=$eventid if $eventid eq "AA";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
63 $Ez=$eventid if $eventid eq "AD";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
64 $Ez=$eventid if $eventid eq "IR";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
65 if ($eventid eq "CS" or $eventid eq "CA" or $eventid eq "ME")
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
66 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
67 if($bir >0.9)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
68 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
69 $Ez = "CS";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
70 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
71 else
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
72 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
73 $Ez = "CA";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
74 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
75 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
76
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
77 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
78 else
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
79 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
80 #$Ez="declined";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
81 $Ez = "na";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
82 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
83 if( ($j12<$JunctionCut or $j23<$JunctionCut) and $j13 <$JunctionCut)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
84 {
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
85 $Ez = "na";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
86 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
87 print $print,"\t",$stat1,"\t",$stat2,"\t",$stat3,"\t",$Ez,"\n";
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
88 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
89 close(IN);
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
90 ####################################################################
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
91
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
92 sub cutoff{
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
93 my($s,$c,$E,%cutoff)=@_;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
94 my @Exlen=@$E;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
95 if($c eq 'NA'){return('NA')}
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
96 my $range=$Exlen[$#Exlen];
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
97 foreach my $l(@Exlen){if($s<$l){$range=$l;last}}
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
98 if($c<$cutoff{$range}){return('no')}
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
99 return('yes')
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
100 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
101
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
102
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
103 sub contain{
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
104 my ($a,@a)=@_;
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
105 foreach(@a){if($a eq $_){return(1)}}
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
106 return(0)
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
107 }
adc0f7765d85 planemo upload
bioitcore
parents:
diff changeset
108