自迁移出 MediaWiki 以来,本页内容尚未经过审查。如果您愿意帮忙,请查看帮助指南!
概述
除了斐济菜单中通过Plugins › BigStitcher › Batch Processing提供的主要应用程序之外,我们还在Plugins › BigStitcher › BigStitcher菜单下提供大部分处理步骤的宏可录制版本。
处理步骤的批处理版本的操作本质上与主应用程序中的操作相同,但具有更基本的 UI,仅在执行处理步骤之前询问参数。
多视图重建步骤的宏脚本版本可以在斐济菜单中找到:Plugins › Macros › Record…
示例:记录处理步骤
在斐济中单击 Plugins › Multiview Reconstruction › Batch Processing 将调出宏记录器,将在斐济中执行的大部分操作编译为可执行脚本。
在下面的示例中,我们执行了 BigStitcher 的以下宏可录制步骤:
- 导入数据集(可用[here](/plugins/bigstitcher#3D_multi-tile_dataset_(123_MB))),将图块排列成规则网格将数据重新保存为HDF5。
- 通过相位相关执行形成对升降计算,通过相关系数阈值过滤链接并全局优化对齐。
- 融合图块把结果保存为 TIFF
单击宏记录器中的 生成 将弹出 Fiji 脚本编辑器,其中包含包含录制命令的新脚本。您可以保存或运行创建的脚本。
示例:修改和调用宏
单击“生成”后生成的宏再次对同一数据集执行相同的步骤。通过向脚本提供一些参数作为参数字符串将它们替换到记录的命令中,可以生成用于 BigStitcher 的无头批量操作的脚本。
在下面的示例中,用户可以传递以下形式的参数字符串
` /path/to/data num_tiles_x num_tiles_x`
无头处理具有另一个不同数量图块的数据集: // read dataset path, number of tiles as commandline arguments args = getArgument() args = split(args, “ “);
basePath = args[0];
if (!endsWith(basePath, File.separator))
{
basePath = basePath + File.separator;
}
tilesX = args[1];
tilesY = args[2];
// define dataset
run("Define dataset ...",
"define_dataset=[Automatic Loader (Bioformats based)]" +
" project_filename=dataset.xml path=" + basePath + "C*-7*.tif exclude=10" +
" pattern_0=Channels pattern_1=Tiles modify_voxel_size? voxel_size_x=1.0000" +
" voxel_size_y=1.0000 voxel_size_z=2 voxel_size_unit=pixels " +
"move_tiles_to_grid_(per_angle)?=[Move Tile to Grid (Macro-scriptable)] grid_type=[Snake: Right & Down ]" +
" tiles_x="+tilesX+" tiles_y="+tilesY+" tiles_z=1 overlap_x_(%)=10 overlap_y_(%)=10 overlap_z_(%)=10" +
" keep_metadata_rotation how_to_load_images=[Re-save as multiresolution HDF5] " +
"dataset_save_path=/Volumes/davidh-ssd/bigstitcher-example-data/grid-3d check_stack_sizes " +
"subsampling_factors=[{ {1,1,1}, {2,2,2} }] hdf5_chunk_sizes=[{ {16,16,16}, {16,16,16} }] " +
"timepoints_per_partition=1 setups_per_partition=0 use_deflate_compression " +
"export_path=" + basePath + "dataset");
// calculate pairwise shifts
run("Calculate pairwise shifts ...",
"select="+basePath+"dataset.xml process_angle=[All angles] process_channel=[All channels]" +
" process_illumination=[All illuminations] process_tile=[All tiles] process_timepoint=[All Timepoints]" +
" method=[Phase Correlation] channels=[Average Channels] downsample_in_x=2 downsample_in_y=2 downsample_in_z=2");
// filter shifts with 0.7 corr. threshold
run("Filter pairwise shifts ...",
"select="+basePath+"dataset.xml filter_by_link_quality min_r=0.7 max_r=1 " +
"max_shift_in_x=0 max_shift_in_y=0 max_shift_in_z=0 max_displacement=0");
// do global optimization
run("Optimize globally and apply shifts ...",
"select="+basePath+"dataset.xml process_angle=[All angles] process_channel=[All channels] " +
"process_illumination=[All illuminations] process_tile=[All tiles] process_timepoint=[All Timepoints]" +
" relative=2.500 absolute=3.500 global_optimization_strategy=" +
"[Two-Round using Metadata to align unconnected Tiles] fix_group_0-0,");
// fuse dataset, save as TIFF
run("Fuse dataset ...",
"select="+basePath+"dataset.xml process_angle=[All angles] process_channel=[All channels] " +
"process_illumination=[All illuminations] process_tile=[All tiles] process_timepoint=[All Timepoints]" +
" bounding_box=[All Views] downsampling=1 pixel_type=[16-bit unsigned integer] interpolation=[Linear Interpolation]" +
" image=[Precompute Image] blend produce=[Each timepoint & channel] fused_image=[Save as (compressed) TIFF stacks] " +
"output_file_directory=" + basePath);
// quit after we are finished
eval("script", "System.exit(0);"); 保存宏后,可以通过以 [Headless](/learn/headless) 模式启动 Fiji 并传递宏和参数字符串,从任何终端运行它。
` /path/to/Fiji/fiji –headless -macro /path/to/macro/bigStitcherBatch.ijm “/path/to/data 2 3”`