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')