#!/bin/sh
# NOTE, basic freesurfer recon-all should already be run on subjects before this longitudinal processing step
# see freesurfer_prep.sh script for details
#
# usage: sh freesurfer_longitudinal_step3.sh [queue] [account_to_charge]
# [queue] = free | standard
# [account_to_charge] = DBKEATOR | DBKEATOR_LAB | UMAR_LAB
#
#
wd=$(pwd)


if [[ $# -lt 2 ]] ; then
  echo 'Usage: sh freesurfer_longitudinal_step3.sh [queue] [account_to_charge]'
  echo '[queue] = free | standard'
  echo '[account_to_charge] = DBKEATOR | DBKEATOR_LAB | UMAR_LAB'
  echo 'PLEASE ONLY USE THE FREE QUEUE UNLESS OTHERWISE INSTRUCTED'
  exit 0
fi

subids=`ls -d1 ${wd}/* | awk -F/ '/'_tp'?[0-9]$/ { print $NF } ' | sed s/'_tp'[0-9]//g | uniq`

echo $subids

# for testing
# subids="600"

cd ${wd}
for subid in ${subids}; do
	#get list of timepoints from directory names
	timepoints=`ls -d1 ${subid}_* | cut -d'_' -f2`
	len=`echo "${timepoints}" | wc -l`	
	if [ ${len} -gt 1 ]
	then 
	
		for time in ${timepoints}; do
			printf '#!/bin/bash\n' > freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH --job-name=fs_%s_tp%s_long\n' ${subjid} ${time} >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH -A %s\n' ${2} >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH -p %s\n' ${1} >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH --nodes=1\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH --ntasks=1\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH --cpus-per-task=1\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#SBATCH --error=slurm-%%J.err\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf 'module load freesurfer/6.0.1\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf 'source ${FREESURFER_HOME}/SetUpFreeSurfer.sh\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf 'export SUBJECTS_DIR=%s\n' ${wd} >> freesurfer_${subid}_${time}_long_s3.sub
			printf '#run freesurfer longitudinal workflow step 3\n' >> freesurfer_${subid}_${time}_long_s3.sub
			printf 'srun ${FREESURFER_HOME}/bin/recon-all -long %s_%s' ${subid} ${time} >> freesurfer_${subid}_${time}_long_s3.sub
			printf " %s " ${subid} >> freesurfer_${subid}_${time}_long_s3.sub
			printf " -all > out_fs_%s_%s_long_output.txt\n" ${subid} ${time} >> freesurfer_${subid}_${time}_long_s3.sub
			sbatch freesurfer_${subid}_${time}_long_s3.sub
		done
	fi
done
