EZexpSel.m 49 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125
  1. global Expaa
  2. global Expbb
  3. global expType
  4. global scansDir
  5. global zonePB
  6. w=pwd;
  7. % Single Exp or Chronological Study
  8. % Construct a questdlg with three options
  9. Exp(expN).expLoadCnt=0;
  10. % Initiation for composite plotting cPlots
  11. Exp(expN).cTraceN=1;
  12. Exp(expN).cTraceIndx=1;
  13. Exp(expN).CompositPlot=0;
  14. choice='Cancel';
  15. expType=0;
  16. choice=questdlg('Choose Single Exp, Chronological Study OR Multi Exp', ...
  17. 'Experiment Type Menu', ...
  18. 'Single Exp','Chronological Study','Multi Exp','Single Exp');
  19. % Handle response
  20. switch choice
  21. case 'Single Exp'
  22. disp([choice 'Single Exp Selected'])
  23. expType=1;
  24. case 'Chronological Study'
  25. disp([choice 'Chronological Study Selected'])
  26. expType=2;
  27. case 'Multi Exp'
  28. disp([choice 'Multi Exp Selected'])
  29. expType=3;
  30. case 'Cancel'
  31. disp('Cancel Load Exp')
  32. expType=0
  33. end
  34. fprintf('expType=%d\n',expType);
  35. if expType==0, return; end
  36. zonePB=expN;
  37. % Pre Load setup incase failure to Load occurs
  38. % updated 230818 to migrate to AppDesigner
  39. if expN==1
  40. set(handles.zonePB1,'value',1);
  41. set(handles.zonePB2,'value',0);
  42. set(handles.zonePB3,'value',0);
  43. set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6]);
  44. set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]);
  45. set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]);
  46. end
  47. if expN==2
  48. set(handles.zonePB2,'value',1);
  49. set(handles.zonePB1,'value',0);
  50. set(handles.zonePB3,'value',0);
  51. set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6]);
  52. set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]);
  53. set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]);
  54. end
  55. if expN==3
  56. set(handles.zonePB3,'value',1);
  57. set(handles.zonePB1,'value',0);
  58. set(handles.zonePB2,'value',0);
  59. set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]);
  60. set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]);
  61. set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]);
  62. end
  63. Exp(expN).htmapRFanswer={'G','L'}; %ZoneData
  64. if expType==1
  65. Exp(expN).DexpType='single';
  66. % Test for Bad MP cell array (usually 384 [NaN}'s)
  67. % replaced length(Exp(expN).Dexp(1).MP) with MPnum
  68. for mx=1:length(Exp(expN).Dexp(1).MP)
  69. try
  70. char((Exp(expN).Dexp(1).MP(mx).genename{1}(384)))
  71. MPnum=mx;
  72. catch
  73. break
  74. end
  75. end
  76. datacursormode off;
  77. % Return without execution if user cancels or doesn't select a .mat file
  78. try
  79. if matFile==0 || scansDir==0
  80. return
  81. end
  82. catch
  83. end
  84. if expN==1 || expN==2 || expN==3
  85. orfLstSel=get(handles.GeneOrfTog,'value')
  86. end
  87. Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')};
  88. Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')};
  89. set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230906
  90. set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}]));
  91. load(matFile);
  92. cd(scansDir)
  93. cd ..;
  94. resDir=pwd;
  95. Exp(expN).Dexp(1).resDir=resDir;
  96. cd ..;
  97. try % this try-catch is to go up one more dir if the images aren't found (from /OtherResults)
  98. test4imageDir=imread(fullfile(pwd,'1','1.bmp'));
  99. ExpPath=pwd;
  100. Exp(expN).Dexp(1).ExpFoldr=ExpPath;
  101. catch
  102. try
  103. cd ..
  104. test4imageDir=imread(fullfile(pwd,'1','1.bmp'));
  105. ExpPath=pwd;
  106. Exp(expN).Dexp(1).ExpFoldr=ExpPath;
  107. catch
  108. cd(w)
  109. end
  110. end
  111. cd(w)
  112. % Experiment Loads
  113. % load (fullfile(ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
  114. load(fullfile(Exp(expN).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat'))
  115. load(fullfile(resDir,'Fotos','Coordinates'))
  116. load(fullfile(resDir,'Fotos','anlZones'))
  117. load(fullfile(resDir,'Fotos','BGatTpts'))
  118. load(fullfile(resDir,'PTmats','NImParameters'))
  119. %Backup for cond. sothat failure to load is recovered back prev. ExpJob data
  120. Exp(expN).Dexp(1).temp.DM=DM;
  121. Exp(expN).Dexp(1).temp.MP=MP;
  122. Exp(expN).Dexp(1).temp.scan=scan;
  123. Exp(expN).Dexp(1).temp.FexpScanSpots=FexpScanSpots;
  124. Exp(expN).Dexp(1).temp.FexpScanBMtp=FexpScanBMtp;
  125. Exp(expN).Dexp(1).temp.anlZoneRefs=anlZoneRefs;
  126. Exp(expN).Dexp(1).temp.ImParMat=ImParMat;
  127. Exp(expN).Dexp(1).DM=Exp(expN).Dexp(1).temp.DM;
  128. Exp(expN).Dexp(1).MP=Exp(expN).Dexp(1).temp.MP;
  129. Exp(expN).Dexp(1).scan=Exp(expN).Dexp(1).temp.scan;
  130. Exp(expN).Dexp(1).FexpScanSpots=Exp(expN).Dexp(1).temp.FexpScanSpots;
  131. Exp(expN).Dexp(1).FexpScanBMtp=Exp(expN).Dexp(1).temp.FexpScanBMtp;
  132. Exp(expN).Dexp(1).anlZoneRefs=Exp(expN).Dexp(1).temp.anlZoneRefs;
  133. Exp(expN).Dexp(1).ImParMat=Exp(expN).Dexp(1).temp.ImParMat;
  134. Exp(expN).DexpLength=1;
  135. Exp(expN).Dexp((Exp(expN).DexpLength+1):end)=[];
  136. % Load new ExpJob
  137. if expN==1,
  138. % Exp(1).traceN=0;
  139. tPtsSize=size(FexpScanBMtp{1,1},3);
  140. set(handles.MPsldr1,'max',length(MP));
  141. set(handles.DMsldr1,'max',length(DM.drug));
  142. set(handles.Tptsldr1,'max',tPtsSize);
  143. % MPnum=length(Exp(expN).Dexp(1).MP);
  144. set(handles.MPsldr1,'min',1) %,'max',MPnum+.1)
  145. DMnum=length(Exp(expN).Dexp(1).DM.drug);
  146. set(handles.DMsldr1,'min',1,'max',DMnum)
  147. tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
  148. set(handles.Tptsldr1,'min',1,'max',tPtsSize)
  149. set(handles.MPsldr1,'value',1)
  150. set(handles.DMsldr1,'value',1)
  151. set(handles.Tptsldr1,'value',1)
  152. set(handles.MPed1,'string','1')
  153. set(handles.DMed1,'string','1')
  154. set(handles.Tpted1,'string','1')
  155. set(handles.MPsldr1,'SliderStep',[1/length(MP) 1/length(MP)]);
  156. set(handles.DMsldr1,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
  157. set(handles.Tptsldr1,'SliderStep',[1/tPtsSize 1/tPtsSize]);
  158. set(handles.DN1,'value',1)
  159. set(handles.DN1,'string',1)
  160. end
  161. if expN==2,
  162. %Exp(2).traceN=0;
  163. tPtsSize=size(FexpScanBMtp{1,1},3);
  164. set(handles.MPsldr2,'max',length(MP));
  165. set(handles.DMsldr2,'max',length(DM.drug));
  166. set(handles.Tptsldr2,'max',tPtsSize);
  167. %MPnum=length(Exp(expN).Dexp(1).MP);
  168. set(handles.MPsldr2,'min',1) %,'max',MPnum)
  169. DMnum=length(Exp(expN).Dexp(1).DM.drug);
  170. set(handles.DMsldr2,'min',1,'max',DMnum)
  171. tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
  172. set(handles.Tptsldr2,'min',1,'max',tPtsSize)
  173. set(handles.MPsldr2,'value',1)
  174. set(handles.DMsldr2,'value',1)
  175. set(handles.Tptsldr2,'value',1)
  176. set(handles.MPed2,'string','1')
  177. set(handles.DMed2,'string','1')
  178. set(handles.Tpted2,'string','1')
  179. set(handles.MPsldr2,'SliderStep',[1/length(MP) 1/length(MP)]);
  180. set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
  181. set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]);
  182. set(handles.DN2,'value',1)
  183. set(handles.DN2,'string',1)
  184. end
  185. if expN==3,
  186. % Exp(3).traceN=0;
  187. tPtsSize=size(FexpScanBMtp{1,1},3);
  188. set(handles.MPsldr3,'max',length(MP));
  189. set(handles.DMsldr3,'max',length(DM.drug));
  190. set(handles.Tptsldr3,'max',tPtsSize);
  191. % MPnum=length(Exp(expN).Dexp(1).MP);
  192. set(handles.MPsldr3,'min',1) %,'max',MPnum)
  193. DMnum=length(Exp(expN).Dexp(1).DM.drug);
  194. set(handles.DMsldr3,'min',1,'max',DMnum)
  195. tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3));
  196. set(handles.Tptsldr3,'min',1,'max',tPtsSize)
  197. set(handles.MPsldr3,'value',1)
  198. set(handles.DMsldr3,'value',1)
  199. set(handles.Tptsldr3,'value',1)
  200. set(handles.MPed3,'string','1')
  201. set(handles.DMed3,'string','1')
  202. set(handles.Tpted3,'string','1')
  203. set(handles.MPsldr3,'SliderStep',[1/length(MP) 1/length(MP)]);
  204. set(handles.DMsldr3,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]);
  205. set(handles.Tptsldr3,'SliderStep',[1/tPtsSize 1/tPtsSize]);
  206. set(handles.DN3,'value',1)
  207. set(handles.DN3,'string',1)
  208. end
  209. if expN==1,
  210. set(handles.GeneOrfLoc1,'string',{''});
  211. set(handles.graphStrLoc1,'string',{''});
  212. cla(handles.Paxes1);
  213. end
  214. if expN==2
  215. set(handles.GeneOrfLoc2,'string',{''});
  216. set(handles.graphStrLoc2,'string',{''});
  217. cla(handles.Paxes2)
  218. end
  219. if expN==3
  220. set(handles.GeneOrfLoc3,'string',{''});
  221. set(handles.graphStrLoc3,'string',{''})
  222. cla(handles.Paxes3)
  223. end
  224. Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')};
  225. Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')};
  226. set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtGnLst)
  227. set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtOrfLst)
  228. EZVimDisplay
  229. % Capture Exp Name
  230. try
  231. xp=char(Exp(expN).Dexp(1).resDir);
  232. if ispc,
  233. slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'\');
  234. else
  235. slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'/');
  236. end
  237. startPos=slashPos(length(slashPos)-2) +1;
  238. endPos=(slashPos(length(slashPos)) -1);
  239. expStrn=xp(startPos:end);
  240. if expN==1,set(handles.expName1,'string',expStrn);end
  241. if expN==2,set(handles.expName2,'string',expStrn);end
  242. if expN==3,set(handles.expName3,'string',expStrn);end
  243. catch
  244. catchissue='Ln198'
  245. end % nested try-catch-end
  246. % Compile GeneList and OrfList
  247. % Sort and add the medians of Ref Plates if RF1,RF2 exist
  248. % Added 17-1023 For User Addition of Gene Composites to ListBox
  249. Expaa{expN,1}=[];
  250. Expbb{expN,1}=[];
  251. lstindx=0;
  252. lstindxOrf=0;
  253. spN=0;
  254. rfcnt=0;
  255. dRF1indx=0;
  256. RF1mp=[];
  257. RF2mp=[];
  258. for mp=1:MPnum % length(Exp(expN).Dexp(1).MP)
  259. for ind384=1:384
  260. spN=spN+1;
  261. try % Temp find data error
  262. r=ceil(ind384/24);
  263. if rem(ind384,24)==0, c=24; else c=rem(ind384,24); end
  264. % Insert test for numeric in genename and orf if isnumeric
  265. % Correct common EXCEL problem of converting OCT1 into a date numeric
  266. if cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))==38991,
  267. Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={'OCT1_'};
  268. elseif isnumeric(cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))
  269. Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={' '};
  270. end
  271. % Check for full(384spot) Reference Plates (RF1 or/and RF2)
  272. RF1fullPlate=0;
  273. try RF1fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
  274. RF2fullPlate=0;
  275. try RF2fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF2'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end
  276. if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))),'blank'))... % '\<blank\>'
  277. && ~isnumeric(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))...
  278. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')...
  279. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')...
  280. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'')...
  281. && ~isempty((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)))...
  282. && (~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'RF1'))... %||~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1'))... %&& mp==1)...
  283. && (~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'RF2'))... %||~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))... %&& mp==length(Exp(expN).Dexp(1).MP))...
  284. && iscellstr((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)))
  285. lstindxOrf=lstindxOrf+1;
  286. Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),':',' ');
  287. bb(lstindxOrf,1)=(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384));
  288. bb(lstindxOrf,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
  289. bb(lstindxOrf,3)={mp};
  290. bb(lstindxOrf,4)={r};
  291. bb(lstindxOrf,5)={c};
  292. mutorfs(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract
  293. %Exp(expN).Dexp(1).mutSpotIndx(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract
  294. end
  295. if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))),'blank'))... % '\<blank\>'
  296. && ~isnumeric(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))...
  297. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')...
  298. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')...
  299. && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'')...
  300. && ~isempty((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))...
  301. && (~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1'))... %&& ~RF1fullPlate)...
  302. && (~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))... %&& ~RF2fullPlate)...
  303. && iscellstr((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))
  304. lstindx=lstindx+1;
  305. Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),':',' ');
  306. aa(lstindx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384));
  307. aa(lstindx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
  308. aa(lstindx,3)={mp};
  309. aa(lstindx,4)={r};
  310. aa(lstindx,5)={c};
  311. mutgenes(lstindx)=spN;
  312. elseif (RF1fullPlate==1 ... % sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384 || ...
  313. || (((length(unique(Exp(expN).Dexp(1).MP(mp).genename{1}(1:384))))==1 && mp==1 ) ... %(isequal((Exp(expN).Dexp(1).MP(mp).genename{1}(1:384)), (Exp(expN).Dexp(1).MP(mp).genename{1}(384:-1:1)))&& mp==1 )) && ...
  314. && ~exist('RF1scanN','var')))
  315. rfcnt=rfcnt+1;
  316. RFs(spN:spN+383)=spN:spN+383;
  317. RF1mp=mp
  318. RF1scanN=(mp*DMnum)-(DMnum-1)
  319. elseif (RF2fullPlate==1||... % sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))==384 ||...
  320. (((length(unique(Exp(expN).Dexp(1).MP(mp).genename{1}(1:384))))==1 && mp==MPnum ) ...
  321. && ~exist('RF2scanN','var')))
  322. rfcnt=rfcnt+1;
  323. RFs(spN:spN+383)=spN:spN+383;
  324. RF2mp=mp
  325. RF2scanN=(mp*DMnum)-(DMnum-1)
  326. % Dispersed Reference capture and find Medians
  327. elseif strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1') ...
  328. && (RF1fullPlate~=1)
  329. dRF1indx=dRF1indx+1;
  330. Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),':',' ');
  331. drf(dRF1indx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384));
  332. drf(dRF1indx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))};
  333. drf(dRF1indx,3)={mp}; drfMP(dRF1indx,mp)=mp;
  334. drf(dRF1indx,4)={r}; drfr(dRF1indx,mp)=r;
  335. drf(dRF1indx,5)={c}; drfc(dRF1indx,mp)=c;
  336. drf(dRF1indx,6)={ind384}; drfPindx(dRF1indx,mp)=ind384;
  337. end
  338. catch
  339. error='EZexpSel lineAfter 236 EZexpSel.m'
  340. mp
  341. ind384
  342. msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384))
  343. end
  344. end
  345. mp
  346. end
  347. % Cover case if mutorfs RFs are labeled RF1 or RF2
  348. try
  349. Exp(expN).Dexp(1).mutSpotIndx.wRFs=union(RFs, mutorfs);
  350. catch
  351. msg='No RFs Found in Exp! wRFs'
  352. Exp(expN).Dexp(1).mutSpotIndx.wRFs=mutorfs;
  353. end
  354. try
  355. Exp(expN).Dexp(1).mutSpotIndx.woRFs=setdiff(mutorfs,RFs);
  356. catch
  357. Exp(expN).Dexp(1).mutSpotIndx.woRFs=mutorfs;
  358. msg='No RFs Found in Exp! woRFs'
  359. end
  360. Exp(expN).Dexp(1).RFmd1indx=[];
  361. Exp(expN).Dexp(1).RFmd1LB={[]};
  362. Exp(expN).Dexp(1).RFmd1pltN={};
  363. Exp(expN).Dexp(1).RFmd1val=[];
  364. Exp(expN).Dexp(1).mean1=[];
  365. Exp(expN).Dexp(1).std1=[];
  366. Exp(expN).Dexp(1).min1=[];
  367. Exp(expN).Dexp(1).max1=[];
  368. Exp(expN).Dexp(1).RFcmpK=[]; %For Ref Composite 17_1009
  369. Exp(expN).Dexp(1).RFcmpr=[]; %For Ref Composite 17_1009
  370. Exp(expN).Dexp(1).RFcmpL=[]; %For Ref Composite 17_1009
  371. Exp(expN).Dexp(1).RFmd2indx=[];
  372. Exp(expN).Dexp(1).RFmd2LB={[]};
  373. Exp(expN).Dexp(1).RFmd2pltN={};
  374. Exp(expN).Dexp(1).RFmd2val=[];
  375. Exp(expN).Dexp(1).mean2=[];
  376. Exp(expN).Dexp(1).std2=[];
  377. Exp(expN).Dexp(1).min2=[];
  378. Exp(expN).Dexp(1).max2=[];
  379. Exp(expN).Dexp(1).RFmean=[];
  380. Exp(expN).Dexp(1).RFstd=[];
  381. Exp(expN).Dexp(1).RFmin=[];
  382. Exp(expN).Dexp(1).RFmax=[];
  383. Exp(expN).Dexp(1).RFmdPLvals=[]; %17_1201 TrendOL
  384. Exp(expN).Dexp(1).RFmdPLB={[]};
  385. Exp(expN).Dexp(1).RFmdPindx=[];
  386. Exp(expN).Dexp(1).RFmdPpltN=[];
  387. Exp(expN).Dexp(1).RFmdPscanN=[];
  388. Exp(expN).Dexp(1).RFmedianP=[];
  389. Exp(expN).Dexp(1).stdP=[];
  390. Exp(expN).Dexp(1).meanP=[];
  391. Exp(expN).Dexp(1).minP=[];
  392. Exp(expN).Dexp(1).maxP=[];
  393. Exp(expN).Dexp(1).RFcmpPK=[]; %For Ref Composite 17_1009
  394. Exp(expN).Dexp(1).RFcmpPr=[]; %For Ref Composite 17_1009
  395. Exp(expN).Dexp(1).RFcmpPL=[]; %For Ref Composite 17_1009
  396. Exp(expN).Dexp(1).RFmdGLB={[]};
  397. Exp(expN).Dexp(1).RFmdGindx=[];
  398. Exp(expN).Dexp(1).RFmdGpltN=[];
  399. Exp(expN).Dexp(1).RFmdGscanN=[];
  400. Exp(expN).Dexp(1).RFmedianG=[];
  401. Exp(expN).Dexp(1).RFmeanG=[];
  402. Exp(expN).Dexp(1).RFstdG=[];
  403. Exp(expN).Dexp(1).RFminG=[];
  404. Exp(expN).Dexp(1).RFmaxG=[];
  405. Exp(expN).Dexp(1).RFcmpGK=[]; %For Ref Composite 17_1009
  406. Exp(expN).Dexp(1).RFcmpGr=[]; %For Ref Composite 17_1009
  407. Exp(expN).Dexp(1).RFcmpGL=[]; %For Ref Composite 17_1009
  408. %{
  409. Exp(expN).Dexp(1).RFmeanGK=[]; %For Ref Composite 17_1009
  410. Exp(expN).Dexp(1).RFstdGK=[]; %For Ref Composite 17_1009
  411. Exp(expN).Dexp(1).RFminGK=[]; %For Ref Composite 17_1009
  412. Exp(expN).Dexp(1).RFmaxGK=[]; %For Ref Composite 17_1009
  413. Exp(expN).Dexp(1).RFmeanGr=[]; %For Ref Composite 17_1009
  414. Exp(expN).Dexp(1).RFstdGr=[]; %For Ref Composite 17_1009
  415. Exp(expN).Dexp(1).RFminGr=[]; %For Ref Composite 17_1009
  416. Exp(expN).Dexp(1).RFmaxGr=[]; %For Ref Composite 17_1009
  417. %}
  418. if exist('RF1scanN','var')
  419. for d=0:(DMnum-1)
  420. medianIndx=[];
  421. nonZeroIndx=[];
  422. medValList=[];
  423. rf1scN=RF1scanN+d;
  424. try % if RF1scanN doesn't exist this addition to list will be skipped
  425. nonZeroIndx=find(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5));
  426. if isempty(nonZeroIndx)
  427. nonZeroCnt=0
  428. medianIndx=nonZeroIndx;
  429. else
  430. nonZeroCnt=length(nonZeroIndx);
  431. end
  432. if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)==0, medianIndx=nonZeroIndx(1:nonZeroCnt-1); end
  433. if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)~=0, medianIndx=nonZeroIndx; end
  434. clear medValLst
  435. clear kValLst
  436. clear rValLst
  437. if ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384) %To calc. a median, more than 15% of spots must be nonZero
  438. medValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5);
  439. medValList1{d+1}=medValLst;
  440. min1=min(medValLst);
  441. max1=max(medValLst);
  442. std1=std(medValLst);
  443. mean1=mean(medValLst);
  444. kValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,3); %For Ref Composite 17_1009
  445. rValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,4); %For Ref Composite 17_1009
  446. mval1=median(medValLst); %mval1=median(Exp(expN).Dexp(1).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5));
  447. RFmd1pos=find(mval1==(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5)));
  448. RFmd1loc(1)=ceil(RFmd1pos/24); %calc r value
  449. RFmd1loc(2)=RFmd1pos - ((RFmd1loc(1)-1)*24); %calc c value
  450. lstindx=lstindx+1;
  451. lstindxOrf=lstindxOrf+1;
  452. aa(lstindx,1)={strcat('RF1md(',num2str(d+1),')')}; %{'RF1md'};
  453. aa(lstindx,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))};
  454. bb(lstindxOrf,1)={strcat('RF1md(',num2str(d+1),')')}; %{'RF1md'};
  455. bb(lstindxOrf,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))};
  456. % Composite Reference Amalgum Plot *********************
  457. lstindx=lstindx+1;
  458. lstindxOrf=lstindxOrf+1;
  459. aa(lstindx,1)={strcat('RF1cmp(',num2str(d+1),')')};
  460. aa(lstindx,2)={''};
  461. bb(lstindxOrf,1)={strcat('RF1cmp(',num2str(d+1),')')};
  462. bb(lstindxOrf,2)={''};
  463. Exp(expN).Dexp(1).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
  464. Exp(expN).Dexp(1).RFmd1indx(d+1)=RFmd1pos;
  465. Exp(expN).Dexp(1).RFmd1pltN=RF1mp;
  466. Exp(expN).Dexp(1).RFmd1val(d+1)=mval1;
  467. Exp(expN).Dexp(1).RFmd1Lvals=medValLst; %17_1201 TrendOL
  468. Exp(expN).Dexp(1).mean1(d+1)=mean1;
  469. Exp(expN).Dexp(1).std1(d+1)=std1;
  470. Exp(expN).Dexp(1).min1(d+1)=min1;
  471. Exp(expN).Dexp(1).max1(d+1)=max1;
  472. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).Lvals=medValLst; %17_1201 TrendOL
  473. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).med=median(medValLst); %For Ref Composite 17_1009
  474. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).mean=mean(medValLst); %For Ref Composite 17_1009
  475. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).std=std(medValLst); %For Ref Composite 17_1009
  476. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).min=min(medValLst); %For Ref Composite 17_1009
  477. Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).max=max(medValLst); %For Ref Composite 17_1009
  478. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).Kvals=kValLst; %17_1201 TrendOL
  479. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).med=median(kValLst); %For Ref Composite 17_1009
  480. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).mean=mean(kValLst); %For Ref Composite 17_1009
  481. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).std=std(kValLst); %For Ref Composite 17_1009
  482. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).min=min(kValLst); %For Ref Composite 17_1009
  483. Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).max=max(kValLst); %For Ref Composite 17_1009
  484. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).rvals=rValLst; %17_1201 TrendOL
  485. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).med=median(rValLst); %For Ref Composite 17_1009
  486. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).mean=mean(rValLst); %For Ref Composite 17_1009
  487. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).std=std(rValLst); %For Ref Composite 17_1009
  488. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).min=min(rValLst); %For Ref Composite 17_1009
  489. Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009
  490. else
  491. % Need to set L r K values to zeros or pick the first spot with zeros
  492. % Spot 1 could be other than zero as the median isn't calculated if
  493. % fewer than some percent are nonzero
  494. medianCalcFailed='To Few nonZero spots for valid median RF1 selection'
  495. firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
  496. Exp(expN).Dexp(1).RFmd1indx(d+1)=firstZero;
  497. Exp(expN).Dexp(1).RFmd1pltN=RF1mp;
  498. try
  499. medValList1{d+1}=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5); nonZeroCnt;
  500. catch
  501. catcherror='Ln356'
  502. end
  503. end % ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384)
  504. catch
  505. medianCalcTryFailed1='Failed! Failed! Ln362 But process continued with bogus P1ind384 spot value!'
  506. try
  507. firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first')
  508. Exp(expN).Dexp(1).RFmd1indx(d+1)=firstZero;
  509. catch
  510. catchissue='Ln366'
  511. Exp(expN).Dexp(1).RFmd1indx(d+1)=384; % if crapout,Then use spot384 as default to keep going
  512. end
  513. try
  514. Exp(expN).Dexp(1).RFmd1pltN=RF1mp;
  515. catch
  516. catchissue='Ln372'
  517. Exp(expN).Dexp(1).RFmd1pltN=1;
  518. end
  519. end
  520. end
  521. end
  522. % Calc RF2 median if a full plate of RF2s exist
  523. Exp(expN).Dexp(1).RFmd2indx=[];
  524. Exp(expN).Dexp(1).RFmd2pltN=[];
  525. if exist('RF2scanN','var')
  526. for d=0:(DMnum-1)
  527. medianIndx2=[];
  528. nonZeroIndx2=[];
  529. medValList2=[];
  530. rf2scN=RF2scanN+d;
  531. try % if RF2scanN doesn't exist this addition to list will be skipped
  532. nonZeroIndx2=find(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5));
  533. if isempty(nonZeroIndx2)
  534. nonZeroCnt2=0
  535. medianIndx2=nonZeroIndx2;
  536. else nonZeroCnt2=length(nonZeroIndx2);
  537. end
  538. if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)==0, medianIndx2=nonZeroIndx2(1:nonZeroCnt2-1); end
  539. if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)~=0, medianIndx2=nonZeroIndx2; end
  540. clear medValLst2
  541. clear kValLst2
  542. clear rValLst2
  543. if ~isempty(nonZeroIndx2) && length(medianIndx2) > (.15*384) % to calc. a median, more than 15% of spots must be nonZero
  544. medValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5);
  545. medValList2{d+1}=medValLst2;
  546. min2=min(medValLst2);
  547. max2=max(medValLst2);
  548. std2=std(medValLst2);
  549. mean2=mean(medValLst2);
  550. kValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,3); % for Ref Composite 17_1009
  551. rValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,4); % for Ref Composite 17_1009
  552. mval2=median(medValLst2); %mval2=median(Exp(expN).Dexp(1).scan(RF2mps).plate(1).CFout(1:383,5));
  553. RFmd2pos=find(mval2==(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5)));
  554. RFmd2loc(1)=ceil(RFmd2pos/24); %calc r value
  555. RFmd2loc(2)=RFmd2pos - ((RFmd2loc(1)-1)*24); %calc c value
  556. lstindx=lstindx+1;
  557. lstindxOrf=lstindxOrf+1;
  558. aa(lstindx,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'};
  559. aa(lstindx,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))};
  560. bb(lstindxOrf,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'};
  561. bb(lstindxOrf,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))};
  562. %Composite Reference Amalgum Plot (CRAP)
  563. lstindx=lstindx+1;
  564. lstindxOrf=lstindxOrf+1;
  565. aa(lstindx,1)={strcat('RF2cmp(',num2str(d+1),')')};
  566. aa(lstindx,2)={''};
  567. bb(lstindxOrf,1)={strcat('RF2cmp(',num2str(d+1),')')};
  568. bb(lstindxOrf,2)={''};
  569. Exp(expN).Dexp(1).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2));
  570. Exp(expN).Dexp(1).RFmd2indx(d+1)=RFmd2pos;
  571. Exp(expN).Dexp(1).RFmd2pltN=RF2mp;
  572. Exp(expN).Dexp(1).RFmd2val(d+1)=mval2;
  573. Exp(expN).Dexp(1).RFmd1Lvals=medValLst2; %17_1201 TrendOL
  574. Exp(expN).Dexp(1).mean2(d+1)=mean2;
  575. Exp(expN).Dexp(1).std2(d+1)=std2;
  576. Exp(expN).Dexp(1).min2(d+1)=min2;
  577. Exp(expN).Dexp(1).max2(d+1)=max2;
  578. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).Lvals=medValLst2; %17_1201 TrendOL
  579. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).med=median(medValLst2); %For Ref Composite 17_1009
  580. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).mean=mean(medValLst2); %For Ref Composite 17_1009
  581. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).std=std(medValLst2); %For Ref Composite 17_1009
  582. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).min=min(medValLst2); %For Ref Composite 17_1009
  583. Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).max=max(medValLst2); %For Ref Composite 17_1009
  584. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).Kvals=kValLst2; %17_1201 TrendOL
  585. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).med=median(kValLst2); %For Ref Composite 17_1009
  586. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).mean=mean(kValLst2); %For Ref Composite 17_1009
  587. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).std=std(kValLst2); %For Ref Composite 17_1009
  588. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).min=min(kValLst2); %For Ref Composite 17_1009
  589. Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).max=max(kValLst2); %For Ref Composite 17_1009
  590. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).rvals=rValLst2; %17_1201 TrendOL
  591. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).med=median(rValLst2); %For Ref Composite 17_1009
  592. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).mean=mean(rValLst2); %For Ref Composite 17_1009
  593. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).std=std(rValLst2); %For Ref Composite 17_1009
  594. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).min=min(rValLst2); %For Ref Composite 17_1009
  595. Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009
  596. else
  597. % Pick the first spot with zeros
  598. % Use that position to satisfy and keep process OK
  599. medianCalcFailed2='Too Few nonZero spots for valid median RF2 selection'
  600. firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first')
  601. Exp(expN).Dexp(1).RFmd2indx(d+1)=firstZero2;
  602. Exp(expN).Dexp(1).RFmd2pltN=RF2mp;
  603. try medValList2{d+1}=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5); nonZeroCnt2; catch, catchissue='Ln431', end
  604. end
  605. catch
  606. medianCalcTryFailed2='Failed! Failed! Ln436 No RF1median But process continued with bogus P1ind384 spot value!'
  607. try
  608. firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first');
  609. Exp(expN).Dexp(1).RFmd2indx(d+1)=firstZero2;
  610. catch
  611. Exp(expN).Dexp(1).RFmd2indx(d+1)=384; %if crapout,Then use spot384 as default to keep going
  612. end
  613. try
  614. Exp(expN).Dexp(1).RFmd2pltN=RF2mp;
  615. catch
  616. catchissue='Ln448'
  617. Exp(expN).Dexp(1).RFmd2pltN=1;
  618. end
  619. end
  620. clear RFcombValList
  621. RFcombValList=cat(1,medValList1{d+1},medValList2{d+1});
  622. Exp(expN).Dexp(1).RFmean(d+1)=mean(RFcombValList);
  623. Exp(expN).Dexp(1).RFstd(d+1)=std(RFcombValList);
  624. try, Exp(expN).Dexp(1).RFmin(d+1)=min(RFcombValList);
  625. catch, Exp(expN).Dexp(1).RFmin(d+1)=0; end
  626. try, Exp(expN).Dexp(1).RFmax(d+1)=max(RFcombValList);
  627. catch, Exp(expN).Dexp(1).RFmax(d+1)=0; end
  628. end
  629. elseif exist('RF1scanN','var')
  630. Exp(expN).Dexp(1).RFmean=Exp(expN).Dexp(1).mean1;
  631. Exp(expN).Dexp(1).RFstd=Exp(expN).Dexp(1).std1;
  632. Exp(expN).Dexp(1).RFmin=Exp(expN).Dexp(1).min1;
  633. Exp(expN).Dexp(1).RFmax=Exp(expN).Dexp(1).max1;
  634. end
  635. % Disperse Reference Plates
  636. Exp(expN).Dexp(1).RFmdPindx=[];
  637. Exp(expN).Dexp(1).RFmdPpltN=[];
  638. if exist('drf','var')
  639. % Det. index of change from one MP to the next
  640. i=2;
  641. chgIndx(1)=1;
  642. for j=1:length(drf(:,3))
  643. if j>1
  644. if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end
  645. end
  646. end
  647. chgIndx(length(chgIndx)+1)=length(drf)+1;
  648. uu=zeros(size(drf,1),4);
  649. uu(:,1:4)=cell2mat(drf(:,3:6))
  650. vv=zeros(length(drf),DMnum);
  651. dMPs=unique(cell2mat(drf(:,3)));
  652. for mm=1:length(dMPs) % length(chgIndx)
  653. for d=1:(DMnum)
  654. medianIndxDisp=[];
  655. NZrefIndxP=[];
  656. nonZeroValsP=[];
  657. medValLstDisp=[];
  658. rf1scNdisp=((dMPs(mm)-1)*DMnum)+(d);
  659. try % Determine the dispersed RFs median mean and std if such exist
  660. NZrefIndxP=drfPindx((find(drfPindx(:,dMPs(mm)))),dMPs(mm)); %find(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(drf(chgIndx(cI):chgIndx(cI+1)),5));
  661. %vv=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
  662. vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
  663. %For Global Ref Composite 17_1009
  664. vvK(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,3);
  665. vvr(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,4);
  666. nonZeroValsP=nonzeros(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
  667. std1Disp=std(nonZeroValsP);
  668. mean1Disp=mean(nonZeroValsP);
  669. minDisp=min(nonZeroValsP);
  670. maxDisp=max(nonZeroValsP);
  671. drfVals=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5);
  672. % MEDIAN Determination for PLATES with Dispersed RFs
  673. % NZrefIndxP=NZrefIndxP %find(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5));
  674. if isempty(NZrefIndxP)
  675. nonZeroCntDisp=0
  676. medianIndxDisp=NZrefIndxP;
  677. else
  678. nonZeroCntDisp=length(NZrefIndxP);
  679. end
  680. if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp=NZrefIndxP(1:nonZeroCntDisp-1); end
  681. if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end
  682. if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 %(.15*384) % to calc. a median, more than 15% of spots must be nonZero
  683. medValLstDisp=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(medianIndxDisp,5);
  684. % medValList1Disp{d}=medValLstDisp;
  685. mval1Disp=median(medValLstDisp); % mval1=median(Exp(expN).Dexp(1).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5));
  686. nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP); % (Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))); %(nonZeroIndxDisp,5))); %((nonZrfIndx.mp{dMPs(mm),:}),5)));
  687. RFmd1posD=NZrefIndxP(nonZeroMedPosIndx); % drfPindx((RFmd1posIndx),dMPs(mm));
  688. RFmd1locD(1)=ceil(RFmd1posD/24); % calc r value
  689. RFmd1locD(2)=RFmd1posD - ((RFmd1locD(1)-1)*24); % calc c value
  690. lstindx=lstindx+1;
  691. lstindxOrf=lstindxOrf+1;
  692. aa(lstindx,1)={strcat('RF1mdP(',num2str(d),')')};
  693. aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
  694. bb(lstindxOrf,1)={strcat('RF1mdP(',num2str(d),')')};
  695. bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))};
  696. Exp(expN).Dexp(1).RFmdPLvals(d,dMPs(mm))=mval1Disp; %17_1201 TrendOL
  697. Exp(expN).Dexp(1).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2));
  698. Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD;
  699. Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %This is a storage of the MasterPlate used NOT the ScanPlate? WeMight wish to store the ScanPlateNumber also???
  700. Exp(expN).Dexp(1).RFmdPscanN(d,dMPs(mm))=rf1scNdisp;
  701. Exp(expN).Dexp(1).RFmedianP(d,dMPs(mm))=mval1Disp;
  702. Exp(expN).Dexp(1).stdP(d,dMPs(mm))=std1Disp;
  703. Exp(expN).Dexp(1).meanP(d,dMPs(mm))=mean1Disp;
  704. Exp(expN).Dexp(1).minP(d,dMPs(mm))=minDisp;
  705. Exp(expN).Dexp(1).maxP(d,dMPs(mm))=maxDisp;
  706. else
  707. % Need to set L r K values to zeros or pick the first spot with zeros
  708. % Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero
  709. medianCalcFailedD='To Few nonZero spots for valid median RF1 selection'
  710. firstZeroDindx=find(((Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first');
  711. firstZeroD=drfPindx((firstZeroDindx),dMPs(mm));
  712. Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroD;
  713. Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %RF1mp; %Is this supposed to be the MP number or the ScanPlate number???
  714. end
  715. catch
  716. medianCalcTryFailed1D='Failed! Failed! Ln565 {Dispersed RF1s} "try" But process continued with bogus Plate spot value!'
  717. try
  718. firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first');
  719. firstZeroPindx=uu(firstZeroindxD,4);
  720. Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
  721. Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroPindx;
  722. catch
  723. catchissue='try at Ln565'
  724. Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm);
  725. Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=384; %if crapout,Then use spot384 as default to keep going
  726. end
  727. try
  728. Exp(expN).Dexp(1).RFmdPpltN=dMPs(mm);
  729. catch
  730. catchissue='Ln619'
  731. Exp(expN).Dexp(1).RFmdPpltN=1; %This might keep from breaking BUT ???
  732. end
  733. end
  734. end
  735. end
  736. % Calc. Global Mean, Std, And Median For Distributed References
  737. uu=horzcat(uu,vv);
  738. for d=1:DMnum
  739. medianIndxG=[];
  740. NZrfIndxG=[];
  741. minG=min(nonzeros(vv(:,d)));
  742. maxG=max(nonzeros(vv(:,d)));
  743. RFmeanG=mean(nonzeros(vv(:,d)));
  744. RFstdG=std(nonzeros(vv(:,d)));
  745. NZrfIndxG=find(vv(:,d)); % find(nonzeros(vv(:,d))); WWRONG FOR A WHILE!
  746. if isempty(RFmeanG)
  747. nonZeroCntD=0; % medianIndxDisp=RFmeanG(d);
  748. else
  749. nonZeroCntD=length(nonzeros(vv(:,d)));
  750. end
  751. % Calc. of median requires an odd number of indx items
  752. if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)==0, medianIndxD=NZrfIndxG(1:(size(NZrfIndxG,1)-1)); end
  753. if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)~=0, medianIndxD=NZrfIndxG(:); end
  754. if ~isempty(NZrfIndxG) && length(medianIndxD) > (.15*size(drf,1)) % to calc. a median, more than 15% of spots must be nonZero
  755. mvalsDG=median(vv(medianIndxD,d)); % (nonzeros(vv(:,d)));
  756. nzPosIndxDG=find(mvalsDG==vv(:,d));
  757. RFmdDGloc(d,1)=uu(nzPosIndxDG,1); % MP of distributedGlobal Median value
  758. RFmdDGloc(d,2)=uu(nzPosIndxDG,2); % calc r value
  759. RFmdDGloc(d,3)=uu(nzPosIndxDG,3); % calc c value
  760. lstindx=lstindx+1;
  761. lstindxOrf=lstindxOrf+1;
  762. aa(lstindx,1)={strcat('RF1mdG(',num2str(d),')')};
  763. aa(lstindx,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
  764. bb(lstindxOrf,1)={strcat('RF1mdG(',num2str(d),')')};
  765. bb(lstindxOrf,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))};
  766. % Composite Reference Amalgum Plot
  767. lstindx=lstindx+1;
  768. lstindxOrf=lstindxOrf+1;
  769. aa(lstindx,1)={strcat('RFcmpG(',num2str(d),')')};
  770. aa(lstindx,2)={''};
  771. bb(lstindxOrf,1)={strcat('RFcmpG(',num2str(d),')')};
  772. bb(lstindxOrf,2)={''};
  773. % Exp(expN).Dexp(1).RFmdGLvals=vv(medianIndxD,d); %17_1201 TrendOL
  774. Exp(expN).Dexp(1).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2));
  775. Exp(expN).Dexp(1).RFmdGindx(d)=nzPosIndxDG;
  776. Exp(expN).Dexp(1).RFmdGpltN(d)=RFmdDGloc(d,1);
  777. Exp(expN).Dexp(1).RFmdGscanN(d)=uu(nzPosIndxDG,4);
  778. Exp(expN).Dexp(1).RFmedianG(d)=mvalsDG;
  779. Exp(expN).Dexp(1).RFminG(d)=minG;
  780. Exp(expN).Dexp(1).RFmaxG(d)=maxG;
  781. Exp(expN).Dexp(1).RFstdG(d)=RFstdG;
  782. Exp(expN).Dexp(1).RFmeanG(d)=RFmeanG;
  783. Exp(expN).Dexp(1).RFcmpGL.dm(d).Lvals=vv(medianIndxD,d); %17_1201 TrendOL
  784. Exp(expN).Dexp(1).RFcmpGL.dm(d).med=median(vv(medianIndxD,d)); %For Ref Composite 17_1009
  785. Exp(expN).Dexp(1).RFcmpGL.dm(d).mean=mean(vv(medianIndxD,d)); %For Ref Composite 17_1009
  786. Exp(expN).Dexp(1).RFcmpGL.dm(d).std=std(vv(medianIndxD,d)); %For Ref Composite 17_1009
  787. Exp(expN).Dexp(1).RFcmpGL.dm(d).min=min(vv(medianIndxD,d)); %For Ref Composite 17_1009
  788. Exp(expN).Dexp(1).RFcmpGL.dm(d).max=max(vv(medianIndxD,d)); %For Ref Composite 17_1009
  789. Exp(expN).Dexp(1).RFcmpGK.dm(d).Kvals=vvK(medianIndxD,d); %17_1201 TrendOL
  790. Exp(expN).Dexp(1).RFcmpGK.dm(d).med=median(vvK(medianIndxD,d)); %For Ref Composite 17_1009
  791. Exp(expN).Dexp(1).RFcmpGK.dm(d).mean=mean(vvK(medianIndxD,d)); %For Ref Composite 17_1009
  792. Exp(expN).Dexp(1).RFcmpGK.dm(d).std=std(vvK(medianIndxD,d)); %For Ref Composite 17_1009
  793. Exp(expN).Dexp(1).RFcmpGK.dm(d).min=min(vvK(medianIndxD,d)); %For Ref Composite 17_1009
  794. Exp(expN).Dexp(1).RFcmpGK.dm(d).max=max(vvK(medianIndxD,d)); %For Ref Composite 17_1009
  795. Exp(expN).Dexp(1).RFcmpGr.dm(d).rvals=vvr(medianIndxD,d); %17_1201 TrendOL
  796. Exp(expN).Dexp(1).RFcmpGr.dm(d).med=median(vvr(medianIndxD,d)); %For Ref Composite 17_1009
  797. Exp(expN).Dexp(1).RFcmpGr.dm(d).mean=mean(vvr(medianIndxD,d)); %For Ref Composite 17_1009
  798. Exp(expN).Dexp(1).RFcmpGr.dm(d).std=std(vvr(medianIndxD,d)); %For Ref Composite 17_1009
  799. Exp(expN).Dexp(1).RFcmpGr.dm(d).min=min(vvr(medianIndxD,d)); %For Ref Composite 17_1009
  800. Exp(expN).Dexp(1).RFcmpGr.dm(d).max=max(vvr(medianIndxD,d)); %For Ref Composite 17_1009
  801. end
  802. end
  803. end
  804. for mp=1:MPnum % length(Exp(expN).Dexp(1).MP)
  805. for ind384=1:384
  806. spN=spN+1;
  807. end
  808. end
  809. gnLstRaw=strcat(aa(:,1),aa(:,2));
  810. Exp(expN).Dexp(1).srtGnLst=sort(gnLstRaw);
  811. orfLstRaw=strcat(bb(:,1),bb(:,2));
  812. Exp(expN).Dexp(1).srtOrfLst=sort(orfLstRaw);
  813. % Auto select Zone and load listboxGnOrf data
  814. zeroCLn=zeros(1,DMnum);
  815. Exp(expN).expLoadCnt=Exp(expN).expLoadCnt+1; expLdCnt=Exp(expN).expLoadCnt;
  816. zonePB=expN;
  817. if expN==1
  818. set(handles.zonePB1,'value',1)
  819. set(handles.zonePB2,'value',0)
  820. set(handles.zonePB3,'value',0)
  821. set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6])
  822. set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0])
  823. set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
  824. orfLstSel=get(handles.GeneOrfTog,'value')
  825. if orfLstSel==1
  826. set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtOrfLst)
  827. else
  828. set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst)
  829. end
  830. DNLaxes1=handles.DNLaxes1; % ZoneRelated
  831. Exp(1).hzeroCLn(expLdCnt)=plot(DNLaxes1,zeroCLn,1:DMnum,'y');
  832. end
  833. if expN==2
  834. set(handles.zonePB1,'value',0)
  835. set(handles.zonePB3,'value',0)
  836. set(handles.zonePB2,'value',1)
  837. set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6])
  838. set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0])
  839. set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0])
  840. orfLstSel=get(handles.GeneOrfTog,'value');
  841. if orfLstSel==1
  842. set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtOrfLst)
  843. else
  844. set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtGnLst)
  845. end
  846. DNLaxes2=handles.DNLaxes2; % ZoneRelated
  847. Exp(2).hzeroCLn(expLdCnt)=plot(DNLaxes2,zeroCLn,1:DMnum,'y');
  848. end
  849. if expN==3
  850. set(handles.zonePB1,'value',0)
  851. set(handles.zonePB2,'value',0)
  852. set(handles.zonePB3,'value',1)
  853. set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]);
  854. set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]);
  855. set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]);
  856. orfLstSel=get(handles.GeneOrfTog,'value');
  857. if orfLstSel==1
  858. set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtOrfLst)
  859. else
  860. set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtGnLst)
  861. end
  862. DNLaxes3=handles.DNLaxes3; % ZoneRelated
  863. Exp(3).hzeroCLn(expLdCnt)=plot(DNLaxes3,zeroCLn,1:DMnum,'y');
  864. end
  865. if Exp(4).interacPBsel==0 % if interaction "raw" don't show a center line
  866. for i=1:Exp(expN).expLoadCnt
  867. try
  868. set(Exp(expN).hzeroCLn(i),'visible','off');
  869. catch
  870. end
  871. end
  872. end
  873. EZdiagRFsSheet
  874. RFconfig=0;
  875. if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ...
  876. && ~isempty(Exp(expN).Dexp(1).RFmean) ...
  877. && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
  878. && isempty(Exp(expN).Dexp(1).RFmeanG)
  879. RFconfig=1;
  880. end
  881. if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean'))==0 ...
  882. || isempty(Exp(expN).Dexp(1).RFmean) ...
  883. && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
  884. && ~isempty(Exp(expN).Dexp(1).RFmeanG)
  885. RFconfig=2;
  886. end
  887. if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ...
  888. && ~isempty(Exp(expN).Dexp(1).RFmean) ...
  889. && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ...
  890. && ~isempty(Exp(expN).Dexp(1).RFmeanG)
  891. RFconfig=3;
  892. end
  893. Exp(expN).RFconfig=RFconfig; % ZoneRelated
  894. if RFconfig~=0
  895. Exp(expN).Dexp(1).RFrnames=rnames;
  896. Exp(expN).Dexp(1).RFdata=data;
  897. Exp(expN).Dexp(1).resetHtmpTg=5; % ZoneRelated
  898. % HtMapTog 'string', 'Current user L/N' selection'
  899. Exp(expN).Dexp(1).spotIndx=[];
  900. if expN==1
  901. Exp(1).htmapPBsel=0;
  902. set(handles.HtMapTog1,'string','L')
  903. EZhtMap
  904. end
  905. if expN==2
  906. Exp(2).htmapPBsel=0;
  907. set(handles.HtMapTog2,'string','L')
  908. EZhtMap
  909. end
  910. if expN==3,
  911. Exp(3).htmapPBsel=0;
  912. set(handles.HtMapTog3,'string','L')
  913. EZhtMap
  914. end
  915. htMapTogPBfg=0;
  916. elseif RFconfig==0
  917. RFconfigMsg='No RF1 references in this Experiment Job'
  918. try
  919. EZsingleExUserRF
  920. % EZmultiDayGui
  921. % cd(w)
  922. % EZmultiDay
  923. % EZmultiExLoad
  924. catch
  925. RFconfigMsg='No RF1 or User selected references in this Experiment Job'
  926. Exp(expN).Dexp(1).resetHtmpTg=3; % ZoneRelated
  927. end
  928. % Exp(expN).Dexp(1).resetHtmpTg=3; %ZoneRelated
  929. end
  930. %{
  931. try msgBadGeneName, catch, end
  932. try
  933. if RFconfig==0,
  934. RFconfigMsg='No RF1 references in this Experiment Job'
  935. Exp(expN).Dexp(1).resetHtmpTg=3; %ZoneRelated
  936. end
  937. catch
  938. end
  939. %}
  940. elseif expType==2 %Multiple Experiment from in one Folder extraction
  941. Exp(expN).DexpType='chrono';
  942. % Test for Bad MP cell array (usually 384 [NaN}'s)
  943. % replaced length(Exp(expN).Dexp(1).MP) with MPnum
  944. for mx=1:length(Exp(expN).Dexp(1).MP)
  945. try
  946. char((Exp(expN).Dexp(1).MP(mx).genename{1}(384)))
  947. MPnum=mx;
  948. catch
  949. break
  950. end
  951. end
  952. ww=pwd;
  953. try EZmultiDayGui; catch ME
  954. msg=ME.message, cd(ww); end
  955. try EZmultiDay; catch ME
  956. msg=ME.message, cd(ww); end
  957. try EZmultiExLoad; catch ME
  958. msg=ME.message, cd(ww); end
  959. elseif expType==3
  960. Exp(expN).DexpType='multi';
  961. % Test for Bad MP cell array (usually 384 [NaN}'s)
  962. % replaced length(Exp(expN).Dexp(1).MP) with MPnum
  963. for mx=1:length(Exp(expN).Dexp(1).MP)
  964. try
  965. char((Exp(expN).Dexp(1).MP(mx).genename{1}(384)))
  966. MPnum=mx;
  967. catch
  968. break
  969. end
  970. end
  971. ww=pwd;
  972. try EZmultiDayGui; catch ME
  973. msg=ME.message,cd(ww); end
  974. try EZmultiDay; catch ME
  975. msg=ME.message, cd(ww); end
  976. try EZmultiExLoad; catch ME
  977. msg=ME.message, cd(ww); end
  978. else
  979. disp('Cancel Load Exp')
  980. end
  981. % Deprecated Functions
  982. %{
  983. %Exp(expN).Dexp(1).RF1cmpK.[]; %For Ref Composite 17_1009
  984. %Exp(expN).Dexp(1).std1K=[]; %For Ref Composite 17_1009
  985. %Exp(expN).Dexp(1).min1K=[]; %For Ref Composite 17_1009
  986. %Exp(expN).Dexp(1).max1K=[]; %For Ref Composite 17_1009
  987. %Exp(expN).Dexp(1)RF1cmpr=[]; %For Ref Composite 17_1009
  988. %Exp(expN).Dexp(1).std1r=[]; %For Ref Composite 17_1009
  989. %Exp(expN).Dexp(1).min1r=[]; %For Ref Composite 17_1009
  990. %Exp(expN).Dexp(1).max1r=[]; %For Ref Composite 17_1009
  991. %Exp(expN).Dexp(1).RF=[]; %For Ref Composite 17_1009
  992. %Exp(expN).Dexp(1).std2K=[]; %For Ref Composite 17_1009
  993. %Exp(expN).Dexp(1).min2K=[]; %For Ref Composite 17_1009
  994. %Exp(expN).Dexp(1).max2K=[]; %For Ref Composite 17_1009
  995. %Exp(expN).Dexp(1).RF2cmpr=[]; %For Ref Composite 17_1009
  996. %Exp(expN).Dexp(1).std2r=[]; %For Ref Composite 17_1009
  997. %Exp(expN).Dexp(1).min2r=[]; %For Ref Composite 17_1009
  998. %Exp(expN).Dexp(1).max2r=[]; %For Ref Composite 17_1009
  999. %kValList1{d+1}=kValLst; %For Ref Composite 17_1009
  1000. %kmin1=min(kValLst); %For Ref Composite 17_1009
  1001. %kmax1=max(kValLst); %For Ref Composite 17_1009
  1002. %kstd1=std(kValLst); %For Ref Composite 17_1009
  1003. %kmean1=mean(kValLst); %For Ref Composite 17_1009
  1004. %rValList1{d+1}=rValLst; %For Ref Composite 17_1009
  1005. %rmin1=min(rValLst); %For Ref Composite 17_1009
  1006. %rmax1=max(rValLst); %For Ref Composite 17_1009
  1007. %rstd1=std(rValLst); %For Ref Composite 17_1009
  1008. %rmean1=mean(rValLst); %For Ref Composite 17_1009
  1009. %kValList2{d+1}=kValLst2; %For Ref Composite 17_1009
  1010. %kmin2=min(kValLst2); %For Ref Composite 17_1009
  1011. %kmax2=max(kValLst2); %For Ref Composite 17_1009
  1012. %kstd2=std(kValLst2); %For Ref Composite 17_1009
  1013. %kmean2=mean(kValLst2); %For Ref Composite 17_1009
  1014. %rValList2{d+1}=rValLst2; %For Ref Composite 17_1009
  1015. % rmin2=min(rValLst2); %For Ref Composite 17_1009
  1016. %rmax2=max(rValLst2); %For Ref Composite 17_1009
  1017. %rstd2=std(rValLst2); %For Ref Composite 17_1009
  1018. %rmean2=mean(rValLst2); %For Ref Composite 17_1009
  1019. %User Reference Input Dialog Box used in the multiExperiment Chrono setup
  1020. prompt={'Enter GeneName to use as Reference:',...
  1021. 'Enter Specifics Term if used to futher specify Reference '}
  1022. dlg_title='User Reference Input';
  1023. num_lines=1;
  1024. def={'RF1','None'};
  1025. answer=inputdlg(prompt,dlg_title,num_lines,def);
  1026. rfGene=cell2mat(answer(1));
  1027. if ~strcmpi(rfGene,'RF1')|| ~strcmpi(rfGene,'RF2'), usrRefFg=1; end
  1028. rfSpec=answer(2); %if strcmpi(answer(2),'None'), rfSpec=''; end
  1029. rfGnSp=strcat(rfGene,rfSpec);
  1030. %First user input prototype code
  1031. if ~exist('RF1scanN','var') && ~exist('RF2scanN','var') %change || &&
  1032. prompt={'Enter Masterplate Number(s) of Your Reference GeneName spots:',...
  1033. 'Enter GeneName of Your Reference:'};
  1034. dlg_title='User Reference Input';
  1035. num_lines=1;
  1036. def={'Ref MP(s)','USRrefGeneName'};
  1037. answer=inputdlg(prompt,dlg_title,num_lines,def);
  1038. rfMPstr=cell2mat(answer(1));
  1039. rfMPcomas=strfind((cell2mat(answer(1))),',');
  1040. n=0;
  1041. if isempty(rfMPcomas)|| max(rfMPcomas)==length(rfMPstr)
  1042. usrMPs=rfMPstr
  1043. else
  1044. for i=rfMPcomas,
  1045. n=n+1
  1046. usrMPs(n)=str2double(rfMPstr(i-1:i))
  1047. if i==max(rfMPcomas)
  1048. usrMPs(n+1)=str2double(rfMPstr(i:end))
  1049. end
  1050. end
  1051. end
  1052. usrMPs=answer(1);
  1053. refGene=answer(2);
  1054. end
  1055. %}