# Define the MRI and surface files for the current subject
T1_IMAGE="${SUBJECT_DIR}/mri/T1.mgz"
WM_IMAGE="${SUBJECT_DIR}/mri/wm.mgz"
BRAINMASK_IMAGE="${SUBJECT_DIR}/mri/brainmask.mgz"
ASEG_IMAGE="${SUBJECT_DIR}/mri/aseg.mgz"
LH_WHITE="${SUBJECT_DIR}/surf/lh.white"
LH_PIAL="${SUBJECT_DIR}/surf/lh.pial"
RH_WHITE="${SUBJECT_DIR}/surf/rh.white"
RH_PIAL="${SUBJECT_DIR}/surf/rh.pial"
# Define number of slices and step size for each view (sagittal, coronal, axial)
STEPS=15 # Increase this value for more plots/slices
SAGITTAL_START=20
SAGITTAL_END=200
CORONAL_START=20
CORONAL_END=200
AXIAL_START=20
AXIAL_END=200
# Create a fresh cmd.txt file for the current subject
echo "-v $T1_IMAGE \
$WM_IMAGE \
$BRAINMASK_IMAGE \
$ASEG_IMAGE:colormap=lut:opacity=0.2" > "$CMD_FILE"
echo "-f $LH_WHITE:edgecolor=blue \
$LH_PIAL:edgecolor=red \
$RH_WHITE:edgecolor=blue \
$RH_PIAL:edgecolor=red" >> "$CMD_FILE"
# Loop through slices in each dimension and add commands to cmd.txt
#==================> Sagittal view slices (changes in X-coordinate)
for ((i = 0; i <= STEPS; i++)); do
slice=$(bc <<< "$SAGITTAL_START + ($SAGITTAL_END - $SAGITTAL_START) * $i / $STEPS")
echo "-viewport sagittal -slice $slice 127 127 -viewsize 800 800 -ss ${OUTPUT_DIR}/sagittal_slice_${slice}.png -noquit" >> "$CMD_FILE"
done
# Reset the view and Freeview instance to avoid cache issues between views
echo "-quit" >> "$CMD_FILE"
echo "Processing sagittal slices..." # Debug message
freeview -cmd "$CMD_FILE" > freeview_log.txt 2>&1
sleep 2 # Wait for Freeview to close completely
# If Freeview doesn't quit properly, use pkill as a fallback
pkill freeview
#%%%%%%%%%%%%%%%%%%%%
# Create a fresh cmd.txt for coronal slices
CMD_FILE="${OUTPUT_DIR}/cmd_coronal.txt"
#================> Coronal view slices (changes in Y-coordinate)
for ((i = 0; i <= STEPS; i++)); do
slice=$(bc <<< "$CORONAL_START + ($CORONAL_END - $CORONAL_START) * $i / $STEPS")
echo "-viewport coronal -slice 127 $slice 127 -viewsize 800 800 -ss ${OUTPUT_DIR}/coronal_slice_${slice}.png -noquit" >> "$CMD_FILE"
done