| 
0
 | 
     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 
 |