-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathUFA_DWI_denoise.sh
112 lines (58 loc) · 3.53 KB
/
UFA_DWI_denoise.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
#!/bin/bash
### AUTHOR : Gaoxing Zheng
### Institution: Zhongshan Hospital, Fudan University
### EMAIL CONTACT: [email protected]
### DATE: 2022-04-14
UFA_DWI_denoise(){
OutputFolder="$1"
DWI_Image="$2"
# 1 transform the .nii.gz into .mif file
if [[ $DWI_Image =~ "AP" && $DWI_Image =~ "PA" ]];then
if [ ! -f ${OutputFolder}/DWI/AP/*.bval ]; then
echo "No bval exist!"
mrconvert -json_import ${OutputFolder}/DWI/AP/*.json ${OutputFolder}/DWI/AP/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_AP.mif -force
else
bash ./UFA_correct_bval.sh ${OutputFolder}/DWI/AP/*.bval
mrconvert -fslgrad ${OutputFolder}/DWI/AP/*.bvec ${OutputFolder}/DWI/AP/*.bval -json_import ${OutputFolder}/DWI/AP/*.json ${OutputFolder}/DWI/AP/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_AP.mif -force
fi
if [ ! -f ${OutputFolder}/DWI/PA/*.bval ]; then
echo "No bval exist!"
mrconvert -json_import ${OutputFolder}/DWI/PA/*.json ${OutputFolder}/DWI/PA/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_PA.mif -force
else
bash ./UFA_correct_bval.sh ${OutputFolder}/DWI/PA/*.bval
mrconvert -fslgrad ${OutputFolder}/DWI/PA/*.bvec ${OutputFolder}/DWI/PA/*.bval -json_import ${OutputFolder}/DWI/PA/*.json ${OutputFolder}/DWI/PA/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_PA.mif -force
fi
DWI_AP_dim=`mrinfo -ndim ${OutputFolder}/DWI/Tracking/DWI_AP.mif`
DWI_PA_dim=`mrinfo -ndim ${OutputFolder}/DWI/Tracking/DWI_PA.mif`
if [[ $DWI_AP_dim -eq 4 ]];then
AP_dim4=`mrinfo ${OutputFolder}/DWI/Tracking/DWI_AP.mif -size | cut -d " " -f 4-$n`
else
AP_dim4=0
fi
if [[ $DWI_PA_dim -eq 4 ]];then
PA_dim4=`mrinfo ${OutputFolder}/DWI/Tracking/DWI_PA.mif -size | cut -d " " -f 4-$n`
else
PA_dim4=0
fi
if [[ $AP_dim4 -gt $PA_dim4 ]];then
mrgrid ${OutputFolder}/DWI/Tracking/DWI_PA.mif regrid -template ${OutputFolder}/DWI/Tracking/DWI_AP.mif ${OutputFolder}/DWI/Tracking/DWI_PA_resampled.mif -force
mrconvert ${OutputFolder}/DWI/Tracking/DWI_AP.mif ${OutputFolder}/DWI/Tracking/dwi.mif -force
else
mrgrid ${OutputFolder}/DWI/Tracking/DWI_AP.mif regrid -template ${OutputFolder}/DWI/Tracking/DWI_PA.mif ${OutputFolder}/DWI/Tracking/DWI_AP_resampled.mif -force
mrconvert ${OutputFolder}/DWI/Tracking/DWI_PA.mif ${OutputFolder}/DWI/Tracking/dwi.mif -force
fi
elif [[ $DWI_Image =~ "AP" && $DWI_Image != "PA" ]];then
bash ./UFA_correct_bval.sh ${OutputFolder}/DWI/AP/*.bval
mrconvert -fslgrad ${OutputFolder}/DWI/AP/*.bvec ${OutputFolder}/DWI/AP/*.bval -json_import ${OutputFolder}/DWI/AP/*.json ${OutputFolder}/DWI/AP/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_AP.mif -force
mrconvert ${OutputFolder}/DWI/Tracking/DWI_AP.mif ${OutputFolder}/DWI/Tracking/dwi.mif -force
elif [[ $DWI_Image != "AP" && $DWI_Image =~ "PA" ]];then
bash ./UFA_correct_bval.sh ${OutputFolder}/DWI/PA/*.bval
mrconvert -fslgrad ${OutputFolder}/DWI/PA/*.bvec ${OutputFolder}/DWI/PA/*.bval -json_import ${OutputFolder}/DWI/PA/*.json ${OutputFolder}/DWI/PA/*.nii.gz ${OutputFolder}/DWI/Tracking/DWI_PA.mif -force
mrconvert ${OutputFolder}/DWI/Tracking/DWI_PA.mif ${OutputFolder}/DWI/Tracking/dwi.mif -force
fi
# 2. creat a mask
dwi2mask ${OutputFolder}/DWI/Tracking/dwi.mif - | maskfilter - dilate ${OutputFolder}/DWI/Tracking/preproc_mask.mif -npass 3 -force
# 3. Denoising if diffusion MRI using random matrix theory. 2016
dwidenoise ${OutputFolder}/DWI/Tracking/dwi.mif ${OutputFolder}/DWI/Tracking/denoise.mif -noise ${OutputFolder}/DWI/Tracking/noiselevel.mif -mask ${OutputFolder}/DWI/Tracking/preproc_mask.mif -force
}
UFA_DWI_denoise $1 $2