Skip to content

Commit 50687d1

Browse files
committed
Results up to dataset 69 (skipping large datasets for now)
1 parent 32926f9 commit 50687d1

File tree

3 files changed

+83
-182
lines changed

3 files changed

+83
-182
lines changed

scripts/ProteinGym_runs/protgym_hybrid_perf_test_crossval.py

Lines changed: 17 additions & 182 deletions
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,6 @@
4242

4343
JUST_PLOT_RESULTS = False
4444

45-
4645
def compute_performances(mut_data, mut_sep=':', start_i: int = 0, already_tested_is: list = []):
4746
# Get cpu, gpu or mps device for training.
4847
device = get_device()
@@ -272,7 +271,6 @@ def compute_performances(mut_data, mut_sep=':', start_i: int = 0, already_tested
272271
for m in ['DCA', 'ESM1v', 'ProSST', 'DCA hybrid', 'DCA+ESM1v hybrid', 'DCA+ProSST hybrid']:
273272
temp_results[category][f'Split {i_split}'].update({m: np.nan})
274273
continue
275-
#get_vram()
276274

277275
y_test_pred_dca = get_delta_e_statistical_model(x_dca_test, x_wt)
278276
temp_results[category][f'Split {i_split}'].update({'DCA': spearmanr(y_test, y_test_pred_dca)[0]})
@@ -286,7 +284,6 @@ def compute_performances(mut_data, mut_sep=':', start_i: int = 0, already_tested
286284

287285
for i_m, method in enumerate([None, llm_dict_esm, llm_dict_prosst]):
288286
m_str = ['DCA hybrid', 'DCA+ESM1v hybrid', 'DCA+ProSST hybrid'][i_m]
289-
#print('\n~~~ ' + m_str + ' ~~~')
290287
try:
291288
hm = DCALLMHybridModel(
292289
x_train_dca=np.array(x_dca_train),
@@ -317,7 +314,6 @@ def compute_performances(mut_data, mut_sep=':', start_i: int = 0, already_tested
317314
gc.collect()
318315

319316
dt = time.time() - start_time
320-
print(json.dumps(temp_results, indent=4))
321317

322318
with open(out_results_csv, 'a') as fh:
323319
fh.write(
@@ -354,195 +350,34 @@ def compute_performances(mut_data, mut_sep=':', start_i: int = 0, already_tested
354350

355351

356352
def plot_csv_data(csv, plot_name):
357-
train_test_size_texts = []
358-
df = pd.read_csv(csv, sep=',')
359-
tested_dsets = df['No.']
360-
dset_dca_perfs = df['Untrained_Performance_DCA']
361-
dset_esm_perfs = df['Untrained_Performance_ESM1v']
362-
dset_prosst_perfs = df['Untrained_Performance_ProSST']
363-
dset_hybrid_perfs_dca_100 = df['Hybrid_DCA_Trained_Performance_100']
364-
dset_hybrid_perfs_dca_200 = df['Hybrid_DCA_Trained_Performance_200']
365-
dset_hybrid_perfs_dca_1000 = df['Hybrid_DCA_Trained_Performance_1000']
366-
dset_hybrid_perfs_dca_esm_100 = df['Hybrid_DCA_ESM1v_Trained_Performance_100']
367-
dset_hybrid_perfs_dca_esm_200 = df['Hybrid_DCA_ESM1v_Trained_Performance_200']
368-
dset_hybrid_perfs_dca_esm_1000 = df['Hybrid_DCA_ESM1v_Trained_Performance_1000']
369-
dset_hybrid_perfs_dca_prosst_100 = df['Hybrid_DCA_ProSST_Trained_Performance_100']
370-
dset_hybrid_perfs_dca_prosst_200 = df['Hybrid_DCA_ProSST_Trained_Performance_200']
371-
dset_hybrid_perfs_dca_prosst_1000 = df['Hybrid_DCA_ProSST_Trained_Performance_1000']
372-
373-
blue_colors = mpl.colormaps['Blues'](np.linspace(0.3, 0.9, 4))
374-
red_colors = mpl.colormaps['Reds'](np.linspace(0.3, 0.9, 4))
375-
green_colors = mpl.colormaps['Greens'](np.linspace(0.3, 0.9, 4))
376-
377-
plt.figure(figsize=(80, 12))
378-
plt.plot(range(len(tested_dsets)), dset_dca_perfs, 'o--', markersize=8,
379-
color=blue_colors[0], label='DCA (0)')
380-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_dca_perfs)),
381-
color=blue_colors[0], linestyle='--')
382-
for i, (p, n_test) in enumerate(zip(
383-
dset_dca_perfs, df['N_Y_test'].astype('Int64').to_list())):
384-
plt.text(i, 0.975, i, color='black', size=2)
385-
plt.text(i, 0.980, f'0' + r'$\rightarrow$' + f'{n_test}', color='black', size=2)
386-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_dca_perfs),
387-
f'{np.nanmean(dset_dca_perfs):.2f}', color=blue_colors[0]))
388-
389-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_100,
390-
'o--', markersize=8, color=blue_colors[1], label='Hybrid (100)')
391-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_100)),
392-
color=blue_colors[1], linestyle='--')
393-
for i, (p, n_test) in enumerate(zip(dset_hybrid_perfs_dca_100, df['N_Y_test_100'].astype('Int64').to_list())):
394-
plt.text(i, 0.985, f'100' + r'$\rightarrow$' + f'{n_test}', color='black', size=2)
395-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_100),
396-
f'{np.nanmean(dset_hybrid_perfs_dca_100):.2f}', color=blue_colors[1]))
397-
398-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_200,
399-
'o--', markersize=8, color=blue_colors[2], label='Hybrid (200)')
400-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_200)),
401-
color=blue_colors[2], linestyle='--')
402-
for i, (p, n_test) in enumerate(zip(
403-
dset_hybrid_perfs_dca_200, df['N_Y_test_200'].astype('Int64').to_list())):
404-
plt.text(i, 0.990, f'200' + r'$\rightarrow$' + f'{n_test}', color='black', size=2)
405-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_200),
406-
f'{np.nanmean(dset_hybrid_perfs_dca_200):.2f}', color=blue_colors[2]))
407-
408-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_1000,
409-
'o--', markersize=8, color=blue_colors[3], label='Hybrid (1000)')
410-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_1000)),
411-
color=blue_colors[3], linestyle='--')
412-
for i, (p, n_test) in enumerate(zip(
413-
dset_hybrid_perfs_dca_1000, df['N_Y_test_1000'].astype('Int64').to_list())):
414-
plt.text(i, 0.995, f'1000' + r'$\rightarrow$' + f'{n_test}', color='black', size=2)
415-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_1000),
416-
f'{np.nanmean(dset_hybrid_perfs_dca_1000):.2f}', color=blue_colors[3]))
417-
418-
419-
plt.plot(range(len(tested_dsets)), dset_esm_perfs,
420-
'o--', markersize=8, color=green_colors[0], label='ESM (0)')
421-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_esm_perfs)),
422-
color=green_colors[0], linestyle='--')
423-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_esm_perfs),
424-
f'{np.nanmean(dset_esm_perfs):.2f}', color=green_colors[0]))
425-
426-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_esm_100,
427-
'o--', markersize=8, color=green_colors[1], label='Hybrid (100)')
428-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_esm_100)),
429-
color=green_colors[1], linestyle='--')
430-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_esm_100),
431-
f'{np.nanmean(dset_hybrid_perfs_dca_esm_100):.2f}', color=green_colors[1]))
432-
433-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_esm_200,
434-
'o--', markersize=8, color=green_colors[2], label='Hybrid (200)')
435-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_esm_200)),
436-
color=green_colors[2], linestyle='--')
437-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_esm_200),
438-
f'{np.nanmean(dset_hybrid_perfs_dca_esm_200):.2f}', color=green_colors[2]))
439-
440-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_esm_1000,
441-
'o--', markersize=8, color=green_colors[3], label='Hybrid (1000)')
442-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_esm_1000)),
443-
color=green_colors[3], linestyle='--')
444-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_esm_1000),
445-
f'{np.nanmean(dset_hybrid_perfs_dca_esm_1000):.2f}', color=green_colors[3]))
446-
447-
448-
plt.plot(range(len(tested_dsets)), dset_prosst_perfs,
449-
'o--', markersize=8, color=red_colors[0], label='ProSST (0)')
450-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_prosst_perfs)),
451-
color=red_colors[0], linestyle='--')
452-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_prosst_perfs),
453-
f'{np.nanmean(dset_prosst_perfs):.2f}', color=red_colors[0]))
454-
455-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_prosst_100,
456-
'o--', markersize=8, color=red_colors[1], label='Hybrid (100)')
457-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_prosst_100)),
458-
color=red_colors[1], linestyle='--')
459-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_prosst_100),
460-
f'{np.nanmean(dset_hybrid_perfs_dca_prosst_100):.2f}', color=red_colors[1]))
461-
462-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_prosst_200,
463-
'o--', markersize=8, color=red_colors[2], label='Hybrid (200)')
464-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_prosst_200)),
465-
color=red_colors[2], linestyle='--')
466-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_prosst_200),
467-
f'{np.nanmean(dset_hybrid_perfs_dca_prosst_200):.2f}', color=red_colors[2]))
468-
469-
plt.plot(range(len(tested_dsets)), dset_hybrid_perfs_dca_prosst_1000,
470-
'o--', markersize=8, color=red_colors[3], label='Hybrid (1000)')
471-
plt.plot(range(len(tested_dsets) + 1), np.full(len(tested_dsets) + 1, np.nanmean(dset_hybrid_perfs_dca_prosst_1000)),
472-
color=red_colors[3], linestyle='--')
473-
train_test_size_texts.append(plt.text(len(tested_dsets), np.nanmean(dset_hybrid_perfs_dca_prosst_1000),
474-
f'{np.nanmean(dset_hybrid_perfs_dca_prosst_1000):.2f}', color=red_colors[3]))
475-
476-
477-
plt.grid(zorder=-1)
478-
plt.xticks(
479-
range(len(tested_dsets)),
480-
['(' + str(n) + ') ' + name for (n, name) in zip(tested_dsets, df['Dataset'].to_list())],
481-
rotation=45, ha='right'
482-
)
483-
plt.margins(0.01)
484-
plt.legend()
485-
plt.tight_layout()
486-
plt.ylim(0.0, 1.0)
487-
plt.xlabel('Tested dataset')
488-
plt.ylabel(r'Spearman $\rho$')
489-
adjust_text(train_test_size_texts, expand=(1.2, 2))
490-
plt.savefig(os.path.join(os.path.dirname(__file__), f'{plot_name}.png'), dpi=300)
491-
print('Saved file as ' + os.path.join(os.path.dirname(__file__), f'{plot_name}.png') + '.')
492-
493-
plt.clf()
494353
plt.figure(figsize=(24, 12))
495354
sns.set_style("whitegrid")
496-
df_ = df[[
497-
'Untrained_Performance_DCA',
498-
'Hybrid_DCA_Trained_Performance_100',
499-
'Hybrid_DCA_Trained_Performance_200',
500-
'Hybrid_DCA_Trained_Performance_1000',
501-
'Untrained_Performance_ESM1v',
502-
'Hybrid_DCA_ESM1v_Trained_Performance_100',
503-
'Hybrid_DCA_ESM1v_Trained_Performance_200',
504-
'Hybrid_DCA_ESM1v_Trained_Performance_1000',
505-
'Untrained_Performance_ProSST',
506-
'Hybrid_DCA_ProSST_Trained_Performance_100',
507-
'Hybrid_DCA_ProSST_Trained_Performance_200',
508-
'Hybrid_DCA_ProSST_Trained_Performance_1000',
509-
]]
510-
print(df_)
355+
df = pd.read_csv(csv, sep=',')
356+
df_mean = pd.DataFrame()
357+
print(df)
358+
print(df.columns)
359+
for method in ['DCA_hybrid', 'DCA+ESM1v_hybrid', 'DCA+ProSST_hybrid']:
360+
for split_technique in ['Random', 'Modulo', 'Continuous']:
361+
performances = []
362+
for split in range(1, 6):
363+
performances.append(df[f'{split_technique}_Split_{split}_{method}'].to_list())
364+
df_mean[f'{method}_{split_technique}_mean'] = np.mean(performances, axis=0)
511365
plot = sns.violinplot(
512-
df_, saturation=0.4,
513-
palette=[blue_colors[0], blue_colors[1], blue_colors[2], blue_colors[3],
514-
green_colors[0],green_colors[1], green_colors[2], green_colors[3],
515-
red_colors[0], red_colors[1], red_colors[2], red_colors[3]]
516-
)
517-
plt.ylabel(r'Spearmanr $\rho$')
518-
sns.swarmplot(df_, color='black')
519-
dset_perfs = [
520-
dset_dca_perfs,
521-
dset_hybrid_perfs_dca_100,
522-
dset_hybrid_perfs_dca_200,
523-
dset_hybrid_perfs_dca_1000,
524-
dset_esm_perfs,
525-
dset_hybrid_perfs_dca_esm_100,
526-
dset_hybrid_perfs_dca_esm_200,
527-
dset_hybrid_perfs_dca_esm_1000,
528-
dset_prosst_perfs,
529-
dset_hybrid_perfs_dca_prosst_100,
530-
dset_hybrid_perfs_dca_prosst_200,
531-
dset_hybrid_perfs_dca_prosst_1000
532-
]
533-
for n in range(0, len(dset_perfs)):
366+
df_mean, saturation=0.4
367+
)
368+
sns.swarmplot(df_mean)
369+
for n in range(0, df_mean.shape[1]):
534370
plt.text(
535371
n + 0.15, -0.075,
536-
r'$\overline{\rho}=$' + f'{np.nanmean(dset_perfs[n]):.3f}\n'
537-
+ r'$N_\mathrm{Datasets}=$' + f'{np.count_nonzero(~np.isnan(np.array(dset_perfs)[n]))}'
372+
r'$\overline{\rho}=$' + f'{np.nanmean(df_mean.iloc[:, n]):.3f}\n'
373+
+ r'$N_\mathrm{Datasets}=$' + f'{np.count_nonzero(~np.isnan(np.array(df_mean.iloc[:, n])))}'
538374
)
539375
plot.set_xticks(range(len(plot.get_xticklabels())))
540376
plot.set_xticklabels(plot.get_xticklabels(), rotation=45, horizontalalignment='right')
541377
plt.ylim(-0.09, 1.09)
542378
plt.margins(0.05)
543379
plt.tight_layout()
544-
plt.savefig(os.path.join(os.path.dirname(__file__), f'{plot_name}_violin.png'), dpi=300)
545-
print('Saved file as ' + os.path.join(os.path.dirname(__file__), f'{plot_name}_violin.png') + '.')
380+
plt.show()
546381

547382

548383
if __name__ == '__main__':

scripts/ProteinGym_runs/results/dca_esm_and_hybrid_5cv-split_results.csv

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,3 +58,13 @@ No.,Dataset,N_Variants,N_Max_Muts,Untrained_Performance_DCA,Untrained_Performanc
5858
57,I6TAH8_I68A0_Doud_2015,9462,1,9462 variant fitness pairs (below 50 or more than 600)
5959
58,IF1_ECOLI_Kelsic_2016,1367,1,0.17838998335766387,0.5085158073734,0.441599316232012,0.529975536458489,0.35700349170759416,0.453041839477541,0.43118277619547873,0.4582066368489227,0.7463079770457508,0.7863294607000967,0.7136304938416258,0.7386882036438601,0.7931296383072145,0.7780341004185293,0.7939207370035608,0.7083205667314114,0.7356080362061612,0.7442944936341375,0.5131079159917193,0.22267930531671196,0.14250836863472463,0.07223009445970927,0.14801631621933564,0.6278735994118894,0.7398490196362293,0.4260227395907404,0.4661709793100596,0.4087811887165759,0.605750020171812,0.7953999961876906,0.376355728841026,0.3058388689875156,0.32649823139976164,0.3456353232440521,0.1316450795805822,-0.1258643833898691,0.3129995819565404,0.32035779241831924,0.4735161201861595,0.3795138651127237,0.72209502205226,0.7320564171933652,0.6184888164711471,0.4647568106365472,0.39185820493545975,0.47376201388867356,0.4538790784107136,0.6160918844441293,4731
6060
59,ILF3_HUMAN_Tsuboyama_2023_2L33,1329,1,0.2930696697808595,0.28598515436036326,0.5480574208782039,0.40086405699777067,0.4574476995008002,0.5221995820057329,0.44782853691845265,0.4751297108509451,0.6434552379518395,0.7756582632737149,0.7844204360420486,0.7467221595725828,0.7330244555179884,0.5986361919213977,0.679857689591798,0.7350444162133127,0.7304939261445963,0.6424799133339353,0.3382202516650257,0.3645811943049532,0.49615329800080765,0.21918486777604268,0.24629710362380447,0.7582487019631277,0.5717294153625032,0.7390821666683733,0.5436696464596439,0.6076855705527456,0.7598814443531436,0.48118047475091513,0.7833959764994247,0.39334482021621014,0.6564068124124454,0.5960300897582784,0.3336156994471674,0.26189992014974756,0.0385630617058985,-0.06325083544166447,0.6252864989114699,0.45773124840097396,0.6001433794537242,0.5549220991889325,0.6656648020575091,0.8164677474610174,0.6899424805581709,0.5749058645610369,0.39240150613615904,0.4700119536493328,4552
61+
60,KCNE1_HUMAN_Muhammad_2023_expression,2339,1,0.0621839462982878,0.14258419479645104,0.2290418530838026,0.48300738661576886,0.45315219770946236,0.5541881845837108,0.5077462486464894,0.5314875444991072,0.7373763696752607,0.6687674880650047,0.7220013306177773,0.7372246161742126,0.7482738241255303,0.8000199487303581,0.6918140080593338,0.7685100862255773,0.779170832895784,0.7064821170747962,0.3406753062124802,0.4089939798331443,0.52059176734529,0.4662181876836934,0.3364196252904175,0.6532168681949553,0.7227353539819715,0.6662543184310483,0.5750795737492376,0.696747306263481,0.6981302590078505,0.7215344933187258,0.7186103663479015,0.6749826620002848,0.752974225623476,0.1703416513152437,0.06339701062335129,-0.03928351522036302,0.17856605608522644,0.14719161479897547,0.1240858765880927,0.1784427110175488,0.5980947244527933,0.47439218796517013,0.6352293973824249,0.5694604962790913,0.4196867820861104,0.4934091902122729,0.600615266892341,0.6241360984730226,10029
62+
61,KCNE1_HUMAN_Muhammad_2023_function,2315,1,0.42365288649192334,0.5335836406168921,0.3566267011661909,0.5525814051962367,0.6364080961010646,0.5300329769903297,0.5962486272896262,0.6032210587928897,0.6969223429434197,0.7788435590625208,0.6852003093689336,0.7130456030154398,0.7429702847238409,0.7283863730668675,0.8029423655959738,0.7448157618057818,0.7420794648116461,0.7530934471055122,0.516274180857893,0.31210423831341905,0.5202226515477014,0.6382046781954015,0.5560023044418843,0.6626311347805265,0.6843724365123112,0.6494582155184376,0.77465530090304,0.6891524926852881,0.701727151467791,0.6831842803137166,0.6198943864577154,0.7933759264755811,0.7557865211449801,0.07420577900289933,0.6559235076859654,0.2742795011224966,0.1854040009051979,-0.06809316094458091,0.30688414325434,0.6792481123038556,0.5993340612922229,0.43063898767557074,0.5923773396773612,0.44062547201641566,0.5428643910312666,0.6423025531242369,0.47373792566989076,0.15628616692039024,9925
63+
62,KCNH2_HUMAN_Kozek_2020,200,1,PDBseq neq WTseq
64+
63,KCNJ2_MOUSE_Coyote-Maestas_2022_function,6963,1,6963 variant fitness pairs (below 50 or more than 600)
65+
64,KCNJ2_MOUSE_Coyote-Maestas_2022_surface,6917,1,6917 variant fitness pairs (below 50 or more than 600)
66+
65,KKA2_KLEPN_Melnikov_2014,4960,1,0.4120267754074545,0.5044919108113386,0.5170732115997414,0.5890088688393442,0.5548504191419413,0.5569054566435809,0.5618016122713144,0.5857053460109894,0.733538519325424,0.7594415106965381,0.731711966406749,0.7709829627668394,0.736842076148911,0.7261354042727307,0.7163346596257713,0.7288976518512835,0.746659446927373,0.7154996348381414,0.23644313999963307,0.3667263771929669,0.2236203925420475,0.2865571394561061,0.2668270857178468,0.5508172557938291,0.6492941093386215,0.5686332714492061,0.6705315786378858,0.5440443965939934,0.7098140955416766,0.5379812768055986,0.5631203645507052,0.6459254123470216,0.4820438969969044,0.5002726673119948,0.3320355339513632,0.39682539171108255,0.12285916049604395,0.07871151193002017,0.4307251703399037,0.4759214639541035,0.5106837178122139,0.6030998102922973,0.6048648310243833,0.563106494828676,0.47334731844190736,0.5815311928234971,0.6779496971158734,0.492462865819083,34978
67+
66,LGK_LIPST_Klesmith_2015,7890,1,7890 variant fitness pairs (below 50 or more than 600)
68+
67,LYAM1_HUMAN_Elazar_2016,359,1,nan,0.34599487156510705,0.3969587824755551,nan,nan,nan,nan,nan,0.7263489613479968,0.667406264068429,0.6303942375715481,0.5414496109074539,0.45070422535211263,0.6487877033892857,0.6271785966943213,0.7442922374429225,0.5699080326709114,0.5031857813547954,nan,nan,nan,nan,nan,0.5907859078590786,0.40596251479177,0.5471869328493648,0.5261324041811847,0.6862916630216079,0.7225383920505871,0.4199335801809367,0.6326808400311122,0.5225221443264346,0.6831773248184762,nan,nan,nan,nan,nan,0.40894053315105944,0.5273673694726326,0.37517429938482566,0.3896596973143207,0.5771603223117533,0.3961995898838004,0.5017876859982123,0.3259876965140123,0.5575890123348788,0.4477910530702973,4373
69+
68,MET_HUMAN_Estevam_2023,5393,1,5393 variant fitness pairs (below 50 or more than 600)
70+
69,MK01_HUMAN_Brenan_2016,6809,1,6809 variant fitness pairs (below 50 or more than 600)

0 commit comments

Comments
 (0)