예제 #1
0
def set_config_scoring_functions(config, params):
    """processing scoring function specific stuff"""
    def set_scaling(section):
        try:
            params[section]['scaling'] = ('scaling_const',
                                          config.getfloat(section, 'scaling_const'))
            return
        except:
            pass
        try:
            params[section]['scaling'] = ('scaling_rvec', config.get(section, 'scaling_rvec'))
        except:
            raise Exception("no scaling found for section '%s'" % section)

    ids = [section for section in config.sections()
           if section not in {'General', 'Scoring', 'Membership'}]

    for id in ids:
        params[id] = {}
        for option, value in config.items(id):
            if option == 'schedule':
                params[id]['schedule'] = make_schedule(value)
            elif option.startswith('scaling_'):
                set_scaling(id)
            else:
                params[id][option] = value
예제 #2
0
def set_config_scoring_functions(config, params):
    """processing scoring function specific stuff"""

    def set_scaling(section):
        try:
            params[section]["scaling"] = ("scaling_const", config.getfloat(section, "scaling_const"))
            return
        except:
            pass
        try:
            params[section]["scaling"] = ("scaling_rvec", config.get(section, "scaling_rvec"))
        except:
            raise Exception("no scaling found for section '%s'" % section)

    ids = [section for section in config.sections() if section not in {"General", "Scoring", "Membership"}]

    for id in ids:
        params[id] = {}
        for option, value in config.items(id):
            if option == "schedule":
                params[id]["schedule"] = make_schedule(value)
            elif option.startswith("scaling_"):
                set_scaling(id)
            else:
                params[id][option] = value
예제 #3
0
def set_config(cmonkey_run, config):
    def set_scaling(section, prefix):
        try:
            cmonkey_run[prefix + 'scaling_const'] = config.getfloat(section, 'scaling_const')
            return
        except:
            pass
        try:
            cmonkey_run[prefix + 'scaling_rvec'] = config.get(section, 'scaling_rvec')
        except:
            raise Exception("no scaling found for section '%s'" % section)

    # override directories
    tmp_dir = config.get('General', 'tmp_dir')
    if tmp_dir:
        tempfile.tempdir = tmp_dir
    cmonkey_run['output_dir'] = config.get('General', 'output_dir')
    cmonkey_run['cache_dir'] = config.get('General', 'cache_dir')

    cmonkey_run['num_iterations'] = config.getint("General", "num_iterations")
    cmonkey_run['start_iteration'] = config.getint("General", "start_iteration")
    cmonkey_run['out_database'] = os.path.join(cmonkey_run['output_dir'],
                                               config.get("General", "dbfile_name"))
    cmonkey_run['multiprocessing'] = config.getboolean('General', 'use_multiprocessing')
    cmonkey_run['postadjust'] = config.getboolean('General', 'postadjust')
    cmonkey_run['log_subresults'] = config.getboolean('General', 'log_subresults')
    cmonkey_run['add_fuzz'] = config.get('General', 'add_fuzz')
    cmonkey_run['checkpoint_interval'] = config.getint('General', 'checkpoint_interval')
    try:
        cmonkey_run['random_seed'] = config.getint('General', 'random_seed')
    except:
        cmonkey_run['random_seed'] = None

    # Quantile normalization is false by default in cMonkey-R
    cmonkey_run['quantile_normalize'] = config.getboolean('Scoring', 'quantile_normalize')
    # membership default parameters
    cmonkey_run['memb.min_cluster_rows_allowed'] = config.getint('Membership', 'min_cluster_rows_allowed')
    cmonkey_run['memb.max_cluster_rows_allowed'] = config.getint('Membership', 'max_cluster_rows_allowed')
    cmonkey_run['memb.prob_row_change'] = config.getfloat('Membership', 'probability_row_change')
    cmonkey_run['memb.prob_col_change'] = config.getfloat('Membership', 'probability_column_change')
    cmonkey_run['memb.max_changes_per_row'] = config.getint('Membership', 'max_changes_per_row')
    cmonkey_run['memb.max_changes_per_col'] = config.getint('Membership', 'max_changes_per_column')

    cmonkey_run['sequence_types'] = config.get('Motifs', 'sequence_types').split(',')
    cmonkey_run['search_distances'] = {}
    cmonkey_run['scan_distances'] = {}
    for seqtype in cmonkey_run['sequence_types']:
        cat = "SequenceType-%s" % seqtype
        cmonkey_run['search_distances'][seqtype] = tuple(
            map(int, config.get(cat, 'search_distance').split(',')))
        cmonkey_run['scan_distances'][seqtype] = tuple(
            map(int, config.get(cat, 'scan_distance').split(',')))

    cmonkey_run['row_schedule'] = make_schedule(config.get("Rows", "schedule"))
    cmonkey_run['column_schedule'] = make_schedule(config.get("Columns", "schedule"))
    cmonkey_run['meme_schedule'] = make_schedule(config.get("MEME", "schedule"))
    cmonkey_run['motif_schedule'] = make_schedule(config.get("Motifs", "schedule"))
    cmonkey_run['network_schedule'] = make_schedule(config.get("Networks", "schedule"))

    cmonkey_run['stats_freq'] = config.getint('General', 'stats_frequency')
    cmonkey_run['result_freq'] = config.getint('General', 'result_frequency')

    # parse the scalings
    set_scaling('Motifs', 'motif_')
    set_scaling('Rows', 'row_')
    set_scaling('Networks', 'network_')

    try:
        cmonkey_run['nmotifs_rvec'] = config.get('MEME', 'nmotifs_rvec')
    except:
        raise Exception("no setting found to retrieve the MEME nmotifs function")
예제 #4
0
def set_config(cmonkey_run, config):
    def set_scaling(section, prefix):
        try:
            cmonkey_run[prefix + 'scaling_const'] = config.getfloat(
                section, 'scaling_const')
            return
        except:
            pass
        try:
            cmonkey_run[prefix + 'scaling_rvec'] = config.get(
                section, 'scaling_rvec')
        except:
            raise Exception("no scaling found for section '%s'" % section)

    # override directories
    tmp_dir = config.get('General', 'tmp_dir')
    if tmp_dir:
        tempfile.tempdir = tmp_dir
    cmonkey_run['output_dir'] = config.get('General', 'output_dir')
    cmonkey_run['cache_dir'] = config.get('General', 'cache_dir')

    cmonkey_run['num_iterations'] = config.getint("General", "num_iterations")
    cmonkey_run['start_iteration'] = config.getint("General",
                                                   "start_iteration")
    cmonkey_run['out_database'] = os.path.join(
        cmonkey_run['output_dir'], config.get("General", "dbfile_name"))
    cmonkey_run['multiprocessing'] = config.getboolean('General',
                                                       'use_multiprocessing')
    cmonkey_run['postadjust'] = config.getboolean('General', 'postadjust')
    cmonkey_run['log_subresults'] = config.getboolean('General',
                                                      'log_subresults')
    cmonkey_run['add_fuzz'] = config.get('General', 'add_fuzz')
    cmonkey_run['checkpoint_interval'] = config.getint('General',
                                                       'checkpoint_interval')
    try:
        cmonkey_run['random_seed'] = config.getint('General', 'random_seed')
    except:
        cmonkey_run['random_seed'] = None

    # Quantile normalization is false by default in cMonkey-R
    cmonkey_run['quantile_normalize'] = config.getboolean(
        'Scoring', 'quantile_normalize')
    # membership default parameters
    cmonkey_run['memb.min_cluster_rows_allowed'] = config.getint(
        'Membership', 'min_cluster_rows_allowed')
    cmonkey_run['memb.max_cluster_rows_allowed'] = config.getint(
        'Membership', 'max_cluster_rows_allowed')
    cmonkey_run['memb.prob_row_change'] = config.getfloat(
        'Membership', 'probability_row_change')
    cmonkey_run['memb.prob_col_change'] = config.getfloat(
        'Membership', 'probability_column_change')
    cmonkey_run['memb.max_changes_per_row'] = config.getint(
        'Membership', 'max_changes_per_row')
    cmonkey_run['memb.max_changes_per_col'] = config.getint(
        'Membership', 'max_changes_per_column')

    cmonkey_run['sequence_types'] = config.get('Motifs',
                                               'sequence_types').split(',')
    cmonkey_run['search_distances'] = {}
    cmonkey_run['scan_distances'] = {}
    for seqtype in cmonkey_run['sequence_types']:
        cat = "SequenceType-%s" % seqtype
        cmonkey_run['search_distances'][seqtype] = tuple(
            map(int,
                config.get(cat, 'search_distance').split(',')))
        cmonkey_run['scan_distances'][seqtype] = tuple(
            map(int,
                config.get(cat, 'scan_distance').split(',')))

    cmonkey_run['row_schedule'] = make_schedule(config.get("Rows", "schedule"))
    cmonkey_run['column_schedule'] = make_schedule(
        config.get("Columns", "schedule"))
    cmonkey_run['meme_schedule'] = make_schedule(config.get(
        "MEME", "schedule"))
    cmonkey_run['motif_schedule'] = make_schedule(
        config.get("Motifs", "schedule"))
    cmonkey_run['network_schedule'] = make_schedule(
        config.get("Networks", "schedule"))

    cmonkey_run['stats_freq'] = config.getint('General', 'stats_frequency')
    cmonkey_run['result_freq'] = config.getint('General', 'result_frequency')

    # parse the scalings
    set_scaling('Motifs', 'motif_')
    set_scaling('Rows', 'row_')
    set_scaling('Networks', 'network_')

    try:
        cmonkey_run['nmotifs_rvec'] = config.get('MEME', 'nmotifs_rvec')
    except:
        raise Exception(
            "no setting found to retrieve the MEME nmotifs function")