Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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
Ejemplo n.º 4
0
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)