This repository was archived by the owner on Jan 30, 2022. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdbShowExperiments.m
More file actions
81 lines (75 loc) · 2.46 KB
/
dbShowExperiments.m
File metadata and controls
81 lines (75 loc) · 2.46 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
function dbShowExperiments(varargin)
% DBSHOWEXPERIMENTS Print list of experiments
%
% Optional parameters with name/value pairs:
% 'user' : user initial. Default you.
% 'id' : show detailed view of single experiment
opts.user=[];
opts.id=[];
if nargin>0
opts = processOptions(opts,varargin{:});
end
conn = dbOpen();
% If ID specified
if ~isempty(opts.id)
params = { 'experiment.id','@Experiment ID';
'experiment.name','Experiment name';
'experiment.description','Experiment description';
'experiment.date','Experiment date';
'microscope.name','Microscope';
'cellline.name','Cell line';
'cellline.description','Cell line description';
'cellline.code','Cell line code';
'num_cells','@Number of cells';
'file','Data file';};
sql = sprintf(['SELECT ' strjoin(params(:,1)',',') ...
' FROM experiment JOIN microscope ON microscope_id=microscope.id ' ...
'JOIN cellline ON cellline_id=cellline.id WHERE experiment.id = %d;'], ...
opts.id);
results = fetch(conn.conn, sql);
results = table2cell(results);
if isempty(results)
fprintf('No experiment with ID %d\n',opts.id);
else
printHeader(sprintf('Info for experiment %d',opts.id));
for i=1:size(params,1)
desc = params{i,2};
if desc(1) == '@'
fprintf('%s: %d\n',desc(2:end),results{1,i});
elseif desc(1) == '#'
fprintf('%s: %f\n',desc(2:end),results{1,i});
else
fprintf('%s: %s\n',desc,results{1,i});
end
end
end
% Additional info.
global dbdatapath
fprintf('Data file path: %s\n',fullfile(dbdatapath,results{1,9}));
return
end
sql = ['SELECT experiment.id,experiment.name,date,initials,file '...
'FROM experiment LEFT JOIN '...
'user ON user_id = user.id '];
if ~isempty(opts.user)
if ischar(opts.user)
sql = sprintf([sql 'WHERE initials = ' interpString('s')],opts.user);
else
sql = sprintf([sql 'WHERE user.id = %d'],opts.user);
end
end
sql = [sql ' ORDER BY experiment.id;'];
results = fetch(conn.conn, sql);
results = table2cell(results);
global dbdatapath;
if isempty(results)
fprintf('No experiments\n');
else
printHeader('Experiments');
%fileCol = 2;
for i = 1:size(results,1)
% Remove data path prefix for brevity.
%results{i,fileCol} = strrep(results{i,fileCol},[dbdatapath filesep],'');
fprintf('%d: %s - %s [%s] : %s\n',results{i,:});
end
end