1
0
Dateien
hartman-server/workflow/templates/easy/DMPexcel2mat.m
2024-07-25 13:12:19 -04:00

213 Zeilen
7.1 KiB
Matlab
Ausführbare Datei

%% CALLED BY EASYconsole.m %%
w=pwd
numOfMPs=0;
%GUI input for selecting a MasterPlate Excel file
questdlg('\fontsize{20} Select Master Plate File','File Selection','OK', struct('Default','OK','Interpreter','tex'))
[Scanfiles, pathname]=uigetfile('*.*','MultiSelect','off');
if ispc
MPdir= fullfile(pathname,'\');
else
MPdir=fullfile(pathname,'/');
end
infile= Scanfiles(1,:);
cd(MPdir)
%fid=fopen(infile)%('exp23PrintTimes.xls'); % textread puts date and time sequentially into vector
if ispc
[num, txt, raw] = xlsread(infile); %,'Yor1HitsMPsetFinal');
fields= {txt(2,1:15)}; %or 1:17 for later but dont wish to exceed and cause error ? if used
else
clear MPtbl
opts = detectImportOptions(infile);
MPtbl = readtable(infile,opts);
MPtbl= readtable(infile);
fields= {opts.VariableNames}; %? if used anywhere although 'saved' to MPDMmat
MPcell= readcell(infile);
end
cd(w)
numb=0;
clear MP;
try
if ispc
excLnNum=3;
while (isequal(txt{excLnNum,1},'###'))
numb=numb+1;
MP(numb).head = {raw(excLnNum,2:6)};
MP(numb).recNum = {raw((excLnNum+1):(excLnNum+384),1)};
MP(numb).orf = {raw((excLnNum+1):(excLnNum+384),2)};
MP(numb).strain = {raw((excLnNum+1):(excLnNum+384),3)};
MP(numb).genename= {raw((excLnNum+1):(excLnNum+384),12)};
MP(numb).drug= {raw((excLnNum+1):(excLnNum+384),8)};
MP(numb).media= {raw((excLnNum+1):(excLnNum+384),7)};
if size(raw,2)>15
MP(numb).orfRep= {raw((excLnNum+1):(excLnNum+384),16)}; %added 12_1005 to specify replicates Orfs in MP
MP(numb).specifics= {raw((excLnNum+1):(excLnNum+384),17)}; %added 12_1008 to specify replicates Specific details in MP
else
MP(numb).orfRep= ' ';
MP(numb).specifics= ' ';
end
% Future MP field
% if size(raw,2)>17
% MP(numb).specifics2= {raw((excLnNum+1):(excLnNum+384),18)}; %added 12_1008 to specify strain Bkground in MP
% else
% MP(numb).specifics2=' ';
% end
excLnNum=excLnNum+385;
msg=strcat('NumberOfMP = ',num2str(numb), ' lastLineNo. = ',num2str(excLnNum));
end
else
excLnNum=1;
while (isequal(MPcell{(excLnNum+2),1},'###'))
numb=numb+1;
MP(numb).head={MPtbl(excLnNum,2:6)};
MP(numb).head{1}=table2cell(MP(numb).head{1});
MP(numb).recNum={MPtbl((excLnNum+1):(excLnNum+384),1)};
MP(numb).recNum{1}=table2cell(MP(numb).recNum{1});
MP(numb).orf={MPtbl((excLnNum+1):(excLnNum+384),2)};
MP(numb).orf{1}=table2cell(MP(numb).orf{1});
MP(numb).strain={MPtbl((excLnNum+1):(excLnNum+384),3)};
MP(numb).strain{1}=table2cell(MP(numb).strain{1});
MP(numb).genename={MPtbl((excLnNum+1):(excLnNum+384),12)};
MP(numb).genename{1}= table2cell(MP(numb).genename{1});
MP(numb).media= {MPtbl((excLnNum+1):(excLnNum+384),7)};
MP(numb).media{1}= table2cell(MP(numb).media{1});
if size(MPtbl,2)>15
MP(numb).orfRep= {MPtbl((excLnNum+1):(excLnNum+384),16)}; %added 12_1005 to specify replicates Orfs in MP
MP(numb).orfRep{1}=table2cell(MP(numb).orfRep{1});
MP(numb).specifics={MPtbl((excLnNum+1):(excLnNum+384),17)}; %added 12_1008 to specify replicates Specific details in MP
MP(numb).specifics{1}=table2cell(MP(numb).specifics{1});
else
MP(numb).orfRep= ' ';
MP(numb).specifics= ' ';
end
excLnNum=excLnNum+385;
msg=strcat('NumberOfMP = ',num2str(numb), 'lastLineNo. = ',num2str(excLnNum))
end
end
catch ME
h = msgbox(msg,'Check Number of Master Plates and Excel Lines')
uiwait(h);
end %end for try MP excel sheet input
%DMupload
%Drug and Media Plate setup Upload from Excel
cd(MPdir);
excLnNum=1;
numOfDrugs=0;
numOfMedias=0;
%GUI input for selecting a MasterPlate Excel file
questdlg('\fontsize{20} Select DrugMedia File','File Selection','OK', struct('Default','OK','Interpreter','tex'));
[Scanfiles, pathname]=uigetfile('*.*', 'MultiSelect','off');
DMdir=fullfile(pathname);
clear infile;
infile= Scanfiles(1,:);
cd(DMdir)
if ispc
[num, txt, raw] = xlsread(infile); %,'Yor1HitsMPsetFinal');
fields= {txt(2,1:5)};
Linked= num(1,1);
else
opts = detectImportOptions(infile);
DMtbl= readtable(infile,opts);
fields= opts.VariableOptions;
Linked= DMtbl{1,1};
DMcell= readcell(infile);
end
cd(w)
numb=0;
if isequal(Linked,1) %Drugs and Media are linked 1 to 1; else they are combinatorial
clear DM;
%try
excLnNum=2;
if ispc
while (~isequal(txt{excLnNum,2},'###'))
numb=numb+1;
DM.drug(numb) = {raw(excLnNum,2)};
DM.conc(numb) = {raw(excLnNum,3)};
DM.media(numb) = {raw(excLnNum,4)};
DM.mod1(numb) = {raw(excLnNum,5)};
DM.conc1(numb) = {raw(excLnNum,6)};
DM.mod2(numb) = {raw(excLnNum,7)};
DM.conc2(numb) = {raw(excLnNum,8)};
excLnNum=excLnNum+1;
msg=strcat('NumberOf1:1DrugMediaPlates = ',num2str(numb), ' lastLineNo. = ',num2str(excLnNum))
end
else
clear DM
excLnNum=1;
while (~isequal(DMcell{excLnNum+1,2},'###'))
numb=numb+1;
DM.drug(numb) = {DMtbl(excLnNum,2)};
DM.drug(numb)= table2cell(DM.drug{numb});
DM.conc(numb) = {DMtbl(excLnNum,3)};
DM.conc(numb)= table2cell(DM.conc{numb});
DM.media(numb) = {DMtbl(excLnNum,4)};
DM.media(numb)= table2cell(DM.media{numb});
DM.mod1(numb) = {DMtbl(excLnNum,5)};
DM.mod1(numb)= table2cell(DM.mod1{numb});
DM.conc1(numb) = {DMtbl(excLnNum,6)};
DM.conc1(numb)= table2cell(DM.conc1{numb});
DM.mod2(numb) = {DMtbl(excLnNum,7)};
DM.mod2(numb)= table2cell(DM.mod2{numb});
DM.conc2(numb) = {DMtbl(excLnNum,8)};
DM.conc2(numb)= table2cell(DM.conc2{numb});
excLnNum=excLnNum+1;
msg=strcat('NumberOf1:1DrugMediaPlates = ',num2str(numb), ' lastLineNo. = ',num2str(excLnNum))
end
end
end
%Legacy contengency -Not ever used!!
if isequal(Linked,0) %0 indicates Drugs and Media are combinatorial
clear DM;
excLnNum=2;
drgCnt=0;
medCnt=0;
if ispc
while (~isequal(txt{excLnNum,2},'###'))
drgCnt=drgCnt+1;
DM.drug(drgCnt) = {raw(excLnNum,2)};
DM.conc(drgCnt) = {raw(excLnNum,3)};
excLnNum=excLnNum+1;
end
while (~isequal(txt{excLnNum,4},'###'))
medCnt=medCnt+1;
DM.media(medCnt) = {raw(excLnNum,4)};
excLnNum=excLnNum+1;
end
else %else if not PC (Then linux or other)
excLnNum=1;
while (~isequal(DMcell{excLnNum+1,2},'###'))
drgCnt=drgCnt+1;
DM.drug(drgCnt) = {DMtbl(excLnNum,2)};
DM.conc(drgCnt) = {DMtbl(excLnNum,3)};
excLnNum=excLnNum+1;
end
while (~isequal(DMcel{excLnNum+1,4},'###'))
medCnt=medCnt+1;
DM.media(medCnt) = {DMtbl(excLnNum,4)};
excLnNum=excLnNum+1;
end
end
msg=strcat('NumberOfDrugs = ',num2str(drgCnt), ' NumberOfMedias = ',num2str(medCnt) )
end
save (fullfile(MPdir,'MPDMmat'), 'fields','MP','DM','Linked');
cd(w)
msgbox(['Drug-Media-MasterPlate Annotation File Generation Complete'])