def mapper_from_yaml(yamlfilename): import yaml ydict = yaml.load(open(yamlfilename, 'rt')) ybins = ydict['bins'] from westpa.core._rc import bins_from_yaml_dict #return mapper_from_dict(ybins) return bins_from_yaml_dict(ybins)
def __init__(self, sim_manager, plugin_config): if not sim_manager.work_manager.is_master: return self.sim_manager = sim_manager self.data_manager = sim_manager.data_manager self.system = sim_manager.system self.work_manager = sim_manager.work_manager self.do_reweight = check_bool( plugin_config.get('do_reweighting', False)) self.windowsize = 0.5 self.windowtype = 'fraction' windowsize = plugin_config.get('window_size') if windowsize is not None: if isinstance(windowsize, float): self.windowsize = windowsize self.windowtype = 'fraction' if self.windowsize <= 0 or self.windowsize > 1: raise ValueError( 'WESS parameter error -- fractional window size must be in (0,1]' ) elif isinstance(windowsize, int): self.windowsize = int(windowsize) self.windowtype = 'fixed' else: raise ValueError( 'WESS parameter error -- invalid window size {!r}'.format( windowsize)) log.info('using window size of {!r} ({})'.format( self.windowsize, self.windowtype)) self.max_windowsize = plugin_config.get('max_window_size') if self.max_windowsize is not None: log.info('Using max windowsize of {:d}'.format( self.max_windowsize)) self.reweight_period = plugin_config.get('reweight_period', 0) self.priority = plugin_config.get('priority', 0) self.rate_calc_queue_size = plugin_config.get('rate_calc_queue_size', 1) self.rate_calc_n_blocks = plugin_config.get('rate_calc_n_blocks', 1) bin_obj = plugin_config.get('bins', None) if isinstance(bin_obj, dict): bin_obj = bins_from_yaml_dict(bin_obj) self.bin_mapper = bin_obj if self.do_reweight: sim_manager.register_callback(sim_manager.prepare_new_iteration, self.prepare_new_iteration, self.priority) self.write_matrices = plugin_config.get('write_matrices', False)
def load_config_from_west(self, scheme): try: config = westpa.rc.config['west']['analysis'] except: raise ValueError('There is no configuration file specified.') ystates = config['analysis_schemes'][scheme]['states'] self.states_from_dict(ystates) try: self.subsample = config['subsample'] except: pass from westpa.core._rc import bins_from_yaml_dict self.binning.mapper = bins_from_yaml_dict(config['analysis_schemes'][scheme]['bins'][0]) path = os.path.join(os.getcwd(), config['directory'], scheme) try: os.mkdir(config['directory']) os.mkdir(path) except: pass self.output_filename = os.path.join(path, 'assign.h5')