def require_deep_gray_matter_mask(config, section, config_vars, stack, verbose=0): """Create deep gray matter mask from segmentation if none provided.""" deep_gray_matter_mask = config.get(section, 'deep_gray_matter_mask', vars=config_vars) if os.path.isfile(deep_gray_matter_mask): return deep_gray_matter_mask if verbose > 0: print("Creating deep gray matter mask from segmentation image") segmentation = config.get(section, 'input_tissues_image', vars=config_vars) if not os.path.isfile(segmentation): segmentation = config.get(section, 'input_labels_image', vars=config_vars) if not segmentation or not os.path.isfile(segmentation): raise Exception("Input brain segmentation required") neoctx.binarize(name=deep_gray_matter_mask, segmentation=segmentation, labels=get_labels(config, section, 'deep_gray_matter_labels'), image=config.get(section, 'brain_mask', vars=config_vars), temp=config.get(section, 'temp_dir', vars=config_vars)) if stack: return neoctx.push_output(stack, deep_gray_matter_mask) else: return deep_gray_matter_mask
def require_brain_mask(config, section, config_vars, stack, verbose=0, keep_regions_mask=False): """Resample input brain mask to standard RAS space.""" brain_mask = config.get(section, 'brain_mask', vars=config_vars) if os.path.isfile(brain_mask): return brain_mask require_input_brain_mask(config, section, config_vars, stack, verbose) if keep_regions_mask: require_regions_mask(config, section, config_vars, None, verbose) else: require_regions_mask(config, section, config_vars, stack, verbose) if verbose > 0: print("Resampling brain mask to standard RAS space") neoctx.binarize(name=brain_mask, segmentation=config.get(section, 'input_brain_mask', vars=config_vars), image=config.get(section, 'regions_mask', vars=config_vars), threshold=0, temp=config.get(section, 'temp_dir', vars=config_vars)) if stack: brain_mask = neoctx.push_output(stack, brain_mask) neoctx.run('close-image', args=[brain_mask, brain_mask], opts={'iterations': 5}) return brain_mask
def optional_corpus_callosum_mask(config, section, config_vars, stack, verbose=0): """Create corpus callosum mask from segmentation if none provided.""" corpus_callosum_mask = config.get(section, 'corpus_callosum_mask', vars=config_vars) if os.path.isfile(corpus_callosum_mask): return corpus_callosum_mask if verbose > 0: print("Creating corpus callosum mask from segmentation image") segmentation = config.get(section, 'input_labels_image', vars=config_vars) if segmentation and os.path.isfile(segmentation): require_brain_mask(config, section, config_vars, stack, verbose) neoctx.binarize(name=corpus_callosum_mask, segmentation=segmentation, labels=get_labels(config, section, 'corpus_callosum_labels'), image=config.get(section, 'brain_mask', vars=config_vars), temp=config.get(section, 'temp_dir', vars=config_vars)) if stack: return neoctx.push_output(stack, corpus_callosum_mask) else: return corpus_callosum_mask else: return None
def require_input_brain_mask(config, section, config_vars, stack, verbose=0): """Create brain mask from segmentation if none provided.""" input_brain_mask = config.get(section, 'input_brain_mask', vars=config_vars) if os.path.isfile(input_brain_mask): return input_brain_mask if verbose > 0: print("Creating brain mask from segmentation image") segmentation = config.get(section, 'input_labels_image', vars=config_vars) if not segmentation or not os.path.isfile(segmentation): segmentation = config.get(section, 'input_tissues_image', vars=config_vars) if not segmentation or not os.path.isfile(segmentation): raise Exception("Input brain segmentation required") neoctx.binarize( name=input_brain_mask, segmentation=segmentation, temp=config.get(section, 'temp_dir', vars=config_vars) ) return neoctx.push_output(stack, input_brain_mask)