From 3debfb9dcc0e5e197c8921ed50323e1c40446d9d Mon Sep 17 00:00:00 2001 From: Christopher Schmied <schmied@mpi-cbg.de> Date: Wed, 15 Jul 2015 18:14:48 +0200 Subject: [PATCH] Started to LOCI Bioformats opener for .tif files Automatic reading of calibration from .tif files --- spim_registration/timelapse/Snakefile | 1 + spim_registration/timelapse/define_czi.bsh | 4 -- .../timelapse/define_tif_zip.bsh | 67 +++++++++++++------ spim_registration/timelapse/single.yaml | 20 +++--- 4 files changed, 56 insertions(+), 36 deletions(-) mode change 100644 => 100755 spim_registration/timelapse/define_tif_zip.bsh diff --git a/spim_registration/timelapse/Snakefile b/spim_registration/timelapse/Snakefile index 11a8765..6351d4a 100755 --- a/spim_registration/timelapse/Snakefile +++ b/spim_registration/timelapse/Snakefile @@ -77,6 +77,7 @@ rule define_xml_tif: -Dchannels={channels} \ -Dillumination={illumination} \ -Dimage_file_pattern={image_file_pattern} \ + -Dmanual_calibration_tif={manual_calibration_tif} \ -Dpixel_distance_x={pixel_distance_x} \ -Dpixel_distance_y={pixel_distance_y} \ -Dpixel_distance_z={pixel_distance_z} \ diff --git a/spim_registration/timelapse/define_czi.bsh b/spim_registration/timelapse/define_czi.bsh index da8ea05..532b0d6 100755 --- a/spim_registration/timelapse/define_czi.bsh +++ b/spim_registration/timelapse/define_czi.bsh @@ -174,10 +174,6 @@ IJ.run("Define Multi-View Dataset", modify_calibration + "modify_rotation_axis " + 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 + " " + "rotation_around=" + rotation_around + ""); } catch ( e ) { diff --git a/spim_registration/timelapse/define_tif_zip.bsh b/spim_registration/timelapse/define_tif_zip.bsh old mode 100644 new mode 100755 index a5f4015..8108d62 --- a/spim_registration/timelapse/define_tif_zip.bsh +++ b/spim_registration/timelapse/define_tif_zip.bsh @@ -109,20 +109,46 @@ if (illumination.equalsIgnoreCase("")) System.out.println( "Illuminations = " + illum_string ); +// Calibaration // Calibaration System.out.println("========================================================="); System.out.println("Calibration:"); -float pixel_distance_x = Float.parseFloat( System.getProperty( "pixel_distance_x" ) ); -float pixel_distance_y = Float.parseFloat( System.getProperty( "pixel_distance_y" ) ); -float pixel_distance_z = Float.parseFloat( System.getProperty( "pixel_distance_z" ) ); -pixel_unit = System.getProperty( "pixel_unit" ); +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 ); +} -System.out.println( "pixel_distance_x = " + pixel_distance_x ); -System.out.println( "pixel_distance_y = " + pixel_distance_y ); -System.out.println( "pixel_distance_z = " + pixel_distance_z ); -System.out.println( "pixel_unit = " + pixel_unit ); +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 + "] " + @@ -135,16 +161,14 @@ System.out.println("Define Multi-View Dataset , type_of_dataset=[" + type_of_dat channel_string + illum_string + "acquisition_angles_=" + acquisition_angles + " " + - "calibration_type=[Same voxel-size for all views] calibration_definition=[User define voxel-size(s)]" + " " + - "imglib2_data_container=[" + imglib_container + "] " + - "pixel_distance_x=" + pixel_distance_x + " " + - "pixel_distance_y=" + pixel_distance_y + " " + - "pixel_distance_z=" + pixel_distance_z + " " + - "pixel_unit=" + pixel_unit + ""); + "calibration_type=[Same voxel-size for all views] " + + modify_calibration + + "imglib2_data_container=[" + imglib_container + "]" + + manual_calibration_string + + ""); // Executes Fiji plugin -System.out.println("========================================================="); -System.out.println("Start plugin:"); + try { IJ.run("Define Multi-View Dataset", "type_of_dataset=[" + type_of_dataset + "] " + @@ -159,12 +183,11 @@ IJ.run("Define Multi-View Dataset", channel_string + illum_string + "acquisition_angles_=" + angles + " " + - "calibration_type=[Same voxel-size for all views] calibration_definition=[User define voxel-size(s)]" + " " + - "imglib2_data_container=[" + imglib_container + "] " + - "pixel_distance_x=" + pixel_distance_x + " " + - "pixel_distance_y=" + pixel_distance_y + " " + - "pixel_distance_z=" + pixel_distance_z + " " + - "pixel_unit=" + pixel_unit + ""); + "calibration_type=[Same voxel-size for all views] " + + modify_calibration + + "imglib2_data_container=[" + imglib_container + "]" + + manual_calibration_string + + ""); } catch ( e ) { diff --git a/spim_registration/timelapse/single.yaml b/spim_registration/timelapse/single.yaml index d6eef5f..2275fa9 100755 --- a/spim_registration/timelapse/single.yaml +++ b/spim_registration/timelapse/single.yaml @@ -52,7 +52,7 @@ common: { # ============================================================================ ntimepoints: 72, # number of timepoints of dataset angles: "0,72,144,216,288", # angles - channels: "green", # channels + channels: "green", # channels, for tif numeric! illumination: "0", # illuminations # ---------------------------------------------------------------------------- # For .czi datasets @@ -61,14 +61,10 @@ common: { # ---------------------------------------------------------------------------- # For .tif datasets # file pattern of .tif files: - # for multi channel give spim_TL{tt}_Angle{a}_Channel{c}.tif + # for multi channel with one file per channel give spim_TL{tt}_Angle{a}_Channel{c}.tif # for padded zeros use tt - # specify calibration image_file_pattern: 'img_TL{{t}}_Angle{{a}}.tif', - pixel_distance_x: '0.285901069641113', # Manual calibration x - pixel_distance_y: '0.285901069641113', # Manual calibration y - pixel_distance_z: '1.500000000000000', # Manual calibration z - pixel_unit: "um", # unit of manual calibration + multiple_channels: '"NO (one channel)"', # '"YES (all channels in one file)"' or '"YES (one file per channel)"' or '"NO (one channel)"' # ============================================================================ # Detection and registration # @@ -187,7 +183,7 @@ common: { # ============================================================================ define_xml_czi: { - manual_calibration_czi: "Yes", # calibration override: No or Yes + manual_calibration_czi: "No", # calibration override: No or Yes czi_pixel_distance_x: '0.285901069641113', # Manual calibration x czi_pixel_distance_y: '0.285901069641113', # Manual calibration y czi_pixel_distance_z: '1.500000000000000', # Manual calibration z @@ -198,10 +194,14 @@ define_xml_czi: { define_xml_tif: { # Settings for ImageJ Opener - type_of_dataset: '"Image Stacks (ImageJ Opener)"', + manual_calibration_tif: "No", # calibration override: No or Yes + pixel_distance_x: '0.285901069641113', # Manual calibration x + pixel_distance_y: '0.285901069641113', # Manual calibration y + pixel_distance_z: '1.500000000000000', # Manual calibration z + pixel_unit: "um", # unit of manual calibration + type_of_dataset: '"Image Stacks (LOCI Bioformats)"', # '"Image Stacks (ImageJ Opener)"' or '"Image Stacks (LOCI Bioformats)"' multiple_timepoints: '"YES (one file per time-point)"', # or NO (one time-point) multiple_angles: '"YES (one file per angle)"', # or NO (one angle) - multiple_channels: '"NO (one channel)"', # or "\"NO (one channel)\"" multiple_illumination_directions: '"NO (one illumination direction)"', # or YES (one file per illumination direction) imglib_container: '"ArrayImg (faster)"', # '"ArrayImg (faster)"' bsh_file: "define_tif_zip.bsh" -- GitLab