-
Notifications
You must be signed in to change notification settings - Fork 2
Expand file tree
/
Copy pathfig1_infer.py
More file actions
68 lines (52 loc) · 2.61 KB
/
fig1_infer.py
File metadata and controls
68 lines (52 loc) · 2.61 KB
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
import numpy as np
import pandas as pd
from SONIA.sonia_length_pos import SoniaLengthPos
from SONIA.sonia_leftpos_rightpos import SoniaLeftposRightpos
from SONIA.evaluate_model import EvaluateModel
from SONIA.sonia_vjl import SoniaVJL
from scipy import stats
import matplotlib.pyplot as plt
import re
import tensorflow.keras.backend as K
import tensorflow as tf
import random as rn
# set seeds for reproducibility
np.random.seed(42)
rn.seed(12345)
session_conf = tf.ConfigProto(intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1)
tf.set_random_seed(1234)
sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
K.set_session(sess)
#load 1M sequences
data=list(pd.read_csv('vampire-emerson/2019-03-18-freq-1M-train/count/basic/training-sequences.olga.tsv',
sep='\t',header=None).sample(frac=1).reset_index(drop=True).values)
gen=list(pd.read_csv('sampled_data/generated_sequences.csv').values.astype(np.str))
print len(gen),len(data)
#define and train model
qm = SoniaLengthPos(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection(epochs=50,batch_size=int(1e4),validation_split=0.01)
#save model
qm.save_model('selection_models/emerson_frequency_lengthpos_1M')
qm = SoniaLeftposRightpos(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection(epochs=50,batch_size=int(1e4),validation_split=0.01)
#save model
qm.save_model('selection_models/emerson_frequency_leftright_1M')
qm = SoniaVJL(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection()
qm.save_model('selection_models/emerson_frequency_vjl_1M',attributes_to_save = ['model', 'data_seqs', 'gen_seqs'])
data=list(pd.read_csv('vampire-emerson/2019-03-15-freq-in-ms/count/basic/training-sequences.olga.tsv',
sep='\t',header=None).sample(frac=1).reset_index(drop=True).values)
#define and train model
qm = SoniaLengthPos(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection(epochs=50,batch_size=int(1e4),validation_split=0.01)
#save model
qm.save_model('selection_models/emerson_frequency_lengthpos_0_2M')
#define and train model
qm = SoniaLeftposRightpos(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection(epochs=50,batch_size=int(1e4),validation_split=0.01)
#save model
qm.save_model('selection_models/emerson_frequency_leftright_0_2M')
qm = SoniaVJL(data_seqs=data,gen_seqs=gen,custom_pgen_model='universal_model')
qm.infer_selection()
qm.save_model('selection_models/emerson_frequency_vjl_0_2M',attributes_to_save = ['model', 'data_seqs', 'gen_seqs'])