From 848c5cc2e18f21a51d66b3d19753fef98035f391 Mon Sep 17 00:00:00 2001 From: David Flitney <dave.flitney@ndcn.ox.ac.uk> Date: Fri, 25 Jun 2004 17:12:54 +0000 Subject: [PATCH] Fixes RT1127 FDT ProbTrack rubbish... --- fdt.tcl | 70 ++++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 44 insertions(+), 26 deletions(-) diff --git a/fdt.tcl b/fdt.tcl index 9fc7110..de08756 100644 --- a/fdt.tcl +++ b/fdt.tcl @@ -964,20 +964,20 @@ proc fdt:select_tool { w tool } { proc fdt_monitor { w cmd } { puts "$cmd" - set oldcursor [ $w configure -cursor { watch red white } ] - catch { - update idletasks - set fd [ open "|$cmd" r ] - while { ( [ gets $fd line ] >= 0 ) } { - update idletasks - puts $line - } - close $fd - } junk - $w configure -cursor $oldcursor - if { $junk != "" } { - MxPause "Errors: $junk" - } +# set oldcursor [ $w configure -cursor { watch red white } ] +# catch { +# update idletasks +# set fd [ open "|$cmd" r ] +# while { ( [ gets $fd line ] >= 0 ) } { +# update idletasks +# puts $line +# } +# close $fd +# } junk +# $w configure -cursor $oldcursor +# if { $junk != "" } { +# MxPause "Errors: $junk" +# } puts "Done!" } @@ -1077,6 +1077,14 @@ proc fdt:apply { w dialog } { if { $probtrack(usef_yn) == 1 } { set flags "$flags -f" } if { $probtrack(modeuler_yn) == 1 } { set flags "$flags --modeuler" } set flags "$flags -c $probtrack(curvature) -S $probtrack(nsteps) --steplength=$probtrack(steplength) -P $probtrack(nparticles)" + + set tn [open "| $BINPATH/tmpnam"] + gets $tn filebase + close $tn + set logfile "${filebase}_log.tcl" + set log [open "$logfile" w] + puts $log "set tool $tool" + set copylog "" set ssopts "" if { $probtrack(usereference_yn) } { set ssopts "--xfm=$probtrack(xfm)" @@ -1087,13 +1095,6 @@ proc fdt:apply { w dialog } { } set basics "--forcedir -s $probtrack(bedpost_dir)/merged -m $probtrack(bedpost_dir)/nodif_brain_mask" - set tn [open "| $BINPATH/tmpnam"] - gets $tn filebase - close $tn - set logfile "${filebase}_log.tcl" - set log [open "$logfile" w] - puts $log "set tool $tool" - set copylog "" foreach entry {bedpost_dir xfm mode exclude_yn usereference_yn verbose_yn loopcheck_yn usef_yn modeuler_yn \ curvature nsteps steplength nparticles} { puts $log "set probtrack($entry) $probtrack($entry)" @@ -1112,6 +1113,9 @@ proc fdt:apply { w dialog } { } else { set ssopts "" } + if { $probtrack(exclude_yn) == 1 } { + set ssopts "$ssopts --rubbish=$probtrack(exclude)" + } set fd [ open "${filebase}_coordinates.txt" w ] $w.data.seedxyz update if { $probtrack(units) == "mm" } { @@ -1140,8 +1144,18 @@ proc fdt:apply { w dialog } { return } - fdt_monitor $w "$FSLDIR/bin/probtrack --mode=simple -x ${filebase}_coordinates.txt $basics $ssopts $flags -o $probtrack(output)" - + set canwrite 1 + if { [ file exists $probtrack(output) ] } { + set canwrite [ YesNoWidget "Overwrite $probtrack(output)?" Yes No ] + if { $canwrite } { + puts "rm -rf $probtrack(output)" + exec rm -rf $probtrack(output) + } + } + if { $canwrite } { + set copylog "fdt.log" + fdt_monitor $w "$FSLDIR/bin/probtrack --mode=simple -x ${filebase}_coordinates.txt $basics $ssopts $flags -o $probtrack(output)" + } puts "rm ${filebase}_coordinates.txt" exec rm ${filebase}_coordinates.txt } @@ -1279,12 +1293,14 @@ proc fdt:apply { w dialog } { mat2 { if { $probtrack(seed) == "" } { set errorStr "$errorStr You must specify a seed image!" } if { $probtrack(dir) == "" } { set errorStr "$errorStr You must specify the output directory!" } + if { $probtrack(lrmask) == "" } { set errorStr "$errorStr You must specify the low resolution mask!" } if { $errorStr != "" } { MxPause $errorStr return } puts $log "set probtrack(seed) $probtrack(seed)" puts $log "set probtrack(dir) $probtrack(dir)" + puts $log "set probtrack(lrmask) $probtrack(lrmask)" set canwrite 1 if { [ file exists $probtrack(dir) ] } { @@ -1298,7 +1314,7 @@ proc fdt:apply { w dialog } { puts "mkdir -p $probtrack(dir)" exec mkdir -p $probtrack(dir) set copylog "$probtrack(dir)/fdt.log" - fdt_monitor $w "$FSLDIR/bin/probtrack --mode=matrix2 -x $probtrack(seed) $basics $ssopts $flags -o fdt_matrix --dir=$probtrack(dir)" + fdt_monitor $w "$FSLDIR/bin/probtrack --mode=matrix2 -x $probtrack(seed) $basics $ssopts --lrmask=$probtrack(lrmask) $flags -o fdt_matrix --dir=$probtrack(dir)" } } mskmat { @@ -1392,8 +1408,10 @@ proc fdt:apply { w dialog } { } } - MxPause " Done! " - update idletasks + if { $canwrite } { + MxPause " Done! " + update idletasks + } if {$dialog == "destroy"} { fdt:destroy $w -- GitLab