// Batch_Add_Z_Uncertainty.js script by Christophe Leterrier // Add or replace Z uncertainty in ThunderSTORM localization files // 14-10-29 importClass(Packages.java.io.File); importClass(Packages.ij.io.DirectoryChooser); importClass(Packages.ij.IJ); importClass(Packages.ij.gui.GenericDialog); // extension for input files extFormat = "csv"; // Default Z / XY uncertainty factor factor_def = 2; // Dialog var dc = new DirectoryChooser("Choose a folder"); var inDir = dc.getDirectory() + File.separator; var inDirFile = new File(inDir); var parDir = inDirFile.getParent() + File.separator; var gd = new GenericDialog("Batch add Z uncertainty: options"); gd.addNumericField("Z uncertainty factor", factor_def, 1, 3, "* XY uncertainty"); gd.showDialog(); var factor = gd.getNextNumber(); if (gd.wasOKed()) { // Start var startTime = new Date().getTime(); IJ.log("\n\n*** Batch add Z uncertainty started ***"); IJ.log("Input folder: " + inDir); // Localize the SR folder to get the path to script functions var plugDir = IJ.getDirectory("imagej"); var csPath = plugDir + "scripts" + File.separator + "NeuroCyto" + File.separator + "added macros" + File.separator + "ChriSTORM extras" + File.separator; // Batch Add Z uncertainty // Get the Func function path and load var FuncJS = "F-TSAddZUnc.js"; var FuncPath = csPath + FuncJS; IJ.log("\nFunction path:" + plugDir + FuncJS); load(FuncPath); // Define input folder, define and create output folder var inDirFunc = inDir; var outDirFunc = parDir + "Locs TS Zunc" + File.separator; IJ.log("Function input folder: " + inDirFunc); IJ.log("Function output folder: " + outDirFunc); var outDirFuncFile = new File(outDirFunc); if (!outDirFuncFile.exists()) { outDirFuncFile.mkdir(); } // Get the file list from the input folder, batch process them using the split function var fileQueueS = getExtFiles(inDirFunc, extFormat); for (var f = 0; f < fileQueueS.length; f++) { inPath = fileQueueS[f]; TSAddZUnc(inPath, outDirFunc, factor); } // End var stopTime = new Date().getTime(); var Time = stopTime - startTime; IJ.log("\n*** Batch add Z uncertainty end after " + Time / 1000 + " s ***"); } function getExtFiles(dirst, inext) { var dir = new File(dirst); var allfiles = dir.listFiles(); var extFiles = new Array(); for (var i = 0 ; i < allfiles.length; i++) { var name = allfiles[i].getName(); var ext = name.substring(name.lastIndexOf(".")+1); if (ext == inext) { extFiles.push(allfiles[i]); } } return extFiles; }