Skip to content
Snippets Groups Projects
Commit 848c5cc2 authored by David Flitney's avatar David Flitney
Browse files

Fixes RT1127 FDT ProbTrack rubbish...

parent 4429fda5
No related branches found
No related tags found
No related merge requests found
...@@ -964,20 +964,20 @@ proc fdt:select_tool { w tool } { ...@@ -964,20 +964,20 @@ proc fdt:select_tool { w tool } {
proc fdt_monitor { w cmd } { proc fdt_monitor { w cmd } {
puts "$cmd" puts "$cmd"
set oldcursor [ $w configure -cursor { watch red white } ] # set oldcursor [ $w configure -cursor { watch red white } ]
catch { # catch {
update idletasks # update idletasks
set fd [ open "|$cmd" r ] # set fd [ open "|$cmd" r ]
while { ( [ gets $fd line ] >= 0 ) } { # while { ( [ gets $fd line ] >= 0 ) } {
update idletasks # update idletasks
puts $line # puts $line
} # }
close $fd # close $fd
} junk # } junk
$w configure -cursor $oldcursor # $w configure -cursor $oldcursor
if { $junk != "" } { # if { $junk != "" } {
MxPause "Errors: $junk" # MxPause "Errors: $junk"
} # }
puts "Done!" puts "Done!"
} }
...@@ -1077,6 +1077,14 @@ proc fdt:apply { w dialog } { ...@@ -1077,6 +1077,14 @@ proc fdt:apply { w dialog } {
if { $probtrack(usef_yn) == 1 } { set flags "$flags -f" } if { $probtrack(usef_yn) == 1 } { set flags "$flags -f" }
if { $probtrack(modeuler_yn) == 1 } { set flags "$flags --modeuler" } 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 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 "" set ssopts ""
if { $probtrack(usereference_yn) } { if { $probtrack(usereference_yn) } {
set ssopts "--xfm=$probtrack(xfm)" set ssopts "--xfm=$probtrack(xfm)"
...@@ -1087,13 +1095,6 @@ proc fdt:apply { w dialog } { ...@@ -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 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 \ foreach entry {bedpost_dir xfm mode exclude_yn usereference_yn verbose_yn loopcheck_yn usef_yn modeuler_yn \
curvature nsteps steplength nparticles} { curvature nsteps steplength nparticles} {
puts $log "set probtrack($entry) $probtrack($entry)" puts $log "set probtrack($entry) $probtrack($entry)"
...@@ -1112,6 +1113,9 @@ proc fdt:apply { w dialog } { ...@@ -1112,6 +1113,9 @@ proc fdt:apply { w dialog } {
} else { } else {
set ssopts "" set ssopts ""
} }
if { $probtrack(exclude_yn) == 1 } {
set ssopts "$ssopts --rubbish=$probtrack(exclude)"
}
set fd [ open "${filebase}_coordinates.txt" w ] set fd [ open "${filebase}_coordinates.txt" w ]
$w.data.seedxyz update $w.data.seedxyz update
if { $probtrack(units) == "mm" } { if { $probtrack(units) == "mm" } {
...@@ -1140,8 +1144,18 @@ proc fdt:apply { w dialog } { ...@@ -1140,8 +1144,18 @@ proc fdt:apply { w dialog } {
return 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" puts "rm ${filebase}_coordinates.txt"
exec rm ${filebase}_coordinates.txt exec rm ${filebase}_coordinates.txt
} }
...@@ -1279,12 +1293,14 @@ proc fdt:apply { w dialog } { ...@@ -1279,12 +1293,14 @@ proc fdt:apply { w dialog } {
mat2 { mat2 {
if { $probtrack(seed) == "" } { set errorStr "$errorStr You must specify a seed image!" } 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(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 != "" } { if { $errorStr != "" } {
MxPause $errorStr MxPause $errorStr
return return
} }
puts $log "set probtrack(seed) $probtrack(seed)" puts $log "set probtrack(seed) $probtrack(seed)"
puts $log "set probtrack(dir) $probtrack(dir)" puts $log "set probtrack(dir) $probtrack(dir)"
puts $log "set probtrack(lrmask) $probtrack(lrmask)"
set canwrite 1 set canwrite 1
if { [ file exists $probtrack(dir) ] } { if { [ file exists $probtrack(dir) ] } {
...@@ -1298,7 +1314,7 @@ proc fdt:apply { w dialog } { ...@@ -1298,7 +1314,7 @@ proc fdt:apply { w dialog } {
puts "mkdir -p $probtrack(dir)" puts "mkdir -p $probtrack(dir)"
exec mkdir -p $probtrack(dir) exec mkdir -p $probtrack(dir)
set copylog "$probtrack(dir)/fdt.log" 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 { mskmat {
...@@ -1392,8 +1408,10 @@ proc fdt:apply { w dialog } { ...@@ -1392,8 +1408,10 @@ proc fdt:apply { w dialog } {
} }
} }
MxPause " Done! " if { $canwrite } {
update idletasks MxPause " Done! "
update idletasks
}
if {$dialog == "destroy"} { if {$dialog == "destroy"} {
fdt:destroy $w fdt:destroy $w
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment