#!/usr/bin/perl # # pipe the result list into this script, e.g.: cat *.res | script_qtlview_quantile.pl # use strict; my %nums; my $n=0; while(<>) { next unless /Genes|Bps/; chomp; #print; #print "\n"; if (/^\s*([^:]+):\s+(\d+)/m) { my $i=$1; my $v=$2; #print STDERR "1=$i, 2=$v\n"; if (!exists($nums{$i})) { $nums{$i}=(); } push(@{$nums{$i}},$v); } $n++; } $n/=6; print "Pushed $n times 6 numbers, this should be equivalent to the number of runs you made.\n"; my %sortnum; foreach my $k (sort keys %nums) { my @sortnum = sort {$a<=>$b} @{$nums{$k}}; my $fifty =int(0.50*$n); my $sixtysix=int(0.66*$n); my $seventyfive=int(0.75*$n); my $eightyfive=int(0.85*$n); my $ninety =int(0.90*$n); my $ninetyone =int(0.91*$n); my $ninetytwo =int(0.92*$n); my $ninetytwofive =int(0.925*$n); my $ninetythree =int(0.93*$n); my $ninetyfour =int(0.94*$n); my $ninetyfive=int(0.95*$n); my $ninetysevenfive=int(0.975*$n); my $ninetynine=int(0.99*$n); my $max=$n; print "***** $k ****\n"; print "Min: ".$sortnum[0]."\n"; print "50%: ".$sortnum[$fifty-1], "-",$sortnum[$fifty]. "\n"; print "66%: ".$sortnum[$sixtysix-1], "-",$sortnum[$sixtysix]. "\n"; print "75%: ".$sortnum[$seventyfive-1],"-",$sortnum[$seventyfive]."\n"; print "85%: ".$sortnum[$eightyfive-1], "-",$sortnum[$eightyfive]. "\n"; print "90%: ".$sortnum[$ninety-1], "-",$sortnum[$ninety]. "\n"; print "91%: ".$sortnum[$ninetyone-1], "-",$sortnum[$ninetyone]. "\n"; print "92%: ".$sortnum[$ninetytwo-1], "-",$sortnum[$ninetytwo]. "\n"; print "92.5%: ".$sortnum[$ninetytwofive-1], "-",$sortnum[$ninetytwofive]. "\n"; print "93%: ".$sortnum[$ninetythree-1], "-",$sortnum[$ninetythree]. "\n"; print "94%: ".$sortnum[$ninetyfour-1], "-",$sortnum[$ninetyfour]. "\n"; print "95%: ".$sortnum[$ninetyfive-1], "-",$sortnum[$ninetyfive]. "\n"; print "97.5%: ".$sortnum[$ninetysevenfive-1], "-",$sortnum[$ninetysevenfive]. "\n"; print "99%: ".$sortnum[$ninetynine-1], "-",$sortnum[$ninetynine]. "\n"; print "Max: ".$sortnum[$max-1]."\n"; print "\n"; }