Mercurial > repos > bornea > dotplot_runner
comparison Dotplot_Release/SOFD.pl @ 0:dfa3436beb67 draft
Uploaded
| author | bornea |
|---|---|
| date | Fri, 29 Jan 2016 09:56:02 -0500 |
| parents | |
| children |
comparison
equal
deleted
inserted
replaced
| -1:000000000000 | 0:dfa3436beb67 |
|---|---|
| 1 #!/usr/bin/perl | |
| 2 | |
| 3 # 17/12/2013 | |
| 4 | |
| 5 if($#ARGV==0){ | |
| 6 print "This program takes the Saint Output File and produces two matrices.\n"; | |
| 7 print "One has average spectral counts and the other FDR scores,\n"; | |
| 8 print "\nusage:\n $0\n-i [csv saint output file]\n-s [FDR cutoff, default=0.01]\n\n"; | |
| 9 die; | |
| 10 } | |
| 11 else{ | |
| 12 $i=0; | |
| 13 $cutoff=0.01; | |
| 14 $spec_cutoff=0; | |
| 15 while($i<=$#ARGV){ | |
| 16 if($ARGV[$i] eq '-i'){ | |
| 17 $i++; | |
| 18 $ifile=$ARGV[$i]; | |
| 19 } | |
| 20 elsif($ARGV[$i] eq '-s'){ | |
| 21 $i++; | |
| 22 if($ARGV[$i]>1 || $ARGV[$i]<0){ | |
| 23 die "\nFDR cutoff must be between 0 and 1 \n\n"; | |
| 24 } | |
| 25 $cutoff=$ARGV[$i]; | |
| 26 } | |
| 27 elsif($ARGV[$i] eq '-x'){ | |
| 28 $i++; | |
| 29 if($ARGV[$i]<0){ | |
| 30 die "\nAvgSpec cutoff must be > 0 \n\n"; | |
| 31 } | |
| 32 $spec_cutoff=$ARGV[$i]; | |
| 33 } | |
| 34 else{ | |
| 35 die "\Incorrect program usage\n\n"; | |
| 36 } | |
| 37 $i++; | |
| 38 } | |
| 39 } | |
| 40 | |
| 41 $baitn=0, $bait[0]=xxxx, $sig_preysn=0; | |
| 42 $file=''; | |
| 43 open(IFILE,"<$ifile") || die "$ifile can't be opened: $!"; | |
| 44 { local $/=undef; $file=<IFILE>; } | |
| 45 @lines=split /[\r\n]+/, $file; | |
| 46 foreach $line (@lines) { | |
| 47 if($line =~ /^Bait/){ | |
| 48 } | |
| 49 elsif($line =~ /^([^\t]+)\t[^\t]+\t([^\t]+)\t[^\t]+\t[\d]+\t([\d\.]+)\t[\d]+\t[^\t]+\t[^\t]+\t[^\t]+\t[^\t]+\t[^\t]+\t([^\t]+)\t[^\t]+\t([^\t]+)\t/){ | |
| 50 if($1 ne $bait[$baitn]){ | |
| 51 $baitn++; | |
| 52 $bait[$baitn]=$1; | |
| 53 $preyn[$baitn]=0; | |
| 54 } | |
| 55 $preyn[$baitn]++; | |
| 56 $preys[$baitn][$preyn[$baitn]]=$2; | |
| 57 $avgspec[$baitn][$preyn[$baitn]]=$3; | |
| 58 $saint[$baitn][$preyn[$baitn]]=$4; | |
| 59 $fdr[$baitn][$preyn[$baitn]]=$5; | |
| 60 if($5 <= $cutoff && $3 >= $spec_cutoff){ | |
| 61 $check_prey=0; | |
| 62 for($i=1; $i<=$sig_preysn; $i++){ | |
| 63 if($sig_preys[$i] eq $2){ | |
| 64 $check_prey=1; | |
| 65 } | |
| 66 } | |
| 67 if($check_prey==0){ | |
| 68 $sig_preysn++; | |
| 69 $sig_preys[$sig_preysn]=$2; | |
| 70 } | |
| 71 } | |
| 72 } | |
| 73 else{ | |
| 74 } | |
| 75 } | |
| 76 close(IFILE); | |
| 77 | |
| 78 open(SC_FILE, ">SC_data.txt"); | |
| 79 open(FDR_FILE, ">FDR_data.txt"); | |
| 80 | |
| 81 for($i=1; $i<=$baitn; $i++){ | |
| 82 print SC_FILE "\t$bait[$i]"; | |
| 83 print FDR_FILE "\t$bait[$i]"; | |
| 84 } | |
| 85 print SC_FILE "\n"; | |
| 86 print FDR_FILE "\n"; | |
| 87 for($i=1; $i<=$sig_preysn; $i++){ | |
| 88 print SC_FILE "$sig_preys[$i]"; | |
| 89 print FDR_FILE "$sig_preys[$i]"; | |
| 90 for($j=1; $j<=$baitn; $j++){ | |
| 91 $krem=0; | |
| 92 for($k=1; $k<=$preyn[$j]; $k++){; | |
| 93 if($preys[$j][$k] eq $sig_preys[$i]){ | |
| 94 $krem=$k; | |
| 95 last; | |
| 96 } | |
| 97 } | |
| 98 if($krem != 0){ | |
| 99 print SC_FILE "\t$avgspec[$j][$krem]"; | |
| 100 print FDR_FILE "\t$fdr[$j][$krem]"; | |
| 101 } | |
| 102 else{ | |
| 103 print SC_FILE "\t0"; | |
| 104 print FDR_FILE "\t1"; | |
| 105 } | |
| 106 } | |
| 107 print SC_FILE "\n"; | |
| 108 print FDR_FILE "\n"; | |
| 109 } | |
| 110 close(SC_FILE); | |
| 111 close(FDR_FILE); | |
| 112 |
