User Tools

Site Tools


biac:cluster:examples:bxh2analyze

bxh2analyze Cluster Example Script

The script below is an example script that will call the BXH tool bxh2analyze, which converts BXH data to Analyze or NIFTI format.

qsub_bxh2analyze

Example usage:

[user@head ~]$ qsub -v EXPERIMENT=Dummy.01 qsub_bxh2analyze \
 EXPERIMENT/Data/Func/99999/run01/run001.bxh EXPERIMENT/Data/Func/99999/fsl4D run01

Copy and edit code below:

convertdata.sh
#!/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 global EXPERIMENT, and inputs BXHINFILE, OUTDIR and OUTPRE
# BXHINFILE is the input file to convert
# OUTDIR is where the output folder will go
# OUTPRE is the output prefix of the data
# Example:
# qsub -v EXPERIMENT=Dummy.01 qsub_bxh2analyze \
# EXPERIMENT/Data/Func/99999/run01/run001.bxh EXPERIMENT/Data/Func/99999/fsl4D run01
 
BXHINFILE=$1
OUTDIR=$2
OUTPRE=$3
 
# In this bash syntax, the preceding string "EXPERIMENT" is removed 
# from the string $BXHINFILE.  
# Example:
# If BXHINFILE = EXPERIMENT/Data/Anat/99999/series500/srs500.bxh
# running ${BXHINFILE#EXPERIMENT}, it becomes:
# /Data/Anat/99999/series500/srs500.bxh
 
BXHINFILE=${EXPERIMENT}${BXHINFILE#EXPERIMENT}
OUTDIR=${EXPERIMENT}${OUTDIR#EXPERIMENT}
 
mkdir -p $OUTDIR
bxh2analyze -s --nii $BXHINFILE $OUTDIR/$OUTPRE
 
 
# -- 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-- 
biac/cluster/examples/bxh2analyze.txt · Last modified: 2023/02/23 18:43 (external edit)