diff --git a/spim_registration/timelapse/README.md b/spim_registration/timelapse/README.md index 16250b579b8011e2f324ee6f172d2bc205d57cf2..a8ad42fb1216672e625bcad1826b573e4f3c365d 100644 --- a/spim_registration/timelapse/README.md +++ b/spim_registration/timelapse/README.md @@ -1,3 +1,25 @@ +Datasets +======================== +The scripts are now supporting multiple angles, multiple channels and multiple illumination direction without adjusting the .bsh or creat-jobs.sh scripts. + +Based on SPIM registration version 3.3.8 + +Supported datasets are in the following format: + +ImageJ Opener (resave to .tif): + + Multiple timepoints: YES (one file per timepoint) + Multiple channels: YES (one file per channel) + Multiple illumination directions: YES (one file per illumination direction) => not tested yet + Multiple angles: YES one file per angle + +Zeiss Lightsheet Z.1 Dataset (LOCI) + + Multiple timepoints: Supports multiple time points per file + Multiple channels: Supports multiple channels per file + Multiple illumination directions: YES (one file per illumination direction) + Multiple angles: YES (one file per angle) + Timelapse based workflow ======================== diff --git a/spim_registration/timelapse/SingleChannel.yaml b/spim_registration/timelapse/SingleChannel.yaml new file mode 100755 index 0000000000000000000000000000000000000000..60b1688d0ca8bac5d1029846f28e22e181895169 --- /dev/null +++ b/spim_registration/timelapse/SingleChannel.yaml @@ -0,0 +1,189 @@ +common: { + # directory that contains the bean shell scripts + bsh_directory: "/projects/pilot_spim/Christopher/snakemake-workflows/spim_registration/timelapse/", + directory_cuda: "/sw/users/schmied/packages/2015-06-08_Fiji.app.cuda/lib/", + fiji-app: "/sw/users/schmied/packages/2015-06-08_Fiji.app.cuda/ImageJ-linux64", + fiji-prefix: "/sw/bin/xvfb-run -a", + first_xml_filename: "test_unicore", + hdf5_xml_filename: '"hdf5_test_unicore"', + merged_xml: "hdf5_test_unicore_merge", + ntimepoints: 5, + angles: "0,72,144,216,288", + channels: "green", + illumination: "0", + pixel_distance_x: '0.28590106964', + pixel_distance_y: '0.28590106964', + pixel_distance_z: '1.50000', + pixel_unit: "um", + # transformation_switch: "timelapse_dublicate", + transformation_switch: "timelapse", + # fusion_switch: "deconvolution" + fusion_switch: "fusion" + } + +define_xml_czi: { + first_czi: "2015-04-11_LZ2_Stock68_3.czi", + rotation_around: "X-Axis", + bsh_file: "define_czi.bsh" + } + +define_xml_tif: { + image_file_pattern: 'img_TL{{t}}_Angle{{a}}.tif', + imglib_container: '"ArrayImg (faster)"', + multiple_angles: '"YES (one file per angle)"', + multiple_channels: '"NO (one channel)"', + multiple_illumination_directions: '"NO (one illumination direction)"', + multiple_timepoints: '"YES (one file per time-point)"', + type_of_dataset: '"Image Stacks (ImageJ Opener)"', + bsh_file: "define_tif_zip.bsh" + } + +resave_hdf5: { + hdf5_chunk_sizes: '"{{ {{32,32,4}}, {{32,32,4}}, {{16,16,16}}, {{16,16,16}} }}"', + resave_angle: '"All angles"', + resave_channel: '"All channels"', + resave_illumination: '"All illuminations"', + resave_timepoint: '"All Timepoints"', + setups_per_partition: '0', + subsampling_factors: '"{{ {{1,1,1}}, {{2,2,1}}, {{4,4,1}}, {{8,8,1}} }}"', + timepoints_per_partition: '1', + bsh_file: "export.bsh" + } + +registration: { + # "Single Channel" is not a valid choice for "Process_channel" + reg_process_channel: '"All channels"', + reg_processing_channel: '"green"', + reg_interest_points_channel: '"beads"', + reg_radius_1: '2', + reg_radius_2: '3', + reg_threshold: '0.005', + initial_sigma: '1.8', + threshold_gaussian: '0.0080', + type_of_detection: '"Difference-of-Mean (Integral image based)"', + label_interest_points: '"beads"', + reg_process_timepoint: '"Single Timepoint (Select from List)"', + reg_process_angle: '"All angles"', + reg_process_illumination: '"All illuminations"', + subpixel_localization: '"3-dimensional quadratic fit"', + detection_min_max: "find_maxima", + type_of_registration: '"Register timepoints individually"', + algorithm: '"Fast 3d geometric hashing (rotation invariant)"', + transformation_model: "Affine", + allowed_error_for_ransac: '5', + significance: '10', + fix_tiles: '"Fix first tile"', + map_back_tiles: '"Map back to first tile using rigid model"', + model_to_regularize_with: "Rigid", + lambda: '0.10', + imglib_container: '"ArrayImg (faster)"', + bsh_file: "registration.bsh" + } + +xml_merge: { + bsh_file: "xml_merge.bsh" + } + +timelapse: { + reference_timepoint: '0', + type_of_registration_timelapse: '"Match against one reference timepoint (no global optimization)"', + timelapse_process_timepoints: '"All Timepoints"', + bsh_file: "timelapse_registration.bsh" + } + +Dublicate_transformations: { + source_dublication: "red", + target_dublication: "green", + duplicate_which_transformations: '"Replace all transformations"', + bsh_file: "Dublicate_transformations.bsh" + } + +fusion: { + bsh_file: "fusion.bsh", + downsample: '4', + fused_image: '"Append to current XML Project"', + imglib2_container_fusion: '"ArrayImg"', + imglib2_data_container: '"ArrayImg (faster)"', + interpolation: '"Linear Interpolation"', + minimal_x: '190', + minimal_y: '-16', + minimal_z: '-348', + maximal_x: '1019', + maximal_y: '1941', + maximal_z: '486', + pixel_type: '"16-bit unsigned integer"', + process_angle: '"All angles"', + process_channel: '"All channels"', + process_illumination: '"All illuminations"', + process_timepoint: '"Single Timepoint (Select from List)"', + process_views_in_paralell: '"All"', + xml_output: '"Save every XML with user-provided unique id"' + } + +external_transform: { + # channel setting: '"all_channels"' + channel_setting: '"green"', + transform_timepoint: '"All Timepoints"', + transform_angle: '"All angles"', + transform_channel: '"All channels"', + # illumination setting only one illumination side + transform_illumination: '"All illuminations"', + apply_transformation: '"Current view transformations (appends to current transforms)"', + define_mode_transform: '"Matrix"', + matrix_transform: '"0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0"', + transformation: '"Rigid"', + bsh_file: "transform.bsh" + } + +deconvolution: { + iterations: '1', + minimal_x_deco: '190', + minimal_y_deco: '-16', + minimal_z_deco: '-348', + maximal_x_deco: '1019', + maximal_y_deco: '1941', + maximal_z_deco: '486', + detections_to_extract_psf_for_channel: '"beads"', + process_timepoint: '"Single Timepoint (Select from List)"', + process_angle: '"All angles"', + process_channel: '"All channels"', + process_illumination: '"All illuminations"', + Tikhonov_parameter: '0.0006', + compute: '"in 512x512x512 blocks"', + compute_on: '"GPU (Nvidia CUDA via JNA)"', + imglib2_container: '"ArrayImg"', + osem_acceleration: '"1 (balanced)"', + psf_estimation: '"Extract from beads"', + psf_size_x: '19', + psf_size_y: '19', + psf_size_z: '25', + type_of_iteration: '"Efficient Bayesian - Optimization I (fast, precise)"', + bsh_file: "deconvolution_GPU.bsh" + } + +hdf5_output: { + output_image_file_pattern: 'TP{{t}}_Chgreen_Ill0_Ang0,72,144,216,288.tif', + output_xml: '"fused_Single_Channel"', + output_hdf5_xml: '"hdf5_fused_Single_Channel"', + output_multiple_channels: '"NO (one channel)"', + output_timepoints: '0-4', + output_pixel_distance_x: 0.5718, + output_pixel_distance_y: 0.5718, + output_pixel_distance_z: 0.5718, + output_pixel_unit: 'um', + output_channels: "green", + output_data_type: "32Bit", + convert_32bit: '"[Use min/max of first image (might saturate intenities over time)]"', + output_type_of_dataset: '"Image Stacks (ImageJ Opener)"', + output_multiple_timepoints: '"YES (one file per time-point)"', + output_multiple_angles: '"NO (one angle)"', + output_illumination_directions: '"NO (one illumination direction)"', + output_imglib_container: '"ArrayImg (faster)"', + subsampling_output: '"{{ {{1,1,1}}, {{2,2,2}}, {{4,4,4}}, {{8,8,8}} }}"', + chunk_sizes_output: '"{{ {{16,16,16}}, {{16,16,16}}, {{16,16,16}}, {{16,16,16}} }}"', + # subsampling_output: '"{{ {{1,1,1}}, {{2,2,2}} }}"', + # chunk_sizes_output: '"{{ {{16,16,16}}, {{16,16,16}} }}"', + bsh_file_define: "define_output.bsh", + bsh_file_hdf5: "export_output.bsh" + } + diff --git a/spim_registration/timelapse/Snakefile b/spim_registration/timelapse/Snakefile index 812dccc659d3b7bfd2aed5728f94dd2c1cf1ebf2..19798e53ed8258cb30911bdb4d00a557d41e85d2 100755 --- a/spim_registration/timelapse/Snakefile +++ b/spim_registration/timelapse/Snakefile @@ -253,9 +253,36 @@ rule timelapse: jdir=JOBDIR) cmd_string += " > {log} 2>&1 && touch {output}" shell(cmd_string) - + +rule dublicate_transformations: + input: rules.timelapse.output, merged_xml="{xml_base}_merge.xml" + output: rules.timelapse.output[0] + "_dublicate" + log: "{xml_base}_dublicate_transformations.log" + run: + cmd_string = produce_string( + """{fiji-prefix} {fiji-app} \ + -Dimage_file_directory={jdir} \ + -Dmerged_xml={merged_xml_file} \ + -Dprocess_timepoint_timelapse={timelapse_process_timepoints} \ + -Dprocess_illumination={reg_process_illumination} \ + -Dprocess_angle={reg_process_angle} \ + -Dsource_dublication={source_dublication} \ + -Dtarget_dublication={target_dublication} \ + -Dduplicate_which_transformations={duplicate_which_transformations} \ + -- --no-splash {path_bsh}""", + config["common"], + config["registration"], + config["timelapse"], + config["dublicate_transformations"], + path_bsh=config["common"]["bsh_directory"] + config["dublicate_transformations"]["bsh_file"], + jdir=JOBDIR, + merged_xml_file="{input.merged_xml}" + ) + cmd_string += " > {log} 2>&1 && touch {output}" + shell(cmd_string) + rule fusion: - input: rules.timelapse.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" + input: [ str("{xml_base}_merge.xml_" + config["common"]["transformation_switch"] ) ], "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" # rules.timelapse.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" output: "{xml_base}-{file_id,\d+}-00.h5_fusion" log: "{xml_base}-{file_id,\d+}-00-fusion.log" run: @@ -327,7 +354,7 @@ rule external_transform: shell(cmd_string) rule deconvolution: - input: rules.timelapse.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" # rules.external_transform.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" + input: [ str("{xml_base}_merge.xml_" + config["common"]["transformation_switch"] ) ], "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" # rules.timelapse.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" # rules.external_transform.output, "{xml_base}-{file_id,\d+}-00.h5", merged_xml="{xml_base}_merge.xml" output: "{xml_base}-{file_id,\d+}-00.h5_deconvolution" log: "{xml_base}-{file_id,\d+}-00-deconvolution.log" run: diff --git a/spim_registration/timelapse/dublicate_transformations.bsh b/spim_registration/timelapse/dublicate_transformations.bsh new file mode 100755 index 0000000000000000000000000000000000000000..e815f3e97f5f98b8b25acbb49a569146e934a6b8 --- /dev/null +++ b/spim_registration/timelapse/dublicate_transformations.bsh @@ -0,0 +1,66 @@ +import ij.IJ; +import ij.Prefs; +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("---------------------------------------------------------"); +System.out.println("Xml file:"); + +xml_path = System.getProperty( "image_file_directory" ); +merged_xml = System.getProperty( "merged_xml" ); + +System.out.println( "selected_xml = " + xml_path + merged_xml + " "); + +// General Registration Parameters and Channel Settings +System.out.println("---------------------------------------------------------"); +System.out.println( "General parameters: " ); + +process_timepoint_timelapse = System.getProperty( "process_timepoint_timelapse" ); +process_illumination = System.getProperty( "process_illumination" ); +process_angle = System.getProperty( "process_angle" ); + +System.out.println( "process_timepoints = " + process_timepoint_timelapse ); +System.out.println( "process_illumination = " + process_illumination ); +System.out.println( "process_angle = " + process_angle ); + +System.out.println("---------------------------------------------------------"); +System.out.println( "Dublication Parameters: " ); +source_dublication = System.getProperty( "source_dublication" ); +target_dublication = System.getProperty( "target_dublication" ); + +System.out.println( "source = " + source_dublication ); +System.out.println( "processing_channel = " + target_dublication ); + + +System.out.println("========================================================="); +System.out.println( "Start Dublication : " ); + +try { +IJ.run("Duplicate Transformations", +"apply=[One channel to other channels] " + +"select_xml=" + xml_path + merged_xml + " " + +"apply_to_angle=[" + process_angle + "] " + +"apply_to_illumination=[" + process_illumination + "] " + +"apply_to_timepoint=[" + process_timepoint_timelapse + "] " + +"source=" + source_dublication + " " + +"target=[Single Channel (Select from List)] " + +"processing_channel=" + target_dublication + " " + +"duplicate_which_transformations=[Replace all transformations]"); +} +catch ( e ) { + + print( "[dublicate_transformations] caught exception: "+e ); + //important to fail the process if exception occurs + runtime.exit(1); + +} +/* shutdown */ +runtime.exit(0); diff --git a/spim_registration/timelapse/fusion.bsh b/spim_registration/timelapse/fusion.bsh index 79f9d54911da2bef0b7b3f57e4d64ce62dbdf6d7..945556cf0c05b6e5cec8419eb89815cc3b504338 100755 --- a/spim_registration/timelapse/fusion.bsh +++ b/spim_registration/timelapse/fusion.bsh @@ -98,8 +98,8 @@ IJ.run("Fuse/Deconvolve Dataset", "imglib2_container=" + imglib2_container_fusion + " " + "process_views_in_paralell=All " + "interpolation=[" + interpolation + "] " + - //"blend " + - //"content-based " + + "blend " + + "content-based " + "output_file_directory=" + image_file_directory + " " + "lossless " + "imglib2_data_container=[" + imglib2_data_container + "]"); diff --git a/spim_registration/timelapse/tomancak_test_cluster.yaml b/spim_registration/timelapse/tomancak_test_cluster.yaml index 77c76210cd21385a3cbff9cf250fd1a697657831..84c42f55c8998a77e4113a35bc62b4f52be471e7 100755 --- a/spim_registration/timelapse/tomancak_test_cluster.yaml +++ b/spim_registration/timelapse/tomancak_test_cluster.yaml @@ -1,32 +1,34 @@ common: { # directory that contains the bean shell scripts bsh_directory: "/projects/pilot_spim/Christopher/snakemake-workflows/spim_registration/timelapse/", - directory_cuda: "/sw/users/schmied/packages/2015-06-08_Fiji.app.cuda/lib/", + directory_cuda: "/sw/users/schmied/packages/cuda/lib/", fiji-app: "/sw/users/schmied/packages/2015-06-08_Fiji.app.cuda/ImageJ-linux64", fiji-prefix: "/sw/bin/xvfb-run -a", - first_xml_filename: "test_unicore", - hdf5_xml_filename: '"hdf5_test_unicore"', - merged_xml: "hdf5_test_unicore_merge", - ntimepoints: 5, + first_xml_filename: "Dual_Channel", + hdf5_xml_filename: '"hdf5_Dual_Channel"', + merged_xml: "hdf5_Dual_Channel_merge", + ntimepoints: 2, angles: "0,72,144,216,288", - channels: "green", + channels: "green,red", illumination: "0", - pixel_distance_x: '0.28590106964', - pixel_distance_y: '0.28590106964', + pixel_distance_x: '0.28590', + pixel_distance_y: '0.28590', pixel_distance_z: '1.50000', pixel_unit: "um", - fusion_switch: "deconvolution" - # fusion_switch: "fusion" + transformation_switch: "timelapse_dublicate", + # transformation_switch: "timelapse", + # fusion_switch: "deconvolution" + fusion_switch: "fusion" } define_xml_czi: { - first_czi: "2015-04-11_LZ2_Stock68_3.czi", + first_czi: "2015-02-20_LZ2_Stock48_Stock58.czi", # essential rotation_around: "X-Axis", bsh_file: "define_czi.bsh" } define_xml_tif: { - image_file_pattern: 'img_TL{{t}}_Angle{{a}}.tif', + image_file_pattern: 'img_TL{{t}}_Angle{{a}}.tif', # essential imglib_container: '"ArrayImg (faster)"', multiple_angles: '"YES (one file per angle)"', multiple_channels: '"NO (one channel)"', @@ -37,29 +39,28 @@ define_xml_tif: { } resave_hdf5: { - hdf5_chunk_sizes: '"{{ {{32,32,4}}, {{32,32,4}}, {{16,16,16}}, {{16,16,16}} }}"', + hdf5_chunk_sizes: '"{{ {{32,32,4}}, {{32,32,4}}, {{16,16,16}}, {{16,16,16}} }}"', # data dependent + subsampling_factors: '"{{ {{1,1,1}}, {{2,2,1}}, {{4,4,1}}, {{8,8,1}} }}"', # data dependent resave_angle: '"All angles"', resave_channel: '"All channels"', resave_illumination: '"All illuminations"', resave_timepoint: '"All Timepoints"', setups_per_partition: '0', - subsampling_factors: '"{{ {{1,1,1}}, {{2,2,1}}, {{4,4,1}}, {{8,8,1}} }}"', timepoints_per_partition: '1', bsh_file: "export.bsh" } registration: { - # "Single Channel" is not a valid choice for "Process_channel" - reg_process_channel: '"All channels"', - reg_processing_channel: '"green"', - reg_interest_points_channel: '"beads"', - reg_radius_1: '2', - reg_radius_2: '3', - reg_threshold: '0.005', - initial_sigma: '1.8', - threshold_gaussian: '0.0080', - type_of_detection: '"Difference-of-Mean (Integral image based)"', - label_interest_points: '"beads"', + reg_process_channel: '"Single channel (Select from List)"', # essential '"All channels"'; '"Single channel (Select from List)"' + reg_processing_channel: '"red"', # essential + reg_interest_points_channel: '"beads"', # essential + reg_radius_1: '2', # essential + reg_radius_2: '3', # essential + reg_threshold: '0.005', # essential + initial_sigma: '1.8', # essetial + threshold_gaussian: '0.0080', # essential + type_of_detection: '"Difference-of-Mean (Integral image based)"', # switch + label_interest_points: '"beads"', reg_process_timepoint: '"Single Timepoint (Select from List)"', reg_process_angle: '"All angles"', reg_process_illumination: '"All illuminations"', @@ -83,43 +84,45 @@ xml_merge: { } timelapse: { - reference_timepoint: '0', + reference_timepoint: '0', # essential type_of_registration_timelapse: '"Match against one reference timepoint (no global optimization)"', timelapse_process_timepoints: '"All Timepoints"', bsh_file: "timelapse_registration.bsh" } -Dublicate_transformations: { - source_dublication: "red", - target_dublication: "green", - bsh_file: "dublicate_channel.bsh" +dublicate_transformations: { + source_dublication: "red", # essential for 1 usecase + target_dublication: "green", # essential for 1 usecase + duplicate_which_transformations: '"Replace all transformations"', + bsh_file: "dublicate_transformations.bsh" } fusion: { - bsh_file: "fusion.bsh", - downsample: '4', + downsample: '1', # essential + minimal_x: '220', # essential maybe automate + minimal_y: '40', # essential maybe automate + minimal_z: '-290', # essential maybe automate + maximal_x: '976', # essential maybe automate + maximal_y: '1892', # essential maybe automate + maximal_z: '472', # essential maybe automate fused_image: '"Append to current XML Project"', imglib2_container_fusion: '"ArrayImg"', imglib2_data_container: '"ArrayImg (faster)"', interpolation: '"Linear Interpolation"', - minimal_x: '190', - minimal_y: '-16', - minimal_z: '-348', - maximal_x: '1019', - maximal_y: '1941', - maximal_z: '486', pixel_type: '"16-bit unsigned integer"', process_angle: '"All angles"', process_channel: '"All channels"', process_illumination: '"All illuminations"', process_timepoint: '"Single Timepoint (Select from List)"', process_views_in_paralell: '"All"', - xml_output: '"Save every XML with user-provided unique id"' + xml_output: '"Save every XML with user-provided unique id"', + bsh_file: "fusion.bsh" } external_transform: { + # BUG # channel setting: '"all_channels"' - channel_setting: '"green"', + channel_setting: '"green,red"', transform_timepoint: '"All Timepoints"', transform_angle: '"All angles"', transform_channel: '"All channels"', @@ -127,19 +130,19 @@ external_transform: { transform_illumination: '"All illuminations"', apply_transformation: '"Current view transformations (appends to current transforms)"', define_mode_transform: '"Matrix"', - matrix_transform: '"0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0"', + matrix_transform: '"0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0, 0.0, 0.0, 0.0, 0.5, 0.0"', # essential transformation: '"Rigid"', bsh_file: "transform.bsh" } deconvolution: { - iterations: '1', - minimal_x_deco: '190', - minimal_y_deco: '-16', - minimal_z_deco: '-348', - maximal_x_deco: '1019', - maximal_y_deco: '1941', - maximal_z_deco: '486', + iterations: '1', # essential + minimal_x_deco: '190', # essential maybe automate + minimal_y_deco: '-16', # essential maybe automate + minimal_z_deco: '-348', # essential maybe automate + maximal_x_deco: '1019', # essential maybe automate + maximal_y_deco: '1941', # essential maybe automate + maximal_z_deco: '486', # essential maybe automate detections_to_extract_psf_for_channel: '"beads"', process_timepoint: '"Single Timepoint (Select from List)"', process_angle: '"All angles"', @@ -159,25 +162,26 @@ deconvolution: { } hdf5_output: { - output_image_file_pattern: 'TP{{t}}_Chgreen_Ill0_Ang0,72,144,216,288.tif', - output_xml: '"fused_Single_Channel"', - output_hdf5_xml: '"hdf5_fused_Single_Channel"', - output_multiple_channels: '"NO (one channel)"', - output_timepoints: '0-4', - output_pixel_distance_x: 0.5718, - output_pixel_distance_y: 0.5718, - output_pixel_distance_z: 0.5718, + # Will be obsolete + output_image_file_pattern: 'TP{{t}}_Ch{{c}}_Ill0_Ang0,72,144,216,288.tif', + output_xml: '"fused_Dual_Channel"', + output_hdf5_xml: '"hdf5_fused_Dual_Channel"', + output_multiple_channels: '"YES (one file per channel)"', # "\"YES (one file per channel)\"" or "\"NO (one channel)\"" + output_timepoints: '0-1', + output_pixel_distance_x: 0.28590, + output_pixel_distance_y: 0.28590, + output_pixel_distance_z: 0.28590, output_pixel_unit: 'um', - output_channels: "green", - output_data_type: "32Bit", + output_channels: "green,red", + output_data_type: "16Bit", convert_32bit: '"[Use min/max of first image (might saturate intenities over time)]"', output_type_of_dataset: '"Image Stacks (ImageJ Opener)"', output_multiple_timepoints: '"YES (one file per time-point)"', output_multiple_angles: '"NO (one angle)"', output_illumination_directions: '"NO (one illumination direction)"', output_imglib_container: '"ArrayImg (faster)"', - subsampling_output: '"{{ {{1,1,1}}, {{2,2,2}}, {{4,4,4}}, {{8,8,8}} }}"', - chunk_sizes_output: '"{{ {{16,16,16}}, {{16,16,16}}, {{16,16,16}}, {{16,16,16}} }}"', + subsampling_output: '"{{ {{1,1,1}}, {{2,2,2}}, {{4,4,4}}, {{8,8,8}} }}"', # data dependent + chunk_sizes_output: '"{{ {{16,16,16}}, {{16,16,16}}, {{16,16,16}}, {{16,16,16}} }}"', # data dependent # subsampling_output: '"{{ {{1,1,1}}, {{2,2,2}} }}"', # chunk_sizes_output: '"{{ {{16,16,16}}, {{16,16,16}} }}"', bsh_file_define: "define_output.bsh",