diff --git a/eddy/feedsRun.EddyHigh_b_Test b/eddy/feedsRun.EddyHigh_b_Test index e04dd59ef869ba9c01ec03ee9e79ae97ac14a738..627b423df997d039a4fdb4e03ce91153d9c0a2cd 100755 --- a/eddy/feedsRun.EddyHigh_b_Test +++ b/eddy/feedsRun.EddyHigh_b_Test @@ -41,17 +41,19 @@ if [ ! -d "$indir" ]; then fi # Prepare arguments to pass to eddy -eddy_args="--imain=${indir}/EddyHigh_b_TestData/eddyData/testData - --mask=${indir}/EddyHigh_b_TestData/eddyData/testMask - --bvals=${indir}/EddyHigh_b_TestData/eddyData/testBvals - --bvecs=${indir}/EddyHigh_b_TestData/eddyData/testBvecs - --index=${indir}/EddyHigh_b_TestData/eddyData/testIndex - --acqp=${indir}/EddyHigh_b_TestData/eddyData/testAcqparams - --topup=${indir}/EddyHigh_b_TestData/eddyData/testTopup +eddy_args="--imain=${indir}/EddyHigh_b_TestData/eddyData/testData + --mask=${indir}/EddyHigh_b_TestData/eddyData/testMask + --bvals=${indir}/EddyHigh_b_TestData/eddyData/testBvals + --bvecs=${indir}/EddyHigh_b_TestData/eddyData/testBvecs + --index=${indir}/EddyHigh_b_TestData/eddyData/testIndex + --acqp=${indir}/EddyHigh_b_TestData/eddyData/testAcqparams + --topup=${indir}/EddyHigh_b_TestData/eddyData/testTopup --nvoxhp=5000 --repol --fwhm=10,0,0,0,0 --dont_peas --very_verbose" # run eddy -output_prefixes=$(${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} | tail -n1) +${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} > ${odir}/EddyHigh_b_Test.runEddy.o$$ +output_prefixes=$(tail -n1 ${odir}/EddyHigh_b_Test.runEddy.o$$) + # Define some constants max_mean_ima_diff=15.0 @@ -65,7 +67,7 @@ for prefix in ${output_prefixes}; do else precomputed="${indir}/EddyHigh_b_TestData/eddyData/Precomputed/eddy_openmp_output" fi - + ${thisdir}/EddyHigh_b_Feeds.py ${odir} `basename ${prefix}` \ `imglob -extension ${indir}/EddyHigh_b_TestData/eddyData/testMask` \ `imglob -extension ${prefix}` \ diff --git a/eddy/feedsRun.EddyLSRTest b/eddy/feedsRun.EddyLSRTest index 0e0fdaadf8a3e6ab039c4b8d4e6841087165db89..fd8212f708b630c4dabb4e18c2496b0069071838 100755 --- a/eddy/feedsRun.EddyLSRTest +++ b/eddy/feedsRun.EddyLSRTest @@ -38,18 +38,20 @@ if [ ! -d "$indir" ]; then fi # Prepare arguments to pass to eddy -eddy_args="--imain=${indir}/EddyLSRTestData/eddyData/testData - --mask=${indir}/EddyLSRTestData/eddyData/testMask - --bvals=${indir}/EddyLSRTestData/eddyData/testBvals - --bvecs=${indir}/EddyLSRTestData/eddyData/testBvecs - --index=${indir}/EddyLSRTestData/eddyData/testIndex - --acqp=${indir}/EddyLSRTestData/eddyData/testAcqparams - --topup=${indir}/EddyLSRTestData/eddyData/testTopup - --resamp=lsr --fep --nvoxhp=5000 --repol --fwhm=10,0,0,0,0 +eddy_args="--imain=${indir}/EddyLSRTestData/eddyData/testData + --mask=${indir}/EddyLSRTestData/eddyData/testMask + --bvals=${indir}/EddyLSRTestData/eddyData/testBvals + --bvecs=${indir}/EddyLSRTestData/eddyData/testBvecs + --index=${indir}/EddyLSRTestData/eddyData/testIndex + --acqp=${indir}/EddyLSRTestData/eddyData/testAcqparams + --topup=${indir}/EddyLSRTestData/eddyData/testTopup + --resamp=lsr --fep --nvoxhp=5000 --repol --fwhm=10,0,0,0,0 --dont_peas --very_verbose" # run eddy -output_prefixes=$(${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} | tail -n1) +${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} > ${odir}/EddyLSRTest.runEddy.o$$ +output_prefixes=$(tail -n1 ${odir}/EddyLSRTest.runEddy.o$$) + # Define some constants max_mean_ima_diff=15.0 diff --git a/eddy/feedsRun.EddyMBSTest b/eddy/feedsRun.EddyMBSTest index 273f2adf8c79cd393bbcef64caccc82c03cf597b..488fdf85b6c4ae9b7e51fd0f04eff4c29ed3470e 100755 --- a/eddy/feedsRun.EddyMBSTest +++ b/eddy/feedsRun.EddyMBSTest @@ -43,19 +43,20 @@ if [ ! -d "$indir" ]; then fi # Prepare arguments to pass to eddy -eddy_args="--imain=${indir}/EddyMBSTestData/eddyData/testData - --acqp=${indir}/EddyMBSTestData/eddyData/testAcqparams - --mask=${indir}/EddyMBSTestData/eddyData/testMask - --index=${indir}/EddyMBSTestData/eddyData/testIndex - --bvecs=${indir}/EddyMBSTestData/eddyData/testBvecs - --bvals=${indir}/EddyMBSTestData/eddyData/testBvals - --topup=${indir}/EddyMBSTestData/eddyData/testTopup - --fwhm=10,5,2,0,0,0,0,0 --niter=8 --nvoxhp=2000 - --flm=quadratic --dont_peas --estimate_move_by_susceptibility +eddy_args="--imain=${indir}/EddyMBSTestData/eddyData/testData + --acqp=${indir}/EddyMBSTestData/eddyData/testAcqparams + --mask=${indir}/EddyMBSTestData/eddyData/testMask + --index=${indir}/EddyMBSTestData/eddyData/testIndex + --bvecs=${indir}/EddyMBSTestData/eddyData/testBvecs + --bvals=${indir}/EddyMBSTestData/eddyData/testBvals + --topup=${indir}/EddyMBSTestData/eddyData/testTopup + --fwhm=10,5,2,0,0,0,0,0 --niter=8 --nvoxhp=2000 + --flm=quadratic --dont_peas --estimate_move_by_susceptibility --mbs_niter=20 --mbs_lambda=10 --mbs_ksp=10 --very_verbose" # run eddy -output_prefixes=$(${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} | tail -n1) +${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} > ${odir}/EddyMBSTest.runEddy.o$$ +output_prefixes=$(tail -n1 ${odir}/EddyMBSTest.runEddy.o$$) # Define some constants max_mean_dfield_diff=0.03 @@ -66,7 +67,7 @@ max_max_ima_diff=0.6 # Check the results against precomputed results -for prefix in ${output_prefixes}; do +for prefix in ${output_prefixes}; do ${thisdir}/MoveBySuscFeeds.py ${odir} `basename ${prefix}` \ `imglob -extension ${indir}/EddyMBSTestData/eddyData/Precomputed/BrainMaskForComparison` \ `imglob -extension ${prefix}` \ diff --git a/eddy/feedsRun.EddyS2VTest b/eddy/feedsRun.EddyS2VTest index c2ae8867bc510ab5125f8d4f26b3518347424656..6d79f0df2b4806d768292c4db44159f287b2896f 100755 --- a/eddy/feedsRun.EddyS2VTest +++ b/eddy/feedsRun.EddyS2VTest @@ -40,20 +40,21 @@ if [ ! -d "$indir" ]; then fi # Prepare arguments to pass to eddy -eddy_args="--imain=${indir}/EddyS2VTestData/eddyData/testData - --mask=${indir}/EddyS2VTestData/eddyData/testMask - --bvals=${indir}/EddyS2VTestData/eddyData/testBvals - --bvecs=${indir}/EddyS2VTestData/eddyData/testBvecs - --index=${indir}/EddyS2VTestData/eddyData/testIndex - --acqp=${indir}/EddyS2VTestData/eddyData/testAcqparams - --repol --ol_type=slice --ol_nstd=6 --ol_nvox=500 - --niter=8 --fwhm=10,6,4,2,0,0,0,0 --nvoxhp=5000 - --mporder=16 --s2v_niter=10 --s2v_interp=trilinear - --s2v_lambda=1 --very_verbose +eddy_args="--imain=${indir}/EddyS2VTestData/eddyData/testData + --mask=${indir}/EddyS2VTestData/eddyData/testMask + --bvals=${indir}/EddyS2VTestData/eddyData/testBvals + --bvecs=${indir}/EddyS2VTestData/eddyData/testBvecs + --index=${indir}/EddyS2VTestData/eddyData/testIndex + --acqp=${indir}/EddyS2VTestData/eddyData/testAcqparams + --repol --ol_type=slice --ol_nstd=6 --ol_nvox=500 + --niter=8 --fwhm=10,6,4,2,0,0,0,0 --nvoxhp=5000 + --mporder=16 --s2v_niter=10 --s2v_interp=trilinear + --s2v_lambda=1 --very_verbose --slspec=${indir}/EddyS2VTestData/eddyData/testSlspec " # run eddy -output_prefixes=$(${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} | tail -n1) +${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} > ${odir}/EddyS2VTest.runEddy.o$$ +output_prefixes=$(tail -n1 ${odir}/EddyS2VTest.runEddy.o$$) # Define some constants # These are for the comparison of output images divided on b=0, b=700 and b=2000 diff --git a/eddy/feedsRun.EddyTest b/eddy/feedsRun.EddyTest index 3c0d2b23e23944fa69af129cbe4454a5d4ba8559..6edd25f6e48e6f9d4183775aa086eaf077df1b57 100755 --- a/eddy/feedsRun.EddyTest +++ b/eddy/feedsRun.EddyTest @@ -37,16 +37,17 @@ if [ ! -d "$indir" ]; then fi # Prepare arguments to pass to eddy -eddy_args="--imain=${indir}/EddyTestData/eddyData/testData - --mask=${indir}/EddyTestData/eddyData/testMask - --bvals=${indir}/EddyTestData/eddyData/testBvals - --bvecs=${indir}/EddyTestData/eddyData/testBvecs - --index=${indir}/EddyTestData/eddyData/testIndex - --acqp=${indir}/EddyTestData/eddyData/testAcqparams +eddy_args="--imain=${indir}/EddyTestData/eddyData/testData + --mask=${indir}/EddyTestData/eddyData/testMask + --bvals=${indir}/EddyTestData/eddyData/testBvals + --bvecs=${indir}/EddyTestData/eddyData/testBvecs + --index=${indir}/EddyTestData/eddyData/testIndex + --acqp=${indir}/EddyTestData/eddyData/testAcqparams --repol --fwhm=10,0,0,0,0 --dfields -v" # run eddy -output_prefixes=$(${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} | tail -n1) +${thisdir}/runEddy ${exedir} ${odir} ${eddy_args} > ${odir}/EddyTest.runEddy.o$$ +output_prefixes=$(tail -n1 ${odir}/EddyTest.runEddy.o$$) # Define some constants max_mean_dfield_diff=0.5 diff --git a/eddy/runEddy b/eddy/runEddy index 3dba71df787ea5dcfe5d395e3c7aa5ed10cf48ec..8e583c1fcb09c3ac9ff06c6166fd0b95cfac3877 100755 --- a/eddy/runEddy +++ b/eddy/runEddy @@ -67,10 +67,14 @@ do fsl_sub="fsl_sub -l ${outdir} -q long.q -s openmp,6" fi - jid=`${fsl_sub} ${exe} --out=${outdir}/eddyOutput_${variant} ${eddy_args}` - if [ $? -ne 0 ]; then - echo "Error submitting ${exe} ${eddy_args}" - exit 1 + # fsl_sub will return an error (and not + # output a job id) if we try to run a + # cuda exe on a non-cuda-capable machine + # or queue. So we allow it to fail. + jid=$(${fsl_sub} ${exe} --out=${outdir}/eddyOutput_${variant} ${eddy_args} || true) + if [ "${jid}" == "" ]; then + echo "Error submitting ${exe} - skipping" + continue fi if [[ "${exe}" == *"cuda"* ]]; then @@ -80,6 +84,11 @@ do fi done +if [ "${cuda_jids}" == "" ] && [ "${cpu_jids}" == "" ]; then + echo "Unable to submit any eddy executables!" + exit 1 +fi + # If running on a cluster, wait # until all jobs have finished. # If not running on a cluster,