import ij.IJ; // calls imagej import ij.Prefs; // calls imagej settings import ij.ImagePlus; import java.lang.Runtime; import java.io.File; import java.io.FilenameFilter; runtime = Runtime.getRuntime(); System.out.println(runtime.availableProcessors() + " cores available for multi-threading"); Prefs.setThreads(1); // defines the number of threads allowed print("Threads: "+Prefs.getThreads()); // prints thread setting in output System.out.println("Start loading parameters"); // Directory System.out.println("========================================================="); System.out.println("Directory:"); image_file_directory = System.getProperty( "image_file_directory" ); xml_filename = System.getProperty( "xml_filename" ); System.out.println( "image_file_directory = " + image_file_directory ); System.out.println( "xml_filename = " + xml_filename ); // Dataset settings System.out.println("========================================================="); System.out.println("Dataset:"); image_file_pattern = System.getProperty( "image_file_pattern" ); type_of_dataset = System.getProperty( "type_of_dataset" ); timepoints = System.getProperty( "timepoints" ); angles = System.getProperty( "angles" ); System.out.println( "image_file_pattern = " + image_file_pattern ); System.out.println( "type_of_dataset = " + type_of_dataset ); System.out.println( "timepoints = " + timepoints ); System.out.println( "angles = " + angles ); multiple_timepoints = System.getProperty( "multiple_timepoints" ); multiple_channels = System.getProperty( "multiple_channels" ); multiple_illumination_directions = System.getProperty( "multiple_illumination_directions" ); multiple_angles = System.getProperty( "multiple_angles" ); imglib_container = System.getProperty( "imglib_container" ); System.out.println( "multiple_timepoints = " + multiple_timepoints ); System.out.println( "multiple_channels = " + multiple_channels ); System.out.println( "multiple_illumination_directions = " + multiple_illumination_directions ); System.out.println( "multiple_angles = " + multiple_angles ); System.out.println( "imglib_container = " + imglib_container ); System.out.println("---------------------------------------------------------"); System.out.println("Channel setting:"); // Channel switch: parses channels and determines if Single or Multi Channel // assembles the appropriate string for the channel setting channels = System.getProperty( "channels" ); String channel_string = null; String delims = "[,]"; String[] channel_token = channels.split(delims); if (channels.equalsIgnoreCase("")) { System.out.println("Warning: There are no channels set"); } else if ( channel_token.length == 1 ) { channel_string=""; System.out.println("Single Channel"); } else if ( channel_token.length > 1) { channel_string = "channels_=" + channels + " "; System.out.println("Multi Channel"); } System.out.println( "Channels = " + channel_string ); System.out.println("---------------------------------------------------------"); System.out.println("Illumination setting:"); // Illuminatin switch: parses illumination and determines if there is a single // or multiple illumination sides and then assembles the illum_string illumination = System.getProperty( "illumination" ); String illum_string = null; String delims = "[,]"; String[] illum_token = illumination.split(delims); if (illumination.equalsIgnoreCase("")) { System.out.println("Warning: There are no illuminations set"); } else if ( illum_token.length == 1 ) { illum_string=""; System.out.println("One illumination side or fused illumination"); } else if ( illum_token.length > 1) { illum_string = "illumination_=" + illumination + " "; System.out.println("Dual Illumination sides"); } System.out.println( "Illuminations = " + illum_string ); // Calibaration // Calibaration System.out.println("========================================================="); System.out.println("Calibration:"); manual_calibration_tif = System.getProperty( "manual_calibration_tif" ); float czi_pixel_distance_x = Float.parseFloat( System.getProperty( "pixel_distance_x" ) ); float czi_pixel_distance_y = Float.parseFloat( System.getProperty( "pixel_distance_y" ) ); float czi_pixel_distance_z = Float.parseFloat( System.getProperty( "pixel_distance_z" ) ); czi_pixel_unit = System.getProperty( "pixel_unit" ); // builds string for calibration override if (manual_calibration_tif.equalsIgnoreCase( "No" ) ) { modify_calibration = "calibration_definition=[Load voxel-size(s) from file(s)] "; manual_calibration_string = ""; System.out.println( modify_calibration ); } else if (manual_calibration_tif.equalsIgnoreCase( "Yes" ) ) { modify_calibration = "calibration_definition=[User define voxel-size(s)] "; manual_calibration_string = " pixel_distance_x=" + pixel_distance_x + " " + "pixel_distance_y=" + pixel_distance_y + " " + "pixel_distance_z=" + pixel_distance_z + " " + "pixel_unit=" + pixel_unit + " "; System.out.println( "Calibration set to manual" ); System.out.println( modify_calibration ); System.out.println( "manual_calibration_string:" + manual_calibration_string ); } else { System.out.println( "Manual calibration setting bad" ); } System.out.println("========================================================="); System.out.println("Start plugin:"); System.out.println("Define Multi-View Dataset , type_of_dataset=[" + type_of_dataset + "] " + "xml_filename=[" + xml_filename + ".xml] " + "multiple_timepoints=[" + multiple_timepoints + "] " + "multiple_channels=[" + multiple_channels + "] " + "_____multiple_illumination_directions=[" + multiple_illumination_directions + "] " + "multiple_angles=[" + multiple_angles + "] " + "image_file_directory=" + image_file_directory + " " + "image_file_pattern=" + image_file_pattern + " " + "timepoints_=" + timepoints + " " + channel_string + illum_string + "acquisition_angles_=" + acquisition_angles + " " + "calibration_type=[Same voxel-size for all views] " + modify_calibration + "imglib2_data_container=[" + imglib_container + "]" + manual_calibration_string + ""); // Executes Fiji plugin try { IJ.run("Define Multi-View Dataset", "type_of_dataset=[" + type_of_dataset + "] " + "xml_filename=[" + xml_filename + ".xml] " + "multiple_timepoints=[" + multiple_timepoints + "] " + "multiple_channels=[" + multiple_channels + "] " + "_____multiple_illumination_directions=[" + multiple_illumination_directions + "] " + "multiple_angles=[" + multiple_angles + "] " + "image_file_directory=" + image_file_directory + " " + "image_file_pattern=" + image_file_pattern + " " + "timepoints_=" + timepoints + " " + channel_string + illum_string + "acquisition_angles_=" + angles + " " + "calibration_type=[Same voxel-size for all views] " + modify_calibration + "imglib2_data_container=[" + imglib_container + "]" + manual_calibration_string + ""); } catch ( e ) { print( "[define_tif_zip] caught exception: "+e ); //important to fail the process if exception occurs runtime.exit(1); } /* shutdown */ runtime.exit(0);