def main(args): parser = parsefn() subj_dir, img, seg, gap, tile, alpha, ax, roi, flip, min_sl, out = parse_inputs( parser, args) # pred preprocess dir pred_dir = '%s/pred_process' % os.path.abspath(subj_dir) if not os.path.exists(pred_dir): os.mkdir(pred_dir) # trim seg to focus c3 = C3d() mosaic_slicer = CreateTiledMosaic() if seg: c3.inputs.in_file = seg c3.inputs.args = "-trim %sx%sx%svox" % (roi, roi, roi) seg_trim_file = "%s/%s_trim_mosaic.nii.gz" % ( pred_dir, os.path.basename(seg).split('.')[0]) # seg_trim_file = "seg_trim.nii.gz" c3.inputs.out_file = seg_trim_file c3.run() # trim struct like seg c3.inputs.in_file = seg_trim_file c3.inputs.args = "%s -reslice-identity" % img struct_trim_file = "%s/%s_trim_mosaic.nii.gz" % ( pred_dir, os.path.basename(img).split('.')[0]) # struct_trim_file = "struct_trim.nii.gz" c3.inputs.out_file = struct_trim_file c3.run() # create rgb image from seg converter = ConvertScalarImageToRGB() converter.inputs.dimension = 3 converter.inputs.input_image = seg_trim_file converter.inputs.colormap = 'jet' converter.inputs.minimum_input = 0 converter.inputs.maximum_input = 10 out_rgb = "%s/%s_trim_rgb.nii.gz" % ( pred_dir, os.path.basename(seg).split('.')[0]) converter.inputs.output_image = out_rgb converter.run() mosaic_slicer.inputs.rgb_image = out_rgb mosaic_slicer.inputs.mask_image = seg_trim_file mosaic_slicer.inputs.alpha_value = alpha else: struct_trim_file = img mosaic_slicer.inputs.rgb_image = struct_trim_file # stretch and clip intensities c3.inputs.in_file = struct_trim_file c3.inputs.args = "-stretch 2% 98% 0 255 -clip 0 255" c3.inputs.out_file = struct_trim_file c3.run() # slices to show if gap == 1: max_sl = 100 elif gap == 2: max_sl = 220 elif gap == 5: max_sl = 275 else: max_sl = 300 slices = '[%s,%s,%s]' % (gap, min_sl, max_sl) mosaic_slicer.inputs.input_image = struct_trim_file mosaic_slicer.inputs.output_image = out mosaic_slicer.inputs.direction = ax # mosaic_slicer.inputs.pad_or_crop = '[ -15x -50 , -15x -30 ,0]' mosaic_slicer.inputs.tile_geometry = tile mosaic_slicer.inputs.slices = slices mosaic_slicer.inputs.flip_slice = flip mosaic_slicer.terminal_output = "none" mosaic_slicer.run()