MMa_SelectFiles.m 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115
  1. function [ SelectedFiles ] = MMa_SelectFiles(OutputDir)
  2. %UNTITLED2 Summary of this function goes here
  3. % Detailed explanation goes here
  4. % FileNameDataBaseInfo
  5. clc;
  6. msg0 = 'Give a folder to read files from. Remember to add final \\ ! ';
  7. Folder = input(msg0, 's');
  8. Filenames = MMa_FetchFileNames(Folder);
  9. %save('C:\Users\meandvi\Desktop\HDF5\Results\finalfilenames.mat', 'Filenames');
  10. SelectedFiles = Filenames;
  11. msg1 = ['The search found ' num2str(length(Filenames))...
  12. ' MCD (.h5) and Axion files. Do you want to select a subset of files? (y/n): '];
  13. msg2 = ['Add criteria to your selection:' char(10)...
  14. '(0) Stop adding criteria' char(10)...
  15. '(1) Date selection' char(10)...
  16. '(2) Experimenter selection' char(10)...
  17. '(3) N number selection' char(10)...
  18. '(4) Cell line selection' char(10)...
  19. '(5) Text in the file name or path' char(10)...
  20. '(6) List selected files' char(10)...
  21. '(7) List all original files' char(10)...
  22. '(8) Save all the found files' char(10)];
  23. msg21 = 'Give the date selection in the format of yymmdd-yymmdd : ';
  24. msg22 = 'Give a 3 character experimenter ID : ';
  25. msg23 = 'Give a range of N numbers in the format of number-number : ';
  26. msg24 = 'Give a cell line identificator : ';
  27. msg25 = 'Enter text to be searched : ';
  28. msg26 = 'THE FILES IN THE DATABASE HAVE BEEN MOVED. DATABASE MUST BE UPDATED!';
  29. ansv1 = input(msg1,'s');
  30. clc;
  31. if strcmp(ansv1,'y')
  32. ansv2 = 1;
  33. parameters.dates = cell.empty();
  34. parameters.experimenters = cell.empty();
  35. parameters.nnumbers = cell.empty();
  36. parameters.celllines = cell.empty();
  37. parameters.texts = cell.empty();
  38. while ~(ansv2 == '0')
  39. ansv2 = input(msg2,'s');
  40. clc;
  41. if ansv2 == '1' % yymmdd-yymmdd 140516-140812
  42. ansv21 = input(msg21,'s');
  43. parameters.dates{length(parameters.dates)+1} = strsplit(ansv21,'-');
  44. elseif ansv2 == '2'
  45. ansv22 = input(msg22,'s');
  46. parameters.experimenters{length(parameters.experimenters)+1} = ansv22;
  47. elseif ansv2 == '3' % number-number
  48. ansv23 = input(msg23,'s');
  49. parameters.nnumbers{length(parameters.nnumbers)+1} = strsplit(ansv23,'-');
  50. elseif ansv2 == '4'
  51. ansv24 = input(msg24,'s');
  52. parameters.celllines{length(parameters.celllines)+1} = ansv24;
  53. elseif ansv2 == '5'
  54. ansv25 = input(msg25,'s');
  55. parameters.texts{length(parameters.texts)+1} = ansv25;
  56. elseif ansv2 == '6'
  57. disp(SelectedFiles);
  58. elseif ansv2 == '7'
  59. disp(Filenames);
  60. elseif ansv2 == '8'
  61. filedates = cellfun(@dir, SelectedFiles);
  62. filedates = {filedates(:).date}';
  63. nnumbrs = cellfun(@findMEAID, SelectedFiles, 'UniformOutput', false);
  64. xlswrite(strcat(OutputDir, '_SelectedFiles_', MMa_timestamp(), '.xls'), [nnumbrs, filedates, SelectedFiles]);
  65. end
  66. if str2num(ansv2) < 7
  67. SelectedFiles = MMa_StrSelection(parameters, Filenames);
  68. disp([char(10) 'The analysis now includes ' num2str(length(SelectedFiles)) ' files.' char(10)]);
  69. end
  70. end % end parametrien kysely loppuu t?h?n
  71. save(strcat(OutputDir,'file_selection_parameters_',MMa_timestamp(),'.mat'), 'parameters');
  72. end
  73. try
  74. % datenums are only used if the filename is missing date
  75. % information
  76. fndates = cellfun(@findMEAdate, SelectedFiles, 'UniformOutput', false);
  77. fileinfos = cellfun(@dir, SelectedFiles); %, 'UniformOutput', false);
  78. % if filename is missing date information that file
  79. % modification date is used as date
  80. for r = 1:length(fndates)
  81. if fndates{r} == 0
  82. fndates{r} = str2num(datestr(fileinfos(r).date,'yymmdd'));
  83. end
  84. end
  85. fileinfos = {fileinfos(:).datenum}';
  86. SelectedFiles = [SelectedFiles fndates fileinfos];
  87. catch err
  88. disp(msg26);
  89. SelectedFiles = [];
  90. end
  91. end
  92. % isdir