====== FEAT Level 2 Example Script ====== The example script below will run FSL's FEAT level two analysis (intra-subject inter-run) for a particular dataset. The 2nd level template fsf file must first be created using the FEAT GUI and saved with keywords replacing any fields that are subject dependent. ===== qsub_feat_level2_allruns ===== Example usage: [user@head ~]$ qsub -v EXPERIMENT=Dummy.01 qsub_feat_level2_allruns 99999 Copy and edit script below: #!/bin/sh # This is a BIAC template script for jobs on the cluster # You have to provide the Experiment on command line # when you submit the job the cluster. # # > qsub -v EXPERIMENT=Dummy.01 script.sh args # # There are 2 USER sections # 1. USER DIRECTIVE: If you want mail notifications when # your job is completed or fails you need to set the # correct email address. # # 2. USER SCRIPT: Add the user script in this section. # Within this section you can access your experiment # folder using $EXPERIMENT. All paths are relative to this variable # eg: $EXPERIMENT/Data $EXPERIMENT/Analysis # By default all terminal output is routed to the " Analysis " # folder under the Experiment directory i.e. $EXPERIMENT/Analysis # To change this path, set the OUTDIR variable in this section # to another location under your experiment folder # eg: OUTDIR=$EXPERIMENT/Analysis/GridOut # By default on successful completion the job will return 0 # If you need to set another return code, set the RETURNCODE # variable in this section. To avoid conflict with system return # codes, set a RETURNCODE higher than 100. # eg: RETURNCODE=110 # Arguments to the USER SCRIPT are accessible in the usual fashion # eg: $1 $2 $3 # The remaining sections are setup related and don't require # modifications for most scripts. They are critical for access # to your data # --- BEGIN GLOBAL DIRECTIVE -- #$ -S /bin/sh #$ -o $HOME/$JOB_NAME.$JOB_ID.out #$ -e $HOME/$JOB_NAME.$JOB_ID.out #$ -m ea # -- END GLOBAL DIRECTIVE -- # -- BEGIN PRE-USER -- #Name of experiment whose data you want to access EXPERIMENT=${EXPERIMENT:?"Experiment not provided"} EXPERIMENT=`findexp $EXPERIMENT` EXPERIMENT=${EXPERIMENT:?"Returned NULL Experiment"} if [ $EXPERIMENT = "ERROR" ] then exit 32 else #Timestamp echo "----JOB [$JOB_NAME.$JOB_ID] START [`date`] on HOST [$HOSTNAME]----" # -- END PRE-USER -- # ********************************************************** # -- BEGIN USER DIRECTIVE -- # Send notifications to the following address #$ -M user@somewhere.edu # -- END USER DIRECTIVE -- # -- BEGIN USER SCRIPT -- # User script goes here #Need to input EXPERIMENT and SUBJ #Example qsub -v EXPERIMENT=Dummy.01 qsub_feat_level2_allruns 99999 SUBJ=$1 #Set the directories FIRSTLEVELDIR=$EXPERIMENT/Analysis/FSL/$SUBJ OUTDIR=$EXPERIMENT/Analysis/FSL/$SUBJ TEMPLATEDIR=$EXPERIMENT/Scripts/FSL #Set some variables OUTPUT=$OUTDIR/$SUBJ mkdir -p $OUTDIR cd $TEMPLATEDIR #Makes the fsf file using the template for i in 'subjAvgTemplate.fsf'; do sed -e 's@OUTPUT@'$OUTPUT'@g' \ -e 's@FSLDIR@'$FSLDIR'@g' \ -e 's@FIRSTLEVELDIR@'$FIRSTLEVELDIR'@g' <$i> ${OUTDIR}/gFEAT_${SUBJ}.fsf done #Run feat analysis feat ${OUTDIR}/gFEAT_${SUBJ}.fsf # -- END USER SCRIPT -- # # ********************************************************** # -- BEGIN POST-USER -- echo "----JOB [$JOB_NAME.$JOB_ID] STOP [`date`]----" OUTDIR=${OUTDIR:-$EXPERIMENT/Analysis} mv $HOME/$JOB_NAME.$JOB_ID.out $OUTDIR/$JOB_NAME.$JOB_ID.out RETURNCODE=${RETURNCODE:-0} exit $RETURNCODE fi # -- END POST USER--