File size: 2,906 Bytes
bf928ee | 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 69 70 71 72 73 74 75 76 77 78 | import pickle
import random
import os
from _bootstrap import use_project_root
use_project_root()
random.seed(123)
CDR_kmer = 3
Ag_kmer = 3
def sequence2tokens(seq, kmer):
tokens = []
for i in range(len(seq) - (kmer-1)):
tokens.append(seq[i:i + kmer])
return tokens
def CDR_Ag_create_tsv(CDR_Ag_pairs, mode, CDR_kmer, Ag_kmer, CDR_TSV, Ag_TSV):
f1 = open(CDR_TSV, "w")
f2 = open(Ag_TSV, "w")
for pair in CDR_Ag_pairs:
ID = pair[0]
CDR_seq = pair[2]
Ag_seq = pair[3]
label = pair[4]
CDR_number = pair[5]
label_str = str(label)
CDR_number_str = str(CDR_number)
CDR = str(CDR_seq).lower()
CDR_tokens = ""
tokens = sequence2tokens(CDR, CDR_kmer)
for token in tokens:
CDR_tokens = CDR_tokens + token + " "
res = mode + "\t" + ID + "\t" + label_str + "\t" + CDR_tokens + "\t" + CDR_number_str
f1.write(res + "\n")
Ag = str(Ag_seq).lower()
Ag_tokens = ""
tokens = sequence2tokens(Ag, Ag_kmer)
for token in tokens:
Ag_tokens = Ag_tokens + token + " "
res = mode + "\t" + ID + "\t" + label_str + "\t" + Ag_tokens + "\t" + CDR_number_str
f2.write(res + "\n")
def CDR_Ag_createTrainValTestTSV():
with open('conf/data/asPICKLE/train_CDR_antigen.pickle', 'rb') as binary_reader:
train_CDR_antigen = pickle.load(binary_reader)
with open('conf/data/asPICKLE/val_CDR_antigen.pickle', 'rb') as binary_reader:
val_CDR_antigen = pickle.load(binary_reader)
with open('conf/data/asPICKLE/test_CDR_antigen.pickle', 'rb') as binary_reader:
test_CDR_antigen = pickle.load(binary_reader)
# create tsv files for the train dataset
CDR_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/CDR_tr.tsv"
Ag_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/Ag_tr.tsv"
CDR_Ag_create_tsv(train_CDR_antigen, "train", CDR_kmer, Ag_kmer, CDR_TSV, Ag_TSV)
# create tsv files for the val dataset
CDR_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/CDR_val.tsv"
Ag_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/Ag_val.tsv"
CDR_Ag_create_tsv(val_CDR_antigen, "val", CDR_kmer, Ag_kmer, CDR_TSV, Ag_TSV)
# create tsv files for the test dataset
CDR_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/CDR_te.tsv"
Ag_TSV = "conf/data/asTSV/cdr_kmer" + str(CDR_kmer) + "_ag_kmer" + str(Ag_kmer) + "/Ag_te.tsv"
CDR_Ag_create_tsv(test_CDR_antigen, "test", CDR_kmer, Ag_kmer, CDR_TSV, Ag_TSV)
if not os.path.exists('./conf/data/asTSV'):
os.makedirs('./conf/data/asTSV')
CDR_Ag_createTrainValTestTSV()
print("hello")
|