// Dave Barry, Francis Crick Institute // 2018.08.14 // david.barry@crick.ac.uk // Generates "preview" images of stacks in a directory macro "Stack Reformatter"{ startTime = getTime(); run("Bio-Formats Macro Extensions"); setBatchMode(true) input = getDirectory("Choose Input Directory"); output = getDirectory("Choose Output Directory"); list = getFileList(input); Dialog.create("Huygens Browser"); Dialog.addNumber("Number of channels:", 3); Dialog.addString("File extension:", ".tif"); Dialog.show(); channels = Dialog.getNumber(); extension = Dialog.getString(); i = -1; thisType = "false"; while(thisType == "false"){ i++; file = directory + fileList[i]; Ext.isThisType(file, thisType); } Ext.setId(fileList[i]); Ext.getSizeC(sizeC); Ext.getSeriesCount(sCount); Ext.getDimensionOrder(dimOrder); IJ.log("Number of series: " + sCount); IJ.log("Number of channels: " + sizeC); IJ.log("Dimension order: " + dimOrder); for(s = 1; s <= sCount; s++){ reformat(input, output, list[i], channels, s); print(round(s * 100.0 / sCount) + "% done"); } setBatchMode(false); close("*"); duration = (getTime() - startTime) / 1000; hours = floor(duration / 3600); minutes = floor((duration - hours * 3600) / 60); seconds = floor(duration - hours * 3600 - minutes * 60); print("100% Done: " + hours + ":" + minutes + ":" + seconds); function reformat(input, output, filename, channels, series) { fullInputFilename = input + filename; fullOutputFilename = output + filename + ".tif"; print ("Reading " + fullInputFilename + " series " + series); run("Bio-Formats Importer", "open=[" + fullInputFilename + "] autoscale color_mode=Composite rois_import=[ROI manager] view=Hyperstack stack_order=XYCZT series_list=" + series); //slices = nSlices() / channels; //run("Stack to Hyperstack...", "order=xyzct channels=" + channels + " slices=" + slices + " frames=1 display=Composite"); print ("Writing " + fullOutputFilename); //run("Bio-Formats Exporter", "save=[" + fullOutputFilename + "] compression=LZW"); saveAs("Tiff", fullOutputFilename); } }