From 9e4025b22df1b27036d9eaf6500458b742961ca1 Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 14:56:09 -0400 Subject: [PATCH 01/14] Made localization changes to spm8Batch. End users should no longer need to make any localization tweaks aside from manually sourcing spm8Setup or configuring spm8Setup to be automatically sourced for all or some users --- spm8Batch/spm8Batch_Global | 13 ++++++++----- spm8Batch/spm8Setup | 3 ++- 2 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spm8Batch/spm8Batch_Global b/spm8Batch/spm8Batch_Global index 99e1cf0d..3b09415d 100755 --- a/spm8Batch/spm8Batch_Global +++ b/spm8Batch/spm8Batch_Global @@ -38,15 +38,18 @@ then # SOME GLOBAL THINGS TO CHANGE ACCORDING TO SITE # - topDIR=/Users/rcwelsh/Software + + curdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + topDIR="$( cd $curdir/.. && pwd )" # You must point to SPM8 !!! - SPM8B1=${topDIR}/SPM8/spm8_with_R4667 + SPM8B1=${topDIR}/SPM/SPM8/spm8_with_R4667 + # This is Robert Welsh's UNIX batch interface to spm8 - SPM8B2=${topDIR}/spm8Batch/spm8Batch_VBM8 + SPM8B2=${topDIR}/spm8Batch # This must point to the place where the SPM8 patch is locally. @@ -78,7 +81,7 @@ then # Mail job will be sent to your user name at the institutionname # Please set the instituion email server name here. - MAILRECPT=med.umich.edu + MAILRECPT=umich.edu # # Default email address to send messages to, on the linux machines @@ -100,7 +103,7 @@ then # And finally, you need to point to matlab - MATLAB=/Applications/MATLAB_R2011b.app/bin/matlab + MATLAB=`which matlab` # # Only allow author to execute code during switch. diff --git a/spm8Batch/spm8Setup b/spm8Batch/spm8Setup index 34a6b23e..3dcfa109 100755 --- a/spm8Batch/spm8Setup +++ b/spm8Batch/spm8Setup @@ -1,2 +1,3 @@ +curdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" -export PATH=/net/dysthymia/spm8Batch:${PATH} +export PATH=${curdir}:${PATH} From 113665b12909f640b55c1edf5fe03288c1579381 Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 15:02:09 -0400 Subject: [PATCH 02/14] updated documentation in installation readme of spm8Batch to cover new, much more limited installation requirements --- spm8Batch/INSTALL_README.txt | 24 ++++++++---------------- 1 file changed, 8 insertions(+), 16 deletions(-) diff --git a/spm8Batch/INSTALL_README.txt b/spm8Batch/INSTALL_README.txt index fe02e2f9..edb5f16f 100644 --- a/spm8Batch/INSTALL_README.txt +++ b/spm8Batch/INSTALL_README.txt @@ -1,6 +1,6 @@ # # # # # # # # # # # # # # # # # # # -# This is the spm8Batch processing system written by Robert C. Welsh, Ann Arbor MI +# This is a modified version of the spm8Batch processing system written by Robert C. Welsh, Ann Arbor MI # # Copyright 2002-2012 # @@ -29,29 +29,21 @@ # # INSTALLATION INSTRUCTIONS: # -# Move the spm8Batch tar distribution file to the directory where you wish the code to -# reside. Then untar using -# -# tar -xvf [tarfile] # -# Next you will need to adjust your PATH environmental variable to include +# You will need to adjust your PATH environmental variable to include # the spm8Batch distribution # -# For bash you can add this to your .bashrc or .bash_profile -# -# export PATH=[spm8Batch_distribution_location]:${PATH} -# -# On tcsh you can add this to your .cshrc file. +# You can do this on the fly by running "source spm8Setup" while in this directory. +# You can also edit your .bashrc, .bash_profile, or /etc/bashrc startup scripts to source this automatically +# for all or just some users. # -# setenv PATH [spm8Batch_distribution_location]:${PATH} # -# Next you need to implement the localization changes in spm8Batch_Global that are -# described below. Remember the native language of the spm8Batch system is bash. An +# Remember the native language of the spm8Batch system is bash. An # excellent site for BASH help is: # # http://tldp.org/LDP/abs/html/ # -# You will need to have spm8 distribution +# You will need to have spm8 distribution (Included in this distribution) # # You will need to have fsl, at least 4.1.7, it's known to work with 4.1.7 and 4.1.8 # @@ -73,7 +65,7 @@ # ----------------------------------------------------------------- # ----------------------------------------------------------------- # -# LOCALIZATION +# LOCALIZATION (No longer needs to be edited. This section retained for developer documentation) # # The only file that has to be modified for local distrubution is the scripts "spm8Batch_Global" # From ab9f55b36a5e1889ef89612b35699ac54e1b2f46 Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 15:25:02 -0400 Subject: [PATCH 03/14] The log files for spm8Batch will now include the SHA of the MethodsCore repository, if available --- spm8Batch/auxiliary/shellScriptFinalize | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spm8Batch/auxiliary/shellScriptFinalize b/spm8Batch/auxiliary/shellScriptFinalize index 678fcc7c..3c44c1ff 100644 --- a/spm8Batch/auxiliary/shellScriptFinalize +++ b/spm8Batch/auxiliary/shellScriptFinalize @@ -33,8 +33,10 @@ echo "# ${execDIR}" echo "#" >> ${FULLSCRIPTNAME}.sh BATCHVERSION=`cat ${thisDir}/.spm8BatchVersion` +[[ -f ${thisDir}/../.local/CurrentVersionSHA ]] && mcSHA=`cat ${thisDir}/../.local/CurrentVersionSHA` echo "# spm8Batch Version : ${BATCHVERSION}" >> ${FULLSCRIPTNAME}.sh +echo "# MethodsCore Repository SHA-ID: $mcSHA" >> ${FULLSCRIPTNAME}.sh echo "#" >> ${FULLSCRIPTNAME}.sh echo "# All done" >> ${FULLSCRIPTNAME}.sh echo "#" >> ${FULLSCRIPTNAME}.sh From 42e4ef2ff2aae399183fa0cf6625e1dd0291e855 Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 15:40:08 -0400 Subject: [PATCH 04/14] Changed scope of .gitignore. No longer ignores all of .local directory, but just the CurrentVersionSHA file within --- .gitignore | 1 - .local/.gitignore | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) delete mode 100644 .gitignore create mode 100644 .local/.gitignore diff --git a/.gitignore b/.gitignore deleted file mode 100644 index a1035399..00000000 --- a/.gitignore +++ /dev/null @@ -1 +0,0 @@ -.local diff --git a/.local/.gitignore b/.local/.gitignore new file mode 100644 index 00000000..8795a9c0 --- /dev/null +++ b/.local/.gitignore @@ -0,0 +1 @@ +CurrentVersionSHA \ No newline at end of file From 9197153c9101c812fd538c904d53231888345e5f Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 15:41:58 -0400 Subject: [PATCH 05/14] Added mc_releasetag, with current release tag of Prerelease --- .local/mc_releasetag | 1 + 1 file changed, 1 insertion(+) create mode 100644 .local/mc_releasetag diff --git a/.local/mc_releasetag b/.local/mc_releasetag new file mode 100644 index 00000000..6ff6eb78 --- /dev/null +++ b/.local/mc_releasetag @@ -0,0 +1 @@ +PreRelease \ No newline at end of file From 663b66f43f4972f6cd75ec937fcb8e15010bfa00 Mon Sep 17 00:00:00 2001 From: Daniel A Kessler Date: Mon, 16 Jul 2012 15:53:24 -0400 Subject: [PATCH 06/14] log files for spm8Batch will now also include the human readable release tag from .local/mc_releasetag if available --- spm8Batch/auxiliary/shellScriptFinalize | 2 ++ 1 file changed, 2 insertions(+) diff --git a/spm8Batch/auxiliary/shellScriptFinalize b/spm8Batch/auxiliary/shellScriptFinalize index 3c44c1ff..18c18cc4 100644 --- a/spm8Batch/auxiliary/shellScriptFinalize +++ b/spm8Batch/auxiliary/shellScriptFinalize @@ -34,8 +34,10 @@ echo "#" BATCHVERSION=`cat ${thisDir}/.spm8BatchVersion` [[ -f ${thisDir}/../.local/CurrentVersionSHA ]] && mcSHA=`cat ${thisDir}/../.local/CurrentVersionSHA` +[[ -f ${thisDir}/../.local/mc_releasetag ]] && mc_releasetag=`cat ${thisDir}/../.local/mc_releasetag` echo "# spm8Batch Version : ${BATCHVERSION}" >> ${FULLSCRIPTNAME}.sh +echo "# MethodsCore Release Tag : ${mc_releasetag}" >> ${FULLSCRIPTNAME}.sh echo "# MethodsCore Repository SHA-ID: $mcSHA" >> ${FULLSCRIPTNAME}.sh echo "#" >> ${FULLSCRIPTNAME}.sh echo "# All done" >> ${FULLSCRIPTNAME}.sh From b2e1037e9d0aa6540a29d3a8e750f1f081c5f3a6 Mon Sep 17 00:00:00 2001 From: "Robert C. Welsh" Date: Tue, 31 Jul 2012 10:52:20 -0400 Subject: [PATCH 07/14] Corrected 'feature' in warpfMRI about logging, added TR and TGLOBAL options for sliceTime, and finally added the flag '-B' to all commands to allow to run in the foreground to facilitate daisy-chaining of processing. --- spm8Batch/auxiliary/help/help_case_TGLOBAL | 3 +++ .../help/help_case_no_background_job | 2 ++ spm8Batch/auxiliary/help/help_case_warpmethod | 2 ++ spm8Batch/auxiliary/help/help_options_end | 2 ++ spm8Batch/auxiliary/help/help_options_start | 6 +++++ .../auxiliary/help/help_sliceTime_Options | 1 + spm8Batch/auxiliary/initialization_all | 4 +++ spm8Batch/auxiliary/parse_arguments | 16 +++++++++++ spm8Batch/auxiliary/setNoBackgroundJob | 7 +++++ spm8Batch/auxiliary/setTGlobalValue | 20 ++++++++++++++ spm8Batch/auxiliary/shellScriptLaunch | 20 +++++++++++--- spm8Batch/bestBET | 2 +- spm8Batch/coregHiRes | 2 +- spm8Batch/coregOverlay | 2 +- spm8Batch/isnumber.sh | 19 +++++-------- spm8Batch/matlabScripts/UMBatchWarpVBM8.m | 11 ++++++++ spm8Batch/physioCorr | 2 +- spm8Batch/realignfMRI | 2 +- spm8Batch/segHiRes | 2 +- spm8Batch/sliceTime | 2 +- spm8Batch/smoothfMRI | 2 +- spm8Batch/spm8Batch_Global | 10 ++++--- spm8Batch/testIsNumber.sh | 27 +++++++++++++++++++ spm8Batch/vbm8HiRes | 2 +- spm8Batch/warpHiRes | 2 +- spm8Batch/warpfMRI | 2 +- 26 files changed, 140 insertions(+), 32 deletions(-) create mode 100644 spm8Batch/auxiliary/help/help_case_TGLOBAL create mode 100644 spm8Batch/auxiliary/help/help_case_no_background_job create mode 100644 spm8Batch/auxiliary/setNoBackgroundJob create mode 100644 spm8Batch/auxiliary/setTGlobalValue create mode 100755 spm8Batch/testIsNumber.sh diff --git a/spm8Batch/auxiliary/help/help_case_TGLOBAL b/spm8Batch/auxiliary/help/help_case_TGLOBAL new file mode 100644 index 00000000..91312619 --- /dev/null +++ b/spm8Batch/auxiliary/help/help_case_TGLOBAL @@ -0,0 +1,3 @@ + echo " -G TGLOBAL change the TGLOBAL parameters for fsl/slicetimer, " + echo " default is 0.50" + echo diff --git a/spm8Batch/auxiliary/help/help_case_no_background_job b/spm8Batch/auxiliary/help/help_case_no_background_job new file mode 100644 index 00000000..5efb2dc6 --- /dev/null +++ b/spm8Batch/auxiliary/help/help_case_no_background_job @@ -0,0 +1,2 @@ + echo " -B run in the foreground, need for daisy chaining jobs." + echo diff --git a/spm8Batch/auxiliary/help/help_case_warpmethod b/spm8Batch/auxiliary/help/help_case_warpmethod index 29c1a021..903ef0e7 100644 --- a/spm8Batch/auxiliary/help/help_case_warpmethod +++ b/spm8Batch/auxiliary/help/help_case_warpmethod @@ -1,3 +1,5 @@ echo " -W Enable VBM8 warping for fMRI, you need to run vbm8HiRes first." echo " Default is to use standard SPM8 normalization." + echo " This will set the output name to 'vbm8_', so use '-w' after" + echo " you specificy '-W' if you wish to use 'w' as the prepend name." echo diff --git a/spm8Batch/auxiliary/help/help_options_end b/spm8Batch/auxiliary/help/help_options_end index e3863a9a..802442f9 100644 --- a/spm8Batch/auxiliary/help/help_options_end +++ b/spm8Batch/auxiliary/help/help_options_end @@ -2,6 +2,8 @@ echo "${helpComment} functional images path : $fmriPATH" echo "${helpComment} Subject directory : ${SUBJDIR}" echo + echo "${helpComment} Back(1)/fore(0)ground : ${BACKGROUNDJOBFLAG}" + echo echo "${helpComment} spm8 is located in : $SPM8B1" echo "${helpComment} spm8Batch is located in : $SPM8B2" echo "${helpComment} spm8 patch is located in : $SPM8B3" diff --git a/spm8Batch/auxiliary/help/help_options_start b/spm8Batch/auxiliary/help/help_options_start index 0134987b..bcf82dd2 100644 --- a/spm8Batch/auxiliary/help/help_options_start +++ b/spm8Batch/auxiliary/help/help_options_start @@ -54,6 +54,9 @@ "a") . ${thisDir}/auxiliary/help/help_case_anatomy_path ;; + "B") + . ${thisDir}/auxiliary/help/help_case_no_background_job + ;; "b") . ${thisDir}/auxiliary/help/help_case_bet_best_flag ;; @@ -69,6 +72,9 @@ "f") . ${thisDir}/auxiliary/help/help_case_functional_path ;; + "G") + . ${thisDir}/auxiliary/help/help_case_TGLOBAL + ;; "g") . ${thisDir}/auxiliary/help/help_case_BET_gradient ;; diff --git a/spm8Batch/auxiliary/help/help_sliceTime_Options b/spm8Batch/auxiliary/help/help_sliceTime_Options index 47392a0b..db9e92ff 100644 --- a/spm8Batch/auxiliary/help/help_sliceTime_Options +++ b/spm8Batch/auxiliary/help/help_sliceTime_Options @@ -1,6 +1,7 @@ echo "${helpComment} Sub-directory : ${subPATH}" echo "${helpComment} Volume Wildcard : ${volumeWILD}" echo "${helpComment} fMRI TR : ${TR}" + echo "${helpComment} TGLOBAL : ${TGLOBAL}" echo "${helpComment} FSLOUTPUTTYPE : ${FSLOUTPUTTYPE}" echo "${helpComment} Number of runs to realign : ${nRUN}" diff --git a/spm8Batch/auxiliary/initialization_all b/spm8Batch/auxiliary/initialization_all index 810a7126..7fb55a57 100644 --- a/spm8Batch/auxiliary/initialization_all +++ b/spm8Batch/auxiliary/initialization_all @@ -92,6 +92,10 @@ SLICETIMEROPT= BATCHCOMMAND=1 +# Is this command to run in the background + +BACKGROUNDJOBFLAG=1 + # # Now the process specific initialization # diff --git a/spm8Batch/auxiliary/parse_arguments b/spm8Batch/auxiliary/parse_arguments index 401be941..e8e1b000 100644 --- a/spm8Batch/auxiliary/parse_arguments +++ b/spm8Batch/auxiliary/parse_arguments @@ -67,6 +67,15 @@ do . ${thisDir}/auxiliary/setAnatomyPath ;; + # case_no_background_job + # + # don't launch the job into the background, but run in the foreground, + # this will facilitate daisy-chaining jobs. + # + "B") + . ${thisDir}/auxiliary/setNoBackgroundJob + ;; + # case_bet_best_flag # # look at the BET best flag @@ -107,6 +116,13 @@ do . ${thisDir}/auxiliary/setFunctionalPath ;; + # case_set_TGLOBAL + # + # Set the TGLOBAL value for slice time + # + "G") + . ${thisDir}/auxiliary/setTGlobalValue + ;; # case_set_BET_gradient # # Set the gradient scale for bestBET diff --git a/spm8Batch/auxiliary/setNoBackgroundJob b/spm8Batch/auxiliary/setNoBackgroundJob new file mode 100644 index 00000000..c81eec23 --- /dev/null +++ b/spm8Batch/auxiliary/setNoBackgroundJob @@ -0,0 +1,7 @@ + +# The user wants to run the job in the foreground, only recommended for daisy-chaining. +# We also set the mail account to be null that way jobs in foreground do not by default send +# out email. However, this can be overridden with the -U flag. + + BACKGROUNDJOBFLAG=0 + USEREMAIL="NOMAIL" diff --git a/spm8Batch/auxiliary/setTGlobalValue b/spm8Batch/auxiliary/setTGlobalValue new file mode 100644 index 00000000..bf4a2adc --- /dev/null +++ b/spm8Batch/auxiliary/setTGlobalValue @@ -0,0 +1,20 @@ +# +# Set the value of TGLOBAL +# + shift + let argn++ + if (( $argn >= $args )) + then + echo "Missing parameter for setting TGLOBAL" + . ${thisDir}/auxiliary/exit_w_removal + else + isnumber $1 + retVal=$? + if [ "$retVal" != "0" ] + then + echo "TGLOBAL needs to be numeric, you entered : $1" + . ${thisDir}/auxiliary/exit_w_removal + fi + TGLOBAL=`echo $1 | awk '{printf "%2.2f",$1}'` + isnumber $TGLOBAL + fi diff --git a/spm8Batch/auxiliary/shellScriptLaunch b/spm8Batch/auxiliary/shellScriptLaunch index 97dd2640..f9182ff2 100755 --- a/spm8Batch/auxiliary/shellScriptLaunch +++ b/spm8Batch/auxiliary/shellScriptLaunch @@ -11,10 +11,22 @@ echo "${FULLSCRIPTNAME}.sh" > ${thisDir}/Usage/${SANDBOXHOST}/${theYearMonth}/${ if [ ! "$debugFLAG" == "1" ] then - echo - echo " Lauching script into background." - echo - nohup ${FULLSCRIPTNAME}.sh &> ${FULLSCRIPTNAME}.log & + if [ "${BACKGROUNDJOBFLAG}" == "1" ] + then + echo + echo " Lauching script into background." + echo + nohup ${FULLSCRIPTNAME}.sh &> ${FULLSCRIPTNAME}.log & + else + echo + echo " Launching script into foreground." + echo + ${FULLSCRIPTNAME}.sh &> ${FULLSCRIPTNAME}.log + echo + echo " Script ${FULLSCRIPTNAME}.sh is finished" + echo " Script LOGFILE is : ${FULLSCRIPTNAME}.log" + echo + fi else echo echo " Script can now be launched by hand." diff --git a/spm8Batch/bestBET b/spm8Batch/bestBET index 40d6492d..e8714236 100755 --- a/spm8Batch/bestBET +++ b/spm8Batch/bestBET @@ -35,7 +35,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` #allowedOptions="aDdfhMnOoRrtUw" -allowedOptions="aDdghMtU" +allowedOptions="aBDdghMtU" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/coregHiRes b/spm8Batch/coregHiRes index c066abb5..ff9d2ab7 100755 --- a/spm8Batch/coregHiRes +++ b/spm8Batch/coregHiRes @@ -40,7 +40,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` #allowedOptions="aDdfhMnOoRrtUw" - reslice only is NOT working with other images. -allowedOptions="aDdfhMnOorrtUw" +allowedOptions="aBDdfhMnOorrtUw" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/coregOverlay b/spm8Batch/coregOverlay index 42d3879c..8b3046b6 100755 --- a/spm8Batch/coregOverlay +++ b/spm8Batch/coregOverlay @@ -43,7 +43,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` #allowedOptions="aDdfMnOoRrstUvw" -allowedOptions="aDdfMnOorstUvw" +allowedOptions="aBDdfMnOorstUvw" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/isnumber.sh b/spm8Batch/isnumber.sh index 534b6a30..8ca4919e 100755 --- a/spm8Batch/isnumber.sh +++ b/spm8Batch/isnumber.sh @@ -27,22 +27,15 @@ isdigit() fi } +# New code for determining is an input is a number - 2012-07-27 - RCWelsh + isnumber () # Test if the parameter is a number (integer or float) { retVal=1; - nPeriod=`echo $1 | awk -F . '{print NF}'` - if [ "$nPeriod" -ne "1" -a "$nPeriod" -ne "2" ] - then - return $FAILURE - fi - theNumber=`echo $1 | sed 's/\.//g' ` - isdigit $theNumber + # do it by trying to printf the number fo get error if bad + printf "%2.2f" $1 2> /dev/null > /dev/null retVal=$? - if [ "$retVal" == "0" ] - then - return $SUCCESS - else - return $FAILURE - fi + return $retVal } + diff --git a/spm8Batch/matlabScripts/UMBatchWarpVBM8.m b/spm8Batch/matlabScripts/UMBatchWarpVBM8.m index 1a319a86..1fe1a6ff 100644 --- a/spm8Batch/matlabScripts/UMBatchWarpVBM8.m +++ b/spm8Batch/matlabScripts/UMBatchWarpVBM8.m @@ -219,6 +219,10 @@ [Images2WriteUnique Images2WriteCount] = uniqueNII(Images2Write); + % If the prefix is "w" then we just need to report the images that + % vbm8 has already generated. - RCWelsh 2012-07-27 + tmpNewImages2WriteUnique = []; + for iNII = 1:size(Images2WriteUnique,1) [d1 d2 d3 d4] = spm_fileparts(strtrim(Images2WriteUnique(iNII,:))); newFile = fullfile(d1,['w' d2 d3]); @@ -229,6 +233,9 @@ fprintf('\n\n* * * * * * * * * * * * \n\n'); return end + % If the prefix is "w" then we just need to report the images that + % vbm8 has already generated. - RCWelsh 2012-07-27 + tmpNewImages2WriteUnique = strvcat(tmpNewImages2WriteUnique, newFile); end % Everything up to this point is okay @@ -253,6 +260,10 @@ end newImages2WriteUnique = strvcat(newImages2WriteUnique, newFile); end + else + % If the prefix is "w" then we just need to report the images that + % vbm8 has already generated. - RCWelsh 2012-07-27 + newImages2WriteUnique = tmpNewImages2WriteUnique; end ImageDirectory = fileparts(Images2Write(1,:)); diff --git a/spm8Batch/physioCorr b/spm8Batch/physioCorr index 9ae762ee..0f32f034 100755 --- a/spm8Batch/physioCorr +++ b/spm8Batch/physioCorr @@ -38,7 +38,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="ADdfFiMnpPtUv#" +allowedOptions="ABDdfFiMnpPtUv#" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/realignfMRI b/spm8Batch/realignfMRI index f4b9cd7a..20ad7f15 100755 --- a/spm8Batch/realignfMRI +++ b/spm8Batch/realignfMRI @@ -32,7 +32,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="ADdfiMmnStUv#" +allowedOptions="BADdfiMmnStUv#" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/segHiRes b/spm8Batch/segHiRes index 3ad78d60..85a8ad3e 100755 --- a/spm8Batch/segHiRes +++ b/spm8Batch/segHiRes @@ -38,7 +38,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` #allowedOptions="DdfhMnTtUw" -allowedOptions="DdfhMTtUw" +allowedOptions="BDdfhMTtUw" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/sliceTime b/spm8Batch/sliceTime index 410fd3cd..0354e00c 100755 --- a/spm8Batch/sliceTime +++ b/spm8Batch/sliceTime @@ -35,7 +35,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="ADdfiMntUv#" +allowedOptions="ABDdFfGiMntUv#" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/smoothfMRI b/spm8Batch/smoothfMRI index 48423ae9..fd0189ed 100755 --- a/spm8Batch/smoothfMRI +++ b/spm8Batch/smoothfMRI @@ -32,7 +32,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="DdfMntUv" +allowedOptions="BDdfMntUv" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/spm8Batch_Global b/spm8Batch/spm8Batch_Global index 99e1cf0d..9ada89a4 100755 --- a/spm8Batch/spm8Batch_Global +++ b/spm8Batch/spm8Batch_Global @@ -38,15 +38,17 @@ then # SOME GLOBAL THINGS TO CHANGE ACCORDING TO SITE # - topDIR=/Users/rcwelsh/Software - + + curdir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" && pwd )" + topDIR="$( cd $curdir/.. && pwd )" + # You must point to SPM8 !!! - SPM8B1=${topDIR}/SPM8/spm8_with_R4667 + SPM8B1=${topDIR}/SPM/SPM8/spm8_with_R4667 # This is Robert Welsh's UNIX batch interface to spm8 - SPM8B2=${topDIR}/spm8Batch/spm8Batch_VBM8 + SPM8B2=${topDIR}/spm8Batch # This must point to the place where the SPM8 patch is locally. diff --git a/spm8Batch/testIsNumber.sh b/spm8Batch/testIsNumber.sh new file mode 100755 index 00000000..bfa9628e --- /dev/null +++ b/spm8Batch/testIsNumber.sh @@ -0,0 +1,27 @@ + +. isnumber.sh + +for THING in a 1 a1 1.1 1.1.1 0.1 +do + isnumber $THING + retVal=$? + if [ "$retVal" == "0" ] + then + echo $retVal NUMBER $THING + else + echo $retVal NOTNUMBER $THING + fi +done + +for THING in a b c 1 2 3 4 . +do + isdigit $THING + retVal=$? + if [ "$retVal" == "0" ] + then + echo $retVal DIGIT $THING + else + echo $retVal NOTDIGIT $THING + fi +done + \ No newline at end of file diff --git a/spm8Batch/vbm8HiRes b/spm8Batch/vbm8HiRes index c70f43c8..465898fd 100755 --- a/spm8Batch/vbm8HiRes +++ b/spm8Batch/vbm8HiRes @@ -37,7 +37,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="aDdhIMnOtUwz" +allowedOptions="aBDdhIMnOtUwz" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/warpHiRes b/spm8Batch/warpHiRes index 8c690c22..640b897f 100755 --- a/spm8Batch/warpHiRes +++ b/spm8Batch/warpHiRes @@ -37,7 +37,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="DdfhMnOTtUwz" +allowedOptions="BDdfhMnOTtUwz" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart diff --git a/spm8Batch/warpfMRI b/spm8Batch/warpfMRI index 044947d5..b2e2b57a 100755 --- a/spm8Batch/warpfMRI +++ b/spm8Batch/warpfMRI @@ -37,7 +37,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="DdfhIMntUvWwz" +allowedOptions="BDdfhIMntUvWwz" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart From 2de66105887857ff805457d51715889721ce718b Mon Sep 17 00:00:00 2001 From: "Robert C. Welsh" Date: Tue, 31 Jul 2012 12:22:07 -0400 Subject: [PATCH 08/14] Added the '-m' option to sliceTime to allow for adding command line options to slicetimer via sliceTime --- spm8Batch/auxiliary/help/help_case_flirt_options | 6 ++++-- spm8Batch/auxiliary/initialization_sliceTime | 2 ++ spm8Batch/sliceTime | 8 ++++---- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/spm8Batch/auxiliary/help/help_case_flirt_options b/spm8Batch/auxiliary/help/help_case_flirt_options index 7ac37e43..171ea94f 100644 --- a/spm8Batch/auxiliary/help/help_case_flirt_options +++ b/spm8Batch/auxiliary/help/help_case_flirt_options @@ -1,5 +1,7 @@ - echo " -m \"flirt options\" enable super debug flag." + echo " -m \"fsl options\" Give options to mcflirt or slicetimer." echo " Be sure to specify inside of quotes." echo " do \"mcflirt --help\" for help." - echo " default is \"-cost normcorr -stats -plots\"" + echo " do \"slicetimer --help\" for help." + echo " default for mcflirt is \"-cost normcorr -stats -plots\"" + echo " default for slicetimer is \"\"" echo diff --git a/spm8Batch/auxiliary/initialization_sliceTime b/spm8Batch/auxiliary/initialization_sliceTime index f4c790f5..5c2ae150 100644 --- a/spm8Batch/auxiliary/initialization_sliceTime +++ b/spm8Batch/auxiliary/initialization_sliceTime @@ -9,6 +9,8 @@ FSL_COMMENT_B="Slice time correcting subject" outputName=a +mcOPT="" + # # all done # diff --git a/spm8Batch/sliceTime b/spm8Batch/sliceTime index 0354e00c..d5a8d418 100755 --- a/spm8Batch/sliceTime +++ b/spm8Batch/sliceTime @@ -35,7 +35,7 @@ thisDir=`dirname $theCommand` thisCommand=`echo $theCommand | awk -F/ '{print $NF}'` -allowedOptions="ABDdFfGiMntUv#" +allowedOptions="ABDdFfGiMmntUv#" # This piece of code all of the spm8Batch scripts will use . ${thisDir}/auxiliary/commonCode_AllScriptsStart @@ -141,15 +141,15 @@ echo " CURRUN4D=\`ls ${volumeWILD}*.nii 2> /dev/null\` " echo " if [ -e \"\${CURRUN4D}\" ] " >> ${FULLSCRIPTNAME}.sh echo " then" >> ${FULLSCRIPTNAME}.sh echo " FSLOUTPUTTYPE=NIFTI" >> ${FULLSCRIPTNAME}.sh -echo " echo \"slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} -r ${TR} --tglobal=${TGLOBAL}\"">> ${FULLSCRIPTNAME}.sh -echo " slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} -r ${TR} --tglobal=${TGLOBAL}" >> ${FULLSCRIPTNAME}.sh +echo " echo \"slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} ${mcOPT} -r ${TR} --tglobal=${TGLOBAL}\"">> ${FULLSCRIPTNAME}.sh +echo " slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} ${mcOPT} -r ${TR} --tglobal=${TGLOBAL}" >> ${FULLSCRIPTNAME}.sh echo " logTheUMProcess sliceTime ${FULLSCRIPTNAME} \${CURRUN4D} ${outputName}\${CURRUN4D}" >> ${FULLSCRIPTNAME}.sh echo " else" >> ${FULLSCRIPTNAME}.sh echo " echo \"Can't find a 4D ${volumeWILD}*.nii for this run \${CURRUN}\" " >> ${FULLSCRIPTNAME}.sh echo " fi" >> ${FULLSCRIPTNAME}.sh echo " else" >> ${FULLSCRIPTNAME}.sh echo " echo \"Test mode.\" " >> ${FULLSCRIPTNAME}.sh -echo " echo \"slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} -r ${TR} --tglobal=${TGLOBAL}\" " >> ${FULLSCRIPTNAME}.sh +echo " echo \"slicetimer -i \${CURRUN4D} -o ${outputName}\${CURRUN4D} ${mcOPT} -r ${TR} --tglobal=${TGLOBAL}\" " >> ${FULLSCRIPTNAME}.sh echo " fi" >> ${FULLSCRIPTNAME}.sh echo " cd ../" >> ${FULLSCRIPTNAME}.sh echo " done" >> ${FULLSCRIPTNAME}.sh From 300ff31fa1b7452bfe2a45313b5018b039ba8194 Mon Sep 17 00:00:00 2001 From: Joseph Heffernan Date: Tue, 31 Jul 2012 15:12:15 -0400 Subject: [PATCH 09/14] Added the 2mm templates to all spm8 versions in the template folder. --- .../templates/r2mm_avg152T1_BET.nii | Bin 0 -> 2041712 bytes .../templates/r2mm_avg152T1_BET.nii | Bin 0 -> 2041712 bytes .../templates/r2mm_avg152T1_BET.nii | Bin 0 -> 2041712 bytes 3 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 SPM/SPM8/spm8Legacy/templates/r2mm_avg152T1_BET.nii create mode 100644 SPM/SPM8/spm8_with_R4290/templates/r2mm_avg152T1_BET.nii create mode 100644 SPM/SPM8/spm8_with_R4667/templates/r2mm_avg152T1_BET.nii diff --git a/SPM/SPM8/spm8Legacy/templates/r2mm_avg152T1_BET.nii b/SPM/SPM8/spm8Legacy/templates/r2mm_avg152T1_BET.nii new file mode 100644 index 0000000000000000000000000000000000000000..31935e3b35e00db012ec0bfb1033539447e90b9d GIT binary patch literal 2041712 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