global Expaa global Expbb global expType global scansDir global zonePB w=pwd; % Single Exp or Chronological Study % Construct a questdlg with three options Exp(expN).expLoadCnt=0; % Initiation for composite plotting cPlots Exp(expN).cTraceN=1; Exp(expN).cTraceIndx=1; Exp(expN).CompositPlot=0; choice='Cancel'; expType=0; choice=questdlg('Choose Single Exp, Chronological Study OR Multi Exp', ... 'Experiment Type Menu', ... 'Single Exp','Chronological Study','Multi Exp','Single Exp'); % Handle response switch choice case 'Single Exp' disp([choice 'Single Exp Selected']) expType=1; case 'Chronological Study' disp([choice 'Chronological Study Selected']) expType=2; case 'Multi Exp' disp([choice 'Multi Exp Selected']) expType=3; case 'Cancel' disp('Cancel Load Exp') expType=0 end fprintf('expType=%d\n',expType); if expType==0, return; end zonePB=expN; % Pre Load setup incase failure to Load occurs % updated 230818 to migrate to AppDesigner if expN==1 set(handles.zonePB1,'value',1); set(handles.zonePB2,'value',0); set(handles.zonePB3,'value',0); set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6]); set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]); set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]); end if expN==2 set(handles.zonePB2,'value',1); set(handles.zonePB1,'value',0); set(handles.zonePB3,'value',0); set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6]); set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]); set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]); end if expN==3 set(handles.zonePB3,'value',1); set(handles.zonePB1,'value',0); set(handles.zonePB2,'value',0); set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]); set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]); set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]); end Exp(expN).htmapRFanswer={'G','L'}; %ZoneData if expType==1 Exp(expN).DexpType='single'; % Test for Bad MP cell array (usually 384 [NaN}'s) % replaced length(Exp(expN).Dexp(1).MP) with MPnum for mx=1:length(Exp(expN).Dexp(1).MP) try char((Exp(expN).Dexp(1).MP(mx).genename{1}(384))) MPnum=mx; catch break end end datacursormode off; % Return without execution if user cancels or doesn't select a .mat file try if matFile==0 || scansDir==0 return end catch end if expN==1 || expN==2 || expN==3 orfLstSel=get(handles.GeneOrfTog,'value') end Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')}; Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')}; set(handles.listboxGnOrf,'value',1) %Fix accomodation for bug in App Designer .. .wlapp converter 230906 set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {' '}])); load(matFile); cd(scansDir) cd ..; resDir=pwd; Exp(expN).Dexp(1).resDir=resDir; cd ..; try % this try-catch is to go up one more dir if the images aren't found (from /OtherResults) test4imageDir=imread(fullfile(pwd,'1','1.bmp')); ExpPath=pwd; Exp(expN).Dexp(1).ExpFoldr=ExpPath; catch try cd .. test4imageDir=imread(fullfile(pwd,'1','1.bmp')); ExpPath=pwd; Exp(expN).Dexp(1).ExpFoldr=ExpPath; catch cd(w) end end cd(w) % Experiment Loads % load (fullfile(ExpFoldr,'MasterPlateFiles','MPDMmat.mat')) load(fullfile(Exp(expN).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat')) load(fullfile(resDir,'Fotos','Coordinates')) load(fullfile(resDir,'Fotos','anlZones')) load(fullfile(resDir,'Fotos','BGatTpts')) load(fullfile(resDir,'PTmats','NImParameters')) %Backup for cond. sothat failure to load is recovered back prev. ExpJob data Exp(expN).Dexp(1).temp.DM=DM; Exp(expN).Dexp(1).temp.MP=MP; Exp(expN).Dexp(1).temp.scan=scan; Exp(expN).Dexp(1).temp.FexpScanSpots=FexpScanSpots; Exp(expN).Dexp(1).temp.FexpScanBMtp=FexpScanBMtp; Exp(expN).Dexp(1).temp.anlZoneRefs=anlZoneRefs; Exp(expN).Dexp(1).temp.ImParMat=ImParMat; Exp(expN).Dexp(1).DM=Exp(expN).Dexp(1).temp.DM; Exp(expN).Dexp(1).MP=Exp(expN).Dexp(1).temp.MP; Exp(expN).Dexp(1).scan=Exp(expN).Dexp(1).temp.scan; Exp(expN).Dexp(1).FexpScanSpots=Exp(expN).Dexp(1).temp.FexpScanSpots; Exp(expN).Dexp(1).FexpScanBMtp=Exp(expN).Dexp(1).temp.FexpScanBMtp; Exp(expN).Dexp(1).anlZoneRefs=Exp(expN).Dexp(1).temp.anlZoneRefs; Exp(expN).Dexp(1).ImParMat=Exp(expN).Dexp(1).temp.ImParMat; Exp(expN).DexpLength=1; Exp(expN).Dexp((Exp(expN).DexpLength+1):end)=[]; % Load new ExpJob if expN==1, % Exp(1).traceN=0; tPtsSize=size(FexpScanBMtp{1,1},3); set(handles.MPsldr1,'max',length(MP)); set(handles.DMsldr1,'max',length(DM.drug)); set(handles.Tptsldr1,'max',tPtsSize); % MPnum=length(Exp(expN).Dexp(1).MP); set(handles.MPsldr1,'min',1) %,'max',MPnum+.1) DMnum=length(Exp(expN).Dexp(1).DM.drug); set(handles.DMsldr1,'min',1,'max',DMnum) tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); set(handles.Tptsldr1,'min',1,'max',tPtsSize) set(handles.MPsldr1,'value',1) set(handles.DMsldr1,'value',1) set(handles.Tptsldr1,'value',1) set(handles.MPed1,'string','1') set(handles.DMed1,'string','1') set(handles.Tpted1,'string','1') set(handles.MPsldr1,'SliderStep',[1/length(MP) 1/length(MP)]); set(handles.DMsldr1,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]); set(handles.Tptsldr1,'SliderStep',[1/tPtsSize 1/tPtsSize]); set(handles.DN1,'value',1) set(handles.DN1,'string',1) end if expN==2, %Exp(2).traceN=0; tPtsSize=size(FexpScanBMtp{1,1},3); set(handles.MPsldr2,'max',length(MP)); set(handles.DMsldr2,'max',length(DM.drug)); set(handles.Tptsldr2,'max',tPtsSize); %MPnum=length(Exp(expN).Dexp(1).MP); set(handles.MPsldr2,'min',1) %,'max',MPnum) DMnum=length(Exp(expN).Dexp(1).DM.drug); set(handles.DMsldr2,'min',1,'max',DMnum) tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); set(handles.Tptsldr2,'min',1,'max',tPtsSize) set(handles.MPsldr2,'value',1) set(handles.DMsldr2,'value',1) set(handles.Tptsldr2,'value',1) set(handles.MPed2,'string','1') set(handles.DMed2,'string','1') set(handles.Tpted2,'string','1') set(handles.MPsldr2,'SliderStep',[1/length(MP) 1/length(MP)]); set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]); set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]); set(handles.DN2,'value',1) set(handles.DN2,'string',1) end if expN==3, % Exp(3).traceN=0; tPtsSize=size(FexpScanBMtp{1,1},3); set(handles.MPsldr3,'max',length(MP)); set(handles.DMsldr3,'max',length(DM.drug)); set(handles.Tptsldr3,'max',tPtsSize); % MPnum=length(Exp(expN).Dexp(1).MP); set(handles.MPsldr3,'min',1) %,'max',MPnum) DMnum=length(Exp(expN).Dexp(1).DM.drug); set(handles.DMsldr3,'min',1,'max',DMnum) tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); set(handles.Tptsldr3,'min',1,'max',tPtsSize) set(handles.MPsldr3,'value',1) set(handles.DMsldr3,'value',1) set(handles.Tptsldr3,'value',1) set(handles.MPed3,'string','1') set(handles.DMed3,'string','1') set(handles.Tpted3,'string','1') set(handles.MPsldr3,'SliderStep',[1/length(MP) 1/length(MP)]); set(handles.DMsldr3,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]); set(handles.Tptsldr3,'SliderStep',[1/tPtsSize 1/tPtsSize]); set(handles.DN3,'value',1) set(handles.DN3,'string',1) end if expN==1, set(handles.GeneOrfLoc1,'string',{''}); set(handles.graphStrLoc1,'string',{''}); cla(handles.Paxes1); end if expN==2 set(handles.GeneOrfLoc2,'string',{''}); set(handles.graphStrLoc2,'string',{''}); cla(handles.Paxes2) end if expN==3 set(handles.GeneOrfLoc3,'string',{''}); set(handles.graphStrLoc3,'string',{''}) cla(handles.Paxes3) end Exp(expN).Dexp(1).srtGnLst={('CheckMP/MPDMfile')}; Exp(expN).Dexp(1).srtOrfLst={('CheckMP/MPDMfile')}; set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtGnLst) set(handles.listboxGnOrf,'string',Exp(expN).Dexp(1).srtOrfLst) EZVimDisplay % Capture Exp Name try xp=char(Exp(expN).Dexp(1).resDir); if ispc, slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'\'); else slashPos=strfind(char(Exp(expN).Dexp(1).resDir),'/'); end startPos=slashPos(length(slashPos)-2) +1; endPos=(slashPos(length(slashPos)) -1); expStrn=xp(startPos:end); if expN==1,set(handles.expName1,'string',expStrn);end if expN==2,set(handles.expName2,'string',expStrn);end if expN==3,set(handles.expName3,'string',expStrn);end catch catchissue='Ln198' end % nested try-catch-end % Compile GeneList and OrfList % Sort and add the medians of Ref Plates if RF1,RF2 exist % Added 17-1023 For User Addition of Gene Composites to ListBox Expaa{expN,1}=[]; Expbb{expN,1}=[]; lstindx=0; lstindxOrf=0; spN=0; rfcnt=0; dRF1indx=0; RF1mp=[]; RF2mp=[]; for mp=1:MPnum % length(Exp(expN).Dexp(1).MP) for ind384=1:384 spN=spN+1; try % Temp find data error r=ceil(ind384/24); if rem(ind384,24)==0, c=24; else c=rem(ind384,24); end % Insert test for numeric in genename and orf if isnumeric % Correct common EXCEL problem of converting OCT1 into a date numeric if cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))==38991, Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={'OCT1_'}; elseif isnumeric(cell2mat(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))) Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)={' '}; end % Check for full(384spot) Reference Plates (RF1 or/and RF2) RF1fullPlate=0; try RF1fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end RF2fullPlate=0; try RF2fullPlate=sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF2'))==384; catch, mp, msg=strcat(num2str(mp),' genename ERROR'), end if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))),'blank'))... % '\' && ~isnumeric(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),' ')... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'')... && ~isempty((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)))... && (~strcmpi((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),'RF1'))... %||~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1'))... %&& mp==1)... && (~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))... && iscellstr((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))) lstindxOrf=lstindxOrf+1; Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)),':',' '); bb(lstindxOrf,1)=(Exp(expN).Dexp(1).MP(mp).orf{1}(ind384)); bb(lstindxOrf,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))}; bb(lstindxOrf,3)={mp}; bb(lstindxOrf,4)={r}; bb(lstindxOrf,5)={c}; mutorfs(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract %Exp(expN).Dexp(1).mutSpotIndx(lstindxOrf)=spN; %16_0318 added for Interaction EZinteract end if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))),'blank'))... % '\' && ~isnumeric(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),' ')... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'')... && ~isempty((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)))... && (~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1'))... %&& ~RF1fullPlate)... && (~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))... %&& ~RF2fullPlate)... && iscellstr((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))) lstindx=lstindx+1; Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),':',' '); aa(lstindx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)); aa(lstindx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))}; aa(lstindx,3)={mp}; aa(lstindx,4)={r}; aa(lstindx,5)={c}; mutgenes(lstindx)=spN; elseif (RF1fullPlate==1 ... % sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}),'RF1'))==384 || ... || (((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 )) && ... && ~exist('RF1scanN','var'))) rfcnt=rfcnt+1; RFs(spN:spN+383)=spN:spN+383; RF1mp=mp RF1scanN=(mp*DMnum)-(DMnum-1) elseif (RF2fullPlate==1||... % sum(ismember((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2'))==384 ||... (((length(unique(Exp(expN).Dexp(1).MP(mp).genename{1}(1:384))))==1 && mp==MPnum ) ... && ~exist('RF2scanN','var'))) rfcnt=rfcnt+1; RFs(spN:spN+383)=spN:spN+383; RF2mp=mp RF2scanN=(mp*DMnum)-(DMnum-1) % Dispersed Reference capture and find Medians elseif strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF1') ... && (RF1fullPlate~=1) dRF1indx=dRF1indx+1; Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)=strrep((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),':',' '); drf(dRF1indx,1)=(Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)); drf(dRF1indx,2)={strcat(':',num2str(mp),':',num2str(r),':',num2str(c))}; drf(dRF1indx,3)={mp}; drfMP(dRF1indx,mp)=mp; drf(dRF1indx,4)={r}; drfr(dRF1indx,mp)=r; drf(dRF1indx,5)={c}; drfc(dRF1indx,mp)=c; drf(dRF1indx,6)={ind384}; drfPindx(dRF1indx,mp)=ind384; end catch error='EZexpSel lineAfter 236 EZexpSel.m' mp ind384 msgBadGeneName=strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384)) end end mp end % Cover case if mutorfs RFs are labeled RF1 or RF2 try Exp(expN).Dexp(1).mutSpotIndx.wRFs=union(RFs, mutorfs); catch msg='No RFs Found in Exp! wRFs' Exp(expN).Dexp(1).mutSpotIndx.wRFs=mutorfs; end try Exp(expN).Dexp(1).mutSpotIndx.woRFs=setdiff(mutorfs,RFs); catch Exp(expN).Dexp(1).mutSpotIndx.woRFs=mutorfs; msg='No RFs Found in Exp! woRFs' end Exp(expN).Dexp(1).RFmd1indx=[]; Exp(expN).Dexp(1).RFmd1LB={[]}; Exp(expN).Dexp(1).RFmd1pltN={}; Exp(expN).Dexp(1).RFmd1val=[]; Exp(expN).Dexp(1).mean1=[]; Exp(expN).Dexp(1).std1=[]; Exp(expN).Dexp(1).min1=[]; Exp(expN).Dexp(1).max1=[]; Exp(expN).Dexp(1).RFcmpK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFmd2indx=[]; Exp(expN).Dexp(1).RFmd2LB={[]}; Exp(expN).Dexp(1).RFmd2pltN={}; Exp(expN).Dexp(1).RFmd2val=[]; Exp(expN).Dexp(1).mean2=[]; Exp(expN).Dexp(1).std2=[]; Exp(expN).Dexp(1).min2=[]; Exp(expN).Dexp(1).max2=[]; Exp(expN).Dexp(1).RFmean=[]; Exp(expN).Dexp(1).RFstd=[]; Exp(expN).Dexp(1).RFmin=[]; Exp(expN).Dexp(1).RFmax=[]; Exp(expN).Dexp(1).RFmdPLvals=[]; %17_1201 TrendOL Exp(expN).Dexp(1).RFmdPLB={[]}; Exp(expN).Dexp(1).RFmdPindx=[]; Exp(expN).Dexp(1).RFmdPpltN=[]; Exp(expN).Dexp(1).RFmdPscanN=[]; Exp(expN).Dexp(1).RFmedianP=[]; Exp(expN).Dexp(1).stdP=[]; Exp(expN).Dexp(1).meanP=[]; Exp(expN).Dexp(1).minP=[]; Exp(expN).Dexp(1).maxP=[]; Exp(expN).Dexp(1).RFcmpPK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpPr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpPL=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFmdGLB={[]}; Exp(expN).Dexp(1).RFmdGindx=[]; Exp(expN).Dexp(1).RFmdGpltN=[]; Exp(expN).Dexp(1).RFmdGscanN=[]; Exp(expN).Dexp(1).RFmedianG=[]; Exp(expN).Dexp(1).RFmeanG=[]; Exp(expN).Dexp(1).RFstdG=[]; Exp(expN).Dexp(1).RFminG=[]; Exp(expN).Dexp(1).RFmaxG=[]; Exp(expN).Dexp(1).RFcmpGK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGL=[]; %For Ref Composite 17_1009 %{ Exp(expN).Dexp(1).RFmeanGK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFstdGK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFminGK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFmaxGK=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFmeanGr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFstdGr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFminGr=[]; %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFmaxGr=[]; %For Ref Composite 17_1009 %} if exist('RF1scanN','var') for d=0:(DMnum-1) medianIndx=[]; nonZeroIndx=[]; medValList=[]; rf1scN=RF1scanN+d; try % if RF1scanN doesn't exist this addition to list will be skipped nonZeroIndx=find(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5)); if isempty(nonZeroIndx) nonZeroCnt=0 medianIndx=nonZeroIndx; else nonZeroCnt=length(nonZeroIndx); end if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)==0, medianIndx=nonZeroIndx(1:nonZeroCnt-1); end if ~isempty(nonZeroIndx) && mod(nonZeroCnt,2)~=0, medianIndx=nonZeroIndx; end clear medValLst clear kValLst clear rValLst if ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384) %To calc. a median, more than 15% of spots must be nonZero medValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5); medValList1{d+1}=medValLst; min1=min(medValLst); max1=max(medValLst); std1=std(medValLst); mean1=mean(medValLst); kValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,3); %For Ref Composite 17_1009 rValLst=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,4); %For Ref Composite 17_1009 mval1=median(medValLst); %mval1=median(Exp(expN).Dexp(1).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5)); RFmd1pos=find(mval1==(Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))); RFmd1loc(1)=ceil(RFmd1pos/24); %calc r value RFmd1loc(2)=RFmd1pos - ((RFmd1loc(1)-1)*24); %calc c value lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF1md(',num2str(d+1),')')}; %{'RF1md'}; aa(lstindx,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))}; bb(lstindxOrf,1)={strcat('RF1md(',num2str(d+1),')')}; %{'RF1md'}; bb(lstindxOrf,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,'std_',num2str(std1))}; % Composite Reference Amalgum Plot ********************* lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF1cmp(',num2str(d+1),')')}; aa(lstindx,2)={''}; bb(lstindxOrf,1)={strcat('RF1cmp(',num2str(d+1),')')}; bb(lstindxOrf,2)={''}; Exp(expN).Dexp(1).RFmd1LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(expN).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(expN).Dexp(1).RFmd1pltN=RF1mp; Exp(expN).Dexp(1).RFmd1val(d+1)=mval1; Exp(expN).Dexp(1).RFmd1Lvals=medValLst; %17_1201 TrendOL Exp(expN).Dexp(1).mean1(d+1)=mean1; Exp(expN).Dexp(1).std1(d+1)=std1; Exp(expN).Dexp(1).min1(d+1)=min1; Exp(expN).Dexp(1).max1(d+1)=max1; Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).Lvals=medValLst; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).med=median(medValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).mean=mean(medValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).std=std(medValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).min=min(medValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(1).dm(d+1).max=max(medValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).Kvals=kValLst; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).med=median(kValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).mean=mean(kValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).std=std(kValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).min=min(kValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(1).dm(d+1).max=max(kValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).rvals=rValLst; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).med=median(rValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).mean=mean(rValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).std=std(rValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).min=min(rValLst); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(1).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009 else % Need to set L r K values to zeros or pick the first spot with zeros % Spot 1 could be other than zero as the median isn't calculated if % fewer than some percent are nonzero medianCalcFailed='To Few nonZero spots for valid median RF1 selection' firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first') Exp(expN).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(expN).Dexp(1).RFmd1pltN=RF1mp; try medValList1{d+1}=Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5); nonZeroCnt; catch catcherror='Ln356' end end % ~isempty(nonZeroIndx) && length(medianIndx) > (.15*384) catch medianCalcTryFailed1='Failed! Failed! Ln362 But process continued with bogus P1ind384 spot value!' try firstZero=find(((Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(1:384,5))==0),1,'first') Exp(expN).Dexp(1).RFmd1indx(d+1)=firstZero; catch catchissue='Ln366' Exp(expN).Dexp(1).RFmd1indx(d+1)=384; % if crapout,Then use spot384 as default to keep going end try Exp(expN).Dexp(1).RFmd1pltN=RF1mp; catch catchissue='Ln372' Exp(expN).Dexp(1).RFmd1pltN=1; end end end end % Calc RF2 median if a full plate of RF2s exist Exp(expN).Dexp(1).RFmd2indx=[]; Exp(expN).Dexp(1).RFmd2pltN=[]; if exist('RF2scanN','var') for d=0:(DMnum-1) medianIndx2=[]; nonZeroIndx2=[]; medValList2=[]; rf2scN=RF2scanN+d; try % if RF2scanN doesn't exist this addition to list will be skipped nonZeroIndx2=find(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5)); if isempty(nonZeroIndx2) nonZeroCnt2=0 medianIndx2=nonZeroIndx2; else nonZeroCnt2=length(nonZeroIndx2); end if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)==0, medianIndx2=nonZeroIndx2(1:nonZeroCnt2-1); end if ~isempty(nonZeroIndx2) && mod(nonZeroCnt2,2)~=0, medianIndx2=nonZeroIndx2; end clear medValLst2 clear kValLst2 clear rValLst2 if ~isempty(nonZeroIndx2) && length(medianIndx2) > (.15*384) % to calc. a median, more than 15% of spots must be nonZero medValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5); medValList2{d+1}=medValLst2; min2=min(medValLst2); max2=max(medValLst2); std2=std(medValLst2); mean2=mean(medValLst2); kValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,3); % for Ref Composite 17_1009 rValLst2=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,4); % for Ref Composite 17_1009 mval2=median(medValLst2); %mval2=median(Exp(expN).Dexp(1).scan(RF2mps).plate(1).CFout(1:383,5)); RFmd2pos=find(mval2==(Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))); RFmd2loc(1)=ceil(RFmd2pos/24); %calc r value RFmd2loc(2)=RFmd2pos - ((RFmd2loc(1)-1)*24); %calc c value lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'}; aa(lstindx,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))}; bb(lstindxOrf,1)={strcat('RF2md(',num2str(d+1),')')}; %{'RF2md'}; bb(lstindxOrf,2)={strcat(':',num2str(RF2mp),':',num2str(RFmd2loc(1)),':',num2str(RFmd2loc(2)))}; %,'std_',num2str(std2))}; %Composite Reference Amalgum Plot (CRAP) lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF2cmp(',num2str(d+1),')')}; aa(lstindx,2)={''}; bb(lstindxOrf,1)={strcat('RF2cmp(',num2str(d+1),')')}; bb(lstindxOrf,2)={''}; Exp(expN).Dexp(1).RFmd2LB(d+1)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(expN).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(expN).Dexp(1).RFmd2pltN=RF2mp; Exp(expN).Dexp(1).RFmd2val(d+1)=mval2; Exp(expN).Dexp(1).RFmd1Lvals=medValLst2; %17_1201 TrendOL Exp(expN).Dexp(1).mean2(d+1)=mean2; Exp(expN).Dexp(1).std2(d+1)=std2; Exp(expN).Dexp(1).min2(d+1)=min2; Exp(expN).Dexp(1).max2(d+1)=max2; Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).Lvals=medValLst2; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).med=median(medValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).mean=mean(medValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).std=std(medValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).min=min(medValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpL(2).dm(d+1).max=max(medValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).Kvals=kValLst2; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).med=median(kValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).mean=mean(kValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).std=std(kValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).min=min(kValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpK(2).dm(d+1).max=max(kValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).rvals=rValLst2; %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).med=median(rValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).mean=mean(rValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).std=std(rValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).min=min(rValLst2); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpr(2).dm(d+1).max=max(rValLst); %For Ref Composite 17_1009 else % Pick the first spot with zeros % Use that position to satisfy and keep process OK medianCalcFailed2='Too Few nonZero spots for valid median RF2 selection' firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first') Exp(expN).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(expN).Dexp(1).RFmd2pltN=RF2mp; try medValList2{d+1}=Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5); nonZeroCnt2; catch, catchissue='Ln431', end end catch medianCalcTryFailed2='Failed! Failed! Ln436 No RF1median But process continued with bogus P1ind384 spot value!' try firstZero2=find(((Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(1:384,5))==0),1,'first'); Exp(expN).Dexp(1).RFmd2indx(d+1)=firstZero2; catch Exp(expN).Dexp(1).RFmd2indx(d+1)=384; %if crapout,Then use spot384 as default to keep going end try Exp(expN).Dexp(1).RFmd2pltN=RF2mp; catch catchissue='Ln448' Exp(expN).Dexp(1).RFmd2pltN=1; end end clear RFcombValList RFcombValList=cat(1,medValList1{d+1},medValList2{d+1}); Exp(expN).Dexp(1).RFmean(d+1)=mean(RFcombValList); Exp(expN).Dexp(1).RFstd(d+1)=std(RFcombValList); try, Exp(expN).Dexp(1).RFmin(d+1)=min(RFcombValList); catch, Exp(expN).Dexp(1).RFmin(d+1)=0; end try, Exp(expN).Dexp(1).RFmax(d+1)=max(RFcombValList); catch, Exp(expN).Dexp(1).RFmax(d+1)=0; end end elseif exist('RF1scanN','var') Exp(expN).Dexp(1).RFmean=Exp(expN).Dexp(1).mean1; Exp(expN).Dexp(1).RFstd=Exp(expN).Dexp(1).std1; Exp(expN).Dexp(1).RFmin=Exp(expN).Dexp(1).min1; Exp(expN).Dexp(1).RFmax=Exp(expN).Dexp(1).max1; end % Disperse Reference Plates Exp(expN).Dexp(1).RFmdPindx=[]; Exp(expN).Dexp(1).RFmdPpltN=[]; if exist('drf','var') % Det. index of change from one MP to the next i=2; chgIndx(1)=1; for j=1:length(drf(:,3)) if j>1 if cell2mat(drf(j,3))~=cell2mat(drf((j-1),3)), chgIndx(i)=j; i=i+1; end end end chgIndx(length(chgIndx)+1)=length(drf)+1; uu=zeros(size(drf,1),4); uu(:,1:4)=cell2mat(drf(:,3:6)) vv=zeros(length(drf),DMnum); dMPs=unique(cell2mat(drf(:,3))); for mm=1:length(dMPs) % length(chgIndx) for d=1:(DMnum) medianIndxDisp=[]; NZrefIndxP=[]; nonZeroValsP=[]; medValLstDisp=[]; rf1scNdisp=((dMPs(mm)-1)*DMnum)+(d); try % Determine the dispersed RFs median mean and std if such exist 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)); %vv=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5); vv(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5); %For Global Ref Composite 17_1009 vvK(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,3); vvr(chgIndx(mm):(chgIndx(mm+1)-1),d)=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,4); nonZeroValsP=nonzeros(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5)); std1Disp=std(nonZeroValsP); mean1Disp=mean(nonZeroValsP); minDisp=min(nonZeroValsP); maxDisp=max(nonZeroValsP); drfVals=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5); % MEDIAN Determination for PLATES with Dispersed RFs % NZrefIndxP=NZrefIndxP %find(Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5)); if isempty(NZrefIndxP) nonZeroCntDisp=0 medianIndxDisp=NZrefIndxP; else nonZeroCntDisp=length(NZrefIndxP); end if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)==0, medianIndxDisp=NZrefIndxP(1:nonZeroCntDisp-1); end if ~isempty(NZrefIndxP) && mod(nonZeroCntDisp,2)~=0, medianIndxDisp=NZrefIndxP; end if ~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 %(.15*384) % to calc. a median, more than 15% of spots must be nonZero medValLstDisp=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(medianIndxDisp,5); % medValList1Disp{d}=medValLstDisp; mval1Disp=median(medValLstDisp); % mval1=median(Exp(expN).Dexp(1).scan(RF1mps).plate(1).CFout(1:384,5)); %CFout(1:383,5)); nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP); % (Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))); %(nonZeroIndxDisp,5))); %((nonZrfIndx.mp{dMPs(mm),:}),5))); RFmd1posD=NZrefIndxP(nonZeroMedPosIndx); % drfPindx((RFmd1posIndx),dMPs(mm)); RFmd1locD(1)=ceil(RFmd1posD/24); % calc r value RFmd1locD(2)=RFmd1posD - ((RFmd1locD(1)-1)*24); % calc c value lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF1mdP(',num2str(d),')')}; aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; bb(lstindxOrf,1)={strcat('RF1mdP(',num2str(d),')')}; bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; Exp(expN).Dexp(1).RFmdPLvals(d,dMPs(mm))=mval1Disp; %17_1201 TrendOL Exp(expN).Dexp(1).RFmdPLB(d,dMPs(mm))=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; 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??? Exp(expN).Dexp(1).RFmdPscanN(d,dMPs(mm))=rf1scNdisp; Exp(expN).Dexp(1).RFmedianP(d,dMPs(mm))=mval1Disp; Exp(expN).Dexp(1).stdP(d,dMPs(mm))=std1Disp; Exp(expN).Dexp(1).meanP(d,dMPs(mm))=mean1Disp; Exp(expN).Dexp(1).minP(d,dMPs(mm))=minDisp; Exp(expN).Dexp(1).maxP(d,dMPs(mm))=maxDisp; else % Need to set L r K values to zeros or pick the first spot with zeros % Spot 1 could be other than zero as the median isn't calculated if fewer than some percent are nonzero medianCalcFailedD='To Few nonZero spots for valid median RF1 selection' firstZeroDindx=find(((Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5))==0),1,'first'); firstZeroD=drfPindx((firstZeroDindx),dMPs(mm)); Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroD; Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); %RF1mp; %Is this supposed to be the MP number or the ScanPlate number??? end catch medianCalcTryFailed1D='Failed! Failed! Ln565 {Dispersed RF1s} "try" But process continued with bogus Plate spot value!' try firstZeroindxD=find(vv((chgIndx(d):chgIndx(d+1)-1),5)==0,1,'first'); firstZeroPindx=uu(firstZeroindxD,4); Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=firstZeroPindx; catch catchissue='try at Ln565' Exp(expN).Dexp(1).RFmdPpltN(d,dMPs(mm))=dMPs(mm); Exp(expN).Dexp(1).RFmdPindx(d,dMPs(mm))=384; %if crapout,Then use spot384 as default to keep going end try Exp(expN).Dexp(1).RFmdPpltN=dMPs(mm); catch catchissue='Ln619' Exp(expN).Dexp(1).RFmdPpltN=1; %This might keep from breaking BUT ??? end end end end % Calc. Global Mean, Std, And Median For Distributed References uu=horzcat(uu,vv); for d=1:DMnum medianIndxG=[]; NZrfIndxG=[]; minG=min(nonzeros(vv(:,d))); maxG=max(nonzeros(vv(:,d))); RFmeanG=mean(nonzeros(vv(:,d))); RFstdG=std(nonzeros(vv(:,d))); NZrfIndxG=find(vv(:,d)); % find(nonzeros(vv(:,d))); WWRONG FOR A WHILE! if isempty(RFmeanG) nonZeroCntD=0; % medianIndxDisp=RFmeanG(d); else nonZeroCntD=length(nonzeros(vv(:,d))); end % Calc. of median requires an odd number of indx items if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)==0, medianIndxD=NZrfIndxG(1:(size(NZrfIndxG,1)-1)); end if ~isempty(NZrfIndxG) && mod(nonZeroCntD,2)~=0, medianIndxD=NZrfIndxG(:); end if ~isempty(NZrfIndxG) && length(medianIndxD) > (.15*size(drf,1)) % to calc. a median, more than 15% of spots must be nonZero mvalsDG=median(vv(medianIndxD,d)); % (nonzeros(vv(:,d))); nzPosIndxDG=find(mvalsDG==vv(:,d)); RFmdDGloc(d,1)=uu(nzPosIndxDG,1); % MP of distributedGlobal Median value RFmdDGloc(d,2)=uu(nzPosIndxDG,2); % calc r value RFmdDGloc(d,3)=uu(nzPosIndxDG,3); % calc c value lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RF1mdG(',num2str(d),')')}; aa(lstindx,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))}; bb(lstindxOrf,1)={strcat('RF1mdG(',num2str(d),')')}; bb(lstindxOrf,2)={strcat(':',num2str(RFmdDGloc(d,1)),':',num2str(RFmdDGloc(d,2)),':',num2str(RFmdDGloc(d,3)))}; %,'std_',num2str(std2))}; % Composite Reference Amalgum Plot lstindx=lstindx+1; lstindxOrf=lstindxOrf+1; aa(lstindx,1)={strcat('RFcmpG(',num2str(d),')')}; aa(lstindx,2)={''}; bb(lstindxOrf,1)={strcat('RFcmpG(',num2str(d),')')}; bb(lstindxOrf,2)={''}; % Exp(expN).Dexp(1).RFmdGLvals=vv(medianIndxD,d); %17_1201 TrendOL Exp(expN).Dexp(1).RFmdGLB(d)=strcat(aa(lstindx,1),aa(lstindx,2)); Exp(expN).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(expN).Dexp(1).RFmdGpltN(d)=RFmdDGloc(d,1); Exp(expN).Dexp(1).RFmdGscanN(d)=uu(nzPosIndxDG,4); Exp(expN).Dexp(1).RFmedianG(d)=mvalsDG; Exp(expN).Dexp(1).RFminG(d)=minG; Exp(expN).Dexp(1).RFmaxG(d)=maxG; Exp(expN).Dexp(1).RFstdG(d)=RFstdG; Exp(expN).Dexp(1).RFmeanG(d)=RFmeanG; Exp(expN).Dexp(1).RFcmpGL.dm(d).Lvals=vv(medianIndxD,d); %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpGL.dm(d).med=median(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGL.dm(d).mean=mean(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGL.dm(d).std=std(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGL.dm(d).min=min(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGL.dm(d).max=max(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGK.dm(d).Kvals=vvK(medianIndxD,d); %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpGK.dm(d).med=median(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGK.dm(d).mean=mean(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGK.dm(d).std=std(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGK.dm(d).min=min(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGK.dm(d).max=max(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr.dm(d).rvals=vvr(medianIndxD,d); %17_1201 TrendOL Exp(expN).Dexp(1).RFcmpGr.dm(d).med=median(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr.dm(d).mean=mean(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr.dm(d).std=std(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr.dm(d).min=min(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(expN).Dexp(1).RFcmpGr.dm(d).max=max(vvr(medianIndxD,d)); %For Ref Composite 17_1009 end end end for mp=1:MPnum % length(Exp(expN).Dexp(1).MP) for ind384=1:384 spN=spN+1; end end gnLstRaw=strcat(aa(:,1),aa(:,2)); Exp(expN).Dexp(1).srtGnLst=sort(gnLstRaw); orfLstRaw=strcat(bb(:,1),bb(:,2)); Exp(expN).Dexp(1).srtOrfLst=sort(orfLstRaw); % Auto select Zone and load listboxGnOrf data zeroCLn=zeros(1,DMnum); Exp(expN).expLoadCnt=Exp(expN).expLoadCnt+1; expLdCnt=Exp(expN).expLoadCnt; zonePB=expN; if expN==1 set(handles.zonePB1,'value',1) set(handles.zonePB2,'value',0) set(handles.zonePB3,'value',0) set(handles.zonePB1,'BackgroundColor',[1.0 0.6 0.6]) set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]) set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]) orfLstSel=get(handles.GeneOrfTog,'value') if orfLstSel==1 set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtOrfLst) else set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst) end DNLaxes1=handles.DNLaxes1; % ZoneRelated Exp(1).hzeroCLn(expLdCnt)=plot(DNLaxes1,zeroCLn,1:DMnum,'y'); end if expN==2 set(handles.zonePB1,'value',0) set(handles.zonePB3,'value',0) set(handles.zonePB2,'value',1) set(handles.zonePB2,'BackgroundColor',[1.0 0.6 0.6]) set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]) set(handles.zonePB3,'BackgroundColor',[1.0 1.0 1.0]) orfLstSel=get(handles.GeneOrfTog,'value'); if orfLstSel==1 set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtOrfLst) else set(handles.listboxGnOrf,'string',Exp(2).Dexp(1).srtGnLst) end DNLaxes2=handles.DNLaxes2; % ZoneRelated Exp(2).hzeroCLn(expLdCnt)=plot(DNLaxes2,zeroCLn,1:DMnum,'y'); end if expN==3 set(handles.zonePB1,'value',0) set(handles.zonePB2,'value',0) set(handles.zonePB3,'value',1) set(handles.zonePB3,'BackgroundColor',[1.0 0.6 0.6]); set(handles.zonePB1,'BackgroundColor',[1.0 1.0 1.0]); set(handles.zonePB2,'BackgroundColor',[1.0 1.0 1.0]); orfLstSel=get(handles.GeneOrfTog,'value'); if orfLstSel==1 set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtOrfLst) else set(handles.listboxGnOrf,'string',Exp(3).Dexp(1).srtGnLst) end DNLaxes3=handles.DNLaxes3; % ZoneRelated Exp(3).hzeroCLn(expLdCnt)=plot(DNLaxes3,zeroCLn,1:DMnum,'y'); end if Exp(4).interacPBsel==0 % if interaction "raw" don't show a center line for i=1:Exp(expN).expLoadCnt try set(Exp(expN).hzeroCLn(i),'visible','off'); catch end end end EZdiagRFsSheet RFconfig=0; if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ... && ~isempty(Exp(expN).Dexp(1).RFmean) ... && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ... && isempty(Exp(expN).Dexp(1).RFmeanG) RFconfig=1; end if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean'))==0 ... || isempty(Exp(expN).Dexp(1).RFmean) ... && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ... && ~isempty(Exp(expN).Dexp(1).RFmeanG) RFconfig=2; end if sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmean')) ... && ~isempty(Exp(expN).Dexp(1).RFmean) ... && sum(ismember(fieldnames(Exp(expN).Dexp(1)),'RFmeanG')) ... && ~isempty(Exp(expN).Dexp(1).RFmeanG) RFconfig=3; end Exp(expN).RFconfig=RFconfig; % ZoneRelated if RFconfig~=0 Exp(expN).Dexp(1).RFrnames=rnames; Exp(expN).Dexp(1).RFdata=data; Exp(expN).Dexp(1).resetHtmpTg=5; % ZoneRelated % HtMapTog 'string', 'Current user L/N' selection' Exp(expN).Dexp(1).spotIndx=[]; if expN==1 Exp(1).htmapPBsel=0; set(handles.HtMapTog1,'string','L') EZhtMap end if expN==2 Exp(2).htmapPBsel=0; set(handles.HtMapTog2,'string','L') EZhtMap end if expN==3, Exp(3).htmapPBsel=0; set(handles.HtMapTog3,'string','L') EZhtMap end htMapTogPBfg=0; elseif RFconfig==0 RFconfigMsg='No RF1 references in this Experiment Job' try EZsingleExUserRF % EZmultiDayGui % cd(w) % EZmultiDay % EZmultiExLoad catch RFconfigMsg='No RF1 or User selected references in this Experiment Job' Exp(expN).Dexp(1).resetHtmpTg=3; % ZoneRelated end % Exp(expN).Dexp(1).resetHtmpTg=3; %ZoneRelated end %{ try msgBadGeneName, catch, end try if RFconfig==0, RFconfigMsg='No RF1 references in this Experiment Job' Exp(expN).Dexp(1).resetHtmpTg=3; %ZoneRelated end catch end %} elseif expType==2 %Multiple Experiment from in one Folder extraction Exp(expN).DexpType='chrono'; % Test for Bad MP cell array (usually 384 [NaN}'s) % replaced length(Exp(expN).Dexp(1).MP) with MPnum for mx=1:length(Exp(expN).Dexp(1).MP) try char((Exp(expN).Dexp(1).MP(mx).genename{1}(384))) MPnum=mx; catch break end end ww=pwd; try EZmultiDayGui; catch ME msg=ME.message, cd(ww); end try EZmultiDay; catch ME msg=ME.message, cd(ww); end try EZmultiExLoad; catch ME msg=ME.message, cd(ww); end elseif expType==3 Exp(expN).DexpType='multi'; % Test for Bad MP cell array (usually 384 [NaN}'s) % replaced length(Exp(expN).Dexp(1).MP) with MPnum for mx=1:length(Exp(expN).Dexp(1).MP) try char((Exp(expN).Dexp(1).MP(mx).genename{1}(384))) MPnum=mx; catch break end end ww=pwd; try EZmultiDayGui; catch ME msg=ME.message,cd(ww); end try EZmultiDay; catch ME msg=ME.message, cd(ww); end try EZmultiExLoad; catch ME msg=ME.message, cd(ww); end else disp('Cancel Load Exp') end % Deprecated Functions %{ %Exp(expN).Dexp(1).RF1cmpK.[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).std1K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).min1K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).max1K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1)RF1cmpr=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).std1r=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).min1r=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).max1r=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).RF=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).std2K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).min2K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).max2K=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).RF2cmpr=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).std2r=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).min2r=[]; %For Ref Composite 17_1009 %Exp(expN).Dexp(1).max2r=[]; %For Ref Composite 17_1009 %kValList1{d+1}=kValLst; %For Ref Composite 17_1009 %kmin1=min(kValLst); %For Ref Composite 17_1009 %kmax1=max(kValLst); %For Ref Composite 17_1009 %kstd1=std(kValLst); %For Ref Composite 17_1009 %kmean1=mean(kValLst); %For Ref Composite 17_1009 %rValList1{d+1}=rValLst; %For Ref Composite 17_1009 %rmin1=min(rValLst); %For Ref Composite 17_1009 %rmax1=max(rValLst); %For Ref Composite 17_1009 %rstd1=std(rValLst); %For Ref Composite 17_1009 %rmean1=mean(rValLst); %For Ref Composite 17_1009 %kValList2{d+1}=kValLst2; %For Ref Composite 17_1009 %kmin2=min(kValLst2); %For Ref Composite 17_1009 %kmax2=max(kValLst2); %For Ref Composite 17_1009 %kstd2=std(kValLst2); %For Ref Composite 17_1009 %kmean2=mean(kValLst2); %For Ref Composite 17_1009 %rValList2{d+1}=rValLst2; %For Ref Composite 17_1009 % rmin2=min(rValLst2); %For Ref Composite 17_1009 %rmax2=max(rValLst2); %For Ref Composite 17_1009 %rstd2=std(rValLst2); %For Ref Composite 17_1009 %rmean2=mean(rValLst2); %For Ref Composite 17_1009 %User Reference Input Dialog Box used in the multiExperiment Chrono setup prompt={'Enter GeneName to use as Reference:',... 'Enter Specifics Term if used to futher specify Reference '} dlg_title='User Reference Input'; num_lines=1; def={'RF1','None'}; answer=inputdlg(prompt,dlg_title,num_lines,def); rfGene=cell2mat(answer(1)); if ~strcmpi(rfGene,'RF1')|| ~strcmpi(rfGene,'RF2'), usrRefFg=1; end rfSpec=answer(2); %if strcmpi(answer(2),'None'), rfSpec=''; end rfGnSp=strcat(rfGene,rfSpec); %First user input prototype code if ~exist('RF1scanN','var') && ~exist('RF2scanN','var') %change || && prompt={'Enter Masterplate Number(s) of Your Reference GeneName spots:',... 'Enter GeneName of Your Reference:'}; dlg_title='User Reference Input'; num_lines=1; def={'Ref MP(s)','USRrefGeneName'}; answer=inputdlg(prompt,dlg_title,num_lines,def); rfMPstr=cell2mat(answer(1)); rfMPcomas=strfind((cell2mat(answer(1))),','); n=0; if isempty(rfMPcomas)|| max(rfMPcomas)==length(rfMPstr) usrMPs=rfMPstr else for i=rfMPcomas, n=n+1 usrMPs(n)=str2double(rfMPstr(i-1:i)) if i==max(rfMPcomas) usrMPs(n+1)=str2double(rfMPstr(i:end)) end end end usrMPs=answer(1); refGene=answer(2); end %}