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}")