| import csv
|
| import pickle
|
| import os |
| from _bootstrap import use_project_root |
|
|
| use_project_root() |
|
|
| if not os.path.exists('./conf/data/asPICKLE'):
|
| os.makedirs('./conf/data/asPICKLE')
|
|
|
| if not os.path.exists('./conf/data/asFASTA'):
|
| os.makedirs('./conf/data/asFASTA')
|
|
|
| data = []
|
| data_filter = []
|
| dir= './conf/data/nano'
|
| files=os.listdir(dir+"/")
|
| steps = []
|
|
|
| Hchain_sequence_len = []
|
| CDRH1_len =[]
|
| CDRH2_len =[]
|
| CDRH3_len =[]
|
|
|
| Antigen_sequence_1_len =[]
|
|
|
| antigen_names = set()
|
| antigen_seqs = set()
|
| nanobody_seqs = set()
|
| for file in files:
|
| print("file:" + dir + "/" + file + "\n")
|
| step = int(file.split('.')[0])
|
| steps.append(step)
|
| csv_file_path = dir + "/" + file
|
| counter = -1
|
| with open(csv_file_path, 'r') as f:
|
|
|
| csv_reader = csv.reader(f)
|
|
|
| for row in csv_reader:
|
| if (counter > -1 and counter % step == 0):
|
| data.append((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9], row[10],
|
| row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18], row[19], row[20],
|
| row[21], row[22], row[23], row[24], row[25], row[26], row[27], row[28]))
|
| resolution = row[27]
|
| antigen_type = row[14]
|
|
|
| if (float(resolution) >= 3.0):
|
| if (antigen_type == 'protein' or antigen_type == 'peptide'):
|
| data_filter.append((row[0], row[1], row[2], row[3], row[4], row[5], row[6], row[7], row[8], row[9],
|
| row[10], row[11], row[12], row[13], row[14], row[15], row[16], row[17], row[18],
|
| row[19], row[20], row[21], row[22], row[23], row[24], row[25], row[26], row[27],
|
| row[28]))
|
|
|
| counter = counter + 1
|
| f.close()
|
|
|
|
|
|
|
| data_filter_copy = data_filter.copy()
|
| removed_items = set()
|
| for i in range(0,len(data_filter)-1):
|
| item1 = data_filter[i]
|
| for j in range(i+1, len(data_filter)):
|
| item2 = data_filter[j]
|
| if (str(item1[2]) == str(item2[2]) or str(item1[17]) == str(item2[17])):
|
| removed_items.add(item1)
|
| break
|
| for r_item in removed_items:
|
| data_filter.remove(r_item)
|
| removed_items.clear()
|
|
|
| with open('conf/data/asPICKLE/data_filter.pickle', 'wb') as binary_writer:
|
| pickle.dump(data_filter, binary_writer)
|
|
|
| for row in data_filter:
|
| Hchain_sequence_len.append(len(row[2]))
|
| CDRH1_len.append(len(row[8]))
|
| CDRH2_len.append(len(row[9]))
|
| CDRH3_len.append(len(row[10]))
|
| Antigen_sequence_1_len.append(len(row[17]))
|
|
|
| nanobody_seqs.add(row[2])
|
| antigen_seqs.add(row[17])
|
|
|
| print(str(len(data)))
|
| print(str(len(data_filter_copy)))
|
| print(str(len(data_filter)))
|
| print("Hchain_sequence_max_len : ",str(max(Hchain_sequence_len)), '\n')
|
| print("CDRH1_len_max : ",str(max(CDRH1_len)), '\n')
|
| print("CDRH2_len_max : ",str(max(CDRH2_len)), '\n')
|
| print("CDRH3_len_max : ",str(max(CDRH3_len)), '\n')
|
| print("Antigen_sequence_1_max_len : ",str(max(Antigen_sequence_1_len)), '\n')
|
|
|
| print("Hchain_sequence_min_len : ",str(min(Hchain_sequence_len)), '\n')
|
| print("CDRH1_len_min : ",str(min(CDRH1_len)), '\n')
|
| print("CDRH2_len_min : ",str(min(CDRH2_len)), '\n')
|
| print("CDRH3_len_min : ",str(min(CDRH3_len)), '\n')
|
| print("Antigen_sequence_1_min_len : ",str(min(Antigen_sequence_1_len)), '\n')
|
|
|
|
|
|
|
| nanobody_seqs = open("conf/data/asFASTA/nanobody_seqs.fasta", "w")
|
| for item in data_filter:
|
| nanobody_seqs.write(">" + item[0] + " \n")
|
| nanobody_seqs.write(item[2] + " \n")
|
|
|
| print("done")
|
|
|