-
Notifications
You must be signed in to change notification settings - Fork 4
/
Copy pathcheck_this_mt_data.m
209 lines (154 loc) · 7.69 KB
/
check_this_mt_data.m
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
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
function check_this_mt_data_opt(subject_id)
%-----------------------------------------------------------------------------
%
% USAGE: check_mt_data(subject_id)
%
% matlab script to check MT data for a THIS PHANTOM
% loads and plots MT data
% Ives Levesque Aug. 2004
%
%
%
%----------------------------------------------------------------------------
%addpath(work_dir);
%-- Load some stuff
if exist('do_subject.m','file') == 0
disp('do_subject.m file not found.')
return
end
comp = do_subject
%-- Insert missing excitation pulse flip angles: 7 degs for short TR seq, and 10 degs for long TR seq
% comp{1}.flip = [ 7.0000, 7.0000, 7.0000, 7.0000, 7.0000, 7.0000, 7.0000 ]
display('checkpoint 3');
pause;
%-- Combine information from short and long TR studies
study = combine_studies(comp);
study
study.nominal_offsets{1}
study.nominal_offsets{2}
display('checkpoint 4');
pause;
%-- Read in MT data and normalize
data = read_study_data(study);
data = normalize_mt_data(study, data);
%-- Read in labels to be used for ROI inspection of data
uiwait(helpdlg('Select ROI label file'));
[filename filepath] = uigetfile('*.*');
h = openimage(fullfile(filepath,filename));
tmp = miinquire(fullfile(filepath,filename),'imagesize');
n_slices = tmp(2);
lbl = getimages(h,1:n_slices);
closeimage(h);
%size(lbl)
%size(data.mask)
lbl = lbl(data.mask);
%-- Average data over ROI
rdata = average_mt_data(study, data, lbl);
%-- Load label IDs
label_id;
%which label_id
%labelpdf
size(rdata.measurements{1})
size(rdata.measurements{2})
%size(rdata.measurements{3})
%size(rdata.measurements{4})
% 1:length(label)
%-- Plot data for short TR experiment, then long TR experiment
%figure
%semilogx(study.nominal_offsets{8}, rdata.measurements{8}(1:length(label),:)', 'x--b', study.nominal_offsets{9}, rdata.measurements{9}(1:length(label),:)','x--b', study.nominal_offsets{10}, rdata.measurements{10}(1:length(label),:)','x--b')
%xlabel('frequency offset (Hz)');
%ylabel('normalized MTw signal');
%title('in vivo data, TR = 60 ms, T_{MT} = 30.72 ms')
%print('-dpdf', sprintf([study.dir '/' subject_id '_opt_longTR_data_init.pdf']));
figure
% semilogx(study.nominal_offsets{1}, rdata.measurements{1}(1:length(label),:)', 'x--b',study.nominal_offsets{2}, rdata.measurements{2}(1:length(label),:)', 'x--b',study.nominal_offsets{3}, rdata.measurements{3}(1:length(label),:)', 'x--b', study.nominal_offsets{4}, rdata.measurements{4}(1:length(label),:)', 'x--b', study.nominal_offsets{5}, rdata.measurements{5}(1:length(label),:)', 'x--b', study.nominal_offsets{6}, rdata.measurements{6}(1:length(label),:)', 'x--b', study.nominal_offsets{7}, rdata.measurements{7}(1:length(label),:)', 'x--b')
%semilogx(study.nominal_offsets{1}, rdata.measurements{1}(1:length(label),:)', 'x--b',study.nominal_offsets{2}, rdata.measurements{2}(1:length(label),:)', 'x--b')
semilogx(study.nominal_offsets{1}, rdata.measurements{1}(1:length(label),:)', 'x--b')
xlabel('frequency offset (Hz)');
ylabel('normalized MTw signal');
title('in vivo data, TR = 25 ms, T_{MT} = 10.24 ms')
print('-dpdf', sprintf([study.dir '/' subject_id '_opt_shortTR_data_init.pdf']));
%-- Plot data by ROI
figure
for i = 1:length(label)
%subplot(2,3,i)
%semilogx( study.nominal_offsets{1}, rdata.measurements{1}(i,:)', '.--b', study.nominal_offsets{2}, rdata.measurements{2}(i,:)', '.--b', study.nominal_offsets{3}, rdata.measurements{3}(i,:)', '.--b', study.nominal_offsets{4}, rdata.measurements{4}(i,:)', '.--b', study.nominal_offsets{5}, rdata.measurements{5}(i,:)', '.--b', study.nominal_offsets{6}, rdata.measurements{6}(i,:)', '.--b', study.nominal_offsets{7}, rdata.measurements{7}(i,:)', '.--b')
semilogx( study.nominal_offsets{1}, rdata.measurements{1}(i,:)', '.--b', study.nominal_offsets{2}, rdata.measurements{2}(i,:)', '.--b');
xlabel('frequency offset (Hz)');
ylabel('MTw signal');
title(label(i));
end
print('-dpdf', sprintf([study.dir '/' subject_id '_opt_roi_data.pdf']));
%-- Change sign of B0 data
rdata.b0 = -rdata.b0;
data.b0 = -data.b0;
study.b0_shift = -study.b0_shift;
[fit, cache, lineshape] = mt_img(study,rdata,[],'mtspgr_rp2','mapping_4d','superlrtz_line',[study.dir 'roi_fit.mat']);
print_fit(fit)
print_dfit(fit)
print_data(rdata)
%pause
figure
for i = 1:length(label)
%subplot(2,3,i)
show_fit(study,fit,rdata,cache,lineshape,i,logspace(2,5))
%xlabel('frequency offset (Hz)');
%ylabel('MTw signal');
title(label(i));
end
print('-dpdf', sprintf([study.dir '/' subject_id '_roi_fits.pdf']));
%'Hit any key to continue!'
%pause
save([study.dir '/' subject_id '_2x2_ini.mat'],'study','data')
return
%-- Normalize data manually based on data points farthest from resonance
% the factor of 0.975 is determined manually by looking at the ROI data plots
comp{1}.normalization_scale = [1 1 1 1 1 1 1]/.975 ;
comp{2}.normalization_scale = [1 1 1]/.975 ;
%-- Recombine information from short and long TR studies
study = combine_studies({comp{1:2}});
%-- Re-read and renormalize data
data = read_study_data(study);
data = normalize_mt_data(study, data);
%-- Re-average data over ROI
rdata = average_mt_data(study, data, lbl)
figure
semilogx(study.nominal_offsets{8}, rdata.measurements{8}(1:length(label),:)', 'x--b', study.nominal_offsets{9}, rdata.measurements{9}(1:length(label),:)','x--b', study.nominal_offsets{10}, rdata.measurements{10}(1:length(label),:)','x--b')
xlabel('frequency offset (Hz)');
ylabel('normalized MTw signal');
title('in vivo data, TR = 60 ms, T_{MT} = 30.72 ms')
print('-dpdf', sprintf([study.dir '/' subject_id '_longTR_data_norm.pdf']));
figure
semilogx(study.nominal_offsets{1}, rdata.measurements{1}(1:length(label),:)', 'x--b',study.nominal_offsets{2}, rdata.measurements{2}(1:length(label),:)', 'x--b',study.nominal_offsets{3}, rdata.measurements{3}(1:length(label),:)', 'x--b', study.nominal_offsets{4}, rdata.measurements{4}(1:length(label),:)', 'x--b', study.nominal_offsets{5}, rdata.measurements{5}(1:length(label),:)', 'x--b', study.nominal_offsets{6}, rdata.measurements{6}(1:length(label),:)', 'x--b', study.nominal_offsets{7}, rdata.measurements{7}(1:length(label),:)', 'x--b')
xlabel('frequency offset (Hz)');
ylabel('normalized MTw signal');
title('in vivo data, TR = 25 ms, T_{MT} = 10.24 ms')
print('-dpdf', sprintf([study.dir '/' subject_id '_shortTR_data_norm.pdf']));
%-- Plot data by ROI
figure
for i = 1:length(label)
%subplot(2,3,i)
semilogx( study.nominal_offsets{1}, rdata.measurements{1}(i,:)', '.--b', study.nominal_offsets{2}, rdata.measurements{2}(i,:)', '.--b', study.nominal_offsets{3}, rdata.measurements{3}(i,:)', '.--b', study.nominal_offsets{4}, rdata.measurements{4}(i,:)', '.--b', study.nominal_offsets{5}, rdata.measurements{5}(i,:)', '.--b', study.nominal_offsets{6}, rdata.measurements{6}(i,:)', '.--b', study.nominal_offsets{7}, rdata.measurements{7}(i,:)', '.--b', study.nominal_offsets{8}, rdata.measurements{8}(i,:)', '.--b', study.nominal_offsets{9}, rdata.measurements{9}(i,:)', '.--b', study.nominal_offsets{10}, rdata.measurements{10}(i,:)', '.--b' )
xlabel('frequency offset (Hz)');
ylabel('MTw signal');
title(label(i));
end
print('-dpdf', sprintf([study.dir '/' subject_id '_roi_data_norm.pdf']));
%-- Change sign of B0 data
rdata.b0 = -rdata.b0;
data.b0 = -data.b0;
study.b0_shift = -study.b0_shift;
[fit, cache, lineshape] = mt_img(study,rdata,[],'mtspgr_rp2','mapping_4d','superlrtz_line','norm_roi_fit.mat');
print_fit(fit)
print_dfit(fit)
print_data(rdata)
%pause
for i = 1:length(label)
%subplot(2,3,i)
show_fit(study,fit,rdata,cache,lineshape,i,logspace(2,5))
%xlabel('frequency offset (Hz)');
%ylabel('MTw signal');
title(label(i));
end
print('-dpdf', sprintf([study.dir '/' subject_id '_roi_fits_norm.pdf']));
save([study.dir '/' subject_id '_norm_2x2_ini.mat'],'study','data')