SCM

SCM Repository

[batman] Annotation of /SplineFitBATMAN_MATLABcode/SplineFitBATMAN.m
ViewVC logotype

Annotation of /SplineFitBATMAN_MATLABcode/SplineFitBATMAN.m

Parent Directory Parent Directory | Revision Log Revision Log


Revision 346 - (view) (download)

1 : jie 346 function varargout = SplineFitBATMAN(varargin)
2 :     % written 120213 Dr. Jie Hao, Imperial College London
3 :     % modified 180213 JHao
4 :     % modified 110913 JHao
5 :    
6 :     % Begin initialization code - DO NOT EDIT
7 :     gui_Singleton = 1;
8 :     gui_State = struct('gui_Name', mfilename, ...
9 :     'gui_Singleton', gui_Singleton, ...
10 :     'gui_OpeningFcn', @SplineFitBATMAN_OpeningFcn, ...
11 :     'gui_OutputFcn', @SplineFitBATMAN_OutputFcn, ...
12 :     'gui_LayoutFcn', [] , ...
13 :     'gui_Callback', []);
14 :     if nargin && ischar(varargin{1})
15 :     gui_State.gui_Callback = str2func(varargin{1});
16 :     end
17 :    
18 :     if nargout
19 :     [varargout{1:nargout}] = gui_mainfcn(gui_State, varargin{:});
20 :     else
21 :     gui_mainfcn(gui_State, varargin{:});
22 :     end
23 :     % End initialization code - DO NOT EDIT
24 :    
25 :    
26 :     % --- Executes just before SplineFitBATMAN is made visible.
27 :     function SplineFitBATMAN_OpeningFcn(hObject, eventdata, handles, varargin)
28 :    
29 :     % Choose default command line output for SplineFitBATMAN
30 :     handles.output = hObject;
31 :     handles.multi = cell(0);
32 :     handles.multi_ID = 0;
33 :     handles.nmrdata = [];
34 :     handles.ppm = [];
35 :     handles.dorder = [];
36 :     handles.flagpoint = 3;
37 :     handles.mksize = 12;
38 :     handles.ppmx = [];
39 :     handles.plotFigure = [];
40 :     handles.axHdl = [];
41 :     handles.x = [];
42 :     handles.y = [];
43 :     handles.h2 = [];
44 :     handles.hspline = [];
45 :     handles.hselect = [];
46 :     handles.a = [];
47 :     axes(handles.logo);
48 :     readimage = imread('batmanlogo.png');
49 :     image(readimage);
50 :     set(gca,'xtick',[],'ytick',[]);
51 :     % imshow('batmanlogo.png')
52 :     % Update handles structure
53 :     guidata(hObject, handles);
54 :    
55 :    
56 :     % UIWAIT makes SplineFitBATMAN wait for user response (see UIRESUME)
57 :     % uiwait(handles.figure1);
58 :    
59 :    
60 :     % --- Outputs from this function are returned to the command line.
61 :     function varargout = SplineFitBATMAN_OutputFcn(hObject, eventdata, handles)
62 :     varargout{1} = handles.output;
63 :    
64 :     function BrowseNMR_Callback(hObject, eventdata, handles)
65 :     [FileName,PathName,FilterIndex] = uigetfile('*.txt', 'Select NMR spectra file');
66 :     set(handles.NMRdir,'String',fullfile(PathName, FileName));
67 :    
68 :    
69 :     function NMRdir_Callback(hObject, eventdata, handles)
70 :    
71 :     function NMRdir_CreateFcn(hObject, eventdata, handles)
72 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
73 :     set(hObject,'BackgroundColor','white');
74 :     end
75 :    
76 :     function chemshiftDir_Callback(hObject, eventdata, handles)
77 :    
78 :     function chemshiftDir_CreateFcn(hObject, eventdata, handles)
79 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
80 :     set(hObject,'BackgroundColor','white');
81 :     end
82 :    
83 :    
84 :     function popupmenu1_CreateFcn(hObject, eventdata, handles)
85 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
86 :     set(hObject,'BackgroundColor','white');
87 :     end
88 :    
89 :     function BrowseChemShift_Callback(hObject, eventdata, handles)
90 :     [FileName,PathName,FilterIndex] = uigetfile('/Users/jhao2/Desktop/runBATMAN/BatmanInput/*.csv', 'Select chemical shift per spectrum file');
91 :     set(handles.chemshiftDir,'String',fullfile(PathName, FileName));
92 :    
93 :     % function ppmZoomFrom_Callback(hObject, eventdata, handles)
94 :    
95 :     function ppmZoomFrom_CreateFcn(hObject, eventdata, handles)
96 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
97 :     set(hObject,'BackgroundColor','white');
98 :     end
99 :    
100 :     % function ppmZoomReset_Callback(hObject, eventdata, handles)
101 :     % replotzoomin(hObject, handles);
102 :    
103 :     % function ppmZoomTo_Callback(hObject, eventdata, handles)
104 :    
105 :     function ppmZoomTo_CreateFcn(hObject, eventdata, handles)
106 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
107 :     set(hObject,'BackgroundColor','white');
108 :     end
109 :    
110 :     function multList_Callback(hObject, eventdata, handles)
111 :     tmp = get(hObject,'Value');
112 :     % if handles.multi_ID ~= tmp
113 :     handles.multi_ID = tmp;
114 :     % else
115 :     % warndlg('Please choose a different multiplet, or click "Select and Run" to repeat with the same multiplet.','!! Warning !!');
116 :     % end
117 :     guidata(hObject, handles);
118 :    
119 :     function multList_CreateFcn(hObject, eventdata, handles)
120 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
121 :     set(hObject,'BackgroundColor','white');
122 :     end
123 :    
124 :     function minpoint_Callback(hObject, eventdata, handles)
125 :    
126 :     function ppmRange_Callback(hObject, eventdata, handles)
127 :    
128 :     function ppmRange_CreateFcn(hObject, eventdata, handles)
129 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
130 :     set(hObject,'BackgroundColor','white');
131 :     end
132 :    
133 :     function maxpoint_Callback(hObject, eventdata, handles)
134 :    
135 :     function splinepoint_Callback(hObject, eventdata, handles)
136 :    
137 :     function runSpline_Callback(hObject, eventdata, handles)
138 :     [hObject, handles] = deletePlot(hObject, handles);
139 :    
140 :     if (handles.multi_ID == 1 || handles.multi_ID == 0)
141 :     warndlg('Please choose a multiplet.','!! Warning !!');
142 :     % multList_Callback(hObject, eventdata, handles);
143 :     return;
144 :     end
145 :     set(0,'CurrentFigure', handles.plotFigure);
146 :     % set(handles.plotFigure,'CurrentAxes', handles.axHdl);
147 :     [x,y,button] = ginput;
148 :     if (length(x) <2)
149 :     warndlg('Please select more than 2 points. Click "Select and Run" to re-select.','!! Warning !!');
150 :     [hObject, handles] = deletePlot(hObject, handles);
151 :     return;
152 :     end
153 :     handles.x = x;
154 :     handles.y = y;
155 :    
156 :     [hObject, handles] = replotspinepoints(hObject,handles);
157 :     guidata(hObject, handles);
158 :    
159 :    
160 :     function saveNext_Callback(hObject, eventdata, handles)
161 :     [hObject, handles] = deletePlot(hObject, handles);
162 :    
163 :     m = handles.ppmx(1,:);
164 :     if length(m) == (size(handles.multi,2)-2)
165 :     [~,d] = sort(handles.dorder);
166 :     m = m(d);
167 :     for i = 3:size(handles.multi,2)
168 :     handles.multi{handles.multi_ID,i} = num2str(m(i-2));
169 :     end
170 :     else
171 :     warndlg('Number of spectra mismatch number of points selected. Please re-select. Click on points from (at least) the first and last spectra.');
172 :     [hObject, handles] = deletePlot(hObject, handles);
173 :     return;
174 :     end
175 :     guidata(hObject, handles);
176 :     write_mixed_csv(get(handles.chemshiftDir,'String'), handles.multi);
177 :    
178 :     function savewrite_Callback(hObject, eventdata, handles)
179 :     m = handles.ppmx(1,:);
180 :     if length(m) == (size(handles.multi,2)-2)
181 :     [~,d] = sort(handles.dorder);
182 :     m = m(d);
183 :     for i = 3:size(handles.multi,2)
184 :     handles.multi{handles.multi_ID,i} = num2str(m(i-2));
185 :     end
186 :     else
187 :     warndlg('Number of spectra mismatch number of points selected. Please re-select. Click on points from (at least) the first and last spectra.');
188 :     [hObject, handles] = deletePlot(hObject, handles);
189 :     return;
190 :     end
191 :     guidata(hObject, handles);
192 :     write_mixed_csv(get(handles.chemshiftDir,'String'), handles.multi);
193 :     msgbox('Chemical shift per spectrum saved in file.');
194 :    
195 :    
196 :     function ppmSortFrom_Callback(hObject, eventdata, handles)
197 :    
198 :    
199 :     function ppmSortFrom_CreateFcn(hObject, eventdata, handles)
200 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
201 :     set(hObject,'BackgroundColor','white');
202 :     end
203 :    
204 :    
205 :     function yError_CreateFcn(hObject, eventdata, handles)
206 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
207 :     set(hObject,'BackgroundColor','white');
208 :     end
209 :    
210 :    
211 :    
212 :     function offset_Callback(hObject, eventdata, handles)
213 :    
214 :     function offset_CreateFcn(hObject, eventdata, handles)
215 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
216 :     set(hObject,'BackgroundColor','white');
217 :     end
218 :    
219 :    
220 :     function Sortplotstack_Callback(hObject, eventdata, handles)
221 :     if (isempty(handles.multi))
222 :     a = read_mixed_csv(get(handles.chemshiftDir,'String'),',');
223 :     for n = 2:size(a,1)
224 :     b{1,n} =[a{n,1} ' ' a{n,2}];
225 :     end
226 :     set(handles.multList,'String',b);
227 :     handles.multi = a;
228 :     else
229 :     a = handles.multi;
230 :     end
231 :    
232 :     ppmSortFrom = str2num(get(handles.ppmSortFrom,'String'));
233 :     ppmSortTo = str2num(get(handles.ppmSortTo,'String'));
234 :    
235 :     sortlimit = sort([ppmSortFrom, ppmSortTo]);
236 :    
237 :     Data = readNMRdata(get(handles.NMRdir,'String'));
238 :     data = Data(:,2:end)';
239 :     if ((size(a,2)-2)~=size(data,1))
240 :     warndlg('Number of spectra mismatch in .txt file and .csv file. Please check input files.');
241 :     return;
242 :     end
243 :    
244 :     ppm=Data(:,1)';
245 :    
246 :     handles.nmrdata = data;
247 :     handles.ppm = ppm;
248 :     % handles.Xn = data(dorder,:);
249 :     ind = find(ppm<= sortlimit(2) & ppm>=sortlimit(1));
250 :     [~, bid]=max(data(:,ind)');
251 :     [~, dorder]= sort(bid);
252 :     dorder = fliplr(dorder);
253 :     handles.dorder = dorder;
254 :     offset = str2num(get(handles.offset,'String'));
255 :     if offset == 0
256 :     warndlg('Please input offset > 0.');
257 :     return;
258 :     end
259 :     [n m]=size(data);
260 :     % ph = (1:m)/10;
261 :     for i = 1:length(dorder)%size(handles.multi,2)
262 :     lab{1,i} =handles.multi{1,dorder(i)+2};
263 :     end
264 :     if (~isempty(handles.plotFigure) && ~isempty(find(findobj('type','figure') == 1)))
265 :     set(0,'CurrentFigure', handles.plotFigure);
266 :     handles.a = axis;
267 :     end
268 :     handles.plotFigure = figure(1);
269 :     clf
270 :     stackplot(data(dorder,:),ppm,lab,offset*ones(m,1),0);
271 :     set(gca,'XDir','reverse');
272 :     zoom reset;
273 :    
274 :     if (~(isempty(handles.a)))
275 :     if (handles.a(1) ~= 0)
276 :     [n,m]=size(data);
277 :     offy=[0:n-1].*offset;
278 :     [r,c] = size(data);
279 :     off = repmat(offy',1,c);
280 :     D = data + off;
281 :     index = find(ppm<=handles.a(2) & ppm>=handles.a(1));
282 :     ylimits=[-0.05 max(max(D(:,index)))+0.05];
283 :     axis([handles.a(1) handles.a(2) ylimits(1) ylimits(2)])
284 :     end
285 :     end
286 :    
287 :     guidata(hObject, handles);
288 :    
289 :     function ppmSortTo_Callback(hObject, eventdata, handles)
290 :    
291 :     function ppmSortTo_CreateFcn(hObject, eventdata, handles)
292 :     if ispc && isequal(get(hObject,'BackgroundColor'), get(0,'defaultUicontrolBackgroundColor'))
293 :     set(hObject,'BackgroundColor','white');
294 :     end
295 :    
296 :     function uipanel9_SelectionChangeFcn(hObject, eventdata, handles)
297 :     if hObject == handles.maxpoint
298 :     flagpoint = 1;
299 :     elseif hObject == handles.minpoint
300 :     flagpoint = 2;
301 :     else
302 :     flagpoint = 3;
303 :     end
304 :     handles.flagpoint = flagpoint;
305 :     guidata(hObject, handles);
306 :    
307 :    
308 :     function relocatep_Callback(hObject, eventdata, handles)
309 :     [hObject, handles] = deletePlot(hObject, handles);
310 :     [hObject, handles] = replotspinepoints(hObject, handles);
311 :     guidata(hObject, handles);

root@r-forge.r-project.org
ViewVC Help
Powered by ViewVC 1.0.0  
Thanks to:
Vienna University of Economics and Business University of Wisconsin - Madison Powered By FusionForge