| import numpy as np |
| import matplotlib.pyplot as plt |
| import matplotlib.patches as mpatches |
| import seaborn as sns |
| import argparse |
|
|
| sns.set() |
| sns.set_style('ticks') |
|
|
| colors = ["#3c5068", "#acbab6", "#dcd3cd", "#d4a6a6"] |
|
|
| params = {'legend.fontsize': 32, |
| 'figure.figsize': (32, 10), |
| 'axes.labelsize': 34, |
| 'axes.titlesize':34, |
| 'xtick.labelsize':34, |
| 'ytick.labelsize':24} |
|
|
| |
| params = {'legend.fontsize': 50, |
| 'figure.figsize': (54, 18), |
| 'axes.labelsize': 60, |
| 'axes.titlesize':60, |
| 'xtick.labelsize':60, |
| 'ytick.labelsize':36} |
|
|
| plt.rcParams.update(params) |
|
|
|
|
| np.random.seed(25) |
|
|
|
|
| DISPLAY_DIFF = True |
|
|
| K = 100 |
|
|
| PREFIX = '' |
|
|
| |
|
|
| TYPE = 'MRL' |
|
|
| DISPLAY_DIFF = True |
|
|
| if TYPE == 'REGULAR': |
| PREFIX = 'outputs/' |
| elif TYPE == 'MIXED': |
| PREFIX = 'outputs_mixed/' |
| elif TYPE == 'GC_CONTROLED': |
| PREFIX = 'outputs/gc_' |
|
|
| if DISPLAY_DIFF: |
| TYPE = 'MMRL' |
| TITLE = "A" |
|
|
| init = [] |
| with open(f'./../src/mrl_te_optimization/outputs/init_mrl_FMRL.txt') as f: |
| scores = f.readlines() |
| init = [float(score.replace('\n','')) for score in scores] |
|
|
| opt = [] |
| with open(f'./../src/mrl_te_optimization/outputs/opt_mrl_FMRL.txt') as f: |
| scores = f.readlines() |
| opt = [float(score.replace('\n','')) for score in scores] |
|
|
|
|
| init = np.array(init) |
| opt = np.array(opt) |
|
|
| diffs = (opt - init)/init |
|
|
| print("FramePool MRL optimization:") |
| print(f"Average Opt: {np.average(opt)}") |
| print(f"Average Init: {np.average(init)}") |
| print(f"Max Opt: {np.max(opt)}") |
| print(f"Max Init: {np.max(init)}") |
| print(f"Max Increase (wrt Init) : {np.max(opt/init)}") |
| print(f"Average Increase (wrt Init) : {np.mean(opt/init)}") |
| print(f"Average Percent Increase (wrt Init): {np.average(diffs)}") |
|
|
| indices = np.argsort(opt)[::-1] |
|
|
| init_large = [] |
| init_small = [] |
| opt_large = [] |
| opt_small = [] |
|
|
| for i in range(len(indices)): |
| if diffs[indices[i]] >= 0: |
| init_small.append(init[indices[i]]) |
| init_large.append(0) |
| opt_small.append(0) |
| opt_large.append(opt[indices[i]]) |
| else: |
| init_large.append(init[indices[i]]) |
| init_small.append(0) |
| opt_large.append(0) |
| opt_small.append(opt[indices[i]]) |
|
|
| width = 1.0/(len(indices)) |
| bins = [(i+1) * width for i in range(len(indices))] |
| |
| ns = [i * width for i in range(len(indices))] |
| fig, axs = plt.subplots(1,2) |
|
|
| axs[0].bar(x=ns, bottom=0, width=width, height=opt_large, color=colors[0], edgecolor="white") |
| axs[0].bar(x=ns, bottom=0, width=width, height=opt_small, color=colors[0], edgecolor="white") |
| axs[0].bar(x=ns, bottom=0, width=width, height=init_small, color=colors[3], edgecolor="white") |
| axs[0].bar(x=ns, bottom=0, width=width, height=init_large, color=colors[3], edgecolor="white") |
|
|
| axs[0].set_title(TITLE,loc='left',weight='bold',fontsize=64) |
| axs[0].set_xticks([]) |
| |
| TYPE = "FMRL" |
| TITLE = "B" |
|
|
| init = [] |
|
|
| with open(f'./../src/mrl_te_optimization/outputs/init_mrl_TE.txt') as f: |
| scores = f.readlines() |
| init = [float(score.replace('\n','')) for score in scores] |
|
|
| opt = [] |
| with open(f'./../src/mrl_te_optimization/outputs/opt_mrl_TE.txt') as f: |
| scores = f.readlines() |
| opt = [float(score.replace('\n','')) for score in scores] |
|
|
|
|
| init = np.power(10,init) |
| init = np.array(init) |
| opt = np.power(10,opt) |
| opt = np.array(opt) |
| |
| diffs = (opt - init)/init |
|
|
| print("MTtrans 3R TE optimization:") |
| print(f"Average Opt: {np.average(opt)}") |
| print(f"Average Init: {np.average(init)}") |
| print(f"Max Opt: {np.max(opt)}") |
| print(f"Max Init: {np.max(init)}") |
| print(f"Max Increase (wrt Init) : {np.max(opt/init)}") |
| print(f"Average Increase (wrt Init) : {np.mean(opt/init)}") |
| print(f"Max Increase (wrt Natural) : {np.max(opt/np.power(10,-0.63))}") |
| print(f"Average Percent Increase (wrt Init): {np.average(diffs)}") |
|
|
| indices = np.argsort(opt)[::-1] |
|
|
| init_large = [] |
| init_small = [] |
| opt_large = [] |
| opt_small = [] |
|
|
| for i in range(len(indices)): |
| if diffs[indices[i]] >= 0: |
| init_small.append(init[indices[i]]) |
| init_large.append(0) |
| opt_small.append(0) |
| opt_large.append(opt[indices[i]]) |
| else: |
| init_large.append(init[indices[i]]) |
| init_small.append(0) |
| opt_large.append(0) |
| opt_small.append(opt[indices[i]]) |
|
|
| axs[1].bar(x=ns, bottom=0, width=width, height=opt_large, color=colors[0], edgecolor="white") |
| axs[1].bar(x=ns, bottom=0, width=width, height=opt_small, color=colors[0], edgecolor="white") |
| axs[1].bar(x=ns, bottom=0, width=width, height=init_small, color=colors[3], edgecolor="white") |
| axs[1].bar(x=ns, bottom=0, width=width, height=init_large, color=colors[3], edgecolor="white") |
| axs[1].set_title(TITLE,loc='left',weight='bold',fontsize=64) |
| axs[1].set_xticks([]) |
|
|
| orange_patch = mpatches.Patch(color=colors[3], label='Initial') |
| blue_patch = mpatches.Patch(color=colors[0], label='Optimized') |
| fig.legend(handles=[orange_patch,blue_patch],loc='upper right') |
|
|
| axs[0].set_ylabel('Predicted MRL') |
| axs[1].set_ylabel('Predicted TE') |
| |
| axs[0].set_xlabel('UTR Samples') |
| axs[1].set_xlabel('UTR Samples') |
|
|
| fig.tight_layout() |
|
|
| plt.savefig(f'./plots/mrl_te_all.png') |
|
|
|
|
|
|