%EZvInitLoad global Exp global Expaa global Expbb global userPars global usrExpJobsDir global zonePB % Initialize some variables from matlab ezPath=which(mfilename); [ezDir,ezFileName]=fileparts(ezPath); ezDir=fullfile(easyDir); [parentDir, ~]=fileparts(ezDir); parentDir=fullfile(parentDir); % ../easy/apps debug=1; if debug disp('Running in debug mode'); disp('Initialized variables:'); whos; end % Set scansDir (project scans directory) intelligently if exist('PROJECT', 'var') && ~isempty(getenv('PROJECT')) scansDir=getenv('PROJECT'); fprintf('Using project path: %s from environment variable PROJECT\n', scansDir); disp('This usually indicates that we are in standalone mode'); elseif exist('PROJECT_SCANS_DIR', 'var') && ~isempty(getenv('PROJECT_SCANS_DIR')) scansDir=getenv('PROJECT_SCANS_DIR'); fprintf('Using scans directory: %s from environment variable PROJECT_SCANS_DIR\n', scansDir); disp('This usually indicates that we are in module mode'); else % TODO Lots of this is hardcoded logic, this TODO is just a reminder to change this block % when changing EZ_DIR and other variables in the parent script fprintf('Beginning parent scans directory search\n'); fprintf('This usually indicates that we are in stand-alone mode without PROJECT or PROJECT_SCANS_DIR environment variables\n'); dirsToScan={ fullfile(parentDir,'..', '..', 'scans'), fullfile(parentDir, '..', '..', 'ExpJobs'), fullfile('/mnt/data/scans'), fullfile('/mnt/data/ExpJobs'), fullfile(parentDir, '..', '..', 'templates', 'scans-demo') }; for d=dirsToScan if exist(d, 'dir') subDirs=dir(d); if ~isempty(subDirs) fprintf('Found a non-empty parent scans directory in our list: %s\n', d); fprintf('Scanning inside for a project scan directory\n'); [~, sortedIndices]=sort(datenum({dirs.date}), 'descend'); % sort by newest first sortedDirs=dirs{sortedIndices}; scansDir=sortedDirs{1}; fprintf('Selected newest project scans directory: %s\n', scansDir); end end end end % User sanity check and warning if exist('PROJECT_USER', 'var') && ~isempty(getenv('PROJECT_USER')) if ~equal(getenv('PROJECT_USER'), userName) disp("WARNING: PROJECT_USER does not match the current namespace"); end end % Allow module to override hardcoded default EZview directory if exist('EZVIEW_DIR','var') && ~isempty(getenv('EZVIEW_DIR')) EZVIEW_DIR=fullfile(getenv('EZVIEW_DIR')); if ~strcmp(ezDir, EZVIEW_DIR) % sanity check disp("WARNING: EZVIEW_DIR does not match this script's hardcoded EZview location"); disp("This is probably OK but if strange beahvior arises, we'll need to fix it in code"); ezDir=EZVIEW_DIR; end fprintf('Using EZview script directory: %s from environment variable EZVIEW_DIR\n', ezDir); else fprintf('Using EZview script directory: %s from hardcoded default\n', ezDir); end userPars.BPdefault={'on','on','0.3','8','45','1000'}; userPars.boxplotFlg=1; userPars.BPoutliers='On'; userPars.BPnotch='On'; userPars.BPlblShft=0.3; userPars.BPfontSz=8; userPars.BProt=45; userPars.Trenddefault={'1000'}; userPars.kfiltLim=str2double(userPars.BPdefault(6)); % Generate the Exp arrays numExps=3; for i=1:numExps Exp(i).cTraceN=0; Exp(i).cTraceIndx(1)=1; end Exp(1).CompositPlot=0;Exp(2).CompositPlot=0;Exp(3).CompositPlot=0; for i=1:numExps Exp(i).DexpType='single'; Exp(i).DexpN=1; Exp(i).DexpLength=1; eval(['set(handles.DN' num2str(i) ', ''value'', 1);']); % MATLAB level unlocked end set(handles.GeneOrfTog,'value',0) try load('EZsgdInfo'); catch disp('Fail to load EZsgdInfo file from code directory'); end Exp(numExps+1).SGDnum=SGDnum; Exp(numExps+1).SGDtext=SGDtext; Exp(numExps+1).SGDraw=SGDraw; Exp(numExps+1).interacPBsel=0; % Big outer loop try catch to ln844 end ln868 % try to use user selected 'ExpJobs' folder otherwise use a default % directory in the uigetfile to load the experiment .mat file. try [openExpfile,scansDir] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off') load (fullfile(Exp(1).Dexp(1).ExpFoldr,'MasterPlateFiles','MPDMmat.mat')) for i=1:numExps Exp(i).Dexp.DM=; Exp(i).cTraceIndx(1)=1; end Exp(1).Dexp(1).DM=DM; Exp(2).Dexp(1).DM=DM; Exp(3).Dexp(1).DM=DM; Exp(1).Dexp(1).MP=MP; Exp(2).Dexp(1).MP=MP; Exp(3).Dexp(1).MP=MP; Exp(1).Dexp(1).scan=scan; Exp(2).Dexp(1).scan=scan; Exp(3).Dexp(1).scan=scan; load(fullfile(resDir,'PTmats','NImParameters')) Exp(1).Dexp(1).ImParMat=ImParMat; Exp(2).Dexp(1).ImParMat=ImParMat; Exp(3).Dexp(1).ImParMat=ImParMat; try load(fullfile(resDir,'Fotos','Coordinates')) load(fullfile(resDir,'Fotos','anlZones')) load(fullfile(resDir,'Fotos','BGatTpts')) Exp(1).Dexp(1).FexpScanSpots=FexpScanSpots; Exp(2).Dexp(1).FexpScanSpots=FexpScanSpots; Exp(3).Dexp(1).FexpScanSpots=FexpScanSpots; Exp(1).Dexp(1).FexpScanBMtp=FexpScanBMtp; Exp(2).Dexp(1).FexpScanBMtp=FexpScanBMtp; Exp(3).Dexp(1).FexpScanBMtp=FexpScanBMtp; Exp(1).Dexp(1).anlZoneRefs=anlZoneRefs; Exp(2).Dexp(1).anlZoneRefs=anlZoneRefs; Exp(3).Dexp(1).anlZoneRefs=anlZoneRefs; catch end Exp(1).traceN=0; Exp(2).traceN=0; Exp(3).traceN=0; %ZoneRelated Exp(1).hOL =[]; Exp(1).hOLb=[]; Exp(1).hOLname = {}; Exp(1).hOLexpNm={}; Exp(1).hOLresDir={} Exp(1).hOLplateNum=[]; Exp(1).hOLresDir= {}; Exp(1).RFmd1indx=[]; Exp(1).RFmd1pltN=[]; Exp(1).RFmd2indx=[]; Exp(1).RFmd2pltN=[]; Exp(2).hOL =[]; Exp(2).hOLb=[]; Exp(2).hOLname = {}; Exp(2).hOLexpNm={}; Exp(2).hOLresDir={}; Exp(2).hOLplateNum=[]; Exp(2).hOLresDir= {}; Exp(2).RFmd1indx=[]; Exp(2).RFmd1pltN=[]; Exp(2).RFmd2indx=[]; Exp(2).RFmd2pltN=[]; Exp(3).hOL =[]; Exp(3).hOLb=[]; Exp(3).hOLname = {}; Exp(3).hOLexpNm={}; Exp(3).hOLresDir={}; Exp(3).hOLplateNum=[]; Exp(3).hOLresDir= {}; Exp(3).RFmd1indx=[]; Exp(3).RFmd1pltN=[]; Exp(3).RFmd2indx=[]; Exp(3).RFmd2pltN=[]; %sefaults values for EZvFigPrint that meet JLH preferences Exp(4).plotPars={'4','36','10','5'}; expN=1; %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(1).Dexp(1).MP(mx).genename{1}(384))) MPnum=mx; catch break end end %************************************************* %MPnum=length(Exp(expN).Dexp(1).MP); set(handles.MPsldr1,'min',1,'max',MPnum) set(handles.MPsldr2,'min',1,'max',MPnum) set(handles.MPsldr3,'min',1,'max',MPnum) DMnum= length(Exp(expN).Dexp(1).DM.drug); set(handles.DMsldr1,'min',1,'max',DMnum) %DMnum,'value',1.01) %100,'value',1.01) set(handles.DMsldr2,'min',1,'max',DMnum) set(handles.DMsldr3,'min',1,'max',DMnum) tPtsSize=size(Exp(expN).Dexp(1).FexpScanBMtp{1,1},(3)); set(handles.Tptsldr1,'min',1,'max',tPtsSize) set(handles.Tptsldr2,'min',1,'max',tPtsSize) set(handles.Tptsldr3,'min',1,'max',tPtsSize) set(handles.MPsldr1,'SliderStep',[1/MPnum 1/MPnum]); %[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.MPsldr2,'SliderStep',[1/MPnum 1/MPnum]); set(handles.DMsldr2,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]); set(handles.Tptsldr2,'SliderStep',[1/tPtsSize 1/tPtsSize]); set(handles.MPsldr3,'SliderStep',[1/MPnum 1/MPnum]); set(handles.DMsldr3,'SliderStep',[1/length(DM.drug) 1/length(DM.drug)]); set(handles.Tptsldr3,'SliderStep',[1/tPtsSize 1/tPtsSize]); 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)-1) +1; endPos=slashPos(length(slashPos)) -1; expStr= xp(startPos:endPos); set(handles.expName1,'string',expStr); set(handles.expName2,'string',expStr); set(handles.expName3,'string',expStr); catch cd(w) end %internal try xp=char(Exp(expN).Dexp(1).resDir); if ispc,... catch cd(w) msg='LOADing or Setup issue' %if no load, then Message try SelExp PB to reload or try and different %Experiment end %nested try-catch-end from ->ExpOutmat= fullfile(scansDir,openExpfile); try DNLaxes1= handles.DNLaxes1; DNLaxes2= handles.DNLaxes2; DNLaxes3= handles.DNLaxes3; zeroCLn= zeros(1,DMnum); %Exp(expN).expLoadCnt(1)=1; %ZoneRelated Exp(1).hzeroCLn(1) = plot(DNLaxes1,zeroCLn,1:DMnum,'y'); try set(Exp(1).hzeroCLn,'visible','off'); catch ME, end Exp(2).hzeroCLn(1) = plot(DNLaxes2,zeroCLn,1:DMnum,'y'); try set(Exp(2).hzeroCLn,'visible','off'); catch ME, end Exp(3).hzeroCLn(1) = plot(DNLaxes3,zeroCLn,1:DMnum,'y'); try set(Exp(3).hzeroCLn,'visible','off'); catch ME, end Exp(1).expLoadCnt=1; Exp(2).expLoadCnt=1; Exp(3).expLoadCnt=1; catch ME, ME.message, end %********************************************************************** %****Compile GeneList and OrfList,**************************************** %****Sort and add the medians of Ref Plates if RF1,RF2 exist************** set(handles.listboxGnOrf,'string',{('Loading')}) lstindx=0; lstindxOrf=0; spN=0; rfcnt=0; dRF1indx=0; RF1mp=[]; RF2mp=[]; for mp=1:MPnum %length(Exp(expN).Dexp(1).MP) 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 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_'}; %genename{1}(ind384) replace numeric with a space ' ' or something 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).orf{1}(ind384)),'RF2')... && iscellstr((Exp(expN).Dexp(1).MP(mp).orf{1}(ind384))) % .genename{1}(ind384))) lstindxOrf=lstindxOrf+1; 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 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')... && ~strcmpi((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384)),'RF2')... && iscellstr((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))) lstindx=lstindx+1; 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; %Exp(expN).Dexp(1).mutSpotIndx.woRFs(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') RF1mp=mp RF1scanN=(mp*DMnum)-(DMnum-1); %mp; rfcnt=rfcnt+1; RFs(spN:spN+383)= spN:spN+383; 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; asdf= sparse(RFs); asd=find(asdf); RFs=asd; RF2mp=mp RF2scanN= (mp*DMnum)-(DMnum-1); %mp; 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 %if isempty(regexpi(char((Exp(expN).Dexp(1).MP(mp).genename{1}(ind384))),'blank'))... %********************************************************************** catch mp ind384 msgBadGeneName= strcat('check genename at mp=',num2str(mp),' indx=',num2str(ind384)) end end %end associated with for ind384=1:384 mp end %end associated with for mp=1:length(Exp(expN).Dexp(1).MP) %***************************************************** %Cover case if mutorfs RFs are labeled RF1 or RF2 try Exp(1).Dexp(1).mutSpotIndx.wRFs= union(RFs, mutorfs); catch msg= 'No RFs Found in Exp! wRFs' Exp(1).Dexp(1).mutSpotIndx.wRFs= mutorfs; end try Exp(1).Dexp(1).mutSpotIndx.woRFs= setdiff(mutorfs,RFs); catch Exp(expN).Dexp(1).mutSpotIndx.woRFs= mutorfs; msg= 'No RFs Found in Exp! woRFs' end Exp(2).Dexp(1).mutSpotIndx.wRFs= Exp(1).Dexp(1).mutSpotIndx.wRFs; Exp(2).Dexp(1).mutSpotIndx.woRFs= Exp(1).Dexp(1).mutSpotIndx.woRFs; Exp(3).Dexp(1).mutSpotIndx.wRFs= Exp(1).Dexp(1).mutSpotIndx.wRFs; Exp(3).Dexp(1).mutSpotIndx.woRFs= Exp(1).Dexp(1).mutSpotIndx.woRFs; %&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& Exp(1).Dexp(1).RFmd1indx=[]; Exp(2).Dexp(1).RFmd1indx=[]; Exp(3).Dexp(1).RFmd1indx=[]; Exp(1).Dexp(1).RFmd1pltN=[]; Exp(2).Dexp(1).RFmd1pltN=[]; Exp(3).Dexp(1).RFmd1pltN=[]; Exp(1).Dexp(1).RFmean= []; Exp(2).Dexp(1).RFmean= []; Exp(3).Dexp(1).RFmean= []; Exp(1).Dexp(1).RFmeanG= []; Exp(2).Dexp(1).RFmeanG= []; Exp(3).Dexp(1).RFmeanG= []; 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); %(Exp(expN).Dexp(1).scan(RF1scanN).plate(1).CFout(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),')')}; aa(lstindx,2)={strcat(':',num2str(RF1mp),':',num2str(RFmd1loc(1)),':',num2str(RFmd1loc(2)))}; %,' std',num2str(std1))}; bb(lstindxOrf,1)= {strcat('RF1md(',num2str(d+1),')')}; 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(1).Dexp(1).RFmd1LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmd1LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmd1LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(1).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(2).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(3).Dexp(1).RFmd1indx(d+1)=RFmd1pos; Exp(1).Dexp(1).RFmd1pltN= RF1mp; Exp(2).Dexp(1).RFmd1pltN= RF1mp; Exp(3).Dexp(1).RFmd1pltN= RF1mp; Exp(1).Dexp(1).RFmd1val(d+1)= mval1; Exp(2).Dexp(1).RFmd1val(d+1)= mval1; Exp(3).Dexp(1).RFmd1val(d+1)= mval1; Exp(1).Dexp(1).mean1(d+1)= mean1; Exp(2).Dexp(1).mean1(d+1)= mean1; Exp(3).Dexp(1).mean1(d+1)= mean1; Exp(1).Dexp(1).std1(d+1)= std1; Exp(2).Dexp(1).std1(d+1)= std1; Exp(3).Dexp(1).std1(d+1)= std1; Exp(1).Dexp(1).min1(d+1)= min1; Exp(2).Dexp(1).min1(d+1)= min1; Exp(3).Dexp(1).min1(d+1)= min1; Exp(1).Dexp(1).max1(d+1)= max1; Exp(2).Dexp(1).max1(d+1)= max1; Exp(3).Dexp(1).max1(d+1)= max1; for ic=1:3 Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).Lvals= medValLst; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).med= median(medValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).mean= mean(medValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).std= std(medValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).min= min(medValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(1).dm(d+1).max= max(medValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).Kvals= kValLst; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).mean= mean(kValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).med= median(kValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).std= std(kValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).min= min(kValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(1).dm(d+1).max= max(kValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).rvals= rValLst; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).med= median(rValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).mean= mean(rValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).std= std(rValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).min= min(rValLst); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(1).dm(d+1).mean= max(rValLst); %For Ref Composite 17_1009 end else % Pick the first spot with zeros 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(1).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(2).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(3).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(1).Dexp(1).RFmd1pltN= RF1mp; Exp(2).Dexp(1).RFmd1pltN= RF1mp; Exp(3).Dexp(1).RFmd1pltN= RF1mp; %EZdestComp uses the masterplate number to get all the destPlates scanNumbers try, medValList1{d+1}= Exp(expN).Dexp(1).scan(rf1scN).plate(1).CFout(medianIndx,5); nonZeroCnt; catch end end catch %try ~ln219 medianCalcTryFailed1= 'Failed! Failed! 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(1).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(2).Dexp(1).RFmd1indx(d+1)=firstZero; Exp(3).Dexp(1).RFmd1indx(d+1)=firstZero; catch catchissue='Ln328' Exp(1).Dexp(1).RFmd1indx(d+1)=384; Exp(2).Dexp(1).RFmd1indx(d+1)=384; Exp(3).Dexp(1).RFmd1indx(d+1)=384; %if crapout,Then use spot384 as default to keep going end try Exp(1).Dexp(1).RFmd1pltN= RF1mp; Exp(2).Dexp(1).RFmd1pltN= RF1mp; Exp(3).Dexp(1).RFmd1pltN= RF1mp; catch catchissue='Ln334' Exp(1).Dexp(1).RFmd1pltN= 1; Exp(2).Dexp(1).RFmd1pltN= 1; Exp(3).Dexp(1).RFmd1pltN= 1; end error='EZvInit after Ln278' end %try ~ln219 end %for d=0:DMnum end % if exist('RF1scanN','var') %************************************************************************************* Exp(1).Dexp(1).RFmd2indx=[]; Exp(2).Dexp(1).RFmd2indx=[]; Exp(3).Dexp(1).RFmd2indx=[]; Exp(1).Dexp(1).RFmd2pltN=[]; Exp(2).Dexp(1).RFmd2pltN=[]; Exp(3).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); %(Exp(expN).Dexp(1).scan(RF2scanN).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(1).Dexp(1).RFmd2LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmd2LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmd2LB(d+1)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(1).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(2).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(3).Dexp(1).RFmd2indx(d+1)=RFmd2pos; Exp(1).Dexp(1).RFmd2pltN= RF2mp; Exp(2).Dexp(1).RFmd2pltN= RF2mp; Exp(3).Dexp(1).RFmd2pltN= RF2mp; Exp(1).Dexp(1).RFmd2val(d+1)= mval2; Exp(2).Dexp(1).RFmd2val(d+1)= mval2; Exp(3).Dexp(1).RFmd2val(d+1)= mval2; Exp(1).Dexp(1).mean2(d+1)= mean2; Exp(2).Dexp(1).mean2(d+1)= mean2; Exp(3).Dexp(1).mean2(d+1)= mean2; Exp(1).Dexp(1).std2(d+1)= std2; Exp(2).Dexp(1).std2(d+1)= std2; Exp(3).Dexp(1).std2(d+1)= std2; Exp(1).Dexp(1).min2(d+1)= min2; Exp(2).Dexp(1).min2(d+1)= min2; Exp(3).Dexp(1).min2(d+1)= min2; Exp(1).Dexp(1).max2(d+1)= max2; Exp(2).Dexp(1).max2(d+1)= max2; Exp(3).Dexp(1).max2(d+1)= max2; for ic=1:3 Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).Lvals= medValLst2; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).med= median(medValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).mean= mean(medValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).std= std(medValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).min= min(medValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpL(2).dm(d+1).max= max(medValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).Kvals= kValLst2; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).med= median(kValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).mean= mean(kValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).std= std(kValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).min= min(kValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpK(2).dm(d+1).max= max(kValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).rvals= rValLst2; %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).med= median(rValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).mean= mean(rValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).std= std(rValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).min= min(rValLst2); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpr(2).dm(d+1).max= max(rValLst); %For Ref Composite 17_1009 end else % Pick the first spot with zeros % Use that position to satisfy and keep process OK medianCalcFailed2= 'To 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(1).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(2).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(3).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(1).Dexp(1).RFmd2pltN= RF2mp; Exp(2).Dexp(1).RFmd2pltN= RF2mp; Exp(3).Dexp(1).RFmd2pltN= RF2mp; try, medValList2{d+1}= Exp(expN).Dexp(1).scan(rf2scN).plate(1).CFout(medianIndx2,5); nonZeroCnt2; catch end end catch medianCalcTryFailed2= 'Failed! Failed! 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(1).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(2).Dexp(1).RFmd2indx(d+1)=firstZero2; Exp(3).Dexp(1).RFmd2indx(d+1)=firstZero2; catch catchissue='Ln402' Exp(1).Dexp(1).RFmd2indx(d+1)=384; Exp(2).Dexp(1).RFmd2indx(d+1)=384; Exp(3).Dexp(1).RFmd2indx(d+1)=384; %if crapout,Then use spot384 as default to keep going end try Exp(1).Dexp(1).RFmd2pltN= RF2mp; Exp(2).Dexp(1).RFmd2pltN= RF2mp; Exp(3).Dexp(1).RFmd2pltN= RF2mp; catch catchissue='Ln408' Exp(1).Dexp(1).RFmd2pltN= 1; Exp(2).Dexp(1).RFmd2pltN= 1; Exp(3).Dexp(1).RFmd2pltN= 1; end end %if RF2scanN doesn't exist this addition to list will be skipped RFcombValList= cat(1,medValList1{d+1},medValList2{d+1}); Exp(1).Dexp(1).RFmean(d+1)= mean(RFcombValList);Exp(2).Dexp(1).RFmean(d+1)= mean(RFcombValList);Exp(3).Dexp(1).RFmean(d+1)= mean(RFcombValList); Exp(1).Dexp(1).RFstd(d+1)=std(RFcombValList);Exp(2).Dexp(1).RFstd(d+1)=std(RFcombValList);Exp(3).Dexp(1).RFstd(d+1)=std(RFcombValList); Exp(1).Dexp(1).RFmin(d+1)=min(RFcombValList);Exp(2).Dexp(1).RFmin(d+1)=min(RFcombValList);Exp(3).Dexp(1).RFmin(d+1)=min(RFcombValList); Exp(1).Dexp(1).RFmax(d+1)=max(RFcombValList);Exp(2).Dexp(1).RFmax(d+1)=max(RFcombValList);Exp(3).Dexp(1).RFmax(d+1)=max(RFcombValList); %can delete the following redundant line of code Exp(2).Dexp(1).RFmean(d+1)= Exp(1).Dexp(1).RFmean(d+1); Exp(3).Dexp(1).RFmean(d+1)= Exp(1).Dexp(1).RFmean(d+1); end %for d=0:DMnum elseif exist('RF1scanN','var') Exp(1).Dexp(1).RFmean= Exp(1).Dexp(1).mean1; Exp(2).Dexp(1).RFmean= Exp(2).Dexp(1).mean1; Exp(3).Dexp(1).RFmean= Exp(3).Dexp(1).mean1; Exp(1).Dexp(1).RFstd= Exp(1).Dexp(1).std1; Exp(2).Dexp(1).RFstd= Exp(2).Dexp(1).std1; Exp(3).Dexp(1).RFstd= Exp(3).Dexp(1).std1; Exp(1).Dexp(1).RFmin= Exp(1).Dexp(1).min1; Exp(2).Dexp(1).RFmin= Exp(2).Dexp(1).min1; Exp(3).Dexp(1).RFmin= Exp(3).Dexp(1).min1; Exp(1).Dexp(1).RFmax= Exp(1).Dexp(1).max1; Exp(2).Dexp(1).RFmax= Exp(2).Dexp(1).max1; Exp(3).Dexp(1).RFmax= Exp(3).Dexp(1).max1; end %if exist('RF2scanN','var') %************************************************************************************************* %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% %************************************************************************************************* %***********DISPERSE REFERENCE PLATES Exp(expN).Dexp(1).RFmdPindx=[]; Exp(expN).Dexp(1).RFmdPpltN=[]; if exist('drf','var') %('RF1scanN','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) 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)); 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)); minDisp= min(nonZeroValsP); maxDisp= max(nonZeroValsP); std1Disp= std(nonZeroValsP); mean1Disp= mean(nonZeroValsP); drfVals=Exp(expN).Dexp(1).scan(rf1scNdisp).plate(1).CFout(NZrefIndxP,5); %MEDIAN Determination for PLATES with Dispersed RFs 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); mval1Disp=median(medValLstDisp); nonZeroMedPosIndx=find(mval1Disp==nonZeroValsP); RFmd1posD= NZrefIndxP(nonZeroMedPosIndx); 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),')')}; %{'RF1md'}; aa(lstindx,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; %,'std_',num2str(std1))}; bb(lstindxOrf,1)= {strcat('RF1mdP(',num2str(d),')')}; %{'RF1md'}; bb(lstindxOrf,2)={strcat(':',num2str(dMPs(mm)),':',num2str(RFmd1locD(1)),':',num2str(RFmd1locD(2)))}; %,'std_',num2str(std1))}; Exp(1).Dexp(1).RFmdPLB(d,dMPs(mm))= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmdPLB(d,dMPs(mm))= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmdPLB(d,dMPs(mm))= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(1).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; Exp(2).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; Exp(3).Dexp(1).RFmdPindx(d,dMPs(mm))=RFmd1posD; Exp(1).Dexp(1).RFmdPpltN(d,dMPs(mm))= dMPs(mm); Exp(2).Dexp(1).RFmdPpltN(d,dMPs(mm))= dMPs(mm); Exp(3).Dexp(1).RFmdPpltN(d,dMPs(mm))= dMPs(mm); Exp(1).Dexp(1).RFmedianP(d,dMPs(mm))= mval1Disp; Exp(2).Dexp(1).RFmedianP(d,dMPs(mm))= mval1Disp; Exp(3).Dexp(1).RFmedianP(d,dMPs(mm))= mval1Disp; Exp(1).Dexp(1).meanP(d,dMPs(mm))= mean1Disp; Exp(2).Dexp(1).meanP(d,dMPs(mm))= mean1Disp; Exp(3).Dexp(1).meanP(d,dMPs(mm))= mean1Disp; Exp(1).Dexp(1).stdP(d,dMPs(mm))= std1Disp; Exp(2).Dexp(1).stdP(d,dMPs(mm))= std1Disp; Exp(3).Dexp(1).stdP(d,dMPs(mm))= std1Disp; Exp(1).Dexp(1).minP(d,dMPs(mm))= minDisp; Exp(2).Dexp(1).minP(d,dMPs(mm))= minDisp; Exp(3).Dexp(1).minP(d,dMPs(mm))= minDisp; Exp(1).Dexp(1).maxP(d,dMPs(mm))= maxDisp; Exp(2).Dexp(1).maxP(d,dMPs(mm))= maxDisp; Exp(3).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 %~isempty(NZrefIndxP) && length(medianIndxDisp) > 3 ln584 catch %try ln565 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='Ln' Exp(expN).Dexp(1).RFmdPpltN= 1; %This might keep from breaking BUT ??? end end %try ~ln565 end %for d=0:DMnum end %for mm=1:length(dMPs) %****************CALC. GLOBAL MEAN, STD, AND MEDIAN FOR DISTRIBUTED REFERENCES****************************************************************** uu= horzcat(uu,vv); for d=1:DMnum medianIndxD=[]; 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! find(nonzeros(vv(:,d))); if isempty(RFmeanG), nonZeroCntD=0; 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(1).Dexp(1).RFmdGLB(d)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(2).Dexp(1).RFmdGLB(d)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(3).Dexp(1).RFmdGLB(d)= strcat(aa(lstindx,1),aa(lstindx,2)); Exp(1).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(2).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(3).Dexp(1).RFmdGindx(d)=nzPosIndxDG; Exp(1).Dexp(1).RFmdGpltN(d)= RFmdDGloc(d,1); Exp(2).Dexp(1).RFmdGpltN(d)= RFmdDGloc(d,1); Exp(3).Dexp(1).RFmdGpltN(d)= RFmdDGloc(d,1); Exp(1).Dexp(1).RFmdGscanN(d)= uu(nzPosIndxDG,4); Exp(2).Dexp(1).RFmdGscanN(d)= uu(nzPosIndxDG,4); Exp(3).Dexp(1).RFmdGscanN(d)= uu(nzPosIndxDG,4); Exp(1).Dexp(1).RFmedianG(d)= mvalsDG; Exp(2).Dexp(1).RFmedianG(d)= mvalsDG; Exp(3).Dexp(1).RFmedianG(d)= mvalsDG; Exp(1).Dexp(1).RFmeanG(d)= RFmeanG; Exp(2).Dexp(1).RFmeanG(d)= RFmeanG; Exp(3).Dexp(1).RFmeanG(d)= RFmeanG; Exp(1).Dexp(1).RFstdG(d)= RFstdG; Exp(2).Dexp(1).RFstdG(d)= RFstdG; Exp(3).Dexp(1).RFstdG(d)= RFstdG; Exp(1).Dexp(1).RFminG(d)= minG; Exp(2).Dexp(1).RFminG(d)= minG; Exp(3).Dexp(1).RFminG(d)= minG; Exp(1).Dexp(1).RFmaxG(d)= maxG; Exp(2).Dexp(1).RFmaxG(d)= maxG; Exp(3).Dexp(1).RFmaxG(d)= maxG; for ic=1:3 Exp(ic).Dexp(1).RFcmpGL.dm(d).Lvals= vv(medianIndxD,d); %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpGL.dm(d).med= median(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGL.dm(d).mean= mean(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGL.dm(d).std= std(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGL.dm(d).min= min(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGL.dm(d).max= max(vv(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGK.dm(d).Kvals= vvK(medianIndxD,d); %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpGK.dm(d).med= median(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGK.dm(d).mean= mean(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGK.dm(d).std= std(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGK.dm(d).min= min(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGK.dm(d).max= max(vvK(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGr.dm(d).rvals= vvr(medianIndxD,d); %17_1201 TrendOL Exp(ic).Dexp(1).RFcmpGr.dm(d).med= median(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGr.dm(d).mean= mean(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGr.dm(d).std= std(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGr.dm(d).min= min(vvr(medianIndxD,d)); %For Ref Composite 17_1009 Exp(ic).Dexp(1).RFcmpGr.dm(d).max= max(vvr(medianIndxD,d)); %For Ref Composite 17_1009 end end %if ~isempty(NZrfIndxG(:,d)) && length(medianIndxD) > (.15*size(drf,1)) end %for d=1:DMnum end % if exist('drf','var') %END OF DISPERSE REFERENCE PLATAES CALCULATIONS AND LIST ADDITIONS %***************************************************************************************************** %SORT and build GeneList Exp(1).Dexp(1).srtGnLst={('CheckMP/MPDMfile')}; gnLstRaw= strcat(aa(:,1),aa(:,2)); Exp(1).Dexp(1).srtGnLst= sort(gnLstRaw); Exp(2).Dexp(1).srtGnLst=Exp(1).Dexp(1).srtGnLst; Exp(3).Dexp(1).srtGnLst=Exp(1).Dexp(1).srtGnLst; orfLstRaw=strcat(bb(:,1),bb(:,2)); Exp(1).Dexp(1).srtOrfLst= sort(orfLstRaw); Exp(2).Dexp(1).srtOrfLst=Exp(1).Dexp(1).srtOrfLst; Exp(3).Dexp(1).srtOrfLst=Exp(1).Dexp(1).srtOrfLst; set(handles.listboxGnOrf,'string',Exp(1).Dexp(1).srtGnLst) catch ME %Outer loop try around entire code subroutine cd(w) set(handles.listboxGnOrf,'string',cellstr([{'Failed To Load'}; {'Check MPDMmat file'};{'Check .xls files'};{'Check \Fotos .mat files'};{'Check \matResults file'}])) %Exp(expN).Dexp(1).srtGnLst={('Failed To Load')}; Exp(1).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]); Exp(2).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]); Exp(3).Dexp(1).srtGnLst=cellstr([{'Failed To Load'}; {' '}]); %Exp(expN).srtOrfLst={('Failed To Load')}; Exp(1).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]); Exp(2).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]); Exp(3).Dexp(1).srtOrfLst=cellstr([{'Failed To Load'}; {' '}]); %[openExpfile,scansDir] if isempty(strfind(openExpfile,'.mat')) cd(scansDir) cd .. ExpPath=pwd; cd(w) ExpOutImFile= fullfile(scansDir,openExpfile); EZvImagesOnly end end %********************************************************* expN=1; %Fix 170424 DexpN=1; EZdiagRFsSheet %* %**************** Exp(1).Dexp(1).RFrnames=rnames; Exp(2).Dexp(1).RFrnames=rnames; Exp(3).Dexp(1).RFrnames=rnames; Exp(1).Dexp(1).RFdata= data; Exp(2).Dexp(1).RFdata= data; Exp(3).Dexp(1).RFdata= data; %********************************************************* 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(1).RFconfig= RFconfig; Exp(2).RFconfig= RFconfig; Exp(3).RFconfig= RFconfig; %ZoneRelated %***************************** try msgBadGeneName catch end try Exp(1).Dexp(1).resetHtmpTg =3; Exp(2).Dexp(1).resetHtmpTg =3; Exp(3).Dexp(1).resetHtmpTg =3; %ZoneRelated if RFconfig==0, RFconfigMsg= 'No RF1 references in this Experiment Job' Exp(1).resetHtmpTg =3; Exp(2).resetHtmpTg =3; Exp(3).resetHtmpTg =3; %ZoneRelated end catch end %***************************** prntHt=0; % HtMapTog 'string', 'Current user HL/HN' selection' try Exp(1).htmapPBsel=0; set(handles.HtMapTog1,'string','L') Exp(2).htmapPBsel=0; %ZoneRelated set(handles.HtMapTog2,'string','L') Exp(3).htmapPBsel=0; set(handles.HtMapTog3,'string','L') catch % expN=1; end %************************************************************************ %Added 17-1023 For User Addition of Gene Composites to ListBox for ic=1:3 Expaa{ic,1}= aa; Expbb{ic,1}= bb; end %********************************************************************** htMapTogPBfg=0; Exp(1).htmapRFanswer= {'G','L'}; %ZoneRelated Exp(2).htmapRFanswer= {'G','L'}; Exp(3).htmapRFanswer= {'G','L'}; zonePB= expN; %added 230828 to fix migration %------Adapt for AppDesigner 230821----------- global ghandles ghandles= handles; %global Exp(4) ghandles.guiFig= gcf; Exp(4).guiFig=gcf;