UTRGAN / model /src /mrl_te_optimization /script /Nupack_MFE_prediction.py
wuxing0105's picture
Upload folder using huggingface_hub (part 2)
53ebf66 verified
Raw
History Blame Contribute Delete
1.44 kB
#!/ssd/users/wergillius/.conda/envs/pytorch/bin/python
import os
import sys
import numpy as np
import pandas as pd
import nupack
import PATH
import utils
import scipy
from tqdm import tqdm
tqdm.pandas()
my_model=nupack.Model(material='RNA')
eGFP_seq = utils.eGFP_seq
data_dir= utils.data_dir
csv_name = sys.argv[1]
csv_path = csv_name if os.path.exists(csv_name) else os.path.join(data_dir, csv_name)
assert os.path.exists(csv_path), "csv not found"
df = pd.read_csv(csv_path)
seq_col = 'seq' if 'seq' in df.columns else 'utr'
tr_col = 'rl' if 'rl' in df.columns else 'log_te'
def cor_fun(col):
pearson_r = scipy.stats.pearsonr(df[col].values,
df[tr_col].values)[0]
return pearson_r
nupck_engery_fn = lambda x: nupack.mfe(strands=[x], model=my_model)[0].energy
df['nupack_MFE'] = df[seq_col].progress_apply(nupck_engery_fn)
print("nupack_MFE : {}".format(cor_fun('nupack_MFE')))
# nupck_engery_fn = lambda x: nupack.mfe(strands=[x + eGFP_seq[:10]], model=my_model)[0].energy
# df['eGFP10_nupMFE'] = df[seq_col].progress_apply(nupck_engery_fn)
# print("eGFP10_nupMFE : {}".format(cor_fun('eGFP10_nupMFE')))
# nupck_engery_fn = lambda x: nupack.mfe(strands=[x + eGFP_seq[:50]], model=my_model)[0].energy
# df['eGFP50_nupMFE'] = df[seq_col].progress_apply(nupck_engery_fn)
# print("eGFP50_nupMFE : {}".format(cor_fun('eGFP50_nupMFE')))
df.to_csv(csv_path, index=False)
print(f"saved to {csv_path}")