0001 function clist = trackOpti(dirname,skip,CONST, header, startEnd)
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028
0029
0030
0031
0032
0033
0034
0035
0036
0037
0038
0039
0040
0041
0042
0043
0044
0045
0046
0047 if ~exist('header','var')
0048 header = 'trackOpti no header: ';
0049 end
0050
0051
0052 if ~exist('skip','var') || isempty(skip)
0053 skip = 1;
0054 end
0055
0056
0057 if nargin < 1 || isempty( dirname );
0058 dirname = '.';
0059 end
0060
0061 dirname = fixDir(dirname);
0062 dirname_seg = [dirname,'seg',filesep];
0063 dirname_full = [dirname,'seg_full',filesep];
0064 dirname_cell = [dirname,'cell',filesep];
0065
0066 if ~exist( dirname_cell, 'dir' )
0067 mkdir( dirname_cell );
0068 end
0069
0070 if ~exist( 'startEnd', 'var' ) || isempty( startEnd )
0071 startEnd = [1 20];
0072 end
0073
0074
0075
0076
0077 stamp_name = [dirname_seg,'.trackOptiStripSmall-Step1.mat'];
0078 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 3 && startEnd(2) >= 3)
0079 disp([header,'trackOpti - Step 1: Running trackOptiStripSmall.']);
0080 trackOptiStripSmall(dirname_seg, CONST);
0081 time_stamp = clock;
0082 save( stamp_name, 'time_stamp');
0083 else
0084 disp([header, 'trackOpti: trackOptiStripSmall already run.'] );
0085 end
0086
0087
0088
0089 stamp_name = [dirname_seg,'.trackOptiLinkCell-Step2.mat'];
0090 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 4 && startEnd(2) >= 4)
0091 disp([header,'trackOpti - Step 2: Running trackOptiLinkCell.']);
0092 delete_old_err_files = 1;
0093 trackOptiLinkCellMulti(dirname_seg, delete_old_err_files, CONST, header);
0094 time_stamp = clock;
0095 save( stamp_name, 'time_stamp');
0096 else
0097 disp([header, 'trackOpti: trackOptiLinkCell already run.'] );
0098 end
0099
0100
0101
0102
0103 if skip>1 && ( startEnd(1) <= 4 && startEnd(2) >= 4)
0104 dirname_seg = dirname_full;
0105 stamp_name = [dirname_seg,'.trackOptiSkipMerge-Step2merge.mat'];
0106 if ~exist( stamp_name, 'file' );
0107 disp([header,'trackOpti - Step 2, merge: Running trackOptiSkipMerge.']);
0108 trackOptiSkipMerge(dirname,skip,CONST, header);
0109 time_stamp = clock;
0110 save( stamp_name, 'time_stamp');
0111 else
0112 disp([header,'trackOpti: trackOptiSkipMerge already run.']);
0113 end
0114
0115
0116 stamp_name = [dirname_seg,'.trackOptiLinkCell-Step2merge.mat'];
0117 if ~exist( stamp_name, 'file' );
0118 disp([header,'trackOpti - Step 2, merge: Running trackOptiLinkCell.']);
0119 trackOptiLinkCellMulti(dirname_seg, 1, CONST, header);
0120 time_stamp = clock;
0121 save( stamp_name, 'time_stamp');
0122 else
0123 disp([header,'trackOpti: trackOptiLink already run.']);
0124 end
0125 end
0126
0127
0128
0129
0130
0131 stamp_name = [dirname_seg,'.trackOptiCellMarker-Step3.mat'];
0132 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 5 && startEnd(2) >= 5)
0133 disp([header,'trackOpti - Step 3: Running trackOptiCellMarker.']);
0134 trackOptiCellMarker(dirname_seg, CONST, header);
0135 time_stamp = clock;
0136 save( stamp_name, 'time_stamp');
0137 else
0138 disp([header,'trackOpti: trackOptiCellMarker already run.']);
0139 end
0140
0141
0142
0143 stamp_name = [dirname_seg,'.trackOptiFluor-Step4.mat'];
0144 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 6 && startEnd(2) >= 6)
0145 disp([header,'trackOpti - Step 4: Running trackOptiFluor.']);
0146 trackOptiFluor(dirname_seg,CONST, header);
0147 time_stamp = clock;
0148 save( stamp_name, 'time_stamp');
0149 else
0150 disp([header,'trackOpti: trackOptiFluor already run.']);
0151 end
0152
0153
0154
0155
0156 stamp_name = [dirname_seg,'.trackOptiMakeCell-Step5.mat'];
0157 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 7 && startEnd(2) >= 7)
0158 disp([header,'trackOpti - Step 5: Running trackOptiMakeCell.']);
0159 trackOptiMakeCell(dirname_seg, CONST, header);
0160 time_stamp = clock;
0161 save( stamp_name, 'time_stamp');
0162 else
0163 disp([header,'trackOpti: trackOptiMakeCell already run.']);
0164 end
0165
0166
0167
0168 if sum(CONST.trackLoci.numSpots(:)) && (startEnd(1) <= 8 && startEnd(2) >= 8)
0169 stamp_name = [dirname_seg,'.trackOptiFindFoci-Step6.mat'];
0170 if ~exist( stamp_name, 'file' );
0171 disp([header,'trackOpti - Step 6: Running trackOptiFindFoci.']);
0172 trackOptiFindFoci(dirname_seg, CONST, header);
0173 time_stamp = clock;
0174 save( stamp_name, 'time_stamp');
0175 else
0176 disp([header,'trackOpti: trackOptiFindFoci already run.']);
0177 end
0178 end
0179
0180
0181
0182 stamp_name = [dirname_seg,'.trackOptiClist-Step7.mat'];
0183 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 9 && startEnd(2) >= 9)
0184 disp([header,'trackOpti - Step 7: Running trackOptiClist.']);
0185
0186 [clist] = trackOptiClist(dirname_seg, CONST, header);
0187
0188 if isfield( CONST, 'gate' )
0189 clist.gate = CONST.gate;
0190 end
0191
0192 try
0193 save( [dirname,'clist.mat'],'-STRUCT','clist');
0194 catch ME
0195 printError(ME);
0196 disp([header,'trackOpti: Cell list error being saved.']);
0197 end
0198 time_stamp = clock;
0199 save( stamp_name, 'time_stamp');
0200 else
0201 disp([header,'trackOpti: trackOptiClist already run.']);
0202 end
0203
0204
0205
0206
0207 stamp_name = [dirname_seg,'.trackOptiCellFiles-Step8.mat'];
0208
0209 if ~exist( stamp_name, 'file' ) && (startEnd(1) <= 10 && startEnd(2) >= 10)
0210 disp([header,'trackOpti - Step 8: Running trackOptiCellFiles.']);
0211 clist = load([dirname,'clist.mat']);
0212 if isfield( CONST, 'gate' )
0213 clist.gate = CONST.gate;
0214 end
0215
0216 delete ([dirname_cell,'cell*.mat']);
0217 delete ([dirname_cell,'Cell*.mat']);
0218 trackOptiCellFiles(dirname_seg,dirname_cell,CONST, header, clist);
0219 time_stamp = clock;
0220 save( stamp_name, 'time_stamp');
0221 else
0222 disp([header,'trackOpti: trackOptiCellFiles already run.']);
0223 end
0224
0225 warning('on','MATLAB:DELETE:Permission')
0226
0227 end
0228
0229