def _run_interface(self, runtime): inputnode = niu.IdentityInterface( fields=['intensity_image', 'mask_image']) inputnode.iterables = ('intensity_image', self.inputs.intensity_images) intensity_nii_list = [] for f in self.inputs.intensity_images: mult = Math() mult.inputs.input_files = [f, self.inputs.mask_image] mult.inputs.output_file = os.getcwd() + os.sep + os.path.basename( os.path.splitext(f)[0]) + "_brain.mnc" mult.inputs.calc_mul = True mult.run() intensity_mnc2nii_sh = mnc2nii_shCommand() intensity_mnc2nii_sh.inputs.in_file = mult.inputs.output_file intensity_mnc2nii_sh.run() intensity_nii_list += [intensity_mnc2nii_sh.inputs.out_file] mask_mnc2nii_sh = mnc2nii_shCommand() mask_mnc2nii_sh.inputs.truncate_path = True mask_mnc2nii_sh.inputs.in_file = self.inputs.mask_image mask_mnc2nii_sh.run() seg = Atropos() seg.inputs.dimension = self.inputs.dimension seg.inputs.intensity_images = intensity_nii_list seg.inputs.mask_image = mask_mnc2nii_sh.inputs.out_file seg.inputs.initialization = self.inputs.initialization seg.inputs.prior_probability_images = self.inputs.prior_probability_images seg.inputs.number_of_tissue_classes = self.inputs.number_of_tissue_classes seg.inputs.prior_weighting = self.inputs.prior_weighting seg.inputs.prior_probability_threshold = self.inputs.prior_probability_threshold seg.inputs.likelihood_model = self.inputs.likelihood_model seg.inputs.mrf_smoothing_factor = self.inputs.mrf_smoothing_factor seg.inputs.mrf_radius = self.inputs.mrf_radius seg.inputs.icm_use_synchronous_update = self.inputs.icm_use_synchronous_update seg.inputs.maximum_number_of_icm_terations = self.inputs.maximum_number_of_icm_terations seg.inputs.convergence_threshold = self.inputs.convergence_threshold seg.inputs.posterior_formulation = self.inputs.posterior_formulation seg.inputs.use_random_seed = self.inputs.use_random_seed seg.inputs.use_mixture_model_proportions = self.inputs.use_mixture_model_proportions seg.inputs.out_classified_image_name = self.inputs.out_classified_image_name seg.inputs.save_posteriors = self.inputs.save_posteriors seg.inputs.output_posteriors_name_template = self.inputs.output_posteriors_name_template print(seg.cmdline) seg.run() seg.outputs = seg._list_outputs() #seg._outputs() classified_nii2mnc_sh = nii2mnc2Command() classified_nii2mnc_sh.inputs.in_file = seg.outputs["classified_image"] classified_nii2mnc_sh.inputs.truncate_path = True classified_nii2mnc_sh.run() self.inputs.classified_image = classified_nii2mnc_sh.inputs.out_file return (runtime)
def _run_interface(self, runtime): mnc2nii_sh = pe.Node(interface=mnc2nii_shCommand(), name="mnc2nii_sh") nii2mnc_sh = pe.Node(interface=nii2mnc_shCommand(), name="nii2mnc_sh") reg = pe.Node(interface=Registration(), name="registration") mnc2nii_sh.inputs.in_file = self.inputs.moving_image mnc2nii_sh.run() mnc2nii_sh_nodes = [] inputs = [ "fixed_image", "fixed_image_mask", "fixed_image_mask", "fixed_image_mask", "moving_image", "moving_image_mask", "moving_image_masks" ] self_inputs = [ self.inputs.fixed_image, self.inputs.fixed_image_mask, self.inputs.fixed_image_mask, self.inputs.fixed_image_mask, self.inputs.moving_image, self.inputs.moving_image_mask, self.inputs.moving_image_masks ] reg_inputs = [ reg.inputs.fixed_image, reg.inputs.fixed_image_mask, reg.inputs.fixed_image_mask, reg.inputs.fixed_image_mask, reg.inputs.moving_image, reg.inputs.moving_image_mask, reg.inputs.moving_image_masks ] for s, r, i in zip(self_inputs, reg_inputs, inputs): if isdefined(s): mnc2nii_sh = pe.Node(interface=mnc2nii_shCommand(), name="mnc2nii_sh_" + i, in_file=self.inputs.fixed_image) mnc2nii_sh.run() r = mnc2nii_sh.out_file if isdefined(self.inputs.dimension): reg.inputs.dimension = self.inputs.dimension if isdefined(self.inputs.save_state): reg.inputs.save_state = self.inputs.save_state if isdefined(self.inputs.restore_state): reg.inputs.restore_state = self.inputs.restore_state if isdefined(self.inputs.initial_moving_transform): reg.inputs.initial_moving_tr = self.inputs.initial_moving_tr if isdefined(self.inputs.invert_initial_moving_transform): reg.inputs.invert_initial_moving_tr = self.inputs.invert_initial_moving_tr if isdefined(self.inputs.initial_moving_transform_com): reg.inputs.initial_moving_transform_com = self.inputs.initial_moving_transform_com if isdefined(self.inputs.metric_item_trait): reg.inputs.metric_item_trait = self.inputs.metric_item_trait if isdefined(self.inputs.metric_stage_trait): reg.inputs.metric_stage_trait = self.inputs.metric_stage_trait if isdefined(self.inputs.metric): reg.inputs.metric = self.inputs.metric if isdefined(self.inputs.metric_weight_item_trait): reg.inputs.metric_weight_item_trait = self.inputs.metric_weight_item_trait if isdefined(self.inputs.metric_weight_stage_trait): reg.inputs.metric_weight_stage_trait = self.inputs.metric_weight_stage_trait if isdefined(self.inputs.metric_weight): reg.inputs.metric_weight = self.inputs.metric_weight if isdefined(self.inputs.radius_bins_item_trait): reg.inputs.radius_bins_item_trait = self.inputs.radius_bins_item_trait if isdefined(self.inputs.radius_bins_stage_trait): reg.inputs.radius_bins_stage_trait = self.inputs.radius_bins_stage_trait if isdefined(self.inputs.radius_or_number_of_bins): reg.inputs.radius_or_number_of_bins = self.inputs.radius_or_number_of_bins if isdefined(self.inputs.sampling_strategy_item_trait): reg.inputs.sampling_strategy_item_trait = self.inputs.sampling_strategy_item_trait if isdefined(self.inputs.sampling_strategy_stage_trait): reg.inputs.sampling_strategy_stage_trait = self.inputs.sampling_strategy_stage_trait if isdefined(self.inputs.sampling_strategy): reg.inputs.sampling_strategy = self.inputs.sampling_strategy if isdefined(self.inputs.sampling_percentage_item_trait): reg.inputs.sampling_percentage_item_trait = self.inputs.sampling_percentage_item_trait if isdefined(self.inputs.sampling_percentage_stage_trait): reg.inputs.sampling_percentage_stage_trait = self.inputs.sampling_percentage_stage_trait if isdefined(self.inputs.sampling_percentage): reg.inputs.sampling_percentage = self.inputs.sampling_percentage if isdefined(self.inputs.use_estimate_learning_rate_once): reg.inputs.use_estimate_learning_rate_once = self.inputs.use_estimate_learning_rate_once if isdefined(self.inputs.use_histogram_matching): reg.inputs.use_histogram_matching = self.inputs.use_histogram_matching if isdefined(self.inputs.interpolation): reg.inputs.interpolation = self.inputs.interpolation if isdefined(self.inputs.interpolation_parameters): reg.inputs.interpolation_parameters = self.inputs.interpolation_parameters if isdefined(self.inputs.write_composite_transform): reg.inputs.write_composite_transform = self.inputs.write_composite_transform if isdefined(self.inputs.collapse_output_transforms): reg.inputs.collapse_output_transforms = self.inputs.collapse_output_transforms if isdefined(self.inputs.initialize_transforms_per_stage): reg.inputs.initialize_transforms_per_stage = self.inputs.initialize_transforms_per_stage if isdefined(self.inputs.float): reg.inputs.float = self.inputs.float if isdefined(self.inputs.transform_parameters): reg.inputs.transform_parameters = self.inputs.transform_parameters if isdefined(self.inputs.restrict_deformation): reg.inputs.restrict_deformation = self.inputs.restrict_deformation if isdefined(self.inputs.number_of_iterations): reg.inputs.number_of_iterations = self.inputs.number_of_iterations if isdefined(self.inputs.smoothing_sigmas): reg.inputs.smoothing_sigmas = self.inputs.smoothing_sigmas if isdefined(self.inputs.sigma_units): reg.inputs.sigma_units = self.inputs.sigma_units if isdefined(self.inputs.shrink_factors): reg.inputs.shrink_factors = self.inputs.shrink_factors if isdefined(self.inputs.convergence_threshold): reg.inputs.convergence_threshold = self.inputs.convergence_threshold if isdefined(self.inputs.convergence_window_size): reg.inputs.convergence_window_size = self.inputs.convergence_window_size if isdefined(self.inputs.output_transform_prefix): reg.inputs.output_transform_prefix = self.inputs.output_transform_prefix if isdefined(self.inputs.output_warped_image): reg.inputs.output_warped_image = self.inputs.output_warped_image if isdefined(self.inputs.output_inverse_warped_image): reg.inputs.output_inverse_warped_image = self.inputs.output_inverse_warped_image if isdefined(self.inputs.winsorize_upper_quantile): reg.inputs.winsorize_upper_quantile = self.inputs.winsorize_upper_quantile if isdefined(self.inputs.winsorize_lower_quantile): reg.inputs.winsorize_lower_quantile = self.inputs.winsorize_lower_quantile if isdefined(self.inputs.verbose): reg.inputs.verbose = self.inputs.verbose reg.run() nii2mnc_sh.inputs.in_file = reg.inputs.warped_image nii2mnc_sh.run() self.outputs.warped_image = nii2mnc_sh.inputs.warped_image return (runtime)