Skip to content
Snippets Groups Projects
Commit 4820d213 authored by Paul McCarthy's avatar Paul McCarthy :mountain_bicyclist:
Browse files

MNT: replace dc calls with syntax that will work on all platforms ("dc -" is

unsupported on new macOS)
parent 11c9cd5b
No related branches found
No related tags found
1 merge request!5MNT: Fix dc calls
Pipeline #16999 passed
......@@ -80,13 +80,13 @@ while [ _$1 != _ ] ; do
elif [ $1 = -t ] ; then
dostd=1
stdt=`echo $2 | sed 's/-/_/g'`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc -`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc`
stdroi="$stdroi -roi 0 1000000 0 1000000 0 $stdt 0 1"
shift 2
elif [ $1 = -b ] ; then
dostd=1
stdb=`echo $2 | sed 's/-/_/g'`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc -`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc`
stdroi="$stdroi -roi 0 1000000 0 1000000 $stdb 1000000 0 1"
shift 2
elif [ $1 = -V ] ; then
......@@ -112,7 +112,7 @@ fi
sdo="${sdo}${is_t2}"
mkdir -p $outdir
if [ $do_viena = yes ] ; then
if [ $do_viena = yes ] ; then
mkdir -p $vienadir
fi
${FSLDIR}/bin/imcp $Ao ${outdir}/A
......@@ -151,13 +151,13 @@ echo "<hr><p><b>FLIRT A-to-B registration results</b><p><IMG BORDER=0 SRC=\"${A}
echo "" >> report.siena
echo "---------- produce valid masks --------------------------------------" >> report.siena
XDIM=`${FSLDIR}/bin/fslval $A dim1` ; XDIM=`echo "$XDIM 2 - p" | dc -`
YDIM=`${FSLDIR}/bin/fslval $A dim2` ; YDIM=`echo "$YDIM 2 - p" | dc -`
ZDIM=`${FSLDIR}/bin/fslval $A dim3` ; ZDIM=`echo "$ZDIM 2 - p" | dc -`
XDIM=`${FSLDIR}/bin/fslval $A dim1` ; XDIM=`echo "$XDIM 2 - p" | dc`
YDIM=`${FSLDIR}/bin/fslval $A dim2` ; YDIM=`echo "$YDIM 2 - p" | dc`
ZDIM=`${FSLDIR}/bin/fslval $A dim3` ; ZDIM=`echo "$ZDIM 2 - p" | dc`
${FSLDIR}/bin/fslmaths ${A}_brain_mask -mul 0 -add 1 -roi 1 $XDIM 1 $YDIM 1 $ZDIM 0 1 ${A}_valid_mask
XDIM=`${FSLDIR}/bin/fslval $B dim1` ; XDIM=`echo "$XDIM 2 - p" | dc -`
YDIM=`${FSLDIR}/bin/fslval $B dim2` ; YDIM=`echo "$YDIM 2 - p" | dc -`
ZDIM=`${FSLDIR}/bin/fslval $B dim3` ; ZDIM=`echo "$ZDIM 2 - p" | dc -`
XDIM=`${FSLDIR}/bin/fslval $B dim1` ; XDIM=`echo "$XDIM 2 - p" | dc`
YDIM=`${FSLDIR}/bin/fslval $B dim2` ; YDIM=`echo "$YDIM 2 - p" | dc`
ZDIM=`${FSLDIR}/bin/fslval $B dim3` ; ZDIM=`echo "$ZDIM 2 - p" | dc`
${FSLDIR}/bin/fslmaths ${B}_brain_mask -mul 0 -add 1 -roi 1 $XDIM 1 $YDIM 1 $ZDIM 0 1 ${B}_valid_mask
${FSLDIR}/bin/flirt -in ${B}_valid_mask -ref $A -out ${B}_valid_mask_to_${A} -applyxfm -init ${B}_to_${A}.mat -paddingsize 0
${FSLDIR}/bin/flirt -in ${A}_valid_mask -ref $B -out ${A}_valid_mask_to_${B} -applyxfm -init ${A}_to_${B}.mat -paddingsize 0
......@@ -213,7 +213,7 @@ echo "" >
echo "---------- change analysis ------------------------------------------" >> report.siena
corr1=`${FSLDIR}/bin/siena_cal $A $B 1.002 $sdo $sdopts`
corr2=`${FSLDIR}/bin/siena_cal $B $A 1.002 $sdo $sdopts`
corr=`echo "10 k $corr1 $corr2 + 2.0 / p" | dc -`
corr=`echo "10 k $corr1 $corr2 + 2.0 / p" | dc`
echo "corr1=$corr1 corr2=$corr2 corr=$corr" >> report.siena
echo "" >> report.siena
......@@ -232,7 +232,7 @@ pbvc_forward=`grep PBVC report.siena | tail -n 1 | awk '{print $2}' | sed 's/-/_
echo "<hr><p><b>FAST tissue segmentation</b><br>These images show the tissue segmentation used to find the brain/non-brain boundary. The exact segmentation of grey matter vs. white matter is not important.<p>${Ao}<br><IMG BORDER=0 SRC=\"${A}_halfwayto_${B}_brain_seg.png\"><p>${Bo}<br><IMG BORDER=0 SRC=\"${B}_halfwayto_${A}_brain_seg.png\">" >> report.html
echo "" >> report.siena
pbvc_average=`echo "10 k $pbvc_forward $pbvc_backward - 2.0 / p" | dc -`
pbvc_average=`echo "10 k $pbvc_forward $pbvc_backward - 2.0 / p" | dc`
echo "finalPBVC $pbvc_average %" >> report.siena
${FSLDIR}/bin/fslmaths ${A}_to_${B}_flow -mul -1 ${A}_to_${B}_flowneg
......@@ -246,7 +246,7 @@ echo "<hr><p><b>Final brain edge movement image</b><p>atrophy <IMG SRC=\".ramp2.
if [ $do_viena = yes ] ; then
# Export Ao and Bo (containing the input file names) as they
# Export Ao and Bo (containing the input file names) as they
# are used in viena_quant during HTML report generation
export Ao
export Bo
......@@ -348,4 +348,3 @@ volume change between the two timepoints.
<BR>&nbsp;&nbsp;&nbsp;IEEE Trans. on Medical Imaging, 20(1):45-57, 2001.
EOF
......@@ -24,7 +24,7 @@ input=`${FSLDIR}/bin/remove_ext $1`
inputB=`${FSLDIR}/bin/remove_ext $2`
m=$3
M=`echo "5 k 1.0 $m / p" | dc -`
M=`echo "5 k 1.0 $m / p" | dc`
shift 3
o1=`${FSLDIR}/bin/fslval ${input} dim1`
......@@ -35,18 +35,18 @@ v1=`${FSLDIR}/bin/fslval ${input} pixdim1 | sed "s/-//g"`
v2=`${FSLDIR}/bin/fslval ${input} pixdim2 | sed "s/-//g"`
v3=`${FSLDIR}/bin/fslval ${input} pixdim3 | sed "s/-//g"`
t1=`echo "5 k $m 1.0 - $o1 * $v1 * _0.5 * p" | dc -`
t2=`echo "5 k $m 1.0 - $o2 * $v2 * _0.5 * p" | dc -`
t3=`echo "5 k $m 1.0 - $o3 * $v3 * _0.5 * p" | dc -`
t1=`echo "5 k $m 1.0 - $o1 * $v1 * _0.5 * p" | dc`
t2=`echo "5 k $m 1.0 - $o2 * $v2 * _0.5 * p" | dc`
t3=`echo "5 k $m 1.0 - $o3 * $v3 * _0.5 * p" | dc`
echo "$m 0.0 0.0 $t1" > ${input}_halfwayto_sc${input}.mat
echo "0.0 $m 0.0 $t2" >> ${input}_halfwayto_sc${input}.mat
echo "0.0 0.0 $m $t3" >> ${input}_halfwayto_sc${input}.mat
echo "0.0 0.0 0.0 1.0" >> ${input}_halfwayto_sc${input}.mat
t1=`echo "5 k $M 1.0 - $o1 * $v1 * _0.5 * p" | dc -`
t2=`echo "5 k $M 1.0 - $o2 * $v2 * _0.5 * p" | dc -`
t3=`echo "5 k $M 1.0 - $o3 * $v3 * _0.5 * p" | dc -`
t1=`echo "5 k $M 1.0 - $o1 * $v1 * _0.5 * p" | dc`
t2=`echo "5 k $M 1.0 - $o2 * $v2 * _0.5 * p" | dc`
t3=`echo "5 k $M 1.0 - $o3 * $v3 * _0.5 * p" | dc`
echo "$M 0.0 0.0 $t1" > sc${input}_halfwayto_${input}.mat
echo "0.0 $M 0.0 $t2" >> sc${input}_halfwayto_${input}.mat
......@@ -59,9 +59,9 @@ $FSLDIR/bin/imcp ${input}_valid_mask_with_$inputB ${input}_valid_mask_with_sc$in
${FSLDIR}/bin/siena_diff ${input} sc${input} $@ > ${input}_to_sc${input}.siena
vm=`echo "10 k $m 6 ^ 1.0 - 100.0 * p" | dc -`
vm=`echo "10 k $m 6 ^ 1.0 - 100.0 * p" | dc`
cal=`grep PBVC ${input}_to_sc${input}.siena | awk '{print $2}' | sed "s/-//g"`
corr=`echo "10 k $vm $cal / p" | dc -`
corr=`echo "10 k $vm $cal / p" | dc`
#echo "$m $vm $cal $corr"
echo $corr
......@@ -78,4 +78,3 @@ $FSLDIR/bin/imrm sc${input}.* \
/bin/rm -f ${input}_halfwayto_sc${input}.mat sc${input}_halfwayto_${input}.mat \
${input}_to_sc${input}.siena ${input}_halfwayto_sc${input}_brain.vol
......@@ -70,12 +70,12 @@ while [ _$1 != _ ] ; do
shift
elif [ $1 = -t ] ; then
stdt=`echo $2 | sed 's/-/_/g'`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc -`
stdt=`echo "10 k $stdt $pixdim3 / $origin3 + p" | dc`
stdroi="$stdroi -roi 0 1000000 0 1000000 0 $stdt 0 1"
shift 2
elif [ $1 = -b ] ; then
stdb=`echo $2 | sed 's/-/_/g'`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc -`
stdb=`echo "10 k $stdb $pixdim3 / $origin3 + p" | dc`
stdroi="$stdroi -roi 0 1000000 0 1000000 $stdb 1000000 0 1"
shift 2
elif [ $1 = -lm ] ; then
......@@ -129,7 +129,7 @@ ${FSLDIR}/bin/avscale ${I}2std.mat ${FSLDIR}/data/standard/MNI152_T1_2mm > ${I}2
xscale=`grep Scales ${I}2std.avscale | awk '{print $4}'`
yscale=`grep Scales ${I}2std.avscale | awk '{print $5}'`
zscale=`grep Scales ${I}2std.avscale | awk '{print $6}'`
vscale=`echo "10 k $xscale $yscale * $zscale * p"|dc -`
vscale=`echo "10 k $xscale $yscale * $zscale * p"|dc`
echo "VSCALING $vscale" >> report.sienax
${FSLDIR}/bin/flirt -in $I -ref ${FSLDIR}/data/standard/MNI152_T1_2mm_brain -o ${I}2std -applyxfm -init ${I}2std.mat
${FSLDIR}/bin/slicer ${I}2std ${FSLDIR}/data/standard/MNI152_T1_2mm_brain -a ${I}2std.png
......@@ -172,8 +172,8 @@ if [ $nseg = 2 ] ; then
S=`${FSLDIR}/bin/fslstats ${I}_stdmaskbrain_pve_1 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
ubrain=`echo "2 k $xa $xb * 1 / p" | dc -`
nbrain=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
ubrain=`echo "2 k $xa $xb * 1 / p" | dc`
nbrain=`echo "2 k $xa $xb * $vscale * 1 / p" | dc`
else
if [ _$lm != _ ] ; then
${FSLDIR}/bin/fslmaths $lm -bin -mul -1 -add 1 -mul ${I}_stdmaskbrain ${I}_stdmaskbrain -odt float
......@@ -195,33 +195,33 @@ else
S=`${FSLDIR}/bin/fslstats ${I}_stdmaskbrain_pve_1_segperiph -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uxg=`echo "2 k $xa $xb * 1 / p" | dc -`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
uxg=`echo "2 k $xa $xb * 1 / p" | dc`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc`
echo "pgrey $xg $uxg (peripheral grey)" >> report.sienax
${FSLDIR}/bin/fslmaths ${I}_stdmaskbrain_pve_0 -mas ${I}_stdmask_segvent ${I}_stdmaskbrain_pve_0_segvent -odt float
S=`${FSLDIR}/bin/fslstats ${I}_stdmaskbrain_pve_0_segvent -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uxg=`echo "2 k $xa $xb * 1 / p" | dc -`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
uxg=`echo "2 k $xa $xb * 1 / p" | dc`
xg=`echo "2 k $xa $xb * $vscale * 1 / p" | dc`
echo "vcsf $xg $uxg (ventricular CSF)" >> report.sienax
fi
S=`${FSLDIR}/bin/fslstats ${I}_stdmaskbrain_pve_1 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
ugrey=`echo "2 k $xa $xb * 1 / p" | dc -`
ngrey=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
ugrey=`echo "2 k $xa $xb * 1 / p" | dc`
ngrey=`echo "2 k $xa $xb * $vscale * 1 / p" | dc`
echo "GREY $ngrey $ugrey" >> report.sienax
S=`${FSLDIR}/bin/fslstats ${I}_stdmaskbrain_pve_2 -m -v`
xa=`echo $S | awk '{print $1}'`
xb=`echo $S | awk '{print $3}'`
uwhite=`echo "2 k $xa $xb * 1 / p" | dc -`
nwhite=`echo "2 k $xa $xb * $vscale * 1 / p" | dc -`
uwhite=`echo "2 k $xa $xb * 1 / p" | dc`
nwhite=`echo "2 k $xa $xb * $vscale * 1 / p" | dc`
echo "WHITE $nwhite $uwhite" >> report.sienax
ubrain=`echo "2 k $uwhite $ugrey + 1 / p" | dc -`
nbrain=`echo "2 k $nwhite $ngrey + 1 / p" | dc -`
ubrain=`echo "2 k $uwhite $ugrey + 1 / p" | dc`
nbrain=`echo "2 k $nwhite $ngrey + 1 / p" | dc`
fi
echo "BRAIN $nbrain $ubrain" >> report.sienax
......@@ -308,4 +308,3 @@ ventricular CSF).
<BR>&nbsp;&nbsp;&nbsp;IEEE Trans. on Medical Imaging, 20(1):45-57, 2001.
EOF
......@@ -126,17 +126,17 @@ edgepointsbase=`${FSLDIR}/bin/fslstats ${scbaseedge}_ventricles -V | cut -d' ' -
infobaseflow=`${FSLDIR}/bin/fslstats ${scbaseflow}_ventricles -V -M`
nonzeroflowbase=`echo ${infobaseflow} | cut -d' ' -f1`
tempmeanflowbase=`echo ${infobaseflow} | cut -d' ' -f3`
meanflowbase=`echo "10 k ${tempmeanflowbase} ${nonzeroflowbase} * ${edgepointsbase} / p" | sed 's/-/_/g' | dc -`
meanflowbase=`echo "10 k ${tempmeanflowbase} ${nonzeroflowbase} * ${edgepointsbase} / p" | sed 's/-/_/g' | dc`
# Determine only one of three pixdims because we have isotropic pixels.
pixdimbase=`${FSLDIR}/bin/fslval ${scbasehalf} pixdim1`
# Calculate PVVC
temppvvcbase=`echo "10 k 30 ${pixdimbase} * ${meanflowbase} * p" | sed 's/-/_/g' | dc -`
temppvvcbase=`echo "10 k 30 ${pixdimbase} * ${meanflowbase} * p" | sed 's/-/_/g' | dc`
# We assume standard FSL settings have been used, i.e. 0.2% change for calibration, change above if not true.
vm=`echo "10 k ${m} 6 ^ 1.0 - 100.0 * p" | dc -`
calibbase=`echo "10 k ${vm} ${temppvvcbase} / p" | sed 's/-/_/g' | dc -`
vm=`echo "10 k ${m} 6 ^ 1.0 - 100.0 * p" | dc`
calibbase=`echo "10 k ${vm} ${temppvvcbase} / p" | sed 's/-/_/g' | dc`
echo "edgepointsbase ${edgepointsbase}" >> "$LOG"
echo "infobaseflow ${infobaseflow}" >> "$LOG"
......@@ -159,17 +159,17 @@ edgepointsfollow=`${FSLDIR}/bin/fslstats ${scfollowedge}_ventricles -V|cut -f 1
infofollowflow=`${FSLDIR}/bin/fslstats ${scfollowflow}_ventricles -V -M`
nonzeroflowfollow=`echo ${infofollowflow} | cut -d' ' -f1`
tempmeanflowfollow=`echo ${infofollowflow} | cut -d' ' -f3`
meanflowfollow=`echo "10 k ${tempmeanflowfollow} ${nonzeroflowfollow} * ${edgepointsfollow} / p" | sed 's/-/_/g' | dc -`
meanflowfollow=`echo "10 k ${tempmeanflowfollow} ${nonzeroflowfollow} * ${edgepointsfollow} / p" | sed 's/-/_/g' | dc`
# Determine only one of three pixdims because we have isotropic pixels.
pixdimfollow=`${FSLDIR}/bin/fslval ${scfollowhalf} pixdim1`
# Calculate PVVC
temppvvcfollow=`echo "10 k 30 ${pixdimfollow} * ${meanflowfollow} * p" | sed 's/-/_/g' | dc -`
temppvvcfollow=`echo "10 k 30 ${pixdimfollow} * ${meanflowfollow} * p" | sed 's/-/_/g' | dc`
# We assume standard FSL settings have been used, i.e. 0.2% change for calibration, change above if not true.
vm=`echo "10 k ${m} 6 ^ 1.0 - 100.0 * p" | dc -`
calibfollow=`echo "10 k ${vm} ${temppvvcfollow} / p" | sed 's/-/_/g' | dc -`
vm=`echo "10 k ${m} 6 ^ 1.0 - 100.0 * p" | dc`
calibfollow=`echo "10 k ${vm} ${temppvvcfollow} / p" | sed 's/-/_/g' | dc`
echo "edgepointsfollow ${edgepointsfollow}" >> "$LOG"
echo "infofollowflow ${infofollowflow}" >> "$LOG"
......@@ -207,25 +207,25 @@ edgepointsbase=`${FSLDIR}/bin/fslstats ${base}_to_${follow}_edgepoints_ventricle
infobaseflow=`${FSLDIR}/bin/fslstats ${base}_to_${follow}_flow_ventricles -V -M`
nonzeroflowbase=`echo ${infobaseflow}|cut -f 1 -d " "`
tempmeanflowbase=`echo ${infobaseflow}|cut -f 3 -d " "`
meanflowbase=`echo "10 k ${tempmeanflowbase} ${nonzeroflowbase} * ${edgepointsbase} / p" | sed 's/-/_/g' | dc -`
meanflowbase=`echo "10 k ${tempmeanflowbase} ${nonzeroflowbase} * ${edgepointsbase} / p" | sed 's/-/_/g' | dc`
pixdimbase=`${FSLDIR}/bin/fslval ${base}_halfwayto_${follow} pixdim1`
edgepointsfollow=`${FSLDIR}/bin/fslstats ${follow}_to_${base}_edgepoints_ventricles -V|cut -f 1 -d " "`
infofollowflow=`${FSLDIR}/bin/fslstats ${follow}_to_${base}_flow_ventricles -V -M`
nonzeroflowfollow=`echo ${infofollowflow} | cut -f 1 -d " "`
tempmeanflowfollow=`echo ${infofollowflow} | cut -f 3 -d " "`
meanflowfollow=`echo "10 k ${tempmeanflowfollow} ${nonzeroflowfollow} * ${edgepointsfollow} / p" | sed 's/-/_/g' | dc -`
meanflowfollow=`echo "10 k ${tempmeanflowfollow} ${nonzeroflowfollow} * ${edgepointsfollow} / p" | sed 's/-/_/g' | dc`
pixdimfollow=`${FSLDIR}/bin/fslval ${follow}_halfwayto_${base} pixdim1`
# Calculate PVVC base -> follow
pvvcbasetofollow=`echo "10 k 30 ${calibbase} * ${pixdimbase} * ${meanflowbase} * _1.0 * p" | sed 's/-/_/g' | dc -`
pvvcbasetofollow=`echo "10 k 30 ${calibbase} * ${pixdimbase} * ${meanflowbase} * _1.0 * p" | sed 's/-/_/g' | dc`
# Calculate PVVC follow -> base
pvvcfollowtobase=`echo "10 k 30 ${calibfollow} * ${pixdimfollow} * ${meanflowfollow} * _1.0 * p" | sed 's/-/_/g' | dc -`
denom=`echo "10 k ${pvvcfollowtobase} 100 / 1.0 + p" | sed 's/-/_/g' | dc -`
tmpbackwards=`echo "10 k ${pvvcfollowtobase} ${denom} / _1.0 * p" |sed 's/-/_/g' | dc -`
pvvcfollowtobase=`echo "10 k 30 ${calibfollow} * ${pixdimfollow} * ${meanflowfollow} * _1.0 * p" | sed 's/-/_/g' | dc`
denom=`echo "10 k ${pvvcfollowtobase} 100 / 1.0 + p" | sed 's/-/_/g' | dc`
tmpbackwards=`echo "10 k ${pvvcfollowtobase} ${denom} / _1.0 * p" |sed 's/-/_/g' | dc`
meanpvvc=`echo "10 k ${pvvcbasetofollow} ${tmpbackwards} + 2 / p" | sed 's/-/_/g' | dc -`
meanpvvc=`echo "10 k ${pvvcbasetofollow} ${tmpbackwards} + 2 / p" | sed 's/-/_/g' | dc`
echo "" >> "$LOG"
echo "" >> "$LOG"
......
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