//This macro processes multiple images in a folder, outputting the maximum intensity projections of SIM data to the same or a different folder //Created by Dr Chidinma Okolo and Thomas Fish //Diamond Light Source, UK fileRegex = "^\\d{14}[_\\w\\d]+FL$"; input_directory = getDirectory("Input directory"); output_directory = getDirectory("Output directory"); processFolder(input_directory, output_directory); function processFolder(input_directory, output_directory) { save_images = getBoolean("Do you wish to save the output images?", "Save", "Don't save"); display_images = getBoolean("Do you wish to display all images after exiting", "Yes", "No"); file_list = getFileList(input_directory); for (i = 0; i < file_list.length; i++) { input_path = input_directory + File.separator + file_list[i]; if(File.isDirectory(input_path)) { processFolder(input_path); } else if(File.isFile(input_path) && matches(list[i], fileRegex)) { openFile(input_directory, file_list[i]); processFile(file_list[i]); if(save_images) { saveFile(output_directory, file_list[i]); } } } if(display_images) { displayFiles(file_list); } else { closeFiles(file_list); } } function openFile(intput_directory, file_name) { input_path = input + File.separator + file; run("Bio-Formats Importer", "open=input_path open_all_series windowless=true"); } function processFile(input, output, file) { run("Z Project...", "projection=[Max Intensity]"); } function saveFile(output, filename) { output_path = output + File.separator + file + "_max_intensity_proj"; saveAs(".tiff", output_path); } function displayFiles(file_list) { for (i = 0; i < file_list.length; i++) { selectWindow(file_list[i]); run("Enhance Contrast", "saturated=0.35"); } run("Tile"); } function closeFiles(file_list) { for (i = 0; i < file_list.length; i++) { close(file_list[i]); } }