Exemplo n.º 1
0
	def __init__(self, *args, **kwargs):
		self.impose_default('capture_targets',[],**kwargs)
		self.impose_default('replicate_reduced',False,**kwargs)
		blks = args[0]
		raw = blks[0].raw + blks[1].raw
		data_block.__init__(self, *(raw,), **kwargs)
		if not hasattr(self, 'label'): self.label = kwargs['label']
		self.output = lo.output_plan(
			label = self.label + ' Output', parent = self)
		self.output.flat_data = True
		self._children_ = [self.output]
		self.output.output_plt = False
Exemplo n.º 2
0
	def __init__(self, *args, **kwargs):
		self.impose_default('parameter_space', None, **kwargs)
		self.impose_default('many_steps', 1, **kwargs)
		self.impose_default('p_sp_trajectory', [], **kwargs)
		self.impose_default('p_sp_step_factor', 1.0, **kwargs)
		self.impose_default('capture_targets', [], **kwargs)
		self.impose_default('bAbort', False, **kwargs)
		self.impose_default('brand_new', True, **kwargs)
		self.impose_default('iteration', 0, **kwargs)
		self.impose_default('auto_overwrite_key', True, **kwargs)
		self.impose_default('initial_creep_factor', 20, **kwargs)
		self.impose_default('display_frequency', 500, **kwargs)
		self.impose_default('max_sim_wait_time', 1.0, **kwargs)
		self.impose_default('last_best', 0, **kwargs)
		self.impose_default('timeouts', 0, **kwargs)
		self.impose_default('use_time_out', True, **kwargs)
		self.impose_default('use_genetics', False, **kwargs)
		self.impose_default('use_mean_fitting', False, **kwargs)
		self.impose_default('regime', 'fine', **kwargs)
		self.impose_default('valid_regimes', 
			['fine', 'coarse-magnitude', 'coarse-decimate'], **kwargs)

		self.impose_default('metrics', [], **kwargs)
		self.metrics.append(
			lgeo.metric_avg_ptwise_diff_on_domain(
				parent = self, acceptance_weight = 1.0))
		self.metrics.append(
			lgeo.metric_slope_1st_derivative(
				parent = self, acceptance_weight = 0.9))
		self.metrics.append(
			lgeo.metric_slope_2nd_derivative(
				parent = self, acceptance_weight = 0.75))
		self.metrics.append(
			lgeo.metric_slope_3rd_derivative(
				parent = self, acceptance_weight = 0.5))
		self.impose_default('metric_weights', 
				[met.acceptance_weight for met 
					in self.metrics], **kwargs)
		self.metric_rulers = [lm.differences, 
				lm.deriv_first_differences, 
				lm.deriv_second_differences, 
				lm.deriv_third_differences]
		self.impose_default('prime_metric', 0, **kwargs)
		self.prime_metric =\
			self.metric_weights.index(max(self.metric_weights))
		self.metrics[self.prime_metric].is_heaviest = True

		self.impose_default('fitted_criteria', [], **kwargs)
		self.fitted_criteria.append(lc.criterion_iteration(
					parent = self, max_iterations = 5000))
		self.fitted_criteria.append(criterion_impatient(
					parent = self, max_timeouts = 50, 
							max_last_best = 2000))

		self.impose_default('fitter_criteria', [], **kwargs)
		self.fitter_criteria.append(
			criterion_minimize_measures(parent = self))

		self.impose_default('data_to_fit_to', None, **kwargs)
		self.impose_default('input_data_file', '', **kwargs)
		self.impose_default('input_data_domain', '', **kwargs)
		self.impose_default('input_data_codomains', [], **kwargs)
		self.impose_default('input_data_targets', [], **kwargs)
		self.impose_default('input_data_aliases', {}, **kwargs)
		self.input_data_file = os.path.join(os.getcwd(), 
			'chemicallite', 'output', 'mm_fit_input.0.pkl')
			#				'imager', 'fit_data.pkl')
		#self.input_data_domain = 'time'
		#self.input_data_codomains = ['ES_Complex', 'Product', 
		#							'Substrate', 'Enzyme']
		#self.input_data_aliases = {'time':'time', 
		#		'ES_Complex mean':'ES_Complex', 
		#		'Product mean':'Product', 
		#		'Enzyme mean':'Enzyme', 
		#		'Substrate mean':'Substrate'}
		#self.input_data_codomains = ['ES_Complex', 'Product']
		#self.input_data_codomains = ['ES_Complex']
		#self.input_data_codomains = ['lacI', 'tetR', 'cl']

		if not 'visible_attributes' in kwargs.keys():
			kwargs['visible_attributes'] = None

		if not 'valid_base_classes' in kwargs.keys():
			kwargs['valid_base_classes'] =\
				valid_fit_routine_base_classes

		if not 'base_class' in kwargs.keys():
			kwargs['base_class'] = lfu.interface_template_class(
								object, 'fit routine abstract')

		lfu.modular_object_qt.__init__(self, *args, **kwargs)
		self.output = lo.output_plan(label = ' '.join(
				[self.label, 'output']), parent = self)
		#self.output.flat_data = False
		#self._children_ = [self.output] + self.metrics +\
		#	self.fitted_criteria + self.fitter_criteria
		self._children_ = [self.output]
Exemplo n.º 3
0
	def __init__(self, *args, **kwargs):
		#self.impose_default('current_tab_index', 0, **kwargs)
		#self.current_tab_index = 0
		self.aborted = False
		self.data_pool = lfu.data_container(
			data = [], postproc_data = [])
		self.data_scheme = None
		self.__dict__ = lfu.dictionary()
		if 'parent' in kwargs.keys(): self.parent = kwargs['parent']
		self.cancel_make = False
		self.skip_simulation = False
		self.mcfg_path = ''
		#self.num_trajectories = 1
		num_traj = lset.get_setting('trajectory_count')
		if num_traj: self.num_trajectories = num_traj
		else: self.num_trajectories = 1
		self.data_pool_descr = ''
		self.treebook_memory = [0, [], []]
		self._module_memory_ = []

		self.simulation_plan = simulation_plan(parent = self)
		self.output_plan = lo.output_plan(
			label = 'Simulation', parent = self)
		self.fitting_plan = lfr.fit_routine_plan(parent = self)
		self.cartographer_plan = lgeo.cartographer_plan(
				label = 'Parameter Scan', parent = self)
		self.postprocess_plan = lpp.post_process_plan(
			label = 'Post Process Plan', parent = self, 
				_always_sourceable_ = ['simulation'])
		self.multiprocess_plan = lmp.multiprocess_plan(parent = self)

		self.run_params = lfu.dictionary(parent = self)
		self.run_params['end_criteria'] = \
			self.simulation_plan.end_criteria
		self.run_params['capture_criteria'] = \
			self.simulation_plan.capture_criteria
		self.run_params['plot_targets'] = \
			self.simulation_plan.plot_targets
		self.run_params['output_plans'] = {
			'Simulation' : self.output_plan}
		self.run_params['fit_routines'] = \
				self.fitting_plan.routines
		self.run_params['post_processes'] = \
			self.postprocess_plan.post_processes
		self.run_params['p_space_map'] = None
		self.run_params['multiprocessing'] = None

		self.__dict__.create_partition('template owners', 
			['output_plan', 'fitting_plan', 'cartographer_plan', 
			'postprocess_plan', 'multiprocess_plan', 'run_params', 
			'simulation_plan'])

		if 'label' not in kwargs.keys(): kwargs['label'] = 'ensemble'

		if 'module_options' in kwargs.keys():
			opts = kwargs['module_options']

		else:
			print 'no modules detected; requesting from manager'
			opts = self.parent.find_module_options()

		if len(opts) == 0:
			lgd.message_dialog(None, 
				'No module options detected!', 'Problem')
			self.cancel_make = True
			return

		elif len(opts) == 1: module = opts[0]
		else:
			module_choice_container = lfu.data_container(data = opts[0])
			module_options_templates = [lgm.interface_template_gui(
					layout = 'horizontal', 
					widgets = ['radio'], 
					verbosities = [0], 
					labels = [opts], 
					initials = [[module_choice_container.data]], 
					instances = [[module_choice_container]], 
					keys = [['data']], 
					box_labels = ['Ensemble Module'], 
					minimum_sizes = [[(250, 50)]])]
			mod_dlg = lgd.create_dialog(title = 'Choose Ensemble Module', 
				templates = module_options_templates, variety = 'templated')
			module = mod_dlg()
			if module: module = module_choice_container.data
			else:
				self.cancel_make = True
				return

		self.impose_default('module', module, **kwargs)
		self._children_ = [self.simulation_plan, self.output_plan, 
						self.fitting_plan, self.cartographer_plan, 
					self.postprocess_plan, self.multiprocess_plan]
		self.load_module(reset_params = True)
		self.mcfg_dir = os.path.join(os.getcwd(), self.module)
		if not os.path.isdir(self.mcfg_dir): self.mcfg_dir = os.getcwd()
		lfu.modular_object_qt.__init__(self, *args, **kwargs)
		self.data_pool_id = lfu.get_new_pool_id()
		self.data_pool_pkl = os.path.join(os.getcwd(), 'data_pools', 
				'.'.join(['data_pool', self.data_pool_id, 'pkl']))