File size: 2,694 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 79 80 81 | import pickle
from _bootstrap import use_project_root
use_project_root()
with open('conf/data/asPICKLE/data_filter_nano_identiy98.pickle', 'rb') as binary_reader:
data_filter_nano_identiy98 = pickle.load(binary_reader)
# store data_filter_nano_identiy98 as dic
data = dict()
for item in data_filter_nano_identiy98:
data[item[0]] = item
clstr_file_path = 'conf/data/asFASTA/antigen_seqs_after_nanobody_identiy98_90.fasta.clstr'
groups = []
cluster = []
counter = 0
with open(clstr_file_path, 'r') as file:
lines = file.readlines()
for line in lines:
if line[0] == '>':
if (len(cluster)>0):
cls = cluster.copy()
groups.append(cls)
cluster.clear()
else:
temp = line.split('>')
pdb = temp[1][0:4]
cluster.append(pdb)
cls = cluster.copy()
groups.append(cls)
cluster.clear()
file.close()
intra_group_binding = []
inter_group_binding = []
# 1 -> id , 2-> VHH seq , 8 -> CDRH1, 9-> CDRH2, 10 -> CDRH3, 17 -> antigen seq
id = 0
for group in groups:
if len(group) > 1:
for i in range(0, len(group)-1):
item_i = data[group[i]]
for j in range(i+1, len(group)):
item_j = data[group[j]]
intra_group_binding.append(('intra_'+str(id), item_i[2], item_i[8], item_i[9], item_i[10], item_j[17]))
id = id +1
intra_group_binding.append(('intra_'+str(id), item_j[2], item_j[8], item_j[9], item_j[10], item_i[17]))
id = id +1
# Save intra_group_binding as pickle file
with open('conf/data/asPICKLE/intra_group_binding.pickle', 'wb') as binary_writer:
pickle.dump(intra_group_binding, binary_writer)
id = 0
for i in range(0, len(groups)-1):
group_i = groups[i]
for j in range(i+1, len(groups)):
group_j = groups[j]
for id_i in group_i:
item_i = data[id_i]
for id_j in group_j:
item_j = data[id_j]
inter_group_binding.append(('inter_'+str(id), item_i[2], item_i[8], item_i[9], item_i[10], item_j[17]))
id = id +1
inter_group_binding.append(('inter_'+str(id), item_j[2], item_j[8], item_j[9], item_j[10], item_i[17]))
id = id +1
# Save inter_group_binding as pickle file
with open('conf/data/asPICKLE/inter_group_binding.pickle', 'wb') as binary_writer:
pickle.dump(inter_group_binding, binary_writer)
print("size of intra_group_binding is ", len(intra_group_binding))
print("size of inter_group_binding is ", len(inter_group_binding))
print('done')
|