Diff of /scripts/multi-scan-script [000000] .. [030aeb]

Switch to unified view

a b/scripts/multi-scan-script
1
#!/bin/bash
2
3
# multi-scan-script
4
#
5
# @brief: Run qDESS, Cubequant, and Cones analysis on super folder (absolute path) specified as an argument
6
#
7
# @folder structure:
8
#   |subject_scans
9
#       |patient01
10
#           |qdess
11
#           |cubequant
12
#           |cones
13
#       |patient02
14
#           |qdess
15
#           |cubequant
16
#           |cones
17
#       |patient03
18
#           |qdess
19
#           |cubequant
20
#           |cones
21
#       ...
22
#
23
# @usage (from terminal/command line):
24
#   ./multi-scan-script PATH_TO_SUPER_FOLDER
25
#   eg: "./multi-scan-script Users/john/Documents/subject_scans/"
26
#
27
# @initialization protocol:
28
#   1. run "chmod +x multi-scan-script" from the command line
29
#   2. Update `WEIGHTS_DIRECTORY` field below
30
#
31
# @notes:
32
#   - If data already exists for subject, then script does not recalculate - delete `data` folder and rerun script to redo analysis
33
#
34
# @author: Arjun Desai, Stanford University
35
#          (c) Stanford University, 2018
36
37
echo "This file is currently deprecated - if needed, please make an issue on the corresponding Github repository"
38
exit 125
39
40
WEIGHTS_DIRECTORY="/Users/arjundesai/Documents/stanford/research/msk_pipeline_raw/weights"
41
if [ -z "$WEIGHTS_DIRECTORY" ]; then
42
    echo "Please define WEIGHTS_DIRECTORY in script. Use the absolute path"
43
    exit 125
44
fi
45
46
if [ $# -eq 1 ]
47
then
48
SERIES="qdess"
49
else
50
SERIES=$2
51
fi
52
53
# find relevant dicom files
54
55
FILES=$(find $1 -type d -name $SERIES)
56
57
cd ..
58
59
for i in $FILES; do
60
    DIRNAME=$(dirname $i)
61
    SAVE_DIRNAME="$DIRNAME/data"
62
    CUBEQUANT_DIRNAME="$DIRNAME/cubequant"
63
    CONES_DIRNAME="$DIRNAME/cones"
64
    TARGET_SCAN="$SAVE_DIRNAME/qdess_data/echo1.nii.gz"
65
    MASK="$SAVE_DIRNAME/fc/fc.nii.gz"
66
67
    CUBEQUANT_INTERREGISTERED_DATA="$SAVE_DIRNAME/cubequant_data/interregistered"
68
    CUEQUANT_T1RHO="$SAVE_DIRNAME/cubequant_data/t1_rho.nii.gz"
69
70
71
    CONES_INTERREGISTERED_DATA="$SAVE_DIRNAME/cones_data/interregistered"
72
    CONES_T2STAR="$SAVE_DIRNAME/cones_data/t2_star.nii.gz"
73
74
    echo ""
75
    echo "----------Analyzing $DIRNAME---------"
76
77
    # use qDESS to get femoral cartilage segmentation + 3D t2 maps
78
    if [ ! -e $TARGET_SCAN ]; then
79
        dosma --d $i --s $SAVE_DIRNAME qdess --fc segment --rms --weights_dir $WEIGHTS_DIRECTORY
80
        dosma --l $SAVE_DIRNAME qdess --fc t2
81
    fi
82
83
    # interregister cubequant with qdess
84
    if [ ! -e $CUBEQUANT_INTERREGISTERED_DATA ]; then
85
        echo $CUBEQUANT_INTERREGISTERED_DATA
86
        dosma --d $CUBEQUANT_DIRNAME --s $SAVE_DIRNAME cubequant interregister --ts $TARGET_SCAN --tm $MASK
87
    fi
88
89
    # cubequant 3D t1rho map
90
    if [ ! -e $CUEQUANT_T1RHO ]; then
91
        dosma --l $SAVE_DIRNAME cubequant t1_rho
92
    fi
93
94
    # interregister cones with qdess
95
    if [ ! -e $CONES_INTERREGISTERED_DATA ]; then
96
        dosma --d $CONES_DIRNAME --s $SAVE_DIRNAME cones interregister --ts $TARGET_SCAN --tm $MASK
97
    fi
98
99
    # cones 3D t2_star map
100
    if [ ! -e $CONES_T2STAR ]; then
101
        dosma --l $SAVE_DIRNAME cones t2_star
102
    fi
103
104
    # analyze femoral cartilage
105
    python -m pipeline --l $SAVE_DIRNAME knee --fc --t2 --t2_star --t1_rho
106
done