%MakeGlimFile_generic.m
%
%Create a glimfile for either a single output folder or up to 2 output folders / variables
%
%You will also need to download the "cell2csv.m" for this code to run:
%
%http://www.mathworks.com/matlabcentral/fileexchange/7601-cell2csv
clear all;
% Define variables/pathnames
StudyFolder = input('What is the location of your study folder? (e.g. /home/user/surfstat/StudyName): ', 's');
StudyFolder = strtrim(StudyFolder);
MultipleFolders = input('Do you have multiple variables / subfolders in your StudyName? Y or N): ', 's');
thickness_metric = input ('Which thickness metric? (e.g., tlink, tlaplace, or tfs): ', 's');
blur = input ('What is the blur level in mm? (e.g., 30): ', 's');
output = input ('Output glimfile name .csv? (e.g., glimfile): ', 's');
if MultipleFolders == 'Y'
Variable_1_short = input ('What is the subdirectory of your Variable1? (e.g. Variable1 where data for Variable1 is located in /home/user/surfstat/StudyName/Variable1): ', 's');
Variable_2_short = input ('What is the subdirectory of your Variable2? (e.g. Variable2 where data for Variable2 is located in /home/user/surfstat/StudyName/Variable2): ', 's');
Variable_1 = [StudyFolder '/' Variable_1_short];
Variable_2 = [StudyFolder '/' Variable_2_short];
for v=1:2
eval(['cd(Variable_' num2str(v) ')'])
files = dir;
% Find all files in the directory that contains an underscore ('_'), meaning
% they are probably a CIVET output directory and not something else like a QC
% folder
for i=1:length(files)
if cell2mat(strfind({files(i).name}, '_')) > 0
eval(['subjects_' num2str(v) '(i) = {files(i).name};']);
end
end
% Get rid of empty cells
eval(['subjects_' num2str(v) ' = subjects_' num2str(v) '(find(~cellfun(@isempty,subjects_' num2str(v) ')))'';']);
end
for i=1:length(subjects_1)
cd([Variable_1 '/' subjects_1{i} '/thickness'])
thickfiles=dir;
for j=1:length(thickfiles)
if cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_left'])) > 0
thickleft(i) = {thickfiles(j).name};
elseif cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_right'])) > 0
thickright(i) = {thickfiles(j).name};
end
end
Row(i).str= [subjects_1{i} ' ' Variable_1_short ' ' StudyFolder '/' Variable_1_short '/' subjects_1{i} '/thickness/' thickleft{i} ' ' StudyFolder '/' Variable_1_short '/' subjects_1{i} '/thickness/' thickright{i}];
end
for i=1:length(subjects_2)
cd([Variable_2 '/' subjects_2{i} '/thickness'])
thickfiles=dir;
for j=1:length(thickfiles)
if cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_left'])) > 0
thickleft(i) = {thickfiles(j).name};
elseif cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_right'])) > 0
thickright(i) = {thickfiles(j).name};
end
end
Row(i+length(subjects_1)).str= [subjects_2{i} ' ' Variable_2_short ' ' StudyFolder '/' Variable_2_short '/' subjects_2{i} '/thickness/' thickleft{i} ' ' StudyFolder '/' Variable_2_short '/' subjects_2{i} '/thickness/' thickright{i}];
end
else
cd(StudyFolder)
files = dir;
% Find all files in the directory that contains an underscore ('_'), meaning
% they are probably a CIVET output directory and not something else like a QC
% folder
for i=1:length(files)
if cell2mat(strfind({files(i).name}, '_')) > 0
subjects(i) = {files(i).name};
end
end
% Get rid of empty cells
subjects = subjects(find(~cellfun(@isempty,subjects)))';
for i=1:length(subjects)
cd([StudyFolder '/' subjects{i} '/thickness'])
thickfiles=dir;
for j=1:length(thickfiles)
if cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_left'])) > 0
thickleft(i) = {thickfiles(j).name};
elseif cell2mat(strfind({thickfiles(j).name}, ['native_rms_rsl_' thickness_metric '_' blur 'mm_right'])) > 0
thickright(i) = {thickfiles(j).name};
end
end
Row(i).str= [subjects{i} ' ' StudyFolder '/' subjects{i} '/thickness/' thickleft{i} ' ' StudyFolder '/' subjects{i} '/thickness/' thickright{i}];
end
end
% Convert struct to cell array
Row=struct2cell(Row');
Row=Row';
% Print to GLIM file
cell2csv([output '.csv'],Row,' ');