More EASYconsole work
This commit is contained in:
@@ -196,7 +196,6 @@ if ~exist(drugMediaFile, 'file') || isempty(drugMediaFile)
|
|||||||
sortedFiles=dmFiles{sortedIndices};
|
sortedFiles=dmFiles{sortedIndices};
|
||||||
drugMediaFile=sortedFiles{1};
|
drugMediaFile=sortedFiles{1};
|
||||||
fprintf('Using newest DrugMedia file: %s, skipping directory selection\n', drugMediaFile);
|
fprintf('Using newest DrugMedia file: %s, skipping directory selection\n', drugMediaFile);
|
||||||
|
|
||||||
end
|
end
|
||||||
catch Me
|
catch Me
|
||||||
% This can be silent, not really an error
|
% This can be silent, not really an error
|
||||||
|
|||||||
@@ -65,10 +65,10 @@ function varargout = EASYconsole(varargin)
|
|||||||
fprintf('WARNING: Running in standalone mode without PROJECT or PROJECT_SCANS_DIR environment variables (not recommended)\n');
|
fprintf('WARNING: Running in standalone mode without PROJECT or PROJECT_SCANS_DIR environment variables (not recommended)\n');
|
||||||
fprintf('Beginning parent scans directory search\n');
|
fprintf('Beginning parent scans directory search\n');
|
||||||
dirsToScan={
|
dirsToScan={
|
||||||
fullfile(parentDir, '..', '..', 'scans'),
|
fullfile(parentDir, '..', '..', 'scans')
|
||||||
fullfile(parentDir, '..', '..', 'ExpJobs'),
|
fullfile(parentDir, '..', '..', 'ExpJobs')
|
||||||
fullfile('mnt','data','scans'),
|
fullfile('mnt','data','scans')
|
||||||
fullfile('mnt','data', 'ExpJobs'),
|
fullfile('mnt','data', 'ExpJobs')
|
||||||
fullfile(parentDir, '..', '..', 'templates', 'scans-demo')
|
fullfile(parentDir, '..', '..', 'templates', 'scans-demo')
|
||||||
};
|
};
|
||||||
for i=1:length(dirsToScan)
|
for i=1:length(dirsToScan)
|
||||||
@@ -78,7 +78,7 @@ function varargout = EASYconsole(varargin)
|
|||||||
pattern='^\d{6}_.*_.*';
|
pattern='^\d{6}_.*_.*';
|
||||||
matchedDirs={dirs(regexp(subDirs.name, pattern)).name};
|
matchedDirs={dirs(regexp(subDirs.name, pattern)).name};
|
||||||
if ~isempty(matchedDirs)
|
if ~isempty(matchedDirs)
|
||||||
fprintf('Found a non-empty scans directory in our list: %s\n', char(d);
|
fprintf('Found a non-empty scans directory in our list: %s\n', char(d));
|
||||||
fprintf('Setting scansDir to %s\n', char(d));
|
fprintf('Setting scansDir to %s\n', char(d));
|
||||||
scansDir=fullfile(d);
|
scansDir=fullfile(d);
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -6,7 +6,7 @@ function EZinterAgingDev0
|
|||||||
AgMPDM=load(fullfile(scansDir,'MasterPlateFiles','MPDMmat.mat'));
|
AgMPDM=load(fullfile(scansDir,'MasterPlateFiles','MPDMmat.mat'));
|
||||||
|
|
||||||
for i=1:size(openExpfile,2)
|
for i=1:size(openExpfile,2)
|
||||||
ExpOutmat{i}= fullfile(scansDir,openExpfile{i});
|
ExpOutmat{i}=fullfile(scansDir,openExpfile{i});
|
||||||
EScan{i}=load(ExpOutmat{1});
|
EScan{i}=load(ExpOutmat{1});
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -29,20 +29,20 @@ function EZinterAgingDev0
|
|||||||
defaultanswer={'80','60','1','N','39','Y'};
|
defaultanswer={'80','60','1','N','39','Y'};
|
||||||
answer=inputdlg(prompt,name,numlines,defaultanswer);
|
answer=inputdlg(prompt,name,numlines,defaultanswer);
|
||||||
|
|
||||||
negPercent= str2double(cell2mat(answer(1)));
|
negPercent=str2double(cell2mat(answer(1)));
|
||||||
posPercent= str2double(cell2mat(answer(2)));
|
posPercent=str2double(cell2mat(answer(2)));
|
||||||
DMstr= cell2mat(answer(3));
|
DMstr=cell2mat(answer(3));
|
||||||
DMcomas=strfind((cell2mat(answer(3))),',');
|
DMcomas=strfind((cell2mat(answer(3))),',');
|
||||||
removInfinL= answer(4);
|
removInfinL=answer(4);
|
||||||
numBins= str2double(cell2mat(answer(5)));
|
numBins=str2double(cell2mat(answer(5)));
|
||||||
subplotX= answer(6);
|
subplotX=answer(6);
|
||||||
% expN= str2double(cell2mat(answer(7)));
|
% expN=str2double(cell2mat(answer(7)));
|
||||||
n=0;
|
n=0;
|
||||||
for i= DMcomas,
|
for i=DMcomas,
|
||||||
n=n+1
|
n=n+1
|
||||||
DMsel(n)= str2double(DMstr(i-1:i))
|
DMsel(n)=str2double(DMstr(i-1:i))
|
||||||
if i== max(DMcomas)
|
if i==max(DMcomas)
|
||||||
DMsel(n+1)= str2double(DMstr(i:end))
|
DMsel(n+1)=str2double(DMstr(i:end))
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@@ -57,46 +57,46 @@ function EZinterAgingDev0
|
|||||||
for m=1:mpN
|
for m=1:mpN
|
||||||
scnN=j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
|
scnN=j + (dmN*(m-1)) % 1,6,11..; 2,7,12 ..; 3,8,13..;
|
||||||
Xn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,5); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,5);
|
Xn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,5); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,5);
|
||||||
Xn{m,j,:}(Xn{m,j,:}==0)= 140;
|
Xn{m,j,:}(Xn{m,j,:}==0)=140;
|
||||||
Xln{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,11); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,11);
|
Xln{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,11); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,11);
|
||||||
Xhn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,12); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,12);
|
Xhn{m,j,:}=Exp(expN).scan(scnN).plate(1).CFout(:,12); % Exp(expN).scan(DM{j}(m)).plate(1).CFout(:,12);
|
||||||
intL{m,j,:} = (Xn{m,j,:} - Rn(j));
|
intL{m,j,:}=(Xn{m,j,:} - Rn(j));
|
||||||
intL{m,j,:}(Xn{m,j,:}==140)= 100;
|
intL{m,j,:}(Xn{m,j,:}==140)=100;
|
||||||
intLhw{m,j,:} = ((Xn{m,1,:}-Xn{m,j,:}) - Rn(1)-Rn(j));
|
intLhw{m,j,:}=((Xn{m,1,:}-Xn{m,j,:}) - Rn(1)-Rn(j));
|
||||||
intLhw{m,j,:}(Xn{m,j,:}==140)= 100;
|
intLhw{m,j,:}(Xn{m,j,:}==140)=100;
|
||||||
deltaXR{m,j}(Xn{m,j} >=(Rn(j)+Rs(j)))= ( Xln{m,j}(Xn{m,j} >=(Rn(j)+Rs(j))))- (Rn(j)+Rs(j));
|
deltaXR{m,j}(Xn{m,j} >=(Rn(j)+Rs(j)))=( Xln{m,j}(Xn{m,j} >=(Rn(j)+Rs(j))))- (Rn(j)+Rs(j));
|
||||||
deltaXR{m,j}(Xn{m,j} < (Rn(j)-Rs(j)))= ( Xhn{m,j}(Xn{m,j} < (Rn(j)-Rs(j))))- (Rn(j)-Rs(j));
|
deltaXR{m,j}(Xn{m,j} < (Rn(j)-Rs(j)))=( Xhn{m,j}(Xn{m,j} < (Rn(j)-Rs(j))))- (Rn(j)-Rs(j));
|
||||||
Xneg= Xhn{m,j}- (Rn(j)-Rs(j));
|
Xneg=Xhn{m,j}- (Rn(j)-Rs(j));
|
||||||
Xpos= Xln{m,j}- (Rn(j)+Rs(j));
|
Xpos=Xln{m,j}- (Rn(j)+Rs(j));
|
||||||
deltaXR{m,j}= zeros(1,384);
|
deltaXR{m,j}=zeros(1,384);
|
||||||
|
|
||||||
for i=1:length(Xpos(:)),
|
for i=1:length(Xpos(:))
|
||||||
% deltaXR{m,j}(i)= Xpos(i);
|
% deltaXR{m,j}(i)=Xpos(i);
|
||||||
if deltaXR{m,j}(i)==0
|
if deltaXR{m,j}(i)==0
|
||||||
try
|
try
|
||||||
if abs(Xpos(i))<abs(Xneg(i)), deltaXR{m,j}(i)= Xpos(i);end
|
if abs(Xpos(i))<abs(Xneg(i)), deltaXR{m,j}(i)=Xpos(i);end
|
||||||
catch
|
catch
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:length(Xneg(:))
|
for i=1:length(Xneg(:))
|
||||||
if deltaXR{m,j}(i)==0, deltaXR{m,j}(i)= Xneg(i); end
|
if deltaXR{m,j}(i)==0, deltaXR{m,j}(i)=Xneg(i); end
|
||||||
try
|
try
|
||||||
if abs(Xpos(i))>abs(Xneg(i)), deltaXR{m,j}(i)= Xneg(i); end
|
if abs(Xpos(i))>abs(Xneg(i)), deltaXR{m,j}(i)=Xneg(i); end
|
||||||
catch
|
catch
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
deltaXR{m,j,:}(Xln{m,j,:}==0)= 100;
|
deltaXR{m,j,:}(Xln{m,j,:}==0)=100;
|
||||||
deltaXR{m,j,:}(isnan(Xln{m,j,:}))= 120;
|
deltaXR{m,j,:}(isnan(Xln{m,j,:}))=120;
|
||||||
deltaXR{m,j,:}(Xhn{m,j,:}==0)= 100;
|
deltaXR{m,j,:}(Xhn{m,j,:}==0)=100;
|
||||||
deltaXR{m,j,:}(isnan(Xhn{m,j,:}))= 120;
|
deltaXR{m,j,:}(isnan(Xhn{m,j,:}))=120;
|
||||||
|
|
||||||
% Compile all gene related L values for the each pert-DM (j).
|
% Compile all gene related L values for the each pert-DM (j).
|
||||||
addend=(1+((m-1)*384)) % ((((m-1)*j)*384)+1);
|
addend=(1+((m-1)*384)) % ((((m-1)*j)*384)+1);
|
||||||
intLcmp(addend:addend+383,j)= cell2mat(intL(m,j,:)); % ((addend:addend+383),j)= cell2mat(intL(j,m,:));
|
intLcmp(addend:addend+383,j)=cell2mat(intL(m,j,:)); % ((addend:addend+383),j)=cell2mat(intL(j,m,:));
|
||||||
intLadjcmp(addend:addend+383,j)= cell2mat(deltaXR(m,j,:)); % ((addend:addend+383),j)= cell2mat(deltaXR(j,m,:));
|
intLadjcmp(addend:addend+383,j)=cell2mat(deltaXR(m,j,:)); % ((addend:addend+383),j)=cell2mat(deltaXR(j,m,:));
|
||||||
end
|
end
|
||||||
% Remove RFs and Blank (or non annotated ' ') orf data Then
|
% Remove RFs and Blank (or non annotated ' ') orf data Then
|
||||||
% Filter data per user intput
|
% Filter data per user intput
|
||||||
@@ -120,13 +120,13 @@ function EZinterAgingDev0
|
|||||||
centNegCnt=round(negPercent/100 * length(intLcmpSortLT0));
|
centNegCnt=round(negPercent/100 * length(intLcmpSortLT0));
|
||||||
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortLT0)+centPosCnt): end,:);
|
intLposSel{j}=intLwoRFsorted{j}((length(intLcmpSortLT0)+centPosCnt): end,:);
|
||||||
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
|
intLnegSel{j}=intLwoRFsorted{j}((1:(length(intLcmpSortLT0)-centNegCnt)),:);
|
||||||
posIntboundryCentralVal(j)= intLcmpSortGT0((centPosCnt),:); % For Histogram use
|
posIntboundryCentralVal(j)=intLcmpSortGT0((centPosCnt),:); % For Histogram use
|
||||||
negIntboundryCentralVal(j)= intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); % For Histogram use
|
negIntboundryCentralVal(j)=intLcmpSortLT0(((length(intLcmpSortLT0))-(centNegCnt)),:); % For Histogram use
|
||||||
|
|
||||||
% Find potential Interactors within selected range
|
% Find potential Interactors within selected range
|
||||||
if j==DMsel(1) % Intc1,
|
if j==DMsel(1) % Intc1,
|
||||||
InterslstPos{1}= intLposSel{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
InterslstPos{1}=intLposSel{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
||||||
InterslstNeg{1}= intLnegSel{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
InterslstNeg{1}=intLnegSel{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
||||||
elseif sum(ismember(DMsel,j))==1 %Intc1 && j<=IntcLst
|
elseif sum(ismember(DMsel,j))==1 %Intc1 && j<=IntcLst
|
||||||
InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{j}(:,2))); % ,intLcmpposInd{j}))
|
InterslstPos{1}=(intersect(InterslstPos{1},intLposSel{j}(:,2))); % ,intLcmpposInd{j}))
|
||||||
InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{j}(:,2))); % ,intLcmpnegInd{j}))
|
InterslstNeg{1}=(intersect(InterslstNeg{1},intLnegSel{j}(:,2))); % ,intLcmpnegInd{j}))
|
||||||
@@ -137,28 +137,28 @@ function EZinterAgingDev0
|
|||||||
intLposDIndx{j}(:,2)=ceil((intLposSel{j}(:,2))/384); % mp plate numb column
|
intLposDIndx{j}(:,2)=ceil((intLposSel{j}(:,2))/384); % mp plate numb column
|
||||||
intLposDIndx{j}(:,3)=(rem(intLposSel{j}(:,2),384));
|
intLposDIndx{j}(:,3)=(rem(intLposSel{j}(:,2),384));
|
||||||
nn=(intLposDIndx{j}(:,3)==0);
|
nn=(intLposDIndx{j}(:,3)==0);
|
||||||
intLposDIndx{j}(nn,3)= 384;
|
intLposDIndx{j}(nn,3)=384;
|
||||||
intLposDIndx{j}(:,1)= j + (dmN*((intLposDIndx{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
intLposDIndx{j}(:,1)=j + (dmN*((intLposDIndx{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||||
|
|
||||||
intLnegDIndx{j}(:,2)=ceil((intLnegSel{j}(:,2))/384); % mp plate numb column
|
intLnegDIndx{j}(:,2)=ceil((intLnegSel{j}(:,2))/384); % mp plate numb column
|
||||||
intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384));
|
intLnegDIndx{j}(:,3)=(rem(intLnegSel{j}(:,2),384));
|
||||||
nn=(intLposDIndx{j}(:,3)==0);
|
nn=(intLposDIndx{j}(:,3)==0);
|
||||||
intLnegDIndx{j}(nn,3)= 384;
|
intLnegDIndx{j}(nn,3)=384;
|
||||||
intLnegDIndx{j}(:,1)= j + (dmN*((intLnegDIndx{j}(:,2))-1)); % scan numb
|
intLnegDIndx{j}(:,1)=j + (dmN*((intLnegDIndx{j}(:,2))-1)); % scan numb
|
||||||
|
|
||||||
% ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
|
% ADJUSTED L for Reference Standard deviation(More conservative) Interaction List compilation
|
||||||
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
intLadjwoRFs{j}(1,:)=intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
||||||
intLadjwoRFs{j}(2,:)= Exp(expN).mutSpotIndx.woRFs; % intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
intLadjwoRFs{j}(2,:)=Exp(expN).mutSpotIndx.woRFs; % intLadjcmp(385:(mpN-1)*384,j); %intLadjcmp(Exp(expN).mutSpotIndx.woRFs,j);
|
||||||
|
|
||||||
if strcmpi(removInfinL,'Y')
|
if strcmpi(removInfinL,'Y')
|
||||||
intLadjwoRFs0{j}(1,:)= intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~= 100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j);
|
intLadjwoRFs0{j}(1,:)=intLadjwoRFs{j}(1,(intLadjwoRFs{j}(1,:)~=100)) ; %intLcmp(Exp(1).mutSpotIndx.woRFs,j);
|
||||||
intLadjwoRFs0{j}(2,:)= intLadjwoRFs{j}(2,(intLadjwoRFs{j}(1,:)~= 100)) ; % Remove Index where spots are infinite (=100);
|
intLadjwoRFs0{j}(2,:)=intLadjwoRFs{j}(2,(intLadjwoRFs{j}(1,:)~=100)) ; % Remove Index where spots are infinite (=100);
|
||||||
clear intLadjwoRFs
|
clear intLadjwoRFs
|
||||||
intLadjwoRFs{j}(1,:)= intLadjwoRFs0{j}(1,:);
|
intLadjwoRFs{j}(1,:)=intLadjwoRFs0{j}(1,:);
|
||||||
intLadjwoRFs{j}(2,:)= intLadjwoRFs0{j}(2,:);
|
intLadjwoRFs{j}(2,:)=intLadjwoRFs0{j}(2,:);
|
||||||
end
|
end
|
||||||
|
|
||||||
intLwoRFsortedAdj{j}= sortrows(intLadjwoRFs{j}',1);
|
intLwoRFsortedAdj{j}=sortrows(intLadjwoRFs{j}',1);
|
||||||
clear intLadjSortGT0 intLadjSortLT0
|
clear intLadjSortGT0 intLadjSortLT0
|
||||||
tempIntLadj=intLwoRFsortedAdj{j}(:,1);
|
tempIntLadj=intLwoRFsortedAdj{j}(:,1);
|
||||||
intLadjSortGT0=tempIntLadj((tempIntLadj) >=0);
|
intLadjSortGT0=tempIntLadj((tempIntLadj) >=0);
|
||||||
@@ -171,8 +171,8 @@ function EZinterAgingDev0
|
|||||||
negIntboundryCentralValAdj(j)=intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
|
negIntboundryCentralValAdj(j)=intLadjSortLT0(((length(intLadjSortLT0))-(centNegCntAdj)),:);
|
||||||
|
|
||||||
if j==DMsel(1) % Intc1
|
if j==DMsel(1) % Intc1
|
||||||
InterslstPosAdj{1}= intLposSelAdj{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
InterslstPosAdj{1}=intLposSelAdj{DMsel(1)}(:,2) % intLcmpposInd{Intc1}
|
||||||
InterslstNegAdj{1}= intLnegSelAdj{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
InterslstNegAdj{1}=intLnegSelAdj{DMsel(1)}(:,2) % intLcmpnegInd{Intc1}
|
||||||
elseif sum(ismember(DMsel,j))==1 % j>Intc1 && j<=IntcLst
|
elseif sum(ismember(DMsel,j))==1 % j>Intc1 && j<=IntcLst
|
||||||
InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{j}(:,2))); % ,intLcmpposInd{j}))
|
InterslstPosAdj{1}=(intersect(InterslstPosAdj{1},intLposSelAdj{j}(:,2))); % ,intLcmpposInd{j}))
|
||||||
InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{j}(:,2))); % ,intLcmpnegInd{j}))
|
InterslstNegAdj{1}=(intersect(InterslstNegAdj{1},intLnegSelAdj{j}(:,2))); % ,intLcmpnegInd{j}))
|
||||||
@@ -183,14 +183,14 @@ function EZinterAgingDev0
|
|||||||
intLposDIndxAdj{j}(:,2)=ceil((intLposSelAdj{j}(:,2))/384); % mp plate numb column
|
intLposDIndxAdj{j}(:,2)=ceil((intLposSelAdj{j}(:,2))/384); % mp plate numb column
|
||||||
intLposDIndxAdj{j}(:,3)=(rem(intLposSelAdj{j}(:,2),384));
|
intLposDIndxAdj{j}(:,3)=(rem(intLposSelAdj{j}(:,2),384));
|
||||||
nn=(intLposDIndxAdj{j}(:,3)==0);
|
nn=(intLposDIndxAdj{j}(:,3)==0);
|
||||||
intLposDIndx{j}(nn,3)= 384;
|
intLposDIndx{j}(nn,3)=384;
|
||||||
intLposDIndxAdj{j}(:,1)= j + (dmN*((intLposDIndxAdj{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
intLposDIndxAdj{j}(:,1)=j + (dmN*((intLposDIndxAdj{j}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||||
|
|
||||||
intLnegDIndxAdj{j}(:,2)=ceil((intLnegSelAdj{j}(:,2))/384); % mp plate numb column
|
intLnegDIndxAdj{j}(:,2)=ceil((intLnegSelAdj{j}(:,2))/384); % mp plate numb column
|
||||||
intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384));
|
intLnegDIndxAdj{j}(:,3)=(rem(intLnegSelAdj{j}(:,2),384));
|
||||||
nn=(intLposDIndxAdj{j}(:,3)==0);
|
nn=(intLposDIndxAdj{j}(:,3)==0);
|
||||||
intLnegDIndxAdj{j}(nn,3)= 384;
|
intLnegDIndxAdj{j}(nn,3)=384;
|
||||||
intLnegDIndxAdj{j}(:,1)= j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); % scan numb
|
intLnegDIndxAdj{j}(:,1)=j + (dmN*((intLnegDIndxAdj{j}(:,2))-1)); % scan numb
|
||||||
end
|
end
|
||||||
|
|
||||||
% Get interaction values for each DM drugmedia agar type
|
% Get interaction values for each DM drugmedia agar type
|
||||||
@@ -199,56 +199,56 @@ function EZinterAgingDev0
|
|||||||
IntersValsPosAdj=intLadjcmp(InterslstPosAdj{1},DMsel);
|
IntersValsPosAdj=intLadjcmp(InterslstPosAdj{1},DMsel);
|
||||||
IntersValsNegAdj=intLadjcmp(InterslstNegAdj{1},DMsel);
|
IntersValsNegAdj=intLadjcmp(InterslstNegAdj{1},DMsel);
|
||||||
|
|
||||||
%Build 'genelist' data sheet for interactors
|
% Build 'genelist' data sheet for interactors
|
||||||
selIntPx{1}(:,6)=InterslstPos{1};
|
selIntPx{1}(:,6)=InterslstPos{1};
|
||||||
selIntPx{1}(:,2)=ceil((InterslstPos{1})/384); % mp plate numb column
|
selIntPx{1}(:,2)=ceil((InterslstPos{1})/384); % mp plate numb column
|
||||||
selIntPx{1}(:,3)=(rem(InterslstPos{1},384));
|
selIntPx{1}(:,3)=(rem(InterslstPos{1},384));
|
||||||
nn=(selIntPx{1}(:,3)==0);
|
nn=(selIntPx{1}(:,3)==0);
|
||||||
selIntPx{1}(nn,3)= 384;
|
selIntPx{1}(nn,3)=384;
|
||||||
selIntPx{1}(:,4)= ceil(selIntPx{1}(:,3)/24); % row numb
|
selIntPx{1}(:,4)=ceil(selIntPx{1}(:,3)/24); % row numb
|
||||||
selIntPx{1}(:,5)= rem(selIntPx{1}(:,3),24);
|
selIntPx{1}(:,5)=rem(selIntPx{1}(:,3),24);
|
||||||
mm=(selIntPx{1}(:,5)==0);
|
mm=(selIntPx{1}(:,5)==0);
|
||||||
selIntPx{1}(mm,5)= 24;
|
selIntPx{1}(mm,5)=24;
|
||||||
selIntPx{1}(:,1)= j + (dmN*((selIntPx{1}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
selIntPx{1}(:,1)=j + (dmN*((selIntPx{1}(:,2))-1)); % scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||||
selIntP= cell2mat(selIntPx);
|
selIntP=cell2mat(selIntPx);
|
||||||
selIntNx{1}(:,6)=InterslstNeg{1};
|
selIntNx{1}(:,6)=InterslstNeg{1};
|
||||||
selIntNx{1}(:,2)=ceil((InterslstNeg{1})/384); % mp plate numb column
|
selIntNx{1}(:,2)=ceil((InterslstNeg{1})/384); % mp plate numb column
|
||||||
selIntNx{1}(:,3)=(rem(InterslstNeg{1},384));
|
selIntNx{1}(:,3)=(rem(InterslstNeg{1},384));
|
||||||
nn=(selIntNx{1}(:,3)==0);
|
nn=(selIntNx{1}(:,3)==0);
|
||||||
selIntNx{1}(nn,3)= 384;
|
selIntNx{1}(nn,3)=384;
|
||||||
selIntNx{1}(:,4)= ceil(selIntNx{1}(:,3)/24); % row numb
|
selIntNx{1}(:,4)=ceil(selIntNx{1}(:,3)/24); % row numb
|
||||||
selIntNx{1}(:,5)= rem(selIntNx{1}(:,3),24);
|
selIntNx{1}(:,5)=rem(selIntNx{1}(:,3),24);
|
||||||
mm=(selIntNx{1}(:,5)==0);
|
mm=(selIntNx{1}(:,5)==0);
|
||||||
selIntNx{1}(mm,5)= 24;
|
selIntNx{1}(mm,5)=24;
|
||||||
selIntNx{1}(:,1)= j + (dmN*((selIntNx{1}(:,2))-1)); % scan numb
|
selIntNx{1}(:,1)=j + (dmN*((selIntNx{1}(:,2))-1)); % scan numb
|
||||||
selIntN= cell2mat(selIntNx);
|
selIntN=cell2mat(selIntNx);
|
||||||
|
|
||||||
for i=1:size(selIntP,1)
|
for i=1:size(selIntP,1)
|
||||||
IPgene(i)=Exp(expN).MP(selIntP(i,2)).genename{1}(selIntP(i,3));
|
IPgene(i)=Exp(expN).MP(selIntP(i,2)).genename{1}(selIntP(i,3));
|
||||||
IPorf(i)= Exp(expN).MP(selIntP(i,2)).orf{1}(selIntP(i,3));
|
IPorf(i)=Exp(expN).MP(selIntP(i,2)).orf{1}(selIntP(i,3));
|
||||||
IPstrain(i)= Exp(expN).MP(selIntP(i,2)).strain{1}(selIntP(i,3));
|
IPstrain(i)=Exp(expN).MP(selIntP(i,2)).strain{1}(selIntP(i,3));
|
||||||
IPspecifics(i)=Exp(expN).MP(selIntP(i,2)).specifics{1}(selIntP(i,3));
|
IPspecifics(i)=Exp(expN).MP(selIntP(i,2)).specifics{1}(selIntP(i,3));
|
||||||
IPorfRep(i)=Exp(expN).MP(selIntP(i,2)).orfRep{1}(selIntP(i,3));
|
IPorfRep(i)=Exp(expN).MP(selIntP(i,2)).orfRep{1}(selIntP(i,3));
|
||||||
|
|
||||||
% Bad this is the L data for only the last selected DM perturbation
|
% Bad this is the L data for only the last selected DM perturbation
|
||||||
% Would need to calculate each scan# for each DMsel value
|
% Would need to calculate each scan# for each DMsel value
|
||||||
ipL(i)= Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),5);
|
ipL(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),5);
|
||||||
ipLlower(i)= Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),11);
|
ipLlower(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),11);
|
||||||
ipLupper(i)= Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
|
ipLupper(i)=Exp(expN).scan(selIntP(i,1)).plate(1).CFout(selIntP(i,3),12);
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:size(selIntN,1)
|
for i=1:size(selIntN,1)
|
||||||
INgene(i)=Exp(expN).MP(selIntN(i,2)).genename{1}(selIntN(i,3));
|
INgene(i)=Exp(expN).MP(selIntN(i,2)).genename{1}(selIntN(i,3));
|
||||||
INorf(i)= Exp(expN).MP(selIntN(i,2)).orf{1}(selIntN(i,3));
|
INorf(i)=Exp(expN).MP(selIntN(i,2)).orf{1}(selIntN(i,3));
|
||||||
INstrain(i)= Exp(expN).MP(selIntN(i,2)).strain{1}(selIntN(i,3));
|
INstrain(i)=Exp(expN).MP(selIntN(i,2)).strain{1}(selIntN(i,3));
|
||||||
INspecifics(i)=Exp(expN).MP(selIntN(i,2)).specifics{1}(selIntN(i,3));
|
INspecifics(i)=Exp(expN).MP(selIntN(i,2)).specifics{1}(selIntN(i,3));
|
||||||
INorfRep(i)=Exp(expN).MP(selIntN(i,2)).orfRep{1}(selIntN(i,3));
|
INorfRep(i)=Exp(expN).MP(selIntN(i,2)).orfRep{1}(selIntN(i,3));
|
||||||
|
|
||||||
% Bad this is the L data for only the last selected DM perturbation
|
% Bad this is the L data for only the last selected DM perturbation
|
||||||
% Would need to calculate each scan# for each DMsel value
|
% Would need to calculate each scan# for each DMsel value
|
||||||
inL(i)= Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),5);
|
inL(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),5);
|
||||||
inLlower(i)= Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),11);
|
inLlower(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),11);
|
||||||
inLupper(i)= Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),12);
|
inLupper(i)=Exp(expN).scan(selIntN(i,1)).plate(1).CFout(selIntN(i,3),12);
|
||||||
end
|
end
|
||||||
|
|
||||||
% ADJUSTED with STD and curve fit boundaries to produce more conservative interaction values
|
% ADJUSTED with STD and curve fit boundaries to produce more conservative interaction values
|
||||||
@@ -256,48 +256,48 @@ function EZinterAgingDev0
|
|||||||
selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
|
selIntPxAdj{1}(:,2)=ceil((InterslstPosAdj{1})/384); %mp plate numb column
|
||||||
selIntPxAdj{1}(:,3)=(rem(InterslstPosAdj{1},384));
|
selIntPxAdj{1}(:,3)=(rem(InterslstPosAdj{1},384));
|
||||||
nn=(selIntPxAdj{1}(:,3)==0);
|
nn=(selIntPxAdj{1}(:,3)==0);
|
||||||
selIntPxAdj{1}(nn,3)= 384;
|
selIntPxAdj{1}(nn,3)=384;
|
||||||
selIntPxAdj{1}(:,4)= ceil(selIntPxAdj{1}(:,3)/24); %row numb
|
selIntPxAdj{1}(:,4)=ceil(selIntPxAdj{1}(:,3)/24); %row numb
|
||||||
selIntPxAdj{1}(:,5)= rem(selIntPxAdj{1}(:,3),24);
|
selIntPxAdj{1}(:,5)=rem(selIntPxAdj{1}(:,3),24);
|
||||||
mm=(selIntPxAdj{1}(:,5)==0);
|
mm=(selIntPxAdj{1}(:,5)==0);
|
||||||
selIntPxAdj{1}(mm,5)= 24;
|
selIntPxAdj{1}(mm,5)=24;
|
||||||
selIntPxAdj{1}(:,1)= j + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
selIntPxAdj{1}(:,1)=j + (dmN*((selIntPxAdj{1}(:,2))-1)); %scan numb column %intLposDIndx(:,2)* intLposDIndx(:,3);
|
||||||
selIntPAdj= cell2mat(selIntPxAdj);
|
selIntPAdj=cell2mat(selIntPxAdj);
|
||||||
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
|
selIntNxAdj{1}(:,2)=ceil((InterslstNegAdj{1})/384); %mp plate numb column
|
||||||
selIntNxAdj{1}(:,3)=(rem(InterslstNegAdj{1},384));
|
selIntNxAdj{1}(:,3)=(rem(InterslstNegAdj{1},384));
|
||||||
nn=(selIntNxAdj{1}(:,3)==0);
|
nn=(selIntNxAdj{1}(:,3)==0);
|
||||||
selIntNxAdj{1}(nn,3)= 384;
|
selIntNxAdj{1}(nn,3)=384;
|
||||||
selIntNxAdj{1}(:,4)= ceil(selIntNxAdj{1}(:,3)/24); %row numb
|
selIntNxAdj{1}(:,4)=ceil(selIntNxAdj{1}(:,3)/24); %row numb
|
||||||
selIntNxAdj{1}(:,5)= rem(selIntNxAdj{1}(:,3),24);
|
selIntNxAdj{1}(:,5)=rem(selIntNxAdj{1}(:,3),24);
|
||||||
mm=(selIntNxAdj{1}(:,5)==0);
|
mm=(selIntNxAdj{1}(:,5)==0);
|
||||||
selIntNxAdj{1}(mm,5)= 24;
|
selIntNxAdj{1}(mm,5)=24;
|
||||||
selIntNxAdj{1}(:,1)= j + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb
|
selIntNxAdj{1}(:,1)=j + (dmN*((selIntNxAdj{1}(:,2))-1)); %scan numb
|
||||||
selIntNAdj= cell2mat(selIntNxAdj);
|
selIntNAdj=cell2mat(selIntNxAdj);
|
||||||
|
|
||||||
for i=1:size(selIntPAdj,1)
|
for i=1:size(selIntPAdj,1)
|
||||||
IPgeneAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3));
|
IPgeneAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).genename{1}(selIntPAdj(i,3));
|
||||||
IPorfAdj(i)= Exp(expN).MP(selIntPAdj(i,2)).orf{1}(selIntPAdj(i,3));
|
IPorfAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).orf{1}(selIntPAdj(i,3));
|
||||||
IPstrainAdj(i)= Exp(expN).MP(selIntPAdj(i,2)).strain{1}(selIntPAdj(i,3));
|
IPstrainAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).strain{1}(selIntPAdj(i,3));
|
||||||
IPspecificsAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).specifics{1}(selIntPAdj(i,3));
|
IPspecificsAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).specifics{1}(selIntPAdj(i,3));
|
||||||
IPorfRepAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).orfRep{1}(selIntPAdj(i,3));
|
IPorfRepAdj(i)=Exp(expN).MP(selIntPAdj(i,2)).orfRep{1}(selIntPAdj(i,3));
|
||||||
% Bad this is the L data for only the last selected DM perturbation
|
% Bad this is the L data for only the last selected DM perturbation
|
||||||
% Would need to calculate each scan# for each DMsel value
|
% Would need to calculate each scan# for each DMsel value
|
||||||
ipLAdj(i)= Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),5);
|
ipLAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),5);
|
||||||
ipLlowerAdj(i)= Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),11);
|
ipLlowerAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),11);
|
||||||
ipLupperAdj(i)= Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
|
ipLupperAdj(i)=Exp(expN).scan(selIntPAdj(i,1)).plate(1).CFout(selIntPAdj(i,3),12);
|
||||||
end
|
end
|
||||||
|
|
||||||
for i=1:size(selIntNAdj,1)
|
for i=1:size(selIntNAdj,1)
|
||||||
INgeneAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3));
|
INgeneAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).genename{1}(selIntNAdj(i,3));
|
||||||
INorfAdj(i)= Exp(expN).MP(selIntNAdj(i,2)).orf{1}(selIntNAdj(i,3));
|
INorfAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).orf{1}(selIntNAdj(i,3));
|
||||||
INstrainAdj(i)= Exp(expN).MP(selIntNAdj(i,2)).strain{1}(selIntNAdj(i,3));
|
INstrainAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).strain{1}(selIntNAdj(i,3));
|
||||||
INspecificsAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).specifics{1}(selIntNAdj(i,3));
|
INspecificsAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).specifics{1}(selIntNAdj(i,3));
|
||||||
INorfRepAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).orfRep{1}(selIntNAdj(i,3));
|
INorfRepAdj(i)=Exp(expN).MP(selIntNAdj(i,2)).orfRep{1}(selIntNAdj(i,3));
|
||||||
%Bad this is the L data for only the last selected DM perturbation
|
%Bad this is the L data for only the last selected DM perturbation
|
||||||
%Would need to calculate each scan# for each DMsel value
|
%Would need to calculate each scan# for each DMsel value
|
||||||
inLAdj(i)= Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),5);
|
inLAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),5);
|
||||||
inLlowerAdj(i)= Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),11);
|
inLlowerAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),11);
|
||||||
inLupperAdj(i)= Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
|
inLupperAdj(i)=Exp(expN).scan(selIntNAdj(i,1)).plate(1).CFout(selIntNAdj(i,3),12);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|
||||||
@@ -306,11 +306,11 @@ function EZinterAgingDev0
|
|||||||
figure
|
figure
|
||||||
if strcmpi(subplotX,'Y')
|
if strcmpi(subplotX,'Y')
|
||||||
for j=1:dmN
|
for j=1:dmN
|
||||||
histLdata= intLwoRFsorted{j}(:,1); % intLcmp(385:(mpN-1)*384,j);
|
histLdata=intLwoRFsorted{j}(:,1); % intLcmp(385:(mpN-1)*384,j);
|
||||||
% histLadjData=intLadjcmp(385:(mpN-1)*384,j);
|
% histLadjData=intLadjcmp(385:(mpN-1)*384,j);
|
||||||
hgLdat{j}=histfitJR(histLdata,numBins,'kernel');
|
hgLdat{j}=histfitJR(histLdata,numBins,'kernel');
|
||||||
x{j}= get(hgLdat{j}(2),'xdata');
|
x{j}=get(hgLdat{j}(2),'xdata');
|
||||||
y{j}= get(hgLdat{j}(2),'ydata');
|
y{j}=get(hgLdat{j}(2),'ydata');
|
||||||
xb{j}=get(hgLdat{j}(1),'xdata');
|
xb{j}=get(hgLdat{j}(1),'xdata');
|
||||||
yb{j}=get(hgLdat{j}(1),'ydata');
|
yb{j}=get(hgLdat{j}(1),'ydata');
|
||||||
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)));
|
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)));
|
||||||
@@ -329,20 +329,20 @@ function EZinterAgingDev0
|
|||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
scnsize=get(0,'screensize')
|
scnsize=get(0,'screensize')
|
||||||
pos1= [round(scnsize(3)/40), round(scnsize(4)/2 +(scnsize(3)/80)),...
|
pos1=[round(scnsize(3)/40), round(scnsize(4)/2 +(scnsize(3)/80)),...
|
||||||
round(scnsize(3) -round(scnsize(3)/80)),round(scnsize(4)/2 -round(scnsize(4)/80))]
|
round(scnsize(3) -round(scnsize(3)/80)),round(scnsize(4)/2 -round(scnsize(4)/80))]
|
||||||
set(gcf,'outerposition',pos1)
|
set(gcf,'outerposition',pos1)
|
||||||
set(gcf,'Name', 'Interaction Values ');
|
set(gcf,'Name', 'Interaction Values ');
|
||||||
|
|
||||||
figure
|
figure
|
||||||
for j=1:dmN
|
for j=1:dmN
|
||||||
histLadjData= intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
|
histLadjData=intLwoRFsortedAdj{j}(:,1); %intLadjcmp(385:(mpN-1)*384,j);
|
||||||
hgLadj{j}=subplot(2, 4, j),histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel')
|
hgLadj{j}=subplot(2, 4, j),histfitJR(histLadjData,numBins,'kernel') ; hold %hgLadj{j}=histfit(intLadjcmp(:,j),31,'kernel')
|
||||||
subplot(2, 4, j),plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
subplot(2, 4, j),plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
||||||
subplot(2, 4, j),plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
subplot(2, 4, j),plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
||||||
hold off
|
hold off
|
||||||
end
|
end
|
||||||
pos2= [round(scnsize(3)/40), round(scnsize(4)/30),...
|
pos2=[round(scnsize(3)/40), round(scnsize(4)/30),...
|
||||||
round(scnsize(3) -scnsize(3)/80),round(scnsize(4)/2 -scnsize(4)/80)]
|
round(scnsize(3) -scnsize(3)/80),round(scnsize(4)/2 -scnsize(4)/80)]
|
||||||
set(gcf,'outerposition',pos2)
|
set(gcf,'outerposition',pos2)
|
||||||
set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries')
|
set(gcf,'Name', 'Interaction Compensated by Standard Deviation and Upper/Lower Curvefit boundaries')
|
||||||
@@ -360,8 +360,8 @@ function EZinterAgingDev0
|
|||||||
plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
plot(posIntboundryCentralValAdj(j), 1:3000,'--r')
|
||||||
plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
plot(negIntboundryCentralValAdj(j), 1:3000,'--g')
|
||||||
hold off
|
hold off
|
||||||
x{j}= get(hgL{j}(2),'xdata')
|
x{j}=get(hgL{j}(2),'xdata')
|
||||||
y{j}= get(hgL{j}(2),'ydata');
|
y{j}=get(hgL{j}(2),'ydata');
|
||||||
xb{j}=get(hgL{j}(1),'xdata')
|
xb{j}=get(hgL{j}(1),'xdata')
|
||||||
yb{j}=get(hgL{j}(1),'ydata')
|
yb{j}=get(hgL{j}(1),'ydata')
|
||||||
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)))
|
ybpostot{j}=sum(yb{j}(2,(xb{j}(1,:)>=0)))
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ global Expbb
|
|||||||
global userPars
|
global userPars
|
||||||
global usrExpJobsDir
|
global usrExpJobsDir
|
||||||
global zonePB
|
global zonePB
|
||||||
|
global mpdmFile
|
||||||
|
|
||||||
% Initialize some variables from matlab
|
% Initialize some variables from matlab
|
||||||
ezPath=which(mfilename);
|
ezPath=which(mfilename);
|
||||||
@@ -22,7 +23,8 @@ end
|
|||||||
|
|
||||||
% Set scansDir (project scans directory) intelligently
|
% Set scansDir (project scans directory) intelligently
|
||||||
if exist('PROJECT', 'var') && ~isempty(getenv('PROJECT'))
|
if exist('PROJECT', 'var') && ~isempty(getenv('PROJECT'))
|
||||||
scansDir=getenv('PROJECT');
|
project=getenv('PROJECT');
|
||||||
|
|
||||||
fprintf('Using project path: %s from environment variable PROJECT\n', scansDir);
|
fprintf('Using project path: %s from environment variable PROJECT\n', scansDir);
|
||||||
disp('This usually indicates that we are in standalone mode');
|
disp('This usually indicates that we are in standalone mode');
|
||||||
elseif exist('PROJECT_SCANS_DIR', 'var') && ~isempty(getenv('PROJECT_SCANS_DIR'))
|
elseif exist('PROJECT_SCANS_DIR', 'var') && ~isempty(getenv('PROJECT_SCANS_DIR'))
|
||||||
@@ -76,6 +78,19 @@ else
|
|||||||
fprintf('Using EZview script directory: %s from hardcoded default\n', ezDir);
|
fprintf('Using EZview script directory: %s from hardcoded default\n', ezDir);
|
||||||
end
|
end
|
||||||
|
|
||||||
|
% Allow module to override hardcoded default EASY directory
|
||||||
|
if exist('EASY_DIR','var') && ~isempty(getenv('EASY_DIR'))
|
||||||
|
EASY_DIR=fullfile(getenv('EASY_DIR'));
|
||||||
|
if ~strcmp(easyDir, EASY_DIR) % sanity check
|
||||||
|
disp("WARNING: EASY_DIR does not match this script's hardcoded EASY location");
|
||||||
|
disp("This is probably OK but if strange beahvior arises, we'll need to fix it in code");
|
||||||
|
easyDir=EASY_DIR;
|
||||||
|
end
|
||||||
|
fprintf('Using EASY script directory: %s from environment variable EASY_DIR\n', easyDir);
|
||||||
|
else
|
||||||
|
fprintf('Using EASY script directory: %s from hardcoded default\n', easyDir);
|
||||||
|
end
|
||||||
|
|
||||||
userPars.BPdefault={'on','on','0.3','8','45','1000'};
|
userPars.BPdefault={'on','on','0.3','8','45','1000'};
|
||||||
userPars.boxplotFlg=1;
|
userPars.boxplotFlg=1;
|
||||||
userPars.BPoutliers='On';
|
userPars.BPoutliers='On';
|
||||||
@@ -90,9 +105,6 @@ userPars.kfiltLim=str2double(userPars.BPdefault(6));
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
% Generate the Exp arrays
|
% Generate the Exp arrays
|
||||||
numExps=3;
|
numExps=3;
|
||||||
for i=1:numExps
|
for i=1:numExps
|
||||||
|
|||||||
@@ -20,11 +20,6 @@ function varargout = EZviewGui(varargin)
|
|||||||
%
|
%
|
||||||
% See also: GUIDE, GUIDATA, GUIHANDLES
|
% See also: GUIDE, GUIDATA, GUIHANDLES
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
gui_Singleton = 0;
|
gui_Singleton = 0;
|
||||||
gui_State = struct( ...
|
gui_State = struct( ...
|
||||||
'gui_Name', mfilename, ...
|
'gui_Name', mfilename, ...
|
||||||
@@ -66,7 +61,7 @@ function EZviewGui_OpeningFcn(hObject, eventdata, handles, varargin)
|
|||||||
% so window can get raised using EZviewGui.
|
% so window can get raised using EZviewGui.
|
||||||
|
|
||||||
if strcmp(get(hObject,'Visible'),'off')
|
if strcmp(get(hObject,'Visible'),'off')
|
||||||
%plot(rand(5));
|
%plot(rand(5));
|
||||||
end
|
end
|
||||||
|
|
||||||
% Special disabling of version for this later install of Matlab 2011a:
|
% Special disabling of version for this later install of Matlab 2011a:
|
||||||
|
|||||||
@@ -586,32 +586,21 @@ easy() {
|
|||||||
# TODO will need to play with the -sd startup option to see what works (well)
|
# TODO will need to play with the -sd startup option to see what works (well)
|
||||||
# Skip this step altogether in auto mode since it requires graphical interaction
|
# Skip this step altogether in auto mode since it requires graphical interaction
|
||||||
if ! ((YES)) && ask "Start EASY in MATLAB? This requires a GUI."; then
|
if ! ((YES)) && ask "Start EASY in MATLAB? This requires a GUI."; then
|
||||||
export PROJECT_SCANS_DIR PROJECT_DATE EASY_DIR PROJECT_USER EASY_NAME EASY_SUFFIX EASY_RESULTS_DIR MASTER_PLATE_FILE DRUG_MEDIA_FILE
|
export PROJECT_SCANS_DIR PROJECT_DATE PROJECT_USER PROJECT
|
||||||
echo "Hit enter to use the default EASY results directory $PROJECT_SCANS_DIR/Results_${PROJECT_PREFIX}_($PROJECT_SUFFIX)"
|
export EASY_DIR EASY_NAME EASY_SUFFIX EASY_RESULTS_DIR
|
||||||
(( YES )) || read -r -p "Or enter a custom suffix: " suffix
|
export MASTER_PLATE_FILE DRUG_MEDIA_FILE
|
||||||
EASY_RESULTS_DIR="$PROJECT_SCANS_DIR/Results_${PROJECT_PREFIX}_${suffix:-$PROJECT_SUFFIX}"
|
|
||||||
while [[ -d $EASY_RESULTS_DIR ]]; do
|
|
||||||
count=1
|
|
||||||
if [[ $count -eq 1 ]] && ask "$EASY_RESULTS_DIR already exists, increment dir name (y) or overwrite (N)?"; then
|
|
||||||
EASY_SUFFIX="${suffix:-$PROJECT_SUFFIX}.$((count++))"
|
|
||||||
EASY_RESULTS_DIR="$PROJECT_SCANS_DIR/Results_${PROJECT_PREFIX}_${EASY_SUFFIX}"
|
|
||||||
else
|
|
||||||
EASY_SUFFIX=${suffix:-$PROJECT_SUFFIX}
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
EASY_SUFFIX=${EASY_SUFFIX:-$suffix:-$PROJECT_SUFFIX}
|
|
||||||
EASY_NAME="${PROJECT_PREFIX}_${EASY_SUFFIX}"
|
|
||||||
EASY_RESULTS_DIR="$PROJECT_SCANS_DIR/Results_$EASY_NAME"
|
|
||||||
[[ -d $PROJECT_SCANS_DIR/MasterPlateFiles ]] || mkdir -p "$PROJECT_SCANS_DIR/MasterPlateFiles"
|
|
||||||
DRUG_MEDIA_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/DrugMedia_$PROJECT.xls"
|
|
||||||
MASTER_PLATE_FILE="$PROJECT_SCANS_DIR/MasterPlateFiles/MasterPlate_$PROJECT.xls"
|
|
||||||
|
|
||||||
|
choose_easy_results_dir
|
||||||
|
|
||||||
|
DRUG_MEDIA_FILE="$EASY_RESULTS_DIR/DrugMedia_$PROJECT.xls"
|
||||||
|
MASTER_PLATE_FILE="$EASY_RESULTS_DIR/MasterPlate_$PROJECT.xls"
|
||||||
|
|
||||||
# Make EASY dirs
|
# Make EASY dirs
|
||||||
debug "mkdir -p $EASY_RESULTS_DIR"
|
debug "mkdir -p $EASY_RESULTS_DIR"
|
||||||
mkdir -p "$EASY_RESULTS_DIR"
|
mkdir -p "$EASY_RESULTS_DIR"
|
||||||
dirs=('PrintResults' 'CFfigs' 'Fotos' 'Fotos/BkUp' 'matResults')
|
dirs=('PrintResults' 'CFfigs' 'Fotos' 'Fotos/BkUp' 'matResults')
|
||||||
for d in "${dirs[@]}"; do
|
for d in "${dirs[@]}"; do
|
||||||
|
debug "mkdir $EASY_RESULTS_DIR/$d"
|
||||||
mkdir "$EASY_RESULTS_DIR/$d"
|
mkdir "$EASY_RESULTS_DIR/$d"
|
||||||
done
|
done
|
||||||
|
|
||||||
@@ -619,13 +608,12 @@ easy() {
|
|||||||
rsync -a "$EASY_DIR"/{figs,Ptmats} "$EASY_RESULTS_DIR"
|
rsync -a "$EASY_DIR"/{figs,Ptmats} "$EASY_RESULTS_DIR"
|
||||||
|
|
||||||
# Launch matlab
|
# Launch matlab
|
||||||
matlab -nosplash -r "run $script"
|
|
||||||
# matlab -nosplash -sd "$PROJECT_SCANS_DIR" -r "run $script"
|
# matlab -nosplash -sd "$PROJECT_SCANS_DIR" -r "run $script"
|
||||||
|
matlab -nosplash -r "run $script"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Use the function return code see if we succeeded
|
# Use the function return code see if we succeeded
|
||||||
get_easy_results "$PROJECT_SCANS_DIR" || return 1
|
scan_easy_results "$PROJECT_SCANS_DIR" || (err "No EASY results found in $PROJECT_SCANS_DIR"; return 1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -635,19 +623,17 @@ module ezview
|
|||||||
ezview() {
|
ezview() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
export PROJECT_SCANS_DIR PROJECT_DATE PROJECT_USER EZVIEW_DIR
|
export PROJECT_SCANS_DIR PROJECT_DATE PROJECT_USER EZVIEW_DIR
|
||||||
|
export EASY_RESULTS_DIR
|
||||||
|
|
||||||
EZVIEW_DIR="$APPS_DIR/matlab/ezview"
|
EZVIEW_DIR="$APPS_DIR/matlab/ezview"
|
||||||
script="$EZVIEW_DIR/EZviewGui.m"
|
script="$EZVIEW_DIR/EZviewGui.m"
|
||||||
|
|
||||||
|
# Try to load EASY output dir fromENV or easy module
|
||||||
|
# Then scan for EASY results
|
||||||
|
[[ -z $EASY_RESULTS_DIR ]] && choose_easy_results_dir
|
||||||
|
|
||||||
# Make EZview dirs
|
# Make EZview dirs
|
||||||
debug "mkdir -p $EZVIEW_DIR"
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
matlab -nosplash -r "run $script"
|
matlab -nosplash -r "run $script"
|
||||||
|
|
||||||
echo "$EZVIEW_DIR"
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -714,12 +700,7 @@ module qhtcp
|
|||||||
qhtcp() {
|
qhtcp() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
OUT_DIR="/mnt/data/out/qhtcp"
|
|
||||||
STUDIES_ARCHIVE_FILE="$OUT_DIR/StudiesDataArchive.txt"
|
|
||||||
QHTCP_PROJECT_DIR="$OUT_DIR/$PROJECT"
|
|
||||||
QHTCP_TEMPLATE_DIR="$TEMPLATES_DIR/qhtcp"
|
|
||||||
STUDY_TEMPLATE_DIR="$TEMPLATES_DIR/exp"
|
|
||||||
STUDY_INFO_FILE="$QHTCP_PROJECT_DIR/StudyInfo.csv"
|
|
||||||
|
|
||||||
if [[ -d $QHTCP_PROJECT_DIR ]]; then
|
if [[ -d $QHTCP_PROJECT_DIR ]]; then
|
||||||
echo "A project already exists at $QHTCP_PROJECT_DIR"
|
echo "A project already exists at $QHTCP_PROJECT_DIR"
|
||||||
@@ -790,27 +771,8 @@ qhtcp() {
|
|||||||
unset STUDY_DIR
|
unset STUDY_DIR
|
||||||
|
|
||||||
# Replacing ExpFrontend.m
|
# Replacing ExpFrontend.m
|
||||||
get_easy_results "$PROJECT_SCANS_DIR" || (err "No EASY results found in $PROJECT_SCANS_DIR"; return 1)
|
choose_easy_results_dir
|
||||||
|
|
||||||
# Set the right results directory
|
|
||||||
# TODO eventually we could run this on multiple results dirs simultaneously with some refactoring
|
|
||||||
if ((YES)) || [[ ${#EASY_RESULTS_DIRS[@]} -eq 1 ]]; then
|
|
||||||
# In automatic mode just choose the first OUT DIR in the list
|
|
||||||
EASY_RESULT_DIR="${EASY_RESULTS_DIRS[0]}" # TODO right now just choose the frist one
|
|
||||||
else
|
|
||||||
echo "Multiple EASY results dirs found in $PROJECT_SCANS_DIR"
|
|
||||||
echo "Here is a list: "
|
|
||||||
for (( i=0; i<${#EASY_RESULTS_DIRS[@]}; i++ )); do
|
|
||||||
printf "%d. %s\n" "$((i+1))" "${EASY_RESULTS_DIRS[i]}"
|
|
||||||
done
|
|
||||||
printf "%s\n" "${EASY_RESULTS_DIRS[@]}"
|
|
||||||
read -r -p "Enter the item number to select: " response
|
|
||||||
response=$(( response - 1 )) # bash arrays use zero indexing
|
|
||||||
EASY_RESULTS_DIR="${EASY_RESULTS_DIRS[$response]}"
|
|
||||||
fi
|
|
||||||
|
|
||||||
# TODO probably broken
|
|
||||||
EASY_RESULTS_FILES=("$EASY_RESULTS_DIR/"*"/PrintResults/!!"*)
|
|
||||||
# Create studies archive file if missing
|
# Create studies archive file if missing
|
||||||
if ! [[ -d $STUDIES_ARCHIVE_FILE ]]; then
|
if ! [[ -d $STUDIES_ARCHIVE_FILE ]]; then
|
||||||
header=(StudyDate tStudyName StudyPath ExpNum ExpDate ExpPath ResultFile)
|
header=(StudyDate tStudyName StudyPath ExpNum ExpDate ExpPath ResultFile)
|
||||||
@@ -823,7 +785,7 @@ qhtcp() {
|
|||||||
# Trying to match old ExpFrontend formatting
|
# Trying to match old ExpFrontend formatting
|
||||||
printf "%s\t" \
|
printf "%s\t" \
|
||||||
"${DATE//_/}" "$PROJECT" "$QHTCP_PROJECT_DIR" "Exp$s" \
|
"${DATE//_/}" "$PROJECT" "$QHTCP_PROJECT_DIR" "Exp$s" \
|
||||||
"$PROJECT_DATE" "$PROJECT_SCANS_DIR" "$EASY_RESULT_DIR" "${f##*/}" \
|
"$PROJECT_DATE" "$PROJECT_SCANS_DIR" "$EASY_RESULTS_DIR" "${f##*/}" \
|
||||||
>> "$STUDIES_ARCHIVE_FILE"
|
>> "$STUDIES_ARCHIVE_FILE"
|
||||||
done
|
done
|
||||||
done
|
done
|
||||||
@@ -1126,43 +1088,43 @@ r_gta_heatmaps() {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
submodule mat_exp_frontend
|
# submodule mat_exp_frontend
|
||||||
# @description Run the ExpFrontend.m program
|
# # @description Run the ExpFrontend.m program
|
||||||
# This submodule:
|
# # This submodule:
|
||||||
# * Pushes into the Study template directory (ExpTemplate)
|
# # * Pushes into the Study template directory (ExpTemplate)
|
||||||
# * Prompts the user to run ExpFrontend.m
|
# # * Prompts the user to run ExpFrontend.m
|
||||||
# * Pops out
|
# # * Pops out
|
||||||
# NOTES:
|
# # NOTES:
|
||||||
# * ExpFrontend.m should be or is being rewritten
|
# # * ExpFrontend.m should be or is being rewritten
|
||||||
mat_exp_frontend() {
|
# mat_exp_frontend() {
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
# debug "Running: ${FUNCNAME[0]}"
|
||||||
cat <<-EOF
|
# cat <<-EOF
|
||||||
ExpFrontend.m was made for recording into a spreadsheet
|
# ExpFrontend.m was made for recording into a spreadsheet
|
||||||
('StudiesDataArchive.txt') the date and files used (i.e., directory paths to the
|
# ('StudiesDataArchive.txt') the date and files used (i.e., directory paths to the
|
||||||
!!Results files used as input for Z-interaction script) for each multi-experiment study.
|
# !!Results files used as input for Z-interaction script) for each multi-experiment study.
|
||||||
|
|
||||||
Run the front end MATLAB programs in the correct order (e.g., run front end in "exp1"
|
# Run the front end MATLAB programs in the correct order (e.g., run front end in "exp1"
|
||||||
folder to call the !!Results file for the experiment you named as exp1 in the StudyInfo.csv file)
|
# folder to call the !!Results file for the experiment you named as exp1 in the StudyInfo.csv file)
|
||||||
The GTA and pairwise, TSHeatmaps, JoinInteractions and GTF Heatmap scripts use this table
|
# The GTA and pairwise, TSHeatmaps, JoinInteractions and GTF Heatmap scripts use this table
|
||||||
to label results and heatmaps in a meaningful way for the user and others.
|
# to label results and heatmaps in a meaningful way for the user and others.
|
||||||
The BackgroundSD and ZscoreJoinSD fields will be filled automatically according to user
|
# The BackgroundSD and ZscoreJoinSD fields will be filled automatically according to user
|
||||||
specifications, at a later step in the QHTCP study process.
|
# specifications, at a later step in the QHTCP study process.
|
||||||
|
|
||||||
COpen MATLAB and in the application navigate to each specific /Exp folder,
|
# COpen MATLAB and in the application navigate to each specific /Exp folder,
|
||||||
call and execute ExpFrontend.m by clicking the play icon.
|
# call and execute ExpFrontend.m by clicking the play icon.
|
||||||
Use the "Open file" function from within Matlab.
|
# Use the "Open file" function from within Matlab.
|
||||||
Do not double-click on the file from the directory.
|
# Do not double-click on the file from the directory.
|
||||||
When prompted, navigate to the ExpJobs folder and the PrintResults folder within the correct job folder.
|
# When prompted, navigate to the ExpJobs folder and the PrintResults folder within the correct job folder.
|
||||||
Repeat this for every Exp# folder depending on how many experiments are being performed.
|
# Repeat this for every Exp# folder depending on how many experiments are being performed.
|
||||||
The Exp# folder must correspond to the StudyInfo.csv created above.
|
# The Exp# folder must correspond to the StudyInfo.csv created above.
|
||||||
EOF
|
# EOF
|
||||||
|
|
||||||
script="ExpFrontend.m"
|
# script="ExpFrontend.m"
|
||||||
if ! ((YES)) &&
|
# if ! ((YES)) &&
|
||||||
ask "Start MATLAB to run $script? This requires a GUI."; then
|
# ask "Start MATLAB to run $script? This requires a GUI."; then
|
||||||
matlab -nosplash -r "$script"
|
# matlab -nosplash -r "$script"
|
||||||
fi
|
# fi
|
||||||
}
|
# }
|
||||||
|
|
||||||
|
|
||||||
submodule r_interactions
|
submodule r_interactions
|
||||||
@@ -1417,37 +1379,76 @@ get_studies() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
submodule get_easy_results # lol
|
submodule choose_easy_results_dir #
|
||||||
# @description Gets info about EASY output in the project's scans directory
|
# @description Chooses an EASY scans directory if the information is undefined
|
||||||
# TODO: Standardize EASY output, it's hard to understand
|
# TODO: Standardize EASY output, it's hard to understand
|
||||||
# @exitcode 0 if at least one results directory exists
|
# TODO eventually we could run this on multiple results dirs simultaneously with some refactoring
|
||||||
# @exitcode 1 if no results directories exist
|
# @exitcode 0 if successfully choose an EASY results dir
|
||||||
# @set EASY_RESULTS_DIRS array Globbed results files from PROJECT_SCANS_DIR/
|
# @set EASY_RESULTS_DIR string The working EASY output directory
|
||||||
# @set EASY_RESULTS_FILES array Globbed results files from PROJECT_SCANS_DIR/
|
choose_easy_results_dir() {
|
||||||
# @arg $1 string Project scans
|
|
||||||
get_easy_results() {
|
|
||||||
debug "Running: ${FUNCNAME[0]}"
|
debug "Running: ${FUNCNAME[0]}"
|
||||||
|
|
||||||
# Glob EASY output dirs
|
declare -g EASY_RESULTS_DIR EASY_OUT_DIR
|
||||||
shopt -s nullglob
|
|
||||||
EASY_RESULTS_DIRS=( "$1"/Results*/ ) # TODO this is probably broken
|
|
||||||
[[ ${#EASY_RESULTS_DIRS} -ge 1 ]] || (echo "Missing EASY output"; return 1)
|
|
||||||
shopt -u nullglob
|
|
||||||
|
|
||||||
# This section is mostly to provide some example globbing
|
EASY_OUT_DIR="$QHTCP_PROJECT_DIR/easy/"
|
||||||
declare -a EASY_RESULTS_ARRAY=()
|
|
||||||
for EASY_RESULTS_DIR in "${EASY_RESULTS_DIRS[@]}"; do
|
# Don't override env
|
||||||
[[ -d $EASY_RESULTS_DIR ]] && echo "Found EASY Results directory: $EASY_RESULTS_DIR"
|
if [[ -n $EASY_RESULTS_DIR && ! -d $EASY_RESULTS_DIR ]]; then
|
||||||
EASY_PRINT_RESULTS_DIR="$EASY_RESULTS_DIR/PrintResults"
|
mkdir -p "$EASY_RESULTS_DIR"
|
||||||
[[ -d $EASY_PRINT_RESULTS_DIR ]] && echo "Found EASY PrintResults directory: $EASY_PRINT_RESULTS_DIR"
|
return 0
|
||||||
EASY_PRINT_RESULTS_FILES=(
|
fi
|
||||||
"$EASY_PRINT_RESULTS_DIR/!!"*
|
|
||||||
"$EASY_PRINT_RESULTS_DIR"/NoGrowth_*.txt
|
local default_easy_results_dir="$EASY_OUT_DIR/$PROJECT"
|
||||||
"$EASY_PRINT_RESULTS_DIR"/GrowthOnly_*.txt
|
|
||||||
)
|
if [[ -n $PROJECT ]]; then
|
||||||
EASY_RESULTS_ARRAY+=("$EASY_RESULTS_DIR" "$EASY_PRINT_RESULTS_DIR" "${EASY_PRINT_RESULTS_FILES[@]}")
|
if [[ ! -d $default_easy_results_dir ]]; then
|
||||||
done
|
EASY_RESULTS_DIR="$default_easy_results_dir"
|
||||||
[[ ${#EASY_RESULTS_DIRS[@]} -gt 0 ]] # TODO may need to change this to something more specific
|
mkdir -p "$EASY_RESULTS_DIR"
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Always backup existing output
|
||||||
|
# This would happen if you ran the same experiment twice in one day, for instance
|
||||||
|
if [[ -d $default_easy_results_dir ]] ; then
|
||||||
|
backup_dir="$default_easy_results_dir"
|
||||||
|
while [[ -d $default_easy_results_dir ]]; do
|
||||||
|
count=1
|
||||||
|
backup_dir="$backup_dir.$((count++))"
|
||||||
|
done
|
||||||
|
echo "Backing up existing output from $default_easy_results_dir to $backup_dir"
|
||||||
|
debug "rsync -a $default_easy_results_dir $backup_dir"
|
||||||
|
rsync -a "$default_easy_results_dir" "$backup_dir" &&
|
||||||
|
EASY_RESULTS_DIR="$default_easy_results_dir"
|
||||||
|
fi
|
||||||
|
|
||||||
|
# echo "Hit enter to use the default EASY results directory: $default_easy_results_dir"
|
||||||
|
# if ! (( YES )); then
|
||||||
|
# read -r -p "Or enter a custom directory name, example: $PROJECT" dirname
|
||||||
|
# [[ -z $dirname ]] && EASY_RESULTS_DIR="$default_easy_results_dir" && return 0
|
||||||
|
# fi
|
||||||
|
# ((YES)) && return 0
|
||||||
|
# # Let's get a little fancy
|
||||||
|
# shopt -s nullglob
|
||||||
|
# declare -la easy_results_dirs=( "$easy_out_dir/"*/ )
|
||||||
|
# shopt -u nullglob
|
||||||
|
# # Sort the dirs
|
||||||
|
# mapfile -t easy_results_dirs < <(printf '%s\n' "${easy_results_dirs[@]}" | sort)
|
||||||
|
# last_index=$(( ${#easy_results_dirs} - 1 ))
|
||||||
|
# ((YES)) && EASY_RESULTS_DIR="${easy_results_dirs[$last_index]}" && return 0
|
||||||
|
# echo "Multiple EASY results dirs found in $PROJECT_SCANS_DIR"
|
||||||
|
# echo "Here is a list: "
|
||||||
|
# for i in "${!easy_results_dirs[@]}"; do
|
||||||
|
# printf "%d. %s\n" "$((i+1))" "${easy_results_dirs[i]}"
|
||||||
|
# done
|
||||||
|
# printf "%s\n" "${easy_results_dirs[@]}"
|
||||||
|
# last_index=$(( ${#easy_results_dirs} - 1 ))
|
||||||
|
# read -r -p "Enter the item number to select EASY results directory, default ($last_index): " response
|
||||||
|
# [[ -z $response ]] && response=$last_index
|
||||||
|
# response=$(( response - 1 )) # bash arrays use zero indexing
|
||||||
|
# EASY_RESULTS_DIR="${easy_results_dirs[$response]}"
|
||||||
|
# EASY_RESULTS_FILES=("$EASY_RESULTS_DIR/"*"/PrintResults/!!"*)
|
||||||
|
# [[ ${#easy_results_dirs[@]} -gt 0 ]]
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -1482,13 +1483,20 @@ main() {
|
|||||||
SCRIPT_DIR=$(dirname "$SCRIPT")
|
SCRIPT_DIR=$(dirname "$SCRIPT")
|
||||||
|
|
||||||
# Global directory variables
|
# Global directory variables
|
||||||
|
local out_heirarchy=("$OUT_DIR" "$SCRIPT_DIR/out" "/mnt/data/out")
|
||||||
|
for d in "${out_heirarchy[@]}"; do
|
||||||
|
if [[ -d $d ]]; then
|
||||||
|
debug "Using output directory: $d"
|
||||||
|
OUT_DIR="$d"
|
||||||
|
fi
|
||||||
|
done
|
||||||
TEMPLATES_DIR="$SCRIPT_DIR/templates"
|
TEMPLATES_DIR="$SCRIPT_DIR/templates"
|
||||||
APPS_DIR="$SCRIPT_DIR/apps"
|
APPS_DIR="$SCRIPT_DIR/apps"
|
||||||
DATE="$(date +%Y%m%d)" # change in EASYConsole.m to match
|
DATE="$(date +%Y%m%d)" # change in EASYConsole.m to match
|
||||||
SCANS_HEIRARCHY=("./scans" "/mnt/data/scans" "/mnt/data/ExpJobs" "./scans")
|
# scans_heirarchy=("./scans" "/mnt/data/scans" "/mnt/data/ExpJobs" "./scans")
|
||||||
SCANS_HEIRARCHY=("./scans" "/mnt/data/scans" "/mnt/data/ExpJobs" "./scans") # search for a scans dir in this order (and fall back to default)
|
local scans_heirarchy=( "$SCANS_DIR" "./scans" "/mnt/data/scans" "./scans") # TODO change back for production, avoid actual scan dirs during testing
|
||||||
# Find a scans directory
|
# Find a scans directory
|
||||||
[[ -z $SCANS_DIR ]] && for d in "${SCANS_HEIRARCHY[@]}"; do
|
[[ -z $SCANS_DIR ]] && for d in "${scans_heirarchy[@]}"; do
|
||||||
if [[ -d $d ]]; then
|
if [[ -d $d ]]; then
|
||||||
SCANS_DIR="$d"
|
SCANS_DIR="$d"
|
||||||
fi
|
fi
|
||||||
@@ -1556,10 +1564,16 @@ main() {
|
|||||||
|
|
||||||
# Loop over projects
|
# Loop over projects
|
||||||
for PROJECT in "${PROJECTS[@]}"; do
|
for PROJECT in "${PROJECTS[@]}"; do
|
||||||
|
declare -g PROJECT
|
||||||
PROJECT_SCANS_DIR="$SCANS/$PROJECT"
|
PROJECT_SCANS_DIR="$SCANS/$PROJECT"
|
||||||
PROJECT_DATE="${PROJECT%"${PROJECT#????????}"}" # e.g. 20240723
|
PROJECT_DATE="${PROJECT%"${PROJECT#????????}"}" # e.g. 20240723
|
||||||
PROJECT_SUFFIX="${PROJECT#????????_*_}"
|
PROJECT_SUFFIX="${PROJECT#????????_*_}"
|
||||||
PROJECT_USER="${PROJECT#????????_}"; PROJECT_USER="${PROJECT_USER%%_*}"
|
PROJECT_USER="${PROJECT#????????_}"; PROJECT_USER="${PROJECT_USER%%_*}"
|
||||||
|
STUDIES_ARCHIVE_FILE="$OUT_DIR/StudiesDataArchive.txt"
|
||||||
|
QHTCP_PROJECT_DIR="$OUT_DIR/$PROJECT"
|
||||||
|
QHTCP_TEMPLATE_DIR="$TEMPLATES_DIR/qhtcp"
|
||||||
|
STUDY_TEMPLATE_DIR="$TEMPLATES_DIR/exp"
|
||||||
|
STUDY_INFO_FILE="$QHTCP_PROJECT_DIR/StudyInfo.csv"
|
||||||
# Run selected modules
|
# Run selected modules
|
||||||
for m in "${MODULES[@]}"; do
|
for m in "${MODULES[@]}"; do
|
||||||
ask "Run $m?" && "$m"
|
ask "Run $m?" && "$m"
|
||||||
|
|||||||
Reference in New Issue
Block a user