EASYconsole2.m reformat

This commit is contained in:
2024-07-23 13:03:35 -04:00
parent 8a171a348c
commit cbc40c3cac

View File

@@ -1,24 +1,4 @@
%% MAIN WORKING FUNCTION: EASYconsole.m %% % Launch the MATLAB EASY console
%This is a 2023a Expoorted App so that it can be edited in the unfortunate
%new Matlab versions. Created by using the Matlab porting utility in 2023.
% EASYconsole is a function designed to have a variable number of inputs and
% outputs
% These were defined globally in the parent script
% global ExpOutmat
% global ExpPath
% global fhconsole
% global resDir
% global wCodeDir
% global ImParMat
% global openExpfile
% global openExppath
% global newExpfile
% global newExppath
% global SWnewExp
% global matDir
% global scan
function varargout = EASYconsole(varargin) function varargout = EASYconsole(varargin)
% initialize global variables for function EASYconsole % initialize global variables for function EASYconsole
global ExpOutmat global ExpOutmat
@@ -103,28 +83,29 @@ function EASYconsole_OpeningFcn(hObject, ~, handles, varargin)
set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.') set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.')
end end
end end
%% EASYconsole OUTPUT FUNCTION %% %% EASYconsole OUTPUT FUNCTION %%
% Outputs from this function are returned to the command line. % Outputs from this function are returned to the command line.
function varargout = EASYconsole_OutputFcn(~, ~, handles)
% varargout--cell array for returning output args (see VARARGOUT); % varargout--cell array for returning output args (see VARARGOUT);
% hObject--handle to figure % hObject--handle to figure
% eventdata reserved - to be defined in a future version of MATLAB % eventdata reserved - to be defined in a future version of MATLAB
% handles--structure with handles and user data (see GUIDATA) % handles--structure with handles and user data (see GUIDATA)
function varargout = EASYconsole_OutputFcn(~, ~, handles)
% Get default command line output from handles structure % Get default command line output from handles structure
varargout{1} = handles.output; varargout{1} = handles.output;
end end
%% CONSOLE BUTTON INTERFACES %% %% CONSOLE BUTTON INTERFACES %%
% File Button Interface % File Button Interface
function FileMenu_Callback(~, ~, ~) function FileMenu_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir)
end end
% Load Experiment Button Interface % Load Experiment Button Interface
function LoadExp_Callback(~, ~, ~) function LoadExp_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir)
end end
% New Experiment Button Interface % New Experiment Button Interface
function NewExpDat_Callback(~, ~, ~) function NewExpDat_Callback(~, ~, ~)
global newExpfile global newExpfile
@@ -138,47 +119,13 @@ function NewExpDat_Callback(~, ~, ~)
global fhconsole global fhconsole
global scan global scan
%% RESULTS DIRECTORY CREATION %%
try
% put all users on same working directory % put all users on same working directory
cd(wCodeDir) returnHome
wcode=pwd;
if ispc % Create a new experiment
try try
% first attempt to begin search at current working directory questdlg('\fontsize{20} NAME the file and NAVIGATE to the directory with the image folders.','File Creation','OK', struct('Default','OK','Interpreter','tex'));
cd(fullfile('C:\')); [newExpfile,newExppath] = uiputfile(' .mat');
catch
% if first attempt fails, throw message box and begin the search at the PC's C drive
msgbox('Failure to find selected default Directory so starting Load search at the C Drive .');
%cd(fullfile('C:\'));
wcode
end
end
if isunix
try
name = getenv('USER');
if isequal(name,'jwrodger')
cd('/mnt/data/ExpJobs')
else
%could provide other contingency options here if desireable for other users
%if fails, just go to EASY code folder per JH
cd(wcode) %JH has argued strongly to send user to code directory
end
catch
msgbox('Failure to find selected default Directory so start Load search at root.');
cd(fullfile('/'));
end
end
if ismac
cd(wcode) %JH has argued strongly to send user to code directory
end
% CREATE NEW EXPERIMENT %
questdlg('\fontsize{20} NAME the file and NAVIGATE to the directory with the image folders.','File Creation','OK', struct('Default','OK','Interpreter','tex'));
[newExpfile,newExppath] = uiputfile(' .mat');
SWnewExp=1; SWnewExp=1;
cd (wcode) cd (wcode)
newExpfilePref= strrep(newExpfile,'.mat',''); newExpfilePref= strrep(newExpfile,'.mat','');
@@ -209,482 +156,295 @@ questdlg('\fontsize{20} NAME the file and NAVIGATE to the directory with the ima
scanMax= max(str2double(sl)); scanMax= max(str2double(sl));
clear scan; clear scan;
scan(scanMax)= struct(); %[]; %changed for parfor global 20_0118 scan(scanMax)= struct(); %[]; %changed for parfor global 20_0118
%*************************************************************************
save(ExpOutmat,'scan') save(ExpOutmat,'scan')
% create 'PrintResults' file % create 'PrintResults' file
if ~exist(fullfile(ExpPath,resDirName,'PrintResults')) if ~exist(fullfile(ExpPath,resDirName,'PrintResults'))
mkdir(fullfile(ExpPath,resDirName,'PrintResults')); mkdir(fullfile(ExpPath,resDirName,'PrintResults'));
end end
% copy 'figs' file and place it in ExpPath Directory % copy 'figs' file and place it in ExpPath Directory
if ~exist(fullfile(ExpPath,resDirName,'figs')) if ~exist(fullfile(ExpPath,resDirName,'figs'))
copyfile((fullfile(wCodeDir,'figs')), (fullfile(ExpPath,resDirName,'figs'))) copyfile((fullfile(wCodeDir,'figs')), (fullfile(ExpPath,resDirName,'figs')))
end end
% create 'CFfigs' file % create 'CFfigs' file
if ~exist(fullfile(ExpPath,resDirName,'CFfigs')) if ~exist(fullfile(ExpPath,resDirName,'CFfigs'))
mkdir(fullfile(ExpPath,resDirName,'CFfigs')); mkdir(fullfile(ExpPath,resDirName,'CFfigs'));
end end
% copy 'PTmats' file and place it in ExpPath Directory % copy 'PTmats' file and place it in ExpPath Directory
if ~exist(fullfile(ExpPath,resDirName,'PTmats')) if ~exist(fullfile(ExpPath,resDirName,'PTmats'))
copyfile((fullfile(wCodeDir,'PTmats')), (fullfile(ExpPath,resDirName,'PTmats'))) copyfile((fullfile(wCodeDir,'PTmats')), (fullfile(ExpPath,resDirName,'PTmats')))
end end
% create 'Fotos' file % create 'Fotos' file
if ~exist(fullfile(ExpPath,resDirName,'Fotos')) if ~exist(fullfile(ExpPath,resDirName,'Fotos'))
mkdir(fullfile(ExpPath,resDirName,'Fotos')); mkdir(fullfile(ExpPath,resDirName,'Fotos'));
clear sbdg % reduce possible retention of a previous job sdbg clear sbdg % reduce possible retention of a previous job sdbg
sbdg= cell(1,scanMax); sbdg= cell(1,scanMax);
save((fullfile(resDir,'Fotos','Nbdg')),'sbdg'); save((fullfile(resDir,'Fotos','Nbdg')),'sbdg');
end end
% create backup 'Fotos' file % create backup 'Fotos' file
if ~exist(fullfile(ExpPath,resDirName,'Fotos','BkUp')) if ~exist(fullfile(ExpPath,resDirName,'Fotos','BkUp'))
mkdir(fullfile(ExpPath,resDirName,'Fotos','BkUp')); mkdir(fullfile(ExpPath,resDirName,'Fotos','BkUp'));
end end
catch ME catch ME
cd(wCodeDir) returnHome
disp('Error Creating a New Experiment. Loc: EASYconsole.m Lines 106-197') disp('Error Creating a New Experiment')
end end
% set the title for fhconsole depending on existence % set the title for fhconsole depending on existence
if exist('resDir','var')&&~isempty(resDir) if exist('resDir','var')&&~isempty(resDir)
set(fhconsole,'Name',strcat('EASYconsole- ',char(resDir))) set(fhconsole,'Name',strcat('EASYconsole- ',char(resDir)))
else
set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.')
end
end
%% LOAD A PREVIOUS EXPERIMENT %%
%*******LOAD Experiment Analysis directory/file structure
function LoadDatFile_Callback(~, ~, ~)
global openExpfile
global openExppath
global SWnewExp
global ExpOutmat
global ExpPath
global matDir
global resDir
global wCodeDir
global fhconsole
global ImParMat
try
%cd(wCodeDir)
%wcode=pwd;
%cd ..
%cd(wcode)
% put all users on same working directory
cd(wCodeDir)
wcode=pwd;
if ispc
try
% first attempt to begin search at current working directory
cd(fullfile('C:\'));
catch
% if first attempt fails, throw message box and begin the search at the PC's C drive
msgbox('Failure to find selected default Directory so starting Load search at the C Drive .');
%cd(fullfile('C:\'));
wcode
end
end
if isunix
try
name = getenv('USER');
if isequal(name,'jwrodger')
cd('/mnt/data/ExpJobs')
else else
%could provide other contingency options here if desireable for other users set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.')
%if fails, just go to EASY code folder per JH
cd(wcode) %JH has argued strongly to send user to code directory
end end
end
catch
msgbox('Failure to find selected default Directory so start Load search at root.');
cd(fullfile('/'));
end
end
if ismac
cd(wcode) %JH has argued strongly to send user to code directory
end
%****************End
%Navigation******************************************
questdlg('\fontsize{20} Load file from ExpJobs/YourJob/YourResults/matResults','File Creation','OK', struct('Default','OK','Interpreter','tex'));
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off');
SWnewExp=0;
ExpOutmat= fullfile(openExppath,openExpfile);
load(ExpOutmat);
cd(openExppath)
cd ..;
resDir=pwd;
cd ..;
ExpPath=pwd;
cd (wcode)
ExpPath= fullfile(ExpPath);
% Load a previous experiment
function LoadDatFile_Callback(~, ~, ~)
global openExpfile
global openExppath
global SWnewExp
global ExpOutmat
global ExpPath
global matDir
global resDir
global wCodeDir
global fhconsole
global ImParMat
if isfolder(fullfile(openExppath, '..','..','1')) %If Inovation Vrobot Then returnHome
% TODO this entire try block needs work
try
% TODO this section is highly questionable
questdlg('\fontsize{20} Load file from ExpJobs/YourJob/YourResults/matResults','File Creation','OK', struct('Default','OK','Interpreter','tex'));
[openExpfile,openExppath] = uigetfile('.mat','Open Experiment folder and data storage .mat file name','MultiSelect','off');
SWnewExp=0;
ExpOutmat= fullfile(openExppath,openExpfile);
load(ExpOutmat);
cd(openExppath)
cd ..;
resDir=pwd;
cd ..;
ExpPath=pwd;
cd (wcode)
ExpPath= fullfile(ExpPath);
if isfolder(fullfile(openExppath, '..','..','1')) %If Inovation Vrobot Then
if exist(fullfile(resDir,'PTmats','NImParameters.mat')) if exist(fullfile(resDir,'PTmats','NImParameters.mat'))
load(fullfile(resDir,'PTmats','NImParameters.mat')); load(fullfile(resDir,'PTmats','NImParameters.mat'));
else else
curDir=pwd; curDir=pwd;
cd(wCodeDir) returnHome
load NImParameters.mat load NImParameters.mat
cd(curDir) cd(curDir)
end end
else %If Epson 10Plate Scans Then> else %If Epson 10Plate Scans Then>
if exist(fullfile(resDir,'PTmats','ImParameters.mat')) if exist(fullfile(resDir,'PTmats','ImParameters.mat'))
load(fullfile(resDir,'PTmats','ImParameters.mat')); load(fullfile(resDir,'PTmats','ImParameters.mat'));
else else
curDir=pwd; curDir=pwd;
cd(wCodeDir) returnHome
load ImParameters.mat load ImParameters.mat
cd(curDir) cd(curDir)
end end
end end
matDir= fullfile(openExppath,'\'); matDir= fullfile(openExppath,'\');
mkdir(fullfile(matDir,'BkUp')); mkdir(fullfile(matDir,'BkUp'));
% create supporting files % create supporting files
if ~exist(fullfile(resDir,'PrintResults')) if ~exist(fullfile(resDir,'PrintResults'))
mkdir(fullfile(resDir,'PrintResults')); mkdir(fullfile(resDir,'PrintResults'));
end end
if ~exist(fullfile(resDir,'figs')) if ~exist(fullfile(resDir,'figs'))
mkdir(fullfile(resDir,'figs')); mkdir(fullfile(resDir,'figs'));
end end
if ~exist(fullfile(resDir,'CFfigs')) if ~exist(fullfile(resDir,'CFfigs'))
mkdir(fullfile(resDir,'CFfigs')); mkdir(fullfile(resDir,'CFfigs'));
end end
if ~exist(fullfile(resDir,'PTmats')) if ~exist(fullfile(resDir,'PTmats'))
mkdir(fullfile(resDir,'PTmats')); mkdir(fullfile(resDir,'PTmats'));
end end
if ~exist(fullfile(resDir,'Fotos')) if ~exist(fullfile(resDir,'Fotos'))
mkdir(fullfile(resDir,'Fotos')); mkdir(fullfile(resDir,'Fotos'));
end end
catch
returnHome
end
catch clear scan
cd(wCodeDir)
end
clear scan
if exist('resDir','var')&&~isempty(resDir) if exist('resDir','var')&&~isempty(resDir)
fhconsole= gcf; fhconsole= gcf;
set(fhconsole,'Name',strcat('EASYconsole- ',char(resDir))) set(fhconsole,'Name',strcat('EASYconsole- ',char(resDir)))
else else
set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.') set(fhconsole,'Name','EASYconsole -Exp. Analysis NOT selected.')
end
end end
end
%% CALLBACKS %% %% CALLBACKS %%
% function Parameters_Callback(~, ~, ~)
% global wCodeDir
% cd(wCodeDir)
% function CFparameters_Callback(~, ~, ~)
% global wCodeDir
% cd(wCodeDir)
% function RunCF_Callback(~, ~, ~)
% global wCodeDir
% cd(wCodeDir)
% try
% CcurveFitStartup
% catch ME
% cd(wCodeDir)
% end
%
% callback for the 'Run' in the dropdown menu % callback for the 'Run' in the dropdown menu
function run_Callback(~, ~, ~) function run_Callback(~, ~, ~)
global wCodeDir returnHome
try
catch ME
cd(wCodeDir)
end end
end
% function Dbase_Callback(~, ~, ~)
% global wCodeDir
% try
% catch ME
% cd(wCodeDir)
% end
% function runImAnal_Callback(~, ~, ~)
% global wCodeDir
% cd(wCodeDir)
% try
% ImStartup
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
function runPlateMapPintool_Callback(~, ~, ~) function runPlateMapPintool_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir) try
try NImapPT
NImapPT catch ME
catch ME returnHome
cd(wCodeDir) EASYconsole
EASYconsole end
end
end end
function NImCFcombo_Callback(~, ~, ~) function NImCFcombo_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir) try
try par4Gbl_Main8c
par4Gbl_Main8c catch
catch returnHome
cd(wCodeDir) EASYconsole
EASYconsole end
end
end end
function runPlateImAnal_Callback(~, ~, ~) function runPlateImAnal_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir) try
try NImStartupOnly
NImStartupOnly catch ME
catch ME returnHome
cd(wCodeDir) EASYconsole
EASYconsole end
end end
end
% function runCF_Callback(~, ~, ~)
% global wCodeDir
% try
% cd(wCodeDir)
% CcurveFitStartup
% catch ME
% cd(wCodeDir)
% end
function PlateCFit_Callback(~, ~, ~) function PlateCFit_Callback(~, ~, ~)
global wCodeDir global ExpOutmat
global ExpOutmat returnHome
try try
cd(wCodeDir) NCstart
NCstart catch ME
catch ME returnHome
cd(wCodeDir) end
end
end end
% function Gen_CF_GenORF_Callback(~, ~, ~)
% global wCodeDir
% try
% DgenCFoutWnum
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function ImParams_Callback(~, ~, ~)
% global wCodeDir
% try
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
%*************************
% function createPTmap_Callback(~, ~, ~)
% global wCodeDir
% try
% cd(wCodeDir)
% ImapPT()
% catch ME
% cd(wCodeDir)
% end
%*************************
function GenPrintouts_Callback(~, ~, ~) function GenPrintouts_Callback(~, ~, ~)
end end
%
% function Gen_YXmaster_Callback(~, ~, ~)
% global wCodeDir
% try
% Dgen_YXmasterFile
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function Gen_CurveFitOut_Callback(~, ~, ~)
% global wCodeDir
% try
% DgenLegCFout
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function Gen_CF_withNums_Callback(~, ~, ~)
% global wCodeDir
% try
% DgenCFoutWnum
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function Gen_CF_withNumsOrfsGenes_Callback(~, ~, ~)
% global wCodeDir
% try
% DgenCFoutWnumOrfgene
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function Gen_CF_withNumsOrfsGenesPerts_Callback(~, ~, ~)
% global wCodeDir
% try
% DgenCFoutWnumOrfgenePertsDev
% catch ME
% cd(wCodeDir)
% EASYconsole
% end
% function zx_Callback(~, ~, ~)
function uploadExcelMP2DB_Callback(~, ~, ~) function uploadExcelMP2DB_Callback(~, ~, ~)
end end
% function uploadYXmaster2DB_Callback(~, ~, ~)
%
% function Gen_CF4DB_Callback(~, ~, ~)
%
%
% function Gen_CF4DB_Extras4Review_Callback(~, ~, ~)
%
%
% function uploadCF2DB_Callback(~, ~, ~)
% --------------------------------------------------------------------
function runDMPexcel_Callback(~, ~, ~) function runDMPexcel_Callback(~, ~, ~)
global wCodeDir global ExpPath
global ExpPath try
try
DMPexcel2mat_2024winLinix %DMPexcel2mat_2023winLinix DMPexcel2mat_2024winLinix %DMPexcel2mat_2023winLinix
catch ME catch ME
cd(wCodeDir) returnHome
EASYconsole EASYconsole
end end
end end
% --------------------------------------------------------------------
function runResults_DBcombo_Callback(~, ~, ~) function runResults_DBcombo_Callback(~, ~, ~)
global wCodeDir
try try
DgenResults240430 %similar but semicolons removed to restore so cmdLine display info. DgenResults240430 %similar but semicolons removed to restore so cmdLine display info.
%Dgen241010qhtcp %par4global -convert 1x1cell of 384cells to be like previous 1x384 cells CFparameter %Dgen241010qhtcp %par4global -convert 1x1cell of 384cells to be like previous 1x384 cells CFparameter
catch ME catch ME
disp('Error in DgenResults240430') disp('Error in DgenResults240430')
cd(wCodeDir) returnHome
EASYconsole EASYconsole
end
end end
end
% --------------------------------------------------------------------
function Tools_Callback(~, ~, ~) function Tools_Callback(~, ~, ~)
end end
% --------------------------------------------------------------------
function runOverlayPlots_Callback(~, ~, ~) function runOverlayPlots_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir)
try
DoverlayPlots2
cd(wCodeDir)
EASYconsole
catch ME
cd(wCodeDir)
EASYconsole
end
end
% --------------------------------------------------------------------
function runFotoStrip_Callback(~, ~, ~)
global wCodeDir
cd(wCodeDir)
try
F_NImStartup_CentCir
cd(wCodeDir)
EASYconsole
catch ME
cd(wCodeDir)
EASYconsole
end
end
% --------------------------------------------------------------------
function runDisplayFig_Callback(~, ~, ~)
global wCodeDir
cd(wCodeDir)
try
UfigDisplay
catch ME
cd(wCodeDir)
EASYconsole
end
end
% --------------------------------------------------------------------
function runViewParameters_Callback(~, ~, ~)
global wCodeDir
cd(wCodeDir)
try
catch ME
cd(wCodeDir)
EASYconsole
end
end
% --------------------------------------------------------------------
function QkviewN_Callback(~, ~, ~)
global wCodeDir
cd(wCodeDir)
try
try try
cd fullfile(ExpPath) DoverlayPlots2
returnHome
EASYconsole
catch ME
returnHome
EASYconsole
end
end
function runFotoStrip_Callback(~, ~, ~)
returnHome
try
F_NImStartup_CentCir
returnHome
EASYconsole
catch ME
returnHome
EASYconsole
end
end
function runDisplayFig_Callback(~, ~, ~)
returnHome
try
UfigDisplay
catch ME
returnHome
EASYconsole
end
end
function runViewParameters_Callback(~, ~, ~)
returnHome
try
catch ME
returnHome
EASYconsole
end
end
function QkviewN_Callback(~, ~, ~)
returnHome
try
try
cd(fullfile(ExpPath))
catch catch
if ispc cd c:\ if ispc
cd('C:\')
else else
cd (fullfile('~')); cd(fullfile('~'));
end end
end end
QkviewImages QkviewImages
catch ME catch ME
cd(wCodeDir) returnHome
EASYconsole EASYconsole
end end
end end
% --------------------------------------------------------------------
function CFdisplay_Callback(~, ~, ~) function CFdisplay_Callback(~, ~, ~)
global wCodeDir returnHome
cd(wCodeDir) try
try NCsingleDisplay
NCsingleDisplay returnHome
cd(wCodeDir) EASYconsole
EASYconsole catch ME
catch ME returnHome
cd(wCodeDir) EASYconsole
EASYconsole end
end
end end