-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathassessString3dCalibrationKeggTest.pl
More file actions
executable file
·129 lines (105 loc) · 3.64 KB
/
assessString3dCalibrationKeggTest.pl
File metadata and controls
executable file
·129 lines (105 loc) · 3.64 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
#!/usr/bin/perl -w
# Author: Abdullah Kahraman
# Date: 31.03.2015
###############################################################################
###############################################################################
### bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla bla ###
###############################################################################
###############################################################################
use strict;
use warnings;
use Getopt::Long;
my (
# variable for parameters which are read in from commandline
$help,
);
##############################################################################
### read all needed parameters from commandline ##############################
&GetOptions(
"help!" => \$help, # print this help
) or die "\nTry \"$0 -h\" for a complete list of options\n\n";
##############################################################################
# help
if ($help) {printHelp(); exit}
##############################################################################
### SETTINGS #################################################################
##############################################################################
##############################################################################
### SUBROUTINES ##############################################################
##############################################################################
###############################################################################
sub printHelp {
###############################################################################
# prints a help about the using and parameters of this scripts
# (execute if user types commandline parameter -h)
# param: no paramaters
# return: no return value
my (
$usage,
$sourceCode,
@rows,
$row,
$option,
$scriptInfo,
$example,
);
$usage = "$0\n";
print "\nUsage: " . $usage . "\n";
print "Valid options are:\n\n";
open(MYSELF, "$0") or
die "Cannot read source code file $0: $!\n";
$sourceCode .= join "", <MYSELF>;
close MYSELF;
$sourceCode =~ s/^.+?\&GetOptions\(\n//s;
$sourceCode =~ s/\n\).+$//s;
@rows = split /\n/, $sourceCode;
foreach $row (@rows){
$option = $row;
$option =~ s/\s+\"//g;
$option =~ s/\"\s.+\#/\t\#/g;
$option =~ s/=./\t<value> [required]/;
$option =~ s/:./\t<value> [optional]/;
$option =~ s/!/\t<non value> [optional]/;
$row =~ s/^.*//;
print "\t";
printf("%-1s%-30s%-30s\n", "-",$option,$row);
} # end of foreach $row (@rows)
print "\n";
print "Options may be abreviated, e.g. -h for --help\n\n";
$example = "$0";
}
##############################################################################
### END OF SUBROUTINES########################################################
##############################################################################
############
### MAIN ###
############
my $min=0;
my $max=1.0;
my $step=0.1;
my $n = 0;
my %hit = ();
my %fail = ();
my %int = ();
while(<>) {
$n++;
chomp($_);
my @a = split(/\t/, $_);
for(my $i = $min; $i < $max-0.00001; $i += $step){
$hit{$i} = 0 if(!exists $hit{$i});
$fail{$i}=0 if(!exists $fail{$i});
$int{$i}=0 if(!exists $int{$i});
if($a[2] > $i and $a[2] <= $i+$step){
$int{$i}++;
if($a[4] == 1){
$hit{$i}++;
} else{
$fail{$i}++;
}
}
}
}
print "#bin\tcount\tfreq\tT\tF\tT/F\n";
foreach my $i (sort {$a<=>$b} keys %int){
printf ("%.1f-%.1f\t%i\t%.2f\t%i\t%i\t%.2f\n", $i, $i+$step, $int{$i}, $int{$i}/$n, $hit{$i}, $fail{$i}, ($hit{$i}+$fail{$i} > 0 ? ($hit{$i}/($hit{$i}+$fail{$i})) : 0));
}