Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • mcz502/hippocampus_segmentation_tool_comparison
1 result
Show changes
Commits on Source (2)
File added
segmentHA_T1.sh HP01
segmentHA_T1.sh HP02
segmentHA_T1.sh HP03
segmentHA_T1.sh HP12
segmentHA_T1.sh HP04
segmentHA_T1.sh HP11
segmentHA_T1.sh HP05
segmentHA_T1.sh HP06
segmentHA_T1.sh HP07
segmentHA_T1.sh HP17
segmentHA_T1.sh HP08
segmentHA_T1.sh HP14
segmentHA_T1.sh HP09
segmentHA_T1.sh HP10
segmentHA_T1.sh HP20
segmentHA_T1.sh HP16
segmentHA_T1.sh HP21
segmentHA_T1.sh HP19
segmentHA_T1.sh HP22
segmentHA_T1.sh HP23
segmentHA_T1.sh HP24
segmentHA_T1.sh HP25
segmentHA_T1.sh HP26
segmentHA_T1.sh HP27
segmentHA_T1.sh HP28
segmentHA_T1.sh HP15
segmentHA_T1.sh HP29
segmentHA_T1.sh HP30
segmentHA_T1.sh HP18
seg_dir="/vols/Data/psychiatry/BHC/SUBPROJECTS/BHC_hippo_seg/freesurfer_hipposubfield/post_processing"
for dir in $seg_dir/HP*; do
cd $dir
echo "Checking ${dir##*/}..."
if ! [ -f "rh_hipp.nii.gz" ]; then
input_left_img="lh.hippoAmygLabels-T1-AN.v21.FSvoxelSpace.mgz"
input_right_img="rh.hippoAmygLabels-T1-AN.v21.FSvoxelSpace.mgz"
mri_binarize --i $input_left_img --match 203 211 212 215 226 233 234 235 236 237 238 239 240 241 242 243 244 245 246 --o lh_hipp.mgz
mri_binarize --i $input_right_img --match 203 211 212 215 226 233 234 235 236 237 238 239 240 241 242 243 244 245 246 --o rh_hipp.mgz
mri_convert lh_hipp.mgz lh_hipp.nii.gz
mri_convert rh_hipp.mgz rh_hipp.nii.gz
echo "${dir##*/}: Finished"
else
echo "${dir##*/}: outputs already exist..proceeding to next subject"
fi
done
seg_dir="/vols/Data/psychiatry/BHC/SUBPROJECTS/BHC_hippo_seg/freesurfer_hipposubfield/post_processing"
ref_dir="/vols/Data/psychiatry/BHC/SUBPROJECTS/BHC_hippo_seg"
# Transform masks
for dir in $seg_dir/HP*; do
cd $dir
echo "Checking ${dir##*/}..."
if ! [ -f "${dir##*/}_R_hippocampus_ToBrain_binarised.nii.gz" ]; then
input_left_img="lh_hipp.nii.gz"
input_right_img="rh_hipp.nii.gz"
ref_img=$ref_dir/${dir##*/}/${dir##*/}_T1_brain.nii.gz
# Apply FLIRT with rigid body transformations to map them on ground truth image
flirt -in $input_left_img -ref $ref_img -applyxfm -usesqform -out T1_orig_L_hippocampus_ToBrain.nii.gz
flirt -in $input_right_img -ref $ref_img -applyxfm -usesqform -out T1_orig_R_hippocampus_ToBrain.nii.gz
# Binarize them to create masks for further comparison
fslmaths T1_orig_L_hippocampus_ToBrain.nii.gz -thr 0.5 -bin T1_orig_L_hippocampus_ToBrain_binarised.nii.gz
fslmaths T1_orig_R_hippocampus_ToBrain.nii.gz -thr 0.5 -bin T1_orig_R_hippocampus_ToBrain_binarised.nii.gz
echo "${dir##*/}: Finished"
else
echo "${dir##*/}: outputs already exist..proceeding to next step"
fi
done
\ No newline at end of file
seg_dir="/vols/Data/psychiatry/BHC/SUBPROJECTS/BHC_hippo_seg/freesurfer_hipposubfield/post_processing"
ref_dir="/vols/Data/psychiatry/BHC/SUBPROJECTS/BHC_hippo_seg"
# Transform masks
for dir in $seg_dir/HP*; do
cd $dir
echo "Checking ${dir##*/}..."
if ! [ -f "${dir##*/}_R_hippocampus_ToBrain_binarised.nii.gz" ]; then
input_left_img="lh_hipp.nii.gz"
input_right_img="rh_hipp.nii.gz"
ref_img=$ref_dir/${dir##*/}/${dir##*/}_T1_brain.nii.gz
# Apply FLIRT with rigid body transformations to map them on ground truth image
flirt -in $input_left_img -ref $ref_img -applyxfm -usesqform -out T1_orig_L_hippocampus_ToBrain.nii.gz
flirt -in $input_right_img -ref $ref_img -applyxfm -usesqform -out T1_orig_R_hippocampus_ToBrain.nii.gz
# Binarize them to create masks for further comparison
fslmaths T1_orig_L_hippocampus_ToBrain.nii.gz -thr 0.5 -bin T1_orig_L_hippocampus_ToBrain_binarised.nii.gz
fslmaths T1_orig_R_hippocampus_ToBrain.nii.gz -thr 0.5 -bin T1_orig_R_hippocampus_ToBrain_binarised.nii.gz
echo "${dir##*/}: Finished"
else
echo "${dir##*/}: outputs already exist..proceeding to next step"
fi
done
###### START ###############
# Denote path to manual labels and auto labels, and an output path
pathManual=$1
pathAuto=$2
subj=$3
pathT1=$pathAuto
##### Calculate_FN_FP ########
# Input variables
hemisphere=(L R)
error=(FN FP)
for dir in $pathAuto/$subj; do
for h in "${hemisphere[@]}"; do
inputManual="${pathManual}/${dir##*/}/${dir##*/}_${h}hpc_mask.nii.gz"
inputAuto="${pathAuto}/${dir##*/}/T1_orig_${h}_hippocampus_ToBrain_binarised.nii.gz" #change file naming convention per method
# Check if automatic segmentation file exists
if [ -f "$inputAuto" ]; then
# Calculate false negatives and false positives
fslmaths "$inputManual" -sub "$inputAuto" -bin "${pathAuto}/${dir##*/}/${dir##*/}_${h}_FN.nii.gz"
fslmaths "$inputAuto" -sub "$inputManual" -bin "${pathAuto}/${dir##*/}/${dir##*/}_${h}_FP.nii.gz"
else
echo "Error: $inputAuto doesn't exist, skipping it"
fi
done
done
###### BET ###########
# Brain extract the original T1 for use in FLIRT
#for dir in "$pathT1"/$subj; do
# bet $pathT1/${dir##*/}/tool2raw.nii.gz $pathT1/${dir##*/}/${dir##*/}_brain.nii.gz -f 0.5 -g 0
#done
##### BET is not needed since ground truth images are already brain extracted and hsf_map_segs_groundtruth has aligned T1_orig images to brain extracted space
###### FLIRT ########
# Register T1 to MNI
for dir in "$pathT1"/$subj; do
flirt -in "$pathManual/${dir##*/}/${dir##*/}_T1_brain.nii.gz" -ref "$FSLDIR/data/standard/MNI152_T1_2mm_brain.nii.gz" -dof 12 -out "$pathT1/${dir##*/}/${dir##*/}_toMNIlin" -omat "$pathT1/${dir##*/}/${dir##*/}_toMNIlin.mat"
echo "Done: ${dir##*/}"
done
######## FNIRT ###########
# Transform T1 into MNI space using FNIRT
for dir in "$pathT1"/$subj; do
fnirt --in=$pathT1/${dir##*/}/T1_orig_ToBrain.nii.gz --aff="$pathT1/${dir##*/}/${dir##*/}_toMNIlin.mat" --config=$FSLDIR/etc/flirtsch/T1_2_MNI152_2mm.cnf --iout="$pathT1/${dir##*/}/${dir##*/}_toMNInonlin" --cout="$pathT1/${dir##*/}/${dir##*/}_toMNI_coef" --fout="$pathT1/${dir##*/}/${dir##*/}_toMNI_warp"
echo "Done: ${dir##*/}"
done
######### Warp_FN_FP_to_MNI #############
# Paths
# Variables
# Use warps from FNIRT to transform FN and FP maps into MNI space
for dir in "$pathT1"/$subj; do
for h in "${hemisphere[@]}"; do
for err in "${error[@]}"; do
applywarp -i "${pathAuto}/${dir##*/}/${dir##*/}_${h}_${err}.nii.gz" -r "$FSLDIR/data/standard/MNI152_T1_1mm" -w "$pathT1/${dir##*/}/${dir##*/}_toMNI_warp.nii.gz" -o "$pathT1/${dir##*/}/${subj}_${h}_${err}_MNI.nii.gz"
done
done
echo "Done: ${dir##*/}"
done