def emit_results(self, betas, rescaled_betas, gold_standard, priors): """ Output result report(s) for workflow run. """ output_dir = os.path.join(self.input_dir, datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')) os.makedirs(output_dir) self.results_processor = ResultsProcessor(betas, rescaled_betas) self.results_processor.summarize_network(output_dir, gold_standard, priors)
class BBSR_TFA_Workflow(WorkflowBase): def run(self): """ Execute workflow, after all configuration. """ np.random.seed(self.random_seed) self.mi_clr_driver = mi_R.MIDriver() self.regression_driver = bbsr_python.BBSR_runner() self.design_response_driver = design_response_translation.PythonDRDriver() #this is the python switch self.get_data() self.compute_common_data() self.compute_activity() betas = [] rescaled_betas = [] for idx, bootstrap in enumerate(self.get_bootstraps()): print('Bootstrap {} of {}'.format((idx + 1), self.num_bootstraps)) X = self.activity.ix[:, bootstrap] Y = self.response.ix[:, bootstrap] print('Calculating MI, Background MI, and CLR Matrix') if 0 == rank: (self.clr_matrix, self.mi_matrix) = self.mi_clr_driver.run(X, Y) kvs.put('mi %d'%idx, (self.clr_matrix, self.mi_matrix)) else: (self.clr_matrix, self.mi_matrix) = kvs.view('mi %d'%idx) print('Calculating betas using BBSR') ownCheck = utils.own(kvs, rank, chunk=25) current_betas,current_rescaled_betas = self.regression_driver.run(X, Y, self.clr_matrix, self.priors_data,kvs,rank,ownCheck) if rank: continue betas.append(current_betas) rescaled_betas.append(current_rescaled_betas) self.emit_results(betas, rescaled_betas, self.gold_standard, self.priors_data) def compute_activity(self): """ Compute Transcription Factor Activity """ print('Computing Transcription Factor Activity ... ') TFA_calculator = TFA(self.priors_data, self.design, self.half_tau_response) self.activity = TFA_calculator.compute_transcription_factor_activity() def emit_results(self, betas, rescaled_betas, gold_standard, priors): """ Output result report(s) for workflow run. """ if 0 == rank: output_dir = os.path.join(self.input_dir, datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')) os.makedirs(output_dir) self.results_processor = ResultsProcessor(betas, rescaled_betas) self.results_processor.summarize_network(output_dir, gold_standard, priors)
class BBSR_TFA_Workflow(WorkflowBase): def run(self): """ Execute workflow, after all configuration. """ np.random.seed(self.random_seed) self.mi_clr_driver = mi_R.MIDriver() self.regression_driver = bbsr_R.BBSR_driver() #self.design_response_driver = design_response_R.DRDriver() self.design_response_driver = design_response_translation.PythonDRDriver( ) #this is the python switch self.get_data() self.compute_common_data() self.compute_activity() betas = [] rescaled_betas = [] for idx, bootstrap in enumerate(self.get_bootstraps()): print('Bootstrap {} of {}'.format((idx + 1), self.num_bootstraps)) X = self.activity.ix[:, bootstrap] Y = self.response.ix[:, bootstrap] print('Calculating MI, Background MI, and CLR Matrix') (self.clr_matrix, self.mi_matrix) = self.mi_clr_driver.run(X, Y) print('Calculating betas using BBSR') current_betas, current_rescaled_betas = self.regression_driver.run( X, Y, self.clr_matrix, self.priors_data) betas.append(current_betas) rescaled_betas.append(current_rescaled_betas) self.emit_results(betas, rescaled_betas, self.gold_standard, self.priors_data) def compute_activity(self): """ Compute Transcription Factor Activity """ print('Computing Transcription Factor Activity ... ') TFA_calculator = TFA(self.priors_data, self.design, self.half_tau_response) self.activity = TFA_calculator.compute_transcription_factor_activity() def emit_results(self, betas, rescaled_betas, gold_standard, priors): """ Output result report(s) for workflow run. """ output_dir = os.path.join( self.input_dir, datetime.datetime.now().strftime('%Y-%m-%d_%H-%M-%S')) os.makedirs(output_dir) self.results_processor = ResultsProcessor(betas, rescaled_betas) self.results_processor.summarize_network(output_dir, gold_standard, priors)
{"tf_seed": 252356, "np_seed": 703889}, {"tf_seed": 343053, "np_seed": 999360}, {"tf_seed": 743746, "np_seed": 67440} ] # Load experiment specified in system args exp_file = "base_network.yml" printt("Running Experiment File: {}".format(exp_file)) f_name = exp_file.split(".")[0] if "." in exp_file else exp_file exp_specs = yaml.load(open(os.path.join(experiment_directory, exp_file), 'r').read()) # setup output directory outdir = os.path.join(output_directory, f_name) if not os.path.exists(outdir): os.mkdir(outdir) results_processor = ResultsProcessor() # create results log results_log = os.path.join(outdir, "results.csv") with open(results_log, 'w') as f: f.write("") # write experiment specifications to file with open(os.path.join(outdir, "experiment.yml"), 'w') as f: f.write("{}\n".format(yaml.dump(exp_specs))) # pre-process to include residue indices def preProcessData(data): num_complex = len(data) for idx_complex in range(num_complex):