Пример #1
0
def check_requirements(config,
                       software,
                       configFileName=None,
                       softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)
    result_dir = config.result_dir
    required_field = [
        'reference_im_fn', 'result_dir', 'selection',
        'num_of_iterations_per_level', 'num_of_levels', 'ants_params'
    ]
    pyLAR.containsRequirements(config, required_field, configFileName)
    required_software = [
        'EXE_BRAINSFit', 'EXE_AverageImages', 'EXE_antsRegistration',
        'EXE_WarpImageMultiTransform'
    ]
    pyLAR.containsRequirements(software, required_software, softwareFileName)

    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if not config.num_of_iterations_per_level >= 0:
        raise Exception(
            "'num_of_iterations_per_level' must be a positive integer (>=0).")
    if not config.num_of_levels >= 1:
        raise Exception(
            "''num_of_levels' must be a strictly positive integer (>=1).")
    if len(config.selection) < 2:
        raise Exception("'selection' must contain at least two values.")
    log.info('Results will be stored in:' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #2
0
def main(argv=None):
    """Parsing command line arguments and reading input files."""
    if argv is None:
        argv = sys.argv
    parser = argparse.ArgumentParser(prog=argv[0], description=__doc__)
    parser.add_argument('-c',
                        "--configFN",
                        required=True,
                        help="Parameter configuration file")
    parser.add_argument('-s',
                        "--configSoftware",
                        required=True,
                        help="Software configuration file")
    parser.add_argument('-a',
                        "--algorithm",
                        required=True,
                        choices=['lr', 'uab', 'nglra'],
                        help="Software configuration file")
    args = parser.parse_args(argv[1:])
    # Assign parameters from the input config txt file
    configFN = args.configFN
    config = pyLAR.loadConfiguration(configFN, 'config')
    # Load software paths from file
    configSoftware = args.configSoftware
    software = pyLAR.loadConfiguration(configSoftware, 'software')
    pyLAR.containsRequirements(config, ['file_list_file_name', 'result_dir'],
                               configFN)
    result_dir = config.result_dir
    file_list_file_name = config.file_list_file_name
    im_fns = pyLAR.readTxtIntoList(file_list_file_name)
    # 'clean' needs to be done before configuring the logger that creates a file in the output directory
    if hasattr(config, "clean") and config.clean:
        shutil.rmtree(result_dir)
    # configure logger
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    pyLAR.configure_logger(logger, config, configFN)
    try:
        pyLAR.run(args.algorithm, config, software, im_fns, result_dir,
                  configFN, configSoftware, file_list_file_name)
        val = 0
    except:
        logger.exception('Error while processing', exc_info=True)
        val = 1
    finally:
        pyLAR.close_handlers(logger)
        return val
Пример #3
0
def check_requirements(config, software, configFileName=None, softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)
    pyLAR.containsRequirements(software, ['EXE_BRAINSFit'], softwareFileName)
    required_field = ['reference_im_fn', 'result_dir', 'selection', 'lamda', 'sigma', 'registration']
    pyLAR.containsRequirements(config, required_field, configFileName)
    result_dir = config.result_dir
    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if len(config.selection) < 1:
        error_message = '\'selection\' must contain at least one value.'
        raise Exception(error_message)
    log.info('Results will be stored in: ' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #4
0
def check_requirements(config,
                       software,
                       configFileName=None,
                       softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)

    required_field = [
        'use_healthy_atlas', 'reference_im_fn', 'result_dir', 'selection',
        'lamda', 'sigma', 'num_of_iterations_per_level', 'num_of_levels',
        'registration_type'
    ]
    pyLAR.containsRequirements(config, required_field, configFileName)

    result_dir = config.result_dir
    registration_type = config.registration_type

    required_software = ['EXE_BRAINSFit']
    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if not config.use_healthy_atlas:
        required_software.append('EXE_AverageImages')
    if registration_type == 'BSpline':
        required_software.extend([
            'EXE_InvertDeformationField', 'EXE_BRAINSResample',
            'EXE_BSplineToDeformationField'
        ])
        pyLAR.containsRequirements(config, ['gridSize'], configFileName)
    elif registration_type == 'Demons':
        required_software.extend([
            'EXE_BRAINSDemonWarp', 'EXE_BRAINSResample',
            'EXE_InvertDeformationField'
        ])
    elif registration_type == 'ANTS':
        required_software.extend(
            ['EXE_antsRegistration', 'EXE_WarpImageMultiTransform'])
        pyLAR.containsRequirements(config, ['ants_params'], configFileName)
    if not config.num_of_iterations_per_level >= 0:
        raise Exception(
            'Error in configuration file: "num_of_iterations_per_level"\
         must be a positive integer (>=0).')
    if not config.num_of_levels >= 1:
        raise Exception(
            'Error in configuration file: "num_of_levels" must be a strictly positive integer (>=1).'
        )
    pyLAR.containsRequirements(software, required_software, softwareFileName)
    if len(config.selection) < 2:
        raise Exception(
            'Error in configuration file: "selection" must contain at least two values.'
        )
    log.info('Results will be stored in:' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #5
0
def main(argv=None):
    """Parsing command line arguments and reading input files."""
    if argv is None:
        argv = sys.argv
    parser = argparse.ArgumentParser(
            prog=argv[0],
            description=__doc__
    )
    parser.add_argument('-c', "--configFN", required=True, help="Parameter configuration file")
    parser.add_argument('-s', "--configSoftware", required=True, help="Software configuration file")
    parser.add_argument('-a', "--algorithm", required=True, choices=['lr', 'uab', 'nglra'],
                        help="Software configuration file")
    args = parser.parse_args(argv[1:])
    # Assign parameters from the input config txt file
    configFN = args.configFN
    config = pyLAR.loadConfiguration(configFN, 'config')
    # Load software paths from file
    configSoftware = args.configSoftware
    software = pyLAR.loadConfiguration(configSoftware, 'software')
    pyLAR.containsRequirements(config, ['file_list_file_name', 'result_dir'], configFN)
    result_dir = config.result_dir
    file_list_file_name = config.file_list_file_name
    im_fns = pyLAR.readTxtIntoList(file_list_file_name)
    # 'clean' needs to be done before configuring the logger that creates a file in the output directory
    if hasattr(config, "clean") and config.clean:
        shutil.rmtree(result_dir)
    # configure logger
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    pyLAR.configure_logger(logger, config, configFN)
    try:
        pyLAR.run(args.algorithm, config, software, im_fns, result_dir,
                  configFN, configSoftware, file_list_file_name)
        val = 0
    except:
        logger.exception('Error while processing', exc_info=True)
        val = 1
    finally:
        pyLAR.close_handlers(logger)
        return val
Пример #6
0
def check_requirements(config,
                       software,
                       configFileName=None,
                       softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)
    pyLAR.containsRequirements(software, ['EXE_BRAINSFit'], softwareFileName)
    required_field = [
        'reference_im_fn', 'result_dir', 'selection', 'lamda', 'sigma',
        'registration'
    ]
    pyLAR.containsRequirements(config, required_field, configFileName)
    result_dir = config.result_dir
    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if len(config.selection) < 1:
        error_message = '\'selection\' must contain at least one value.'
        raise Exception(error_message)
    log.info('Results will be stored in: ' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #7
0
def check_requirements(config, software, configFileName=None, softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)
    result_dir = config.result_dir
    required_field = ['reference_im_fn', 'result_dir', 'selection',
                      'num_of_iterations_per_level', 'num_of_levels', 'ants_params']
    pyLAR.containsRequirements(config, required_field, configFileName)
    required_software = ['EXE_BRAINSFit', 'EXE_AverageImages', 'EXE_antsRegistration', 'EXE_WarpImageMultiTransform']
    pyLAR.containsRequirements(software, required_software, softwareFileName)

    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if not config.num_of_iterations_per_level >= 0:
        raise Exception("'num_of_iterations_per_level' must be a positive integer (>=0).")
    if not config.num_of_levels >= 1:
        raise Exception("''num_of_levels' must be a strictly positive integer (>=1).")
    if len(config.selection) < 2:
        raise Exception("'selection' must contain at least two values.")
    log.info('Results will be stored in:' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #8
0
def check_requirements(config, software, configFileName=None, softwareFileName=None):
    """Verifying that all options and software paths are set."""
    log = logging.getLogger(__name__)

    required_field = ['use_healthy_atlas', 'reference_im_fn', 'result_dir', 'selection', 'lamda', 'sigma',
                      'num_of_iterations_per_level', 'num_of_levels', 'registration_type']
    pyLAR.containsRequirements(config, required_field, configFileName)

    result_dir = config.result_dir
    registration_type = config.registration_type

    required_software = ['EXE_BRAINSFit']
    if not hasattr(config, "histogram_matching"):
        config.histogram_matching = False
    if config.histogram_matching:
        log.info("Script will perform histogram matching.")
    if not config.use_healthy_atlas:
        required_software.append('EXE_AverageImages')
    if registration_type == 'BSpline':
        required_software.extend(['EXE_InvertDeformationField', 'EXE_BRAINSResample', 'EXE_BSplineToDeformationField'])
        pyLAR.containsRequirements(config, ['gridSize'], configFileName)
    elif registration_type == 'Demons':
        required_software.extend(['EXE_BRAINSDemonWarp', 'EXE_BRAINSResample','EXE_InvertDeformationField'])
    elif registration_type == 'ANTS':
        required_software.extend(['EXE_antsRegistration', 'EXE_WarpImageMultiTransform'])
        pyLAR.containsRequirements(config, ['ants_params'], configFileName)
    if not config.num_of_iterations_per_level >= 0:
        raise Exception('Error in configuration file: "num_of_iterations_per_level"\
         must be a positive integer (>=0).')
    if not config.num_of_levels >= 1:
        raise Exception('Error in configuration file: "num_of_levels" must be a strictly positive integer (>=1).')
    pyLAR.containsRequirements(software, required_software, softwareFileName)
    if len(config.selection) < 2:
        raise Exception('Error in configuration file: "selection" must contain at least two values.')
    log.info('Results will be stored in:' + result_dir)
    if not os.path.exists(result_dir):
        os.makedirs(result_dir)
Пример #9
0
def configure_logger(logger, config, config_file_name):
    _stream_logger(config, logger)
    pyLAR.containsRequirements(config, ['result_dir'], config_file_name)
    result_dir = config.result_dir
    _file_logger(result_dir, logger)
Пример #10
0
def configure_logger(logger, config, config_file_name):
    _stream_logger(config, logger)
    pyLAR.containsRequirements(config, ['result_dir'], config_file_name)
    result_dir = config.result_dir
    _file_logger(result_dir, logger)