def plot_batch(df, batch): # Plot 50uM. df_50uM = df[df.conc == -3] if batch.startswith('Ala'): df_dmso = df_50uM[df_50uM.comp == 'DMSO'] for comp in [ 'K252a', 'SU11652', 'TG101209', 'RIF', 'IKK16' ]: df_comp = df_50uM[df_50uM.comp == comp] t, p_2side = ss.ttest_ind(df_comp.fluo, df_dmso.fluo) p_1side = p_2side / 2. if t < 0 else 1. - (p_2side / 2.) print('{}, one-sided t-test P = {}, n = {}' .format(comp, p_1side, len(df_comp))) if batch == 'AlaA': order = [ 'K252a', 'SU11652', 'TG101209', 'RIF', 'DMSO' ] elif batch == 'AlaB': order = [ 'IKK16', 'K252a', 'RIF', 'DMSO' ] else: return plt.figure() sns.barplot(x='comp', y='fluo', data=df_50uM, ci=95, dodge=False, hue='control', palette=sns.color_palette("RdBu_r", 7), order=order, capsize=0.2, errcolor='#888888',) sns.swarmplot(x='comp', y='fluo', data=df_50uM, color='black', order=order) #plt.ylim([ 10, 300000 ]) if not batch.startswith('Ala'): plt.yscale('log') plt.savefig('figures/tb_culture_50uM_{}.svg'.format(batch)) plt.close() # Plot dose-response. comps = sorted(set(df.comp)) concentrations = sorted(set(df.conc)) plt.figure(figsize=(24, 6)) for cidx, comp in enumerate(order): df_subset = df[df.comp == comp] plt.subplot(1, 5, cidx + 1) sns.lineplot(x='conc', y='fluo', data=df_subset, ci=95,) sns.scatterplot(x='conc', y='fluo', data=df_subset, color='black',) plt.title(comp) if batch.startswith('Ala'): plt.ylim([ 0., 1.3 ]) else: plt.ylim([ 10, 1000000 ]) plt.yscale('log') plt.xticks(list(range(-3, -6, -1)), [ '50', '25', '10', ])#'1', '0.1' ]) plt.savefig('figures/tb_culture_{}.svg'.format(batch)) plt.close()
def expo(args): def filename_fn(args): rs = 'N({}, {})'.format(args.radius, args.sigma) return rs def fpath(fname): _fpath = os.path.join(args.output_dir, fname) return _fpath length = 5 * args.radius linspace, data = SyntheticDataset.grid_data(args.num_points, length=length) # loader = dataset[args.dataset](args) # trainData = loader.train # for batch_idx, samples in enumerate(trainData): # data,labels = samples[DatasetType.InD] plt.xlim(-1 * length, length) plt.ylim(-1 * length, length) for scale in tqdm([1, 2, 3, 4]): sigma = scale * args.sigma scale_args = deepcopy(args) scale_args.sigma = sigma fname = filename_fn(scale_args) checkpoint_dir = os.path.join(args.work_dir, 'checkpoints') saver = Saver(checkpoint_dir) # makes directory if already not present payload = saver.load(hash_args( scale_args)) #hash_args(scale_args) generates the hex string def run_and_save(scale_args): export = main(scale_args) #Model creation?? payload = export['model'] saver.save(hash_args(scale_args), payload) return payload export = payload or run_and_save(scale_args) with torch.no_grad(): scores = inference(export, data) np_x = data.cpu().numpy() for key in scores: score = scores[key].cpu().numpy() plot_pcolormesh(np_x, linspace, score) score_fname = '{}_{}'.format(fname, key) plt.title(score_fname) flush_plot(plt, fpath(score_fname) + '.png')
def plot_values(df, score_fn): models = ['mlper1', 'sparsehybrid', 'gp', 'real'] plt.figure(figsize=(10, 4)) for midx, model in enumerate(models): if model == 'gp': color = '#3e5c71' elif model == 'sparsehybrid': color = '#2d574e' elif model == 'mlper1': color = '#a12424' elif model == 'real': color = '#A9A9A9' else: raise ValueError('Invalid model'.format(model)) plt.subplot(1, len(models), midx + 1) df_subset = df[df.model == model] compounds = np.array(df_subset.compound_) if model == 'real': order = sorted(compounds) else: order = compounds[np.argsort(-df_subset.affinity)] sns.barplot(data=df_subset, x='compound_', y='affinity', color=color, order=order) if score_fn == 'rdock': plt.ylim([0, -40]) else: plt.ylim([0, -12]) plt.xticks(rotation=45) plt.savefig('figures/design_docking_{}.svg'.format(score_fn)) plt.close() print('Score function: {}'.format(score_fn)) print('GP vs MLP: {}'.format( ttest_ind( df[df.model == 'gp'].affinity, df[df.model == 'mlper1'].affinity, ))) print('Hybrid vs MLP: {}'.format( ttest_ind( df[df.model == 'sparsehybrid'].affinity, df[df.model == 'mlper1'].affinity, ))) print('')
continue seen.add(zinc) order_list.append((order, Kd)) order_list = [ order for order, _ in sorted(order_list, key=lambda x: x[1]) ] plt.subplot(1, 3, bidx + 1) sns.barplot( x='order', y='Kdpoint', data=df_subset, color=palette[bidx], order=order_list, ci=95, capsize=0.4, errcolor='#888888', ) sns.swarmplot( x='order', y='Kdpoint', data=df_subset, color='black', order=order_list, ) plt.ylim([-100, 10100]) plt.savefig('figures/prediction_barplot_{}.svg'.format(model)) plt.close()
fname = 'target/log/train_davis2011kinase_{}.log'.format(model) data += parse_log(model, fname) df = pd.DataFrame(data, columns=[ 'model', 'metric', 'quadrant', 'value', 'uncertainty', ]) quadrants = sorted(set(df.quadrant)) metrics = sorted(set(df.metric)) for quadrant in quadrants: for metric in metrics: df_subset = df[(df.metric == metric) & (df.quadrant == quadrant)] plt.figure() sns.barplot(x='model', y='value', data=df_subset, ci=None, order=models, hue='uncertainty', dodge=False, palette=sns.color_palette("RdBu", n_colors=8)) sns.swarmplot(x='model', y='value', data=df_subset, color='black', order=models) if (metric == 'Pearson rho' or metric == 'Spearman r') \ and quadrant != 'unknown_all': plt.ylim([ -0.05, 0.7 ]) if metric == 'MSE' and quadrant != 'unknown_all': plt.ylim([ -0.01e7, 3e7 ]) plt.savefig('figures/benchmark_cv_{}_{}.svg' .format(metric, quadrant)) plt.close()
loads_d = [] for i in loads: loads_d.append(get_num_dict(i)) chord_loads.append(get_50_percent(loads_d[0])) vserver_loads.append(get_50_percent(loads_d[1])) x_values.append(next(get_numbers(f))) plt.figure().set_size_inches(6.5,5) plt.xlabel("#Nodes") plt.ylabel("% of nodes storing 50% of data") from matplotlib.ticker import EngFormatter formatter = EngFormatter(places=0) plt.gca().xaxis.set_major_formatter(formatter) plt.ylim(0,0.5) plt.xlim(0,1000000) out_file = "intro_lb_chord.pdf" d1 = prepare(x_values,chord_loads) d2 = prepare(x_values,vserver_loads) d1['label'] = 'Neighbor Replication' d1['linestyle'] = 'dashed' d2['label'] = "Virtual Servers" plot(out_file,d1,d2)