|
<?php |
|
|
|
|
|
|
|
|
|
|
|
|
|
function load_experiment_info() { |
|
global $dir,$task,$user,$setup; |
|
global $evalset; |
|
global $experiment; |
|
|
|
if (array_key_exists("setup",$_POST)) { $setup = $_POST["setup"]; } |
|
if (array_key_exists("setup",$_GET)) { $setup= $_GET["setup"]; } |
|
$all_setup = file("setup"); |
|
while (list($id,$line) = each($all_setup)) { |
|
$info = explode(";",$line); |
|
if ($info[0] == $setup) { |
|
$user = $info[1]; |
|
$task = $info[2]; |
|
$dir = rtrim($info[3]); |
|
} |
|
} |
|
|
|
if (file_exists($dir."/steps/new") || |
|
file_exists($dir."/steps/1")) { |
|
$topd = dir($dir."/steps"); |
|
while (false !== ($run = $topd->read())) { |
|
if (preg_match('/^([0-9]+)$/',$run,$match) |
|
&& $run>0 |
|
&& !file_exists("$dir/steps/$run/deleted.$run")) { |
|
$d = dir($dir."/steps/$run"); |
|
while (false !== ($entry = $d->read())) { |
|
process_file_entry("$dir/steps/$run/",$entry); |
|
} |
|
} |
|
} |
|
} |
|
else { |
|
$d = dir($dir."/steps"); |
|
while (false !== ($entry = $d->read())) { |
|
process_file_entry($dir."/steps",$entry); |
|
} |
|
} |
|
|
|
reset($experiment); |
|
while (list($id,$info) = each($experiment)) { |
|
if (file_exists($dir."/steps/new") || |
|
file_exists($dir."/steps/$id")) { |
|
$stat = stat("$dir/steps/$id/parameter.$id"); |
|
} |
|
else { |
|
$stat = stat("$dir/steps/parameter.$id"); |
|
} |
|
$experiment[$id]->start = $stat[9]; |
|
} |
|
|
|
reset($experiment); |
|
while (list($id,$info) = each($experiment)) { |
|
if (file_exists("$dir/evaluation/report.$id")) { |
|
$f = file("$dir/evaluation/report.$id"); |
|
foreach ($f as $line_num => $line) { |
|
if (preg_match('/^(.+): (.+)/',$line,$match)) { |
|
$experiment[$id]->result[$match[1]] = $match[2]; |
|
if (!$evalset || !array_key_exists($match[1],$evalset)) { |
|
$evalset[$match[1]] = 0; |
|
} |
|
$evalset[$match[1]]++; |
|
} |
|
} |
|
} |
|
} |
|
|
|
krsort($experiment); |
|
uksort($evalset,"evalsetsort"); |
|
} |
|
|
|
function evalsetsort($a,$b) { |
|
if ($a == "avg") { return -1; } |
|
if ($b == "avg") { return 1; } |
|
return strcmp($a,$b); |
|
} |
|
|
|
function load_parameter($run) { |
|
global $dir; |
|
if (file_exists($dir."/steps/new") || |
|
file_exists($dir."/steps/$run")) { |
|
$file = file("$dir/steps/$run/parameter.$run"); |
|
} |
|
else { |
|
$file = file("$dir/steps/parameter.$run"); |
|
} |
|
while (list($i,$line) = each($file)) { |
|
if (preg_match("/^(\S+) = (.+)$/",$line,$match)) { |
|
$parameter[$match[1]] = $match[2]; |
|
} |
|
} |
|
return $parameter; |
|
} |
|
|
|
function load_comment() { |
|
global $comment; |
|
$file = file("comment"); |
|
while (list($i,$line) = each($file)) { |
|
$line = chop($line); |
|
$item = explode(";",$line,4); |
|
$comment[$item[0]]->name = $item[1]; |
|
|
|
|
|
} |
|
} |
|
|
|
function process_file_entry($dir,$entry) { |
|
global $experiment; |
|
if (preg_match('/running.(\d+)/',$entry,$match)) { |
|
$stat = stat($dir."/".$entry); |
|
$experiment[$match[1]]->end = $stat[9]; |
|
} |
|
else if (preg_match('/^([A-Z\-]+)_([^\.]+)\.(\d+)$/',$entry,$match)) { |
|
$step = $match[1]."<BR>".$match[2]; |
|
$run = $match[3]; |
|
if ($run > 0 ) { |
|
$file = $dir.$entry; |
|
$stat = stat($file); |
|
if (file_exists($file.".STDERR")) { $stat = stat($file.".STDERR"); } |
|
if (file_exists($file.".STDOUT")) { $stat2 = stat($file.".STDOUT"); } |
|
if ($stat2[9] > $stat[9]) { $stat = $stat2; } |
|
$time = $stat[9]; |
|
|
|
if (!$experiment || !array_key_exists($run,$experiment) || |
|
!property_exists($experiment[$run],"last_step_time") || |
|
$time > $experiment[$run]->last_step_time) { |
|
$experiment[$run]->last_step_time = $time; |
|
$experiment[$run]->last_step = $step; |
|
} |
|
} |
|
} |
|
} |
|
|
|
function get_analysis_version($dir,$set,$id) { |
|
global $analysis_version; |
|
if ($analysis_version |
|
&& array_key_exists($id,$analysis_version) |
|
&& array_key_exists($set,$analysis_version[$id])) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
return $analysis_version[$id][$set]; |
|
} |
|
$analysis_version[$id][$set]["basic"] = 0; |
|
$analysis_version[$id][$set]["biconcor"] = 0; |
|
$analysis_version[$id][$set]["coverage"] = 0; |
|
$analysis_version[$id][$set]["precision"] = 0; |
|
$prefix = "$dir/evaluation/$set.analysis"; |
|
|
|
|
|
if (file_exists("$prefix.$id/summary")) { |
|
$analysis_version[$id][$set]["basic"] = $id; |
|
} |
|
if (file_exists("$prefix.$id/input-annotation")) { |
|
$analysis_version[$id][$set]["coverage"] = $id; |
|
} |
|
if (file_exists("$prefix.$id/precision-by-input-word")) { |
|
$analysis_version[$id][$set]["precision"] = $id; |
|
} |
|
if (file_exists("$dir/model/biconcor.$id")) { |
|
$analysis_version[$id][$set]["biconcor"] = $id; |
|
} |
|
|
|
|
|
if (file_exists("$dir/steps/$id/re-use.$id")) { |
|
$re_use = file("$dir/steps/$id/re-use.$id"); |
|
foreach($re_use as $line) { |
|
if (preg_match("/EVALUATION:(.+):analysis (\d+)/",$line,$match) && |
|
$match[1] == $set && |
|
file_exists("$prefix.$match[2]/summary")) { |
|
$analysis_version[$id][$set]["basic"] = $match[2]; |
|
} |
|
else if (preg_match("/EVALUATION:(.+):analysis-coverage (\d+)/",$line,$match) && |
|
$match[1] == $set && |
|
file_exists("$prefix.$match[2]/input-annotation")) { |
|
$analysis_version[$id][$set]["coverage"] = $match[2]; |
|
} |
|
else if (preg_match("/EVALUATION:(.+):analysis-precision (\d+)/",$line,$match) && |
|
$match[1] == $set && |
|
file_exists("$prefix.$match[2]/precision-by-input-word")) { |
|
$analysis_version[$id][$set]["precision"] = $match[2]; |
|
} |
|
else if (preg_match("/TRAINING:build-biconcor (\d+)/",$line,$match) && |
|
file_exists("$dir/model/biconcor.$match[1]")) { |
|
$analysis_version[$id][$set]["biconcor"] = $match[1]; |
|
} |
|
} |
|
} |
|
|
|
|
|
if (file_exists("$dir/steps/$id/REPORTING_report.$id")) { |
|
$report = file("$dir/steps/$id/REPORTING_report.$id.INFO"); |
|
foreach ($report as $line) { |
|
if (preg_match("/\# reuse run (\d+) for EVALUATION:(.+):analysis$/",$line,$match) && |
|
$match[2] == $set) { |
|
if (file_exists("$prefix.$match[1]/summary")) { |
|
$analysis_version[$id][$set]["basic"] = $match[1]; |
|
} |
|
} |
|
if (preg_match("/\# reuse run (\d+) for EVALUATION:(.+):analysis-coverage/",$line,$match) && |
|
$match[2] == $set) { |
|
if (file_exists("$prefix.$match[1]/input-annotation")) { |
|
$analysis_version[$id][$set]["coverage"] = $match[1]; |
|
} |
|
} |
|
if (preg_match("/\# reuse run (\d+) for EVALUATION:(.+):analysis-precision/",$line,$match) && |
|
$match[2] == $set) { |
|
if (file_exists("$prefix.$match[1]/precision-by-input-word")) { |
|
$analysis_version[$id][$set]["precision"] = $match[1]; |
|
} |
|
} |
|
if (preg_match("/\# reuse run (\d+) for TRAINING:biconcor/",$line,$match)){ |
|
if (file_exists("$dir/model/biconcor.$match[1]")) { |
|
$analysis_version[$id][$set]["biconcor"] = $match[1]; |
|
} |
|
} |
|
} |
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
return $analysis_version[$id][$set]; |
|
} |
|
|
|
function get_precision_analysis_version($dir,$set,$id) { |
|
$version = get_analysis_version($dir,$set,$id); |
|
return $version["precision"]; |
|
} |
|
|
|
function get_basic_analysis_version($dir,$set,$id) { |
|
$version = get_analysis_version($dir,$set,$id); |
|
return $version["basic"]; |
|
} |
|
|
|
function get_coverage_analysis_version($dir,$set,$id) { |
|
$version = get_analysis_version($dir,$set,$id); |
|
return $version["coverage"]; |
|
} |
|
|
|
function get_biconcor_version($dir,$set,$id) { |
|
$version = get_analysis_version($dir,$set,$id); |
|
return $version["biconcor"]; |
|
} |
|
|
|
function get_analysis_filename($dir,$set,$id,$type,$file) { |
|
$version = get_analysis_version($dir,$set,$id); |
|
return "$dir/evaluation/$set.analysis.".$version[$type]."/".$file; |
|
} |
|
|
|
function get_current_analysis_filename($type,$file) { |
|
global $dir,$set,$id; |
|
$version = get_analysis_version($dir,$set,$id); |
|
return "$dir/evaluation/$set.analysis.".$version[$type]."/".$file; |
|
} |
|
|
|
function get_current_analysis_filename2($type,$file) { |
|
global $dir,$set,$id2; |
|
$version = get_analysis_version($dir,$set,$id2); |
|
return "$dir/evaluation/$set.analysis.".$version[$type]."/".$file; |
|
} |
|
|