File size: 1,435 Bytes
34393ef | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 | #!/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}") |