X-Git-Url: https://git.creatis.insa-lyon.fr/pubgit/?a=blobdiff_plain;f=cluster_tools%2Fgate_power_merge.sh;h=bc3b3e033450749631b4fe60401c04a86b6d6a2f;hb=88759fd450cc61a1b6818f80548c8632b2a3ffea;hp=aaf063b18d4f8cc85be856ef0f19df1087c1570d;hpb=8eccf1e25d2ab7273145d2475ae015aea5f6ff94;p=clitk.git diff --git a/cluster_tools/gate_power_merge.sh b/cluster_tools/gate_power_merge.sh index aaf063b..bc3b3e0 100755 --- a/cluster_tools/gate_power_merge.sh +++ b/cluster_tools/gate_power_merge.sh @@ -165,7 +165,7 @@ function merge_stat { echo " ${indent}merged ${count} files" } -doseMerger="mergeDosePerEnegryFile.sh" +doseMerger="mergeDosePerEnergyFile.sh" test -x "./mergeDosePerEnergyFile.sh" && doseMerger="./mergeDosePerEnergyFile.sh" function merge_dose { @@ -196,6 +196,39 @@ function merge_dose { echo " ${indent}merged ${count} files" } +doseMerger="mergeDoseByRegions.sh" +test -x "./mergeDoseByRegions.sh" && doseMerger="./mergeDoseByRegions.sh" + +function merge_doseByRegions { + local merged="$1" + shift + echo " ${indent}entering dose merger" + echo " ${indent}merger is ${doseMerger}" + echo " ${indent}creating ${merged}" + local count=0 + start_bar $# + source ${doseMerger} + while test $# -gt 0 + do + local partial="$1" + shift + let count++ + + if test ! -f "${merged}" + then + update_bar ${count} "copying first partial result ${partial}" + addWithoutPartialResult -i "${partial}" -o "${merged}" + continue + fi + + update_bar ${count} "adding ${partial}" + addToPartialResult -i "${merged}" -j "${partial}" -o "${merged}" 2> /dev/null > /dev/null || warning "error while calling ${doseMerger}" + done + divideUncertaintyResult -i "${merged}" -j "${count}" -o "${merged}" + end_bar + echo " ${indent}merged ${count} files" +} + txtImageMerger="clitkMergeAsciiDoseActor" test -f "./clitkMergeAsciiDoseActor" && txtImageMerger="./clitkMergeAsciiDoseActor" @@ -329,9 +362,9 @@ function merge_dispatcher { local firstpartialoutputextension="${firstpartialoutputfile##*.}" echo "${indent}testing file type on ${firstpartialoutputfile}" - if test "${firstpartialoutputextension}" == "hdr" && grep -qs 'INTERFILE' "${firstpartialoutputfile}" + if test "${firstpartialoutputextension}" == "hdr" && test grep -qs 'INTERFILE' "${firstpartialoutputfile}" then - echo "${indent}this is a interfile image" + echo "${indent}this is an interfile image" echo "${indent}creating mhd headers" for partialoutputfile in $partialoutputfiles; do write_mhd_header "${partialoutputfile}"; done local mhd_partialoutputfiles="$(for partialoutputfile in $partialoutputfiles; do echo "${partialoutputfile%.*}.mhd"; done)" @@ -347,7 +380,7 @@ function merge_dispatcher { if test "${firstpartialoutputextension}" == "hdr" then - echo "${indent}this is a analyse image" + echo "${indent}this is an analyse image" local mergedfile="${outputdir}/$(basename "${firstpartialoutputfile}")" merge_hdr_image "${mergedfile}" ${partialoutputfiles} || error "error while merging" return @@ -409,6 +442,15 @@ function merge_dispatcher { fi fi + if test "${firstpartialoutputextension}" == "txt" && grep -qs 'vol(mm3)' "${firstpartialoutputfile}" + then + echo "${indent}this is a DoseByRegions file" + local mergedfile="${outputdir}/$(basename "${firstpartialoutputfile}")" + merge_doseByRegions "${mergedfile}" ${partialoutputfiles} || error "error while merging" + return + fi + + if test "${firstpartialoutputextension}" == "txt" then echo "${indent}this is a non specific txt output" @@ -450,7 +492,7 @@ function merge_dispatcher_uncertainty { if [[ "${firstpartialoutputfile}" == *Uncertainty* ]] then - if test "${firstpartialoutputextension}" == "mhd" || test "${firstpartialoutputextension}" == "mha" + if test "${firstpartialoutputextension}" == "mhd" || test "${firstpartialoutputextension}" == "mha" then echo "${indent}Uncertainty file found: ${firstpartialoutputfile}" ## search for sum @@ -472,7 +514,14 @@ function merge_dispatcher_uncertainty { echo "${indent}${squared_merged_file} found" ## search for NumberOfEvent totalEvents=0; - for outputfile in $(find -L "${rundir}" -regextype 'posix-extended' -type f -regex "${rundir}/output.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) + unamestr=`uname` + if [[ "$unamestr" == 'Darwin' ]]; then + files=$(find -L "${rundir}" -type f -regex ".*output.*[hdr|mhd|mha|root|txt]" | awk -F '/' '{ print $NF; }' | sort | uniq) + else + files=$(find -L "${rundir}" -regextype 'posix-extended' -type f -regex "${rundir}/output.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) + fi + echo $files + for outputfile in ${files} do #echo $outputfile if grep -q 'NumberOfEvent' "${outputdir}/${outputfile}" @@ -491,7 +540,7 @@ function merge_dispatcher_uncertainty { warning "${totalEvents} not positive. A at least one stat file (SimulationStatisticActor) must be provided. Error, no uncertainty computed" return; fi - else + else error "merge_dispatcher_uncertainty does not handle ${firstpartialoutputfile} files" fi fi @@ -520,18 +569,39 @@ echo "output dir is ${outputdir}" test -d "${outputdir}" && rm -r "${outputdir}" mkdir "${outputdir}" -for outputfile in $(find -L "${rundir}" -regextype 'posix-extended' -type f -regex "${rundir}/output.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) + +unamestr=`uname` +if [[ "$unamestr" == 'Darwin' ]]; then + files=$(find -L "${rundir}" -type f -regex ".*output.*[hdr|mhd|mha|root|txt]" | awk -F '/' '{ print $NF; }' | sort | uniq) +else + files=$(find -L "${rundir}" -regextype 'posix-extended' -type f -regex "${rundir}/output.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) +fi +echo files $files +for outputfile in ${files} do merge_dispatcher "${outputfile}" "${force}" done echo "" echo "Merging done. Special case for statistical uncertainty" -for outputfile in $(find -L "${outputdir}" -regextype 'posix-extended' -type f -regex "${outputdir}/.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) + +unamestr=`uname` +if [[ "$unamestr" == 'Darwin' ]]; then + files=$(find -L "${outputdir}" -type f -regex ".*[hdr|mhd|mha|root|txt]" | awk -F '/' '{ print $NF; }' | sort | uniq) +else + files=$(find -L "${outputdir}" -regextype 'posix-extended' -type f -regex "${outputdir}/.*\.(hdr|mhd|mha|root|txt)" | awk -F '/' '{ print $NF; }' | sort | uniq) +fi +echo files = $files +for outputfile in ${files} do merge_dispatcher_uncertainty "${outputfile}" "${force}" done +echo "compute job statistics" +python computeEnlapsedTime.py ${rundir} gate +mv "statJobs.txt" "${outputdir}/statJobs.txt" + + if [ -f "${rundir}/params.txt" ] then echo "copying params file"