|
165 | 165 | T1 = spm_vol(struc); |
166 | 166 | T1_tmp = T1.private.dat(:,:,:); |
167 | 167 |
|
| 168 | + prob_threshold = 0.9; % threshold to reduce partial volume effect and improve accuracy |
| 169 | + |
168 | 170 | WM_vol_tmp = WM_vol.private.dat(:,:,:); |
169 | | - WM_vol_tmp(WM_vol_tmp < 0.9) = 0; % threshold at 0.9 to avoid partial volume effects |
| 171 | + WM_vol_tmp(WM_vol_tmp < prob_threshold) = 0; |
170 | 172 | T1_WM = WM_vol_tmp .* T1_tmp; |
171 | 173 | T1_WM = T1_WM(:); |
172 | 174 | T1_WM = T1_WM(T1_WM > 0); % include only nonzero voxels |
173 | 175 |
|
174 | 176 | GM_vol_tmp = GM_vol.private.dat(:,:,:); |
175 | | - GM_vol_tmp(GM_vol_tmp < 0.9) = 0; |
| 177 | + GM_vol_tmp(GM_vol_tmp < prob_threshold) = 0; |
176 | 178 | T1_GM = GM_vol_tmp .* T1_tmp; |
177 | 179 | T1_GM = T1_GM(:); |
178 | 180 | T1_GM = T1_GM(T1_GM > 0); |
179 | 181 |
|
180 | 182 | CSF_vol_tmp = CSF_vol.private.dat(:,:,:); |
181 | | - CSF_vol_tmp(CSF_vol_tmp < 0.9) = 0; |
| 183 | + CSF_vol_tmp(CSF_vol_tmp < prob_threshold) = 0; |
182 | 184 | T1_CSF = CSF_vol_tmp .* T1_tmp; |
183 | 185 | T1_CSF = T1_CSF(:); |
184 | 186 | T1_CSF = T1_CSF(T1_CSF > 0); |
185 | 187 |
|
186 | 188 | BG_vol_tmp = BG_vol.private.dat(:,:,:); |
187 | | - BG_vol_tmp(BG_vol_tmp < 0.9) = 0; |
| 189 | + BG_vol_tmp(BG_vol_tmp < prob_threshold) = 0; |
188 | 190 | T1_BG = BG_vol_tmp .* T1_tmp; |
189 | 191 | T1_BG = T1_BG(:); |
190 | 192 | T1_BG = T1_BG(T1_BG > 0); |
191 | 193 |
|
192 | 194 | head_vol_tmp = 1 - BG_vol.private.dat(:,:,:); |
193 | | - head_vol_tmp(head_vol_tmp < 0.9) = 0; |
| 195 | + head_vol_tmp(head_vol_tmp < prob_threshold) = 0; |
194 | 196 | T1_head = head_vol_tmp .* T1_tmp; |
195 | 197 | T1_head = T1_head(:); |
196 | 198 | T1_head = T1_head(T1_head > 0); |
|
275 | 277 | % 3. Calculate a CSF-corrected i.u. value and output it to the structure |
276 | 278 |
|
277 | 279 | GM_vox_n = GM_vox.private.dat(:,:,:); |
278 | | - GM_sum = sum(GM_vox_n(GM_vox_n > 0.9)); % threshold at 0.9 to improve accuracy |
| 280 | + GM_sum = sum(GM_vox_n(GM_vox_n > prob_threshold)); |
279 | 281 | WM_vox_n = WM_vox.private.dat(:,:,:); |
280 | | - WM_sum = sum(WM_vox_n(WM_vox_n > 0.9)); |
| 282 | + WM_sum = sum(WM_vox_n(WM_vox_n > prob_threshold)); |
281 | 283 | CSF_vox_n = CSF_vox.private.dat(:,:,:); |
282 | | - CSF_sum = sum(CSF_vox_n(CSF_vox_n > 0.9)); |
| 284 | + CSF_sum = sum(CSF_vox_n(CSF_vox_n > prob_threshold)); |
283 | 285 |
|
284 | 286 | fGM = GM_sum / (GM_sum + WM_sum + CSF_sum); |
285 | 287 | fWM = WM_sum / (GM_sum + WM_sum + CSF_sum); |
|
0 commit comments