241 lines
9.0 KiB
Matlab
Executable File
241 lines
9.0 KiB
Matlab
Executable File
%Quickview of Exp Images one from each folder at selected timept
|
|
function QkVexps %QkviewImages
|
|
w=pwd;
|
|
[Selfile, pathname]=uigetfile({'*.bmp';'*.tif';'*.*'},'Select timepoint file','MultiSelect','off');
|
|
cd(pathname)
|
|
flist=dir
|
|
cd ..
|
|
ExpFdr=pwd
|
|
cd ..
|
|
EstudyDir=pwd
|
|
ExpList= dir;
|
|
cd(w)
|
|
day=[];
|
|
Dpos=[];
|
|
%Determine if Exps grouped into Day folders
|
|
|
|
studyNum=1;
|
|
dayIndx=0;
|
|
studyIndx=0;
|
|
|
|
for i=1:size(ExpList,1)
|
|
if ~isequal(ExpList(i).name,'.DS_Store') %|| ~strfind(ExpList(i),'DS')
|
|
Dpos=max(strfind(ExpList(i).name,'D'));
|
|
|
|
|
|
if ~isempty(Dpos)
|
|
tmpExpName=ExpList(i).name;
|
|
if isempty(day)
|
|
if isnumeric(str2double(tmpExpName((Dpos+1):end)))
|
|
dayIndx=dayIndx+1;
|
|
day(dayIndx)= str2double(tmpExpName((Dpos+1):end));
|
|
daytx{dayIndx}= strcat('D',(tmpExpName((Dpos+1):end)));
|
|
studyIndx=studyIndx+1;
|
|
dayLst(dayIndx).study{studyIndx}= tmpExpName;
|
|
end
|
|
elseif sum(day==(str2double(tmpExpName((Dpos+1):end))))>0 %capture the experimentNames into studyLst sets
|
|
studyIndx=studyIndx+1;
|
|
dayLst(dayIndx).study{studyIndx}= tmpExpName;
|
|
|
|
elseif sum(day==(str2double(tmpExpName((Dpos+1):end))))==0 %capture the daynumber as a number
|
|
dayIndx=dayIndx+1;
|
|
day(dayIndx)= str2num(tmpExpName((Dpos+1):end)); %if the daynumber is unique store in day vector
|
|
daytx{dayIndx}= strcat('D',(tmpExpName((Dpos+1):end)));
|
|
studyIndx=1;
|
|
dayLst(dayIndx).study{studyIndx}= tmpExpName;
|
|
|
|
|
|
end %if isempty(day)
|
|
end %if ~isempty(Dpos)
|
|
end %if ~isequal(ExpList(i),'.DS_Store')
|
|
end %for i=1:size(ExpList,1)
|
|
nonstdDdirFlg=0
|
|
if length(day)==1
|
|
nonstdDirFlg=1;
|
|
else
|
|
nonstdDirFlg=0;
|
|
end
|
|
if nonstdDirFlg==0
|
|
cd(EstudyDir)
|
|
%for i=1:size(ExpList,1)
|
|
for i=1:length(dayLst)
|
|
for j=1:length(dayLst(i).study)
|
|
curDay= daytx(i)
|
|
curExp= char(dayLst(i).study(j))
|
|
curExpNumName= strcat('StudyExp',num2str(j));
|
|
cd (fullfile(EstudyDir,curExp))
|
|
curExpDir=pwd;
|
|
|
|
plateDir=dir;
|
|
for k=1:length(plateDir)
|
|
if ~isequal(plateDir(k).name,'.DS_Store') %if .DS_Store Apple indiosyncratic fix
|
|
if isnumeric(str2double(plateDir(k).name)) && ~isnan(str2double(plateDir(k).name)),
|
|
curPlate= plateDir(k).name;
|
|
|
|
cd (fullfile(curExpDir,curPlate))
|
|
curPlateDir=pwd;
|
|
%end
|
|
try
|
|
dotPos= strfind(Selfile,'.')
|
|
tptx= (Selfile(1:dotPos-1));
|
|
dstFileName= char(strcat('T',tptx,curDay,'_',curExp,'P',curPlate,'_',Selfile))
|
|
curPlateName=strcat('Plate',curPlate)
|
|
mkdir(fullfile(EstudyDir,'QkVstudySets',curExpNumName,curPlateName))
|
|
copyfile(fullfile(curPlateDir,Selfile),fullfile(EstudyDir,'QkVstudySets',curExpNumName,curPlateName,dstFileName))
|
|
|
|
catch
|
|
end
|
|
end %if isnumeric(str2double(plateDirNonstd(k).name)),
|
|
|
|
end %if .DS_Store Apple indiosyncratic fix
|
|
end %for k=1:length(plateDir)
|
|
end %j=1:length(dayLst(i).study) for i=1:length(dayDirLst)
|
|
end %i=1:length(dayLst) for i=1:size(ExpList,1)
|
|
|
|
end %if nonstdDirFlg==0
|
|
|
|
%****************************************************************************
|
|
% Begin nonstandard Directory structure code
|
|
%****************************************************************************
|
|
if nonstdDirFlg==1
|
|
cd(EstudyDir)
|
|
cd ..
|
|
studyDirNonstd=pwd;
|
|
%mkdir(fullfile(studyDirNonstd,'QuikView'))
|
|
dayDirLst=dir;
|
|
for i=1:length(dayDirLst)
|
|
if ~isequal(dayDirLst(i).name,'.DS_Store') %if .DS_Store Apple indiosyncratic fix
|
|
if (strfind(dayDirLst(i).name,'Day')),
|
|
curDay= dayDirLst(i).name;
|
|
cd (fullfile(studyDirNonstd,curDay))
|
|
%curStudyDaynonStd=pwd
|
|
expDirNonstd=dir
|
|
expNum=0;
|
|
for j=1:length(expDirNonstd)
|
|
if ~isequal(expDirNonstd(j).name,'.DS_Store') %if .DS_Store Apple indiosyncratic fix
|
|
if (strfind(expDirNonstd(j).name,'D')),
|
|
curExp= expDirNonstd(j).name;
|
|
expNum=expNum+1;
|
|
curExpNumName= strcat('StudyExp',num2str(expNum));
|
|
cd (fullfile(studyDirNonstd,curDay,curExp))
|
|
curExpDir=pwd;
|
|
%end
|
|
plateDirNonstd=dir;
|
|
for k=1:length(plateDirNonstd)
|
|
if ~isequal(plateDirNonstd(k).name,'.DS_Store') %if .DS_Store Apple indiosyncratic fix
|
|
if isnumeric(str2double(plateDirNonstd(k).name)) && ~isnan(str2double(plateDirNonstd(k).name)),
|
|
curPlate= plateDirNonstd(k).name;
|
|
|
|
cd (fullfile(curExpDir,curPlate))
|
|
curPlateDir=pwd;
|
|
|
|
try
|
|
dotPos= strfind(Selfile,'.')
|
|
tptx= (Selfile(1:dotPos-1));
|
|
dstFileName= strcat('T',tptx,curDay,'_',curExp,'P',curPlate,'_',Selfile)
|
|
curPlateName=strcat('Plate',curPlate)
|
|
mkdir(fullfile(studyDirNonstd,'QkVstudySets',curExpNumName,curPlateName))
|
|
copyfile(fullfile(curPlateDir,Selfile),fullfile(studyDirNonstd,'QkVstudySets',curExpNumName,curPlateName,dstFileName))
|
|
|
|
catch
|
|
end
|
|
|
|
end %if isnumeric(str2double(plateDirNonstd(k).name)),
|
|
end %if (k) .DS_Store Apple indiosyncratic fix
|
|
end %for k=1:length(plateDirNonstd)
|
|
end%if (strfind(expDirNonstd(j).name,'D'))
|
|
end %if (j).DS_Store Apple indiosyncratic fix
|
|
end %for j=1:length(expDirNonstd)
|
|
end %if (strfind(dayDirLst(i).name,'Day')),
|
|
end %if (i).DS_Store Apple indiosyncratic fix
|
|
end %for i=1:length(dayDirLst)
|
|
|
|
end %if nonstdFlg
|
|
|
|
|
|
|
|
cd(w)
|
|
|
|
end
|
|
|
|
|
|
|
|
%{
|
|
nonstdDdirFlg=0
|
|
if length(day)==1
|
|
nonstdDirFlg=1;
|
|
%mkdir(fullfile(ExpFdr,'QkVstudySets'))
|
|
%Experiments are grouped together in subfolders by the day
|
|
%What if experiment are run on approximately the same day
|
|
%but differ by say a day or two???
|
|
|
|
else
|
|
nonstdDirFlg=0;
|
|
|
|
%Experiments are all together in the standard way
|
|
%What if experiment are run on approximately the same day
|
|
%but differ by say a day or two???
|
|
%The user will have to label experiments the same which are
|
|
%to be grouped together even if not on the same day.
|
|
|
|
end
|
|
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
cd(w)
|
|
m=1;
|
|
|
|
for i=1:size(flist,1)
|
|
if isequal(Selfile,flist(i).name)
|
|
fnum=m
|
|
break
|
|
end
|
|
m=m+1
|
|
end
|
|
|
|
%Select Image folders ++++++++++++++++++++++++
|
|
d = dir(ExpFdr);
|
|
Scname={};
|
|
n=1;
|
|
for i=1:size(d,1)
|
|
if ~isempty(str2num(d(i).name))...
|
|
||~isempty(strfind(d(i).name,'Scan'))
|
|
Scname{n}=d(i).name
|
|
n=n+1
|
|
end
|
|
end
|
|
Srtnum=sort(str2double(Scname))
|
|
clear Srtname
|
|
for i=1:length(Srtnum)
|
|
Srtname{i}=num2str(Srtnum(i));
|
|
end
|
|
%str = {Scname};
|
|
[s,v] = listdlg('PromptString','Select a file:',...
|
|
'SelectionMode','multiple',...
|
|
'ListString',Srtname)
|
|
%*********************************************************************
|
|
%+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
|
|
%++++++++++++++++++++++++++++++
|
|
%Copy selected files to \QuikView Dir
|
|
mkdir(fullfile(ExpFdr,'QuikView'))
|
|
for j=1:size(s,2)
|
|
srcDir= fullfile(ExpFdr,num2str(s(j)))
|
|
%if Scan dir then must do something else to select '002' etc.
|
|
try
|
|
dstFileName= strcat(num2str(s(j)),'_',Selfile)
|
|
copyfile(fullfile(srcDir,Selfile),fullfile(ExpFdr,'QuikView',dstFileName))
|
|
|
|
catch
|
|
sFileLst= dir(srcDir)
|
|
selNumFile=sFileLst(fnum).name
|
|
dstFileName= strcat(num2str(s(j)),'_',selNumFile)
|
|
copyfile(fullfile(srcDir,selNumFile),fullfile(ExpFdr,'QuikView',dstFileName))
|
|
end
|
|
|
|
end
|
|
|
|
cd(w)
|
|
|
|
end
|
|
%}
|