-
Notifications
You must be signed in to change notification settings - Fork 0
/
thppred_stand.py
505 lines (361 loc) · 102 KB
/
thppred_stand.py
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
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
#IMPORTING LIBRARIES
import subprocess
import numpy as np
import pandas as pd
import pickle
from Bio import SeqIO
import re
import os
import onnxruntime as rt
import csv
import glob
import sys
model_path = "xgb_model.onnx"
session = rt.InferenceSession(model_path)
input_name = session.get_inputs()[0].name
output_name = session.get_outputs()[1].name
model_path1 = "rf_model.onnx"
session1 = rt.InferenceSession(model_path1)
input_name1 = session1.get_inputs()[0].name
output_name1 = session1.get_outputs()[1].name
#MODEL FROM ALTERNATE DATASET
def calculate_amino_acid_composition(sequence):
composition = {}
length = len(sequence)
for amino_acid in sequence:
composition[amino_acid] = composition.get(amino_acid, 0) + 1
for amino_acid, count in composition.items():
composition[amino_acid] = round(count / length * 100, 2)
return composition
def process_fasta_file_AAC(input_file, output_file):
with open(output_file, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
header = ["AAC_A", "AAC_C", "AAC_D", "AAC_E", "AAC_F", "AAC_G", "AAC_H", "AAC_I", "AAC_K", "AAC_L",
"AAC_M", "AAC_N", "AAC_P", "AAC_Q", "AAC_R", "AAC_S", "AAC_T", "AAC_V", "AAC_W", "AAC_Y"]
writer.writerow(header)
for record in SeqIO.parse(input_file, "fasta"):
sequence = str(record.seq)
composition = calculate_amino_acid_composition(sequence)
row = [composition.get(aa, 0) for aa in "ACDEFGHIKLMNPQRSTVWY"]
writer.writerow(row)
def aac_xgb_train(test):
result = session.run([output_name], {input_name: np.array(test, dtype=np.float32)})
#print(result)
print()
#y_predicted = model_aac_xgb.predict(test)
score = result[0]
#print(output_name)
return score
def aac_xgb(fasta_file,thr):
input_fasta_file = fasta_file
output_csv_file = "pfeature_result.csv"
process_fasta_file_AAC(input_fasta_file, output_csv_file)
# Set the arguments for pfeature_comp.py
#args = ['python', 'pfeature_comp.py', '-i', fasta_file,'o','pfeature_result.csv', '-j', 'AAC']
# Run the script and capture its output
# result = subprocess.run(args, capture_output=True, text=True)
#print(result)
#print("successful")
test = pd.read_csv('pfeature_result.csv')
score = aac_xgb_train(test)
score = [item[1] for item in score]
thr_pred=[]
for i in score:
if i>=float(thr):
thr_pred.append(1)
elif i<float(thr):
thr_pred.append(0)
predictions=thr_pred
fasta_file = input_fasta_file
records = list(SeqIO.parse(fasta_file, "fasta"))
df = pd.DataFrame({'Sequence ID': [str(record.id) for record in records],'Score': score, 'Prediction': predictions})
# replace the values in the 'target' column
df['Prediction'] = df['Prediction'].replace({1: 'Therapeutic', 0: 'Non-Therapeutic'})
df = df.reset_index(drop=True)
return df
def aac_xgb_merci(fasta_file,thr):
# Set the arguments for pfeature_comp.py
input_fasta_file = fasta_file
output_csv_file = "pfeature_result.csv"
process_fasta_file_AAC(input_fasta_file, output_csv_file)
#args = ['/gpsr/software/anaconda3/bin/python', '/usr1/webserver/cgibin/thppred/pfeature_comp.py', '-i', fasta_file,'-o','pfeature_result.csv', '-j', 'AAC']
# Run the script and capture its output
#result = subprocess.run(args, capture_output=True, text=True)
#print(result)
#print("successful")
test = pd.read_csv('pfeature_result.csv')
score= aac_xgb_train(test)
score = [item[1] for item in score]
thr_pred=[]
for i in score:
if i>=float(thr):
thr_pred.append(1)
elif i<float(thr):
thr_pred.append(0)
predictions=thr_pred
# Generating motif labels
# Define your positive and negative motifs
pos_motifs = ['IKKLN', 'VKKLN', 'LKKLN', 'AKKLN', 'GKKLN', 'IKRLN', 'VKRLN', 'LKRLN', 'AKRLN', 'GKRLN', 'IKHLN', 'VKHLN', 'LKHLN', 'AKHLN', 'GKHLN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'WKRIN', 'WKRVN', 'WKRLN', 'WKRAN', 'WKRGN', 'YKRIN', 'YKRVN', 'YKRLN', 'YKRAN', 'YKRGN', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'IMHSL', 'VMHSL', 'LMHSL', 'AMHSL', 'GMHSL', 'IMHTL', 'VMHTL', 'LMHTL', 'AMHTL', 'GMHTL', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'IMHQL', 'VMHQL', 'LMHQL', 'AMHQL', 'GMHQL', 'ICHNL', 'VCHNL', 'LCHNL', 'ACHNL', 'GCHNL', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'MHNL', 'SIWVI', 'SIWVV', 'SIWVL', 'SIWVA', 'SIWVG', 'TIWVI', 'TIWVV', 'TIWVL', 'TIWVA', 'TIWVG', 'NIWVI', 'NIWVV', 'NIWVL', 'NIWVA', 'NIWVG', 'QIWVI', 'QIWVV', 'QIWVL', 'QIWVA', 'QIWVG', 'MAHNL', 'MCHNL', 'MDHNL', 'MEHNL', 'MFHNL', 'MGHNL', 'MHHNL', 'MIHNL', 'MKHNL', 'MLHNL', 'MMHNL', 'MPHNL', 'MQHNL', 'MRHNL', 'MSHNL', 'MTHNL', 'MUHNL', 'MVHNL', 'MWHNL', 'MYHNL', 'YICAC', 'YICCC', 'YICDC', 'YICEC', 'YICFC', 'YICGC', 'YICHC', 'YICIC', 'YICKC', 'YICLC', 'YICMC', 'YICPC', 'YICQC', 'YICRC', 'YICSC', 'YICTC', 'YICUC', 'YICVC', 'YICWC', 'YICYC', 'YIMAM', 'YIMCM', 'YIMDM', 'YIMEM', 'YIMFM', 'YIMGM', 'YIMHM', 'YIMIM', 'YIMKM', 'YIMLM', 'YIMMM', 'YIMPM', 'YIMQM', 'YIMRM', 'YIMSM', 'YIMTM', 'YIMUM', 'YIMVM', 'YIMWM', 'YIMYM', 'MHNL', 'DTPEE', 'DVHNF', 'DYYM', 'ERVEW', 'EWLRK', 'FKRIN', 'GKHLN', 'HLNSM', 'MHNL', 'MAHNL', 'MCHNL', 'MDHNL', 'MEHNL', 'MFHNL', 'MGHNL', 'MHHNL', 'MIHNL', 'MKHNL', 'MLHNL', 'MMHNL', 'MPHNL', 'MQHNL', 'MRHNL', 'MSHNL', 'MTHNL', 'MUHNL', 'MVHNL', 'MWHNL', 'MYHNL', 'REAQT', 'RECQT', 'REDQT', 'REEQT', 'REFQT', 'REGQT', 'REHQT', 'REIQT', 'REKQT', 'RELQT', 'REMQT', 'REPQT', 'REQQT', 'RERQT', 'RESQT', 'RETQT', 'REUQT', 'REVQT', 'REWQT', 'REYQT', 'CAWSS', 'CCWSS', 'CDWSS', 'CEWSS', 'CFWSS', 'CGWSS', 'CHWSS', 'CIWSS', 'CKWSS', 'CLWSS', 'CMWSS', 'CPWSS', 'CQWSS', 'CRWSS', 'CSWSS', 'CTWSS', 'CUWSS', 'CVWSS', 'CWWSS', 'CYWSS', 'EAPCG', 'ECPCG', 'EDPCG', 'EEPCG', 'EFPCG', 'EGPCG', 'EHPCG', 'EIPCG', 'EKPCG', 'ELPCG', 'EMPCG', 'EPPCG', 'EQPCG', 'ERPCG', 'ESPCG', 'ETPCG', 'EUPCG', 'EVPCG', 'EWPCG', 'EYPCG', 'RAWIS', 'RGWIS', 'RIWIS', 'RLWIS', 'RMWIS', 'RFWIS', 'RPWIS', 'RWWIS', 'RYWIS', 'RVWIS', 'EAWIS', 'EGWIS', 'EIWIS', 'ELWIS', 'EMWIS', 'EFWIS', 'EPWIS', 'EWWIS', 'EYWIS', 'EVWIS', 'QAWIS', 'QGWIS', 'QIWIS', 'QLWIS', 'QMWIS', 'QFWIS', 'QPWIS', 'QWWIS', 'QYWIS', 'QVWIS', 'HAWIS', 'HGWIS', 'HIWIS', 'HLWIS', 'HMWIS', 'HFWIS', 'HPWIS', 'HWWIS', 'HYWIS', 'HVWIS', 'IAWIS', 'IGWIS', 'IIWIS', 'ILWIS', 'IMWIS', 'IFWIS', 'IPWIS', 'IWWIS', 'IYWIS', 'IVWIS', 'LAWIS', 'LGWIS', 'LIWIS', 'LLWIS', 'LMWIS', 'LFWIS', 'LPWIS', 'LWWIS', 'LYWIS', 'LVWIS', 'KAWIS', 'KGWIS', 'KIWIS', 'KLWIS', 'KMWIS', 'KFWIS', 'KPWIS', 'KWWIS', 'KYWIS', 'KVWIS', 'MAWIS', 'MGWIS', 'MIWIS', 'MLWIS', 'MMWIS', 'MFWIS', 'MPWIS', 'MWWIS', 'MYWIS', 'MVWIS', 'FAWIS', 'FGWIS', 'FIWIS', 'FLWIS', 'FMWIS', 'FFWIS', 'FPWIS', 'FWWIS', 'FYWIS', 'FVWIS', 'WAWIS', 'WGWIS', 'WIWIS', 'WLWIS', 'WMWIS', 'WFWIS', 'WPWIS', 'WWWIS', 'WYWIS', 'WVWIS', 'YAWIS', 'YGWIS', 'YIWIS', 'YLWIS', 'YMWIS', 'YFWIS', 'YPWIS', 'YWWIS', 'YYWIS', 'YVWIS', 'FKRAN', 'FKRCN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRWN', 'FKRVN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRPN', 'FKRWN', 'FKRYN', 'FKRVN', 'FKRRN', 'FKREN', 'FKRQN', 'FKRHN', 'FKRIN', 'FKRLN', 'FKRKN', 'FKRMN', 'FKRFN', 'FKRWN', 'FKRYN', 'FKRAN', 'WKRAN', 'YKRAN', 'FKRCN', 'WKRCN', 'YKRCN', 'FKRIN', 'WKRIN', 'YKRIN', 'FKRLN', 'WKRLN', 'YKRLN', 'FKRMN', 'WKRMN', 'YKRMN', 'FKRFN', 'WKRFN', 'YKRFN', 'FKRWN', 'WKRWN', 'YKRWN', 'FKRVN', 'WKRVN', 'YKRVN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'WKRIN', 'WKRVN', 'WKRLN', 'WKRAN', 'WKRGN', 'YKRIN', 'YKRVN', 'YKRLN', 'YKRAN', 'YKRGN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRPN', 'FKRWN', 'FKRYN', 'FKRVN', 'WKRAN', 'WKRGN', 'WKRIN', 'WKRLN', 'WKRMN', 'WKRFN', 'WKRPN', 'WKRWN', 'WKRYN', 'WKRVN', 'YKRAN', 'YKRGN', 'YKRIN', 'YKRLN', 'YKRMN', 'YKRFN', 'YKRPN', 'YKRWN', 'YKRYN', 'YKRVN']
neg_motifs = ['PVDP', 'PVEP', 'IPIKP', 'VPVKP', 'LPLKP', 'APAKP', 'GPGKP', 'IPIRP', 'VPVRP', 'LPLRP', 'APARP', 'GPGRP', 'IPIHP', 'VPVHP', 'LPLHP', 'APAHP', 'GPGHP', 'TPIPI', 'TPVPV', 'TPLPL', 'TPAPA', 'TPGPG', 'IPIRP', 'VPVRP', 'LPLRP', 'APARP', 'GPGRP', 'TPIPG', 'TPVPG', 'TPLPG', 'TPAPG', 'TPGPG', 'PSVP', 'PTVP', 'PNVP', 'PQVP', 'SIPIR', 'SVPVR', 'SLPLR', 'SAPAR', 'SGPGR', 'TIPIR', 'TVPVR', 'TLPLR', 'TAPAR', 'TGPGR', 'NIPIR', 'NVPVR', 'NLPLR', 'NAPAR', 'NGPGR', 'QIPIR', 'QVPVR', 'QLPLR', 'QAPAR', 'QGPGR', 'LDLF', 'LDLW', 'LDLY', 'LELF', 'LELW', 'LELY', 'PVKP', 'PVRP', 'PVHP', 'VPIR', 'VPVR', 'VPLR', 'VPAR', 'VPGR', 'PVADP', 'PVCDP', 'PVDDP', 'PVEDP', 'PVFDP', 'PVGDP', 'PVHDP', 'PVIDP', 'PVKDP', 'PVLDP', 'PVMDP', 'PVPDP', 'PVQDP', 'PVRDP', 'PVSDP', 'PVTDP', 'PVUDP', 'PVVDP', 'PVWDP', 'PVYDP', 'PVAEP', 'PVCEP', 'PVDEP', 'PVEEP', 'PVFEP', 'PVGEP', 'PVHEP', 'PVIEP', 'PVKEP', 'PVLEP', 'PVMEP', 'PVPEP', 'PVQEP', 'PVREP', 'PVSEP', 'PVTEP', 'PVUEP', 'PVVEP', 'PVWEP', 'PVYEP', 'PVDAP', 'PVDCP', 'PVDDP', 'PVDEP', 'PVDFP', 'PVDGP', 'PVDHP', 'PVDIP', 'PVDKP', 'PVDLP', 'PVDMP', 'PVDPP', 'PVDQP', 'PVDRP', 'PVDSP', 'PVDTP', 'PVDUP', 'PVDVP', 'PVDWP', 'PVDYP', 'PVEAP', 'PVECP', 'PVEDP', 'PVEEP', 'PVEFP', 'PVEGP', 'PVEHP', 'PVEIP', 'PVEKP', 'PVELP', 'PVEMP', 'PVEPP', 'PVEQP', 'PVERP', 'PVESP', 'PVETP', 'PVEUP', 'PVEVP', 'PVEWP', 'PVEYP', 'PVDP', 'PVEP', 'PMAT', 'PMCT', 'PMDT', 'PMET', 'PMFT', 'PMGT', 'PMHT', 'PMIT', 'PMKT', 'PMLT', 'PMMT', 'PMPT', 'PMQT', 'PMRT', 'PMST', 'PMTT', 'PMUT', 'PMVT', 'PMWT', 'PMYT', 'PMASF', 'PMCSF', 'PMDSF', 'PMESF', 'PMFSF', 'PMGSF', 'PMHSF', 'PMISF', 'PMKSF', 'PMLSF', 'PMMSF', 'PMPSF', 'PMQSF', 'PMRSF', 'PMSSF', 'PMTSF', 'PMUSF', 'PMVSF', 'PMWSF', 'PMYSF', 'PMASW', 'PMCSW', 'PMDSW', 'PMESW', 'PMFSW', 'PMGSW', 'PMHSW', 'PMISW', 'PMKSW', 'PMLSW', 'PMMSW', 'PMPSW', 'PMQSW', 'PMRSW', 'PMSSW', 'PMTSW', 'PMUSW', 'PMVSW', 'PMWSW', 'PMYSW', 'PMASY', 'PMCSY', 'PMDSY', 'PMESY', 'PMFSY', 'PMGSY', 'PMHSY', 'PMISY', 'PMKSY', 'PMLSY', 'PMMSY', 'PMPSY', 'PMQSY', 'PMRSY', 'PMSSY', 'PMTSY', 'PMUSY', 'PMVSY', 'PMWSY', 'PMYSY', 'PMATF', 'PMCTF', 'PMDTF', 'PMETF', 'PMFTF', 'PMGTF', 'PMHTF', 'PMITF', 'PMKTF', 'PMLTF', 'PMMTF', 'PMPTF', 'PMQTF', 'PMRTF', 'PMSTF', 'PMTTF', 'PMUTF', 'PMVTF', 'PMWTF', 'PMYTF', 'PMATW', 'PMCTW', 'PMDTW', 'PMETW', 'PMFTW', 'PMGTW', 'PMHTW', 'PMITW', 'PMKTW', 'PMLTW', 'PMMTW', 'PMPTW', 'PMQTW', 'PMRTW', 'PMSTW', 'PMTTW', 'PMUTW', 'PMVTW', 'PMWTW', 'PMYTW', 'PMATY', 'PMCTY', 'PMDTY', 'PMETY', 'PMFTY', 'PMGTY', 'PMHTY', 'PMITY', 'PMKTY', 'PMLTY', 'PMMTY', 'PMPTY', 'PMQTY', 'PMRTY', 'PMSTY', 'PMTTY', 'PMUTY', 'PMVTY', 'PMWTY', 'PMYTY', 'PMANF', 'PMCNF', 'PMDNF', 'PMENF', 'PMFNF', 'PMGNF', 'PMHNF', 'PMINF', 'PMKNF', 'PMLNF', 'PMMNF', 'PMPNF', 'PMQNF', 'PMRNF', 'PMSNF', 'PMTNF', 'PMUNF', 'PMVNF', 'PMWNF', 'PMYNF', 'PMANW', 'PMCNW', 'PMDNW', 'PMENW', 'PMFNW', 'PMGNW', 'PMHNW', 'PMINW', 'PMKNW', 'PMLNW', 'PMMNW', 'PMPNW', 'PMQNW', 'PMRNW', 'PMSNW', 'PMTNW', 'PMUNW', 'PMVNW', 'PMWNW', 'PMYNW', 'PMANY', 'PMCNY', 'PMDNY', 'PMENY', 'PMFNY', 'PMGNY', 'PMHNY', 'PMINY', 'PMKNY', 'PMLNY', 'PMMNY', 'PMPNY', 'PMQNY', 'PMRNY', 'PMSNY', 'PMTNY', 'PMUNY', 'PMVNY', 'PMWNY', 'PMYNY', 'PMAQF', 'PMCQF', 'PMDQF', 'PMEQF', 'PMFQF', 'PMGQF', 'PMHQF', 'PMIQF', 'PMKQF', 'PMLQF', 'PMMQF', 'PMPQF', 'PMQQF', 'PMRQF', 'PMSQF', 'PMTQF', 'PMUQF', 'PMVQF', 'PMWQF', 'PMYQF', 'PMAQW', 'PMCQW', 'PMDQW', 'PMEQW', 'PMFQW', 'PMGQW', 'PMHQW', 'PMIQW', 'PMKQW', 'PMLQW', 'PMMQW', 'PMPQW', 'PMQQW', 'PMRQW', 'PMSQW', 'PMTQW', 'PMUQW', 'PMVQW', 'PMWQW', 'PMYQW', 'PMAQY', 'PMCQY', 'PMDQY', 'PMEQY', 'PMFQY', 'PMGQY', 'PMHQY', 'PMIQY', 'PMKQY', 'PMLQY', 'PMMQY', 'PMPQY', 'PMQQY', 'PMRQY', 'PMSQY', 'PMTQY', 'PMUQY', 'PMVQY', 'PMWQY', 'PMYQY', 'PVKAP', 'PVKCP', 'PVKDP', 'PVKEP', 'PVKFP', 'PVKGP', 'PVKHP', 'PVKIP', 'PVKKP', 'PVKLP', 'PVKMP', 'PVKPP', 'PVKQP', 'PVKRP', 'PVKSP', 'PVKTP', 'PVKUP', 'PVKVP', 'PVKWP', 'PVKYP', 'PVRAP', 'PVRCP', 'PVRDP', 'PVREP', 'PVRFP', 'PVRGP', 'PVRHP', 'PVRIP', 'PVRKP', 'PVRLP', 'PVRMP', 'PVRPP', 'PVRQP', 'PVRRP', 'PVRSP', 'PVRTP', 'PVRUP', 'PVRVP', 'PVRWP', 'PVRYP', 'PVHAP', 'PVHCP', 'PVHDP', 'PVHEP', 'PVHFP', 'PVHGP', 'PVHHP', 'PVHIP', 'PVHKP', 'PVHLP', 'PVHMP', 'PVHPP', 'PVHQP', 'PVHRP', 'PVHSP', 'PVHTP', 'PVHUP', 'PVHVP', 'PVHWP', 'PVHYP', 'LLHP', 'VGFP', 'GFPV', 'PQVP', 'ILDL', 'VGFPV', 'PMT', 'LDLW', 'FPDW', 'ILDLW', 'PMAT', 'PMCT', 'PMDT', 'PMET', 'PMFT', 'PMGT', 'PMHT', 'PMIT', 'PMKT', 'PMLT', 'PMMT', 'PMPT', 'PMQT', 'PMRT', 'PMST', 'PMTT', 'PMUT', 'PMVT', 'PMWT', 'PMYT', 'VPARP', 'VPCRP', 'VPDRP', 'VPERP', 'VPFRP', 'VPGRP', 'VPHRP', 'VPIRP', 'VPKRP', 'VPLRP', 'VPMRP', 'VPPRP', 'VPQRP', 'VPRRP', 'VPSRP', 'VPTRP', 'VPURP', 'VPVRP', 'VPWRP', 'VPYRP', 'VPLAP', 'VPLCP', 'VPLDP', 'VPLEP', 'VPLFP', 'VPLGP', 'VPLHP', 'VPLIP', 'VPLKP', 'VPLLP', 'VPLMP', 'VPLPP', 'VPLQP', 'VPLRP', 'VPLSP', 'VPLTP', 'VPLUP', 'VPLVP', 'VPLWP', 'VPLYP', 'QVPAR', 'QVPCR', 'QVPDR', 'QVPER', 'QVPFR', 'QVPGR', 'QVPHR', 'QVPIR', 'QVPKR', 'QVPLR', 'QVPMR', 'QVPPR', 'QVPQR', 'QVPRR', 'QVPSR', 'QVPTR', 'QVPUR', 'QVPVR', 'QVPWR', 'QVPYR', 'ILADL', 'ILCDL', 'ILDDL', 'ILEDL', 'ILFDL', 'ILGDL', 'ILHDL', 'ILIDL', 'ILKDL', 'ILLDL', 'ILMDL', 'ILPDL', 'ILQDL', 'ILRDL', 'ILSDL', 'ILTDL', 'ILUDL', 'ILVDL', 'ILWDL', 'ILYDL', 'LLHAP', 'LLHCP', 'LLHDP', 'LLHEP', 'LLHFP', 'LLHGP', 'LLHHP', 'LLHIP', 'LLHKP', 'LLHLP', 'LLHMP', 'LLHPP', 'LLHQP', 'LLHRP', 'LLHSP', 'LLHTP', 'LLHUP', 'LLHVP', 'LLHWP', 'LLHYP', 'LLAHP', 'LLCHP', 'LLDHP', 'LLEHP', 'LLFHP', 'LLGHP', 'LLHHP', 'LLIHP', 'LLKHP', 'LLLHP', 'LLMHP', 'LLPHP', 'LLQHP', 'LLRHP', 'LLSHP', 'LLTHP', 'LLUHP', 'LLVHP', 'LLWHP', 'LLYHP', 'LALHP', 'LCLHP', 'LDLHP', 'LELHP', 'LFLHP', 'LGLHP', 'LHLHP', 'LILHP', 'LKLHP', 'LLLHP', 'LMLHP', 'LPLHP', 'LQLHP', 'LRLHP', 'LSLHP', 'LTLHP', 'LULHP', 'LVLHP', 'LWLHP', 'LYLHP', 'VGAPV', 'VGCPV', 'VGDPV', 'VGEPV', 'VGFPV', 'VGGPV', 'VGHPV', 'VGIPV', 'VGKPV', 'VGLPV', 'VGMPV', 'VGPPV', 'VGQPV', 'VGRPV', 'VGSPV', 'VGTPV', 'VGUPV', 'VGVPV', 'VGWPV', 'VGYPV', 'LLHP', 'PVDP', 'PVEP', 'PVHP', 'PVKP', 'PVRP', 'PVDPR', 'PVEPR', 'PVHPR', 'PVKPR', 'PVRPR', 'PVDPN', 'PVEPN', 'PVHPN', 'PVKPN', 'PVRPN', 'PVDPD', 'PVEPD', 'PVHPD', 'PVKPD', 'PVRPD', 'PVDPE', 'PVEPE', 'PVHPE', 'PVKPE', 'PVRPE', 'PVDPQ', 'PVEPQ', 'PVHPQ', 'PVKPQ', 'PVRPQ', 'PVDPG', 'PVEPG', 'PVHPG', 'PVKPG', 'PVRPG', 'PVDPH', 'PVEPH', 'PVHPH', 'PVKPH', 'PVRPH', 'PVDPK', 'PVEPK', 'PVHPK', 'PVKPK', 'PVRPK', 'PVDPP', 'PVEPP', 'PVHPP', 'PVKPP', 'PVRPP', 'PVDPS', 'PVEPS', 'PVHPS', 'PVKPS', 'PVRPS', 'PVDPT', 'PVEPT', 'PVHPT', 'PVKPT', 'PVRPT', 'PVDPY', 'PVEPY', 'PVHPY', 'PVKPY', 'PVRPY', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'RDKAR', 'REKAR', 'RHKAR', 'RKKAR', 'RRKAR', 'RDRAR', 'RERAR', 'RHRAR', 'RKRAR', 'RRRAR', 'RDHAR', 'REHAR', 'RHHAR', 'RKHAR', 'RRHAR', 'RDKCR', 'REKCR', 'RHKCR', 'RKKCR', 'RRKCR', 'RDRCR', 'RERCR', 'RHRCR', 'RKRCR', 'RRRCR', 'RDHCR', 'REHCR', 'RHHCR', 'RKHCR', 'RRHCR', 'RDKIR', 'REKIR', 'RHKIR', 'RKKIR', 'RRKIR', 'RDRIR', 'RERIR', 'RHRIR', 'RKRIR', 'RRRIR', 'RDHIR', 'REHIR', 'RHHIR', 'RKHIR', 'RRHIR', 'RDKLR', 'REKLR', 'RHKLR', 'RKKLR', 'RRKLR', 'RDRLR', 'RERLR', 'RHRLR', 'RKRLR', 'RRRLR', 'RDHLR', 'REHLR', 'RHHLR', 'RKHLR', 'RRHLR', 'RDKMR', 'REKMR', 'RHKMR', 'RKKMR', 'RRKMR', 'RDRMR', 'RERMR', 'RHRMR', 'RKRMR', 'RRRMR', 'RDHMR', 'REHMR', 'RHHMR', 'RKHMR', 'RRHMR', 'RDKFR', 'REKFR', 'RHKFR', 'RKKFR', 'RRKFR', 'RDRFR', 'RERFR', 'RHRFR', 'RKRFR', 'RRRFR', 'RDHFR', 'REHFR', 'RHHFR', 'RKHFR', 'RRHFR', 'RDKWR', 'REKWR', 'RHKWR', 'RKKWR', 'RRKWR', 'RDRWR', 'RERWR', 'RHRWR', 'RKRWR', 'RRRWR', 'RDHWR', 'REHWR', 'RHHWR', 'RKHWR', 'RRHWR', 'RDKVR', 'REKVR', 'RHKVR', 'RKKVR', 'RRKVR', 'RDRVR', 'RERVR', 'RHRVR', 'RKRVR', 'RRRVR', 'RDHVR', 'REHVR', 'RHHVR', 'RKHVR', 'RRHVR', 'PVDPR', 'PVEPR', 'PVHPR', 'PVKPR', 'PVRPR', 'PVDPN', 'PVEPN', 'PVHPN', 'PVKPN', 'PVRPN', 'PVDPD', 'PVEPD', 'PVHPD', 'PVKPD', 'PVRPD', 'PVDPC', 'PVEPC', 'PVHPC', 'PVKPC', 'PVRPC', 'PVDPE', 'PVEPE', 'PVHPE', 'PVKPE', 'PVRPE', 'PVDPQ', 'PVEPQ', 'PVHPQ', 'PVKPQ', 'PVRPQ', 'PVDPH', 'PVEPH', 'PVHPH', 'PVKPH', 'PVRPH', 'PVDPK', 'PVEPK', 'PVHPK', 'PVKPK', 'PVRPK', 'PVDPS', 'PVEPS', 'PVHPS', 'PVKPS', 'PVRPS', 'PVDPI', 'PVEPI', 'PVHPI', 'PVKPI', 'PVRPI', 'RDRAR', 'RERAR', 'RHRAR', 'RKRAR', 'RRRAR', 'RDRCR', 'RERCR', 'RHRCR', 'RKRCR', 'RRRCR', 'RDRIR', 'RERIR', 'RHRIR', 'RKRIR', 'RRRIR', 'RDRLR', 'RERLR', 'RHRLR', 'RKRLR', 'RRRLR', 'RDRMR', 'RERMR', 'RHRMR', 'RKRMR', 'RRRMR', 'RDRFR', 'RERFR', 'RHRFR', 'RKRFR', 'RRRFR', 'RDRWR', 'RERWR', 'RHRWR', 'RKRWR', 'RRRWR', 'RDRVR', 'RERVR', 'RHRVR', 'RKRVR', 'RRRVR', 'MsmallGD', 'MsmallGE', 'MsmallGH', 'MsmallGK', 'MsmallGR', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'aPPVDP', 'aPPVEP', 'aPPVHP', 'aPPVKP', 'aPPVRP', 'MsmallGK', 'MsmallGR', 'MsmallGH', 'MsmallGDS', 'MsmallGES', 'MsmallGHS', 'MsmallGKS', 'MsmallGRS', 'MsmallGDT', 'MsmallGET', 'MsmallGHT', 'MsmallGKT', 'MsmallGRT', 'MsmallGDN', 'MsmallGEN', 'MsmallGHN', 'MsmallGKN', 'MsmallGRN', 'MsmallGDQ', 'MsmallGEQ', 'MsmallGHQ', 'MsmallGKQ', 'MsmallGRQ', 'PVADP', 'PVAEP', 'PVAHP', 'PVAKP', 'PVARP', 'PVCDP', 'PVCEP', 'PVCHP', 'PVCKP', 'PVCRP', 'PVDDP', 'PVDEP', 'PVDHP', 'PVDKP', 'PVDRP', 'PVEDP', 'PVEEP', 'PVEHP', 'PVEKP', 'PVERP', 'PVFDP', 'PVFEP', 'PVFHP', 'PVFKP', 'PVFRP', 'PVGDP', 'PVGEP', 'PVGHP', 'PVGKP', 'PVGRP', 'PVHDP', 'PVHEP', 'PVHHP', 'PVHKP', 'PVHRP', 'PVIDP', 'PVIEP', 'PVIHP', 'PVIKP', 'PVIRP', 'PVKDP', 'PVKEP', 'PVKHP', 'PVKKP', 'PVKRP', 'PVLDP', 'PVLEP', 'PVLHP', 'PVLKP', 'PVLRP', 'PVMDP', 'PVMEP', 'PVMHP', 'PVMKP', 'PVMRP', 'PVPDP', 'PVPEP', 'PVPHP', 'PVPKP', 'PVPRP', 'PVQDP', 'PVQEP', 'PVQHP', 'PVQKP', 'PVQRP', 'PVRDP', 'PVREP', 'PVRHP', 'PVRKP', 'PVRRP', 'PVSDP', 'PVSEP', 'PVSHP', 'PVSKP', 'PVSRP', 'PVTDP', 'PVTEP', 'PVTHP', 'PVTKP', 'PVTRP', 'PVUDP', 'PVUEP', 'PVUHP', 'PVUKP', 'PVURP', 'PVVDP', 'PVVEP', 'PVVHP', 'PVVKP', 'PVVRP', 'PVWDP', 'PVWEP', 'PVWHP', 'PVWKP', 'PVWRP', 'PVYDP', 'PVYEP', 'PVYHP', 'PVYKP', 'PVYRP', 'PVDAP', 'PVEAP', 'PVHAP', 'PVKAP', 'PVRAP', 'PVDCP', 'PVECP', 'PVHCP', 'PVKCP', 'PVRCP', 'PVDDP', 'PVEDP', 'PVHDP', 'PVKDP', 'PVRDP', 'PVDEP', 'PVEEP', 'PVHEP', 'PVKEP', 'PVREP', 'PVDFP', 'PVEFP', 'PVHFP', 'PVKFP', 'PVRFP', 'PVDGP', 'PVEGP', 'PVHGP', 'PVKGP', 'PVRGP', 'PVDHP', 'PVEHP', 'PVHHP', 'PVKHP', 'PVRHP', 'PVDIP', 'PVEIP', 'PVHIP', 'PVKIP', 'PVRIP', 'PVDKP', 'PVEKP', 'PVHKP', 'PVKKP', 'PVRKP', 'PVDLP', 'PVELP', 'PVHLP', 'PVKLP', 'PVRLP', 'PVDMP', 'PVEMP', 'PVHMP', 'PVKMP', 'PVRMP', 'PVDPP', 'PVEPP', 'PVHPP', 'PVKPP', 'PVRPP', 'PVDQP', 'PVEQP', 'PVHQP', 'PVKQP', 'PVRQP', 'PVDRP', 'PVERP', 'PVHRP', 'PVKRP', 'PVRRP', 'PVDSP', 'PVESP', 'PVHSP', 'PVKSP', 'PVRSP', 'PVDTP', 'PVETP', 'PVHTP', 'PVKTP', 'PVRTP', 'PVDUP', 'PVEUP', 'PVHUP', 'PVKUP', 'PVRUP', 'PVDVP', 'PVEVP', 'PVHVP', 'PVKVP', 'PVRVP', 'PVDWP', 'PVEWP', 'PVHWP', 'PVKWP', 'PVRWP', 'PVDYP', 'PVEYP', 'PVHYP', 'PVKYP', 'PVRYP', 'PVDP', 'PVEP', 'PVHP', 'PVKP', 'PVRP']
# Open your FASTA file
with open(input_fasta_file, 'r') as fasta_file:
num_pos_matches=0
num_neg_matches=0
# Use BioPython's SeqIO to parse the file
records = list(SeqIO.parse(fasta_file, 'fasta'))
# Create a list to hold your labels
labels = []
# Iterate over each record in the file
for record in records:
for i in pos_motifs:
if i in str(record.seq):
num_pos_matches+=1
for i in neg_motifs:
if i in str(record.seq):
num_neg_matches+=1
# Determine the label for this sequence
if num_pos_matches > num_neg_matches:
label = 1
elif num_pos_matches < num_neg_matches:
label = -1
else:
label = 0
# Append the label to your list
labels.append(label)
hybrid = [x + y for x, y in zip(score, labels)]
#new_predictions = [predictions[i] if labels[i] == 2 else labels[i] for i in range(len(predictions))]
new_predictions = [1 if hybrid[i]>=float(thr) else 0 for i in range(len(hybrid))]
fasta_file = input_fasta_file
records = list(SeqIO.parse(fasta_file, "fasta"))
df = pd.DataFrame({'Subject': [str(record.id) for record in records],'ML Score': score,'Motif Score': labels,'Hybrid Score': hybrid, 'Prediction': new_predictions})
# replace the values in the 'target' column
df['Prediction'] = df['Prediction'].replace({1: 'Therapeutic', 0: 'Non-Therapeutic'})
df = df.reset_index(drop=True)
return df
#########################################################################################################################################################################
#MODEL FROM MAIN DATASET
def calculate_dipeptide_composition(sequence):
"""
Calculates the dipeptide composition of a protein sequence.
Args:
sequence (str): Protein sequence.
Returns:
dict: A dictionary containing the count of each dipeptide in the sequence.
"""
composition = {}
length = len(sequence)
for i in range(length - 1):
dipeptide = sequence[i:i+2]
composition[dipeptide] = composition.get(dipeptide, 0) + 1
for dipeptide, count in composition.items():
composition[dipeptide] = round(count / (length - 1) * 100, 2)
return composition
def process_fasta_file_DPC(input_file, output_file):
"""
Calculates the dipeptide composition for each sequence in the FASTA file and writes the results to a CSV file.
Args:
input_file (str): Path to the input FASTA file.
output_file (str): Path to the output CSV file.
"""
dipeptides = [
"AA", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AK", "AL", "AM", "AN", "AP", "AQ", "AR", "AS", "AT", "AV", "AW", "AY",
"CA", "CC", "CD", "CE", "CF", "CG", "CH", "CI", "CK", "CL", "CM", "CN", "CP", "CQ", "CR", "CS", "CT", "CV", "CW", "CY",
"DA", "DC", "DD", "DE", "DF", "DG", "DH", "DI", "DK", "DL", "DM", "DN", "DP", "DQ", "DR", "DS", "DT", "DV", "DW", "DY",
"EA", "EC", "ED", "EE", "EF", "EG", "EH", "EI", "EK", "EL", "EM", "EN", "EP", "EQ", "ER", "ES", "ET", "EV", "EW", "EY",
"FA", "FC", "FD", "FE", "FF", "FG", "FH", "FI", "FK", "FL", "FM", "FN", "FP", "FQ", "FR", "FS", "FT", "FV", "FW", "FY",
"GA", "GC", "GD", "GE", "GF", "GG", "GH", "GI", "GK", "GL", "GM", "GN", "GP", "GQ", "GR", "GS", "GT", "GV", "GW", "GY",
"HA", "HC", "HD", "HE", "HF", "HG", "HH", "HI", "HK", "HL", "HM", "HN", "HP", "HQ", "HR", "HS", "HT", "HV", "HW", "HY",
"IA", "IC", "ID", "IE", "IF", "IG", "IH", "II", "IK", "IL", "IM", "IN", "IP", "IQ", "IR", "IS", "IT", "IV", "IW", "IY",
"KA", "KC", "KD", "KE", "KF", "KG", "KH", "KI", "KK", "KL", "KM", "KN", "KP", "KQ", "KR", "KS", "KT", "KV", "KW", "KY",
"LA", "LC", "LD", "LE", "LF", "LG", "LH", "LI", "LK", "LL", "LM", "LN", "LP", "LQ", "LR", "LS", "LT", "LV", "LW", "LY",
"MA", "MC", "MD", "ME", "MF", "MG", "MH", "MI", "MK", "ML", "MM", "MN", "MP", "MQ", "MR", "MS", "MT", "MV", "MW", "MY",
"NA", "NC", "ND", "NE", "NF", "NG", "NH", "NI", "NK", "NL", "NM", "NN", "NP", "NQ", "NR", "NS", "NT", "NV", "NW", "NY",
"PA", "PC", "PD", "PE", "PF", "PG", "PH", "PI", "PK", "PL", "PM", "PN", "PP", "PQ", "PR", "PS", "PT", "PV", "PW", "PY",
"QA", "QC", "QD", "QE", "QF", "QG", "QH", "QI", "QK", "QL", "QM", "QN", "QP", "QQ", "QR", "QS", "QT", "QV", "QW", "QY",
"RA", "RC", "RD", "RE", "RF", "RG", "RH", "RI", "RK", "RL", "RM", "RN", "RP", "RQ", "RR", "RS", "RT", "RV", "RW", "RY",
"SA", "SC", "SD", "SE", "SF", "SG", "SH", "SI", "SK", "SL", "SM", "SN", "SP", "SQ", "SR", "SS", "ST", "SV", "SW", "SY",
"TA", "TC", "TD", "TE", "TF", "TG", "TH", "TI", "TK", "TL", "TM", "TN", "TP", "TQ", "TR", "TS", "TT", "TV", "TW", "TY",
"VA", "VC", "VD", "VE", "VF", "VG", "VH", "VI", "VK", "VL", "VM", "VN", "VP", "VQ", "VR", "VS", "VT", "VV", "VW", "VY",
"WA", "WC", "WD", "WE", "WF", "WG", "WH", "WI", "WK", "WL", "WM", "WN", "WP", "WQ", "WR", "WS", "WT", "WV", "WW", "WY",
"YA", "YC", "YD", "YE", "YF", "YG", "YH", "YI", "YK", "YL", "YM", "YN", "YP", "YQ", "YR", "YS", "YT", "YV", "YW", "YY"
]
with open(output_file, 'w', newline='') as csvfile:
writer = csv.writer(csvfile)
header = ["DPC_{}".format(dipeptide) for dipeptide in dipeptides]
writer.writerow(header)
for record in SeqIO.parse(input_file, "fasta"):
sequence = str(record.seq)
composition = calculate_dipeptide_composition(sequence)
row = [composition.get(dipeptide, 0) for dipeptide in dipeptides]
writer.writerow(row)
def dpc_rf_train(test):
result = session1.run([output_name1], {input_name1: np.array(test, dtype=np.float32)})
#print(result)
print()
#y_predicted = model_aac_xgb.predict(test)
score = result[0]
#print(output_name1)
return score
def dpc_rf(fasta_file,thr):
input_fasta_file = fasta_file
output_csv_file = "pfeature_result.csv"
process_fasta_file_DPC(input_fasta_file, output_csv_file)
# Set the arguments for pfeature_comp.py
#args = ['python', 'pfeature_comp.py', '-i', fasta_file,'o','pfeature_result.csv', '-j', 'DPC']
# Run the script and capture its output
#result = subprocess.run(args, capture_output=True, text=True)
#print(result)
#print("successful")
test = pd.read_csv('pfeature_result.csv')
score = dpc_rf_train(test)
score = [item[1] for item in score]
thr_pred=[]
for i in score:
if i>=float(thr):
thr_pred.append(1)
elif i<float(thr):
thr_pred.append(0)
predictions=thr_pred
fasta_file = fasta_file
records = list(SeqIO.parse(fasta_file, "fasta"))
df = pd.DataFrame({'Subject': [str(record.id) for record in records],'Score': score, 'Prediction': predictions})
# replace the values in the 'target' column
df['Prediction'] = df['Prediction'].replace({1: 'Therapeutic', 0: 'Non-Therapeutic'})
df = df.reset_index(drop=True)
return df
def dpc_rf_merci(fasta_file,thr):
input_fasta_file = fasta_file
output_csv_file = "pfeature_result.csv"
process_fasta_file_DPC(input_fasta_file, output_csv_file)
test = pd.read_csv('pfeature_result.csv')
score = dpc_rf_train(test)
score = [item[1] for item in score]
thr_pred=[]
for i in score:
if i>=float(thr):
thr_pred.append(1)
elif i<float(thr):
thr_pred.append(0)
predictions=thr_pred
# Generating motif labels
# Define your positive and negative motifs
pos_motifs =['VSW', 'CSV', 'NWY', 'PSVF', 'KGQP', 'CASV', 'CCSV', 'CDSV', 'CESV', 'CFSV', 'CGSV', 'CHSV', 'CISV', 'CKSV', 'CLSV', 'CMSV', 'CPSV', 'CQSV', 'CRSV', 'CSSV', 'CTSV', 'CUSV', 'CVSV', 'CWSV', 'CYSV', 'WAQG', 'WCQG', 'WDQG', 'WEQG', 'WFQG', 'WGQG', 'WHQG', 'WIQG', 'WKQG', 'WLQG', 'WMQG', 'WPQG', 'WQQG', 'WRQG', 'WSQG', 'WTQG', 'WUQG', 'WVQG', 'WWQG', 'WYQG', 'VTAC', 'VTCC', 'VTDC', 'VTEC', 'VTFC', 'VTGC', 'VTHC', 'VTIC', 'VTKC', 'VTLC', 'VTMC', 'VTPC', 'VTQC', 'VTRC', 'VTSC', 'VTTC', 'VTUC', 'VTVC', 'VTWC', 'VTYC', 'YACAN', 'YCCCN', 'YDCDN', 'YECEN', 'YFCFN', 'YGCGN', 'YHCHN', 'YICIN', 'YKCKN', 'YLCLN', 'YMCMN', 'YPCPN', 'YQCQN', 'YRCRN', 'YSCSN', 'YTCTN', 'YUCUN', 'YVCVN', 'YWCWN', 'YYCYN', 'WAYAD', 'WCYCD', 'WDYDD', 'WEYED', 'WFYFD', 'WGYGD', 'WHYHD', 'WIYID', 'WKYKD', 'WLYLD', 'WMYMD', 'WPYPD', 'WQYQD', 'WRYRD', 'WSYSD', 'WTYTD', 'WUYUD', 'WVYVD', 'WWYWD', 'WYYYD', 'YFC', 'YWC', 'YYC', 'SKNS', 'TKNT', 'NKNN', 'QKNQ', 'QIFSI', 'QVFSV', 'QLFSL', 'QAFSA', 'QGFSG', 'QIWSI', 'QVWSV', 'QLWSL', 'QAWSA', 'QGWSG', 'QIYSI', 'QVYSV', 'QLYSL', 'QAYSA', 'QGYSG', 'QIFTI', 'QVFTV', 'QLFTL', 'QAFTA', 'QGFTG', 'QIWTI', 'QVWTV', 'QLWTL', 'QAWTA', 'QGWTG', 'QIYTI', 'QVYTV', 'QLYTL', 'QAYTA', 'QGYTG', 'QIFNI', 'QVFNV', 'QLFNL', 'QAFNA', 'QGFNG', 'QIWNI', 'QVWNV', 'QLWNL', 'QAWNA', 'QGWNG', 'QIYNI', 'QVYNV', 'QLYNL', 'QAYNA', 'QGYNG', 'QIFQI', 'QVFQV', 'QLFQL', 'QAFQA', 'QGFQG', 'QIWQI', 'QVWQV', 'QLWQL', 'QAWQA', 'QGWQG', 'QIYQI', 'QVYQV', 'QLYQL', 'QAYQA', 'QGYQG', 'KVSN', 'RVSN', 'HVSN', 'KVTN', 'RVTN', 'HVTN', 'KVNN', 'RVNN', 'HVNN', 'KVQN', 'RVQN', 'HVQN', 'CKASS', 'CKCSS', 'CKDSS', 'CKESS', 'CKFSS', 'CKGSS', 'CKHSS', 'CKISS', 'CKKSS', 'CKLSS', 'CKMSS', 'CKPSS', 'CKQSS', 'CKRSS', 'CKSSS', 'CKTSS', 'CKUSS', 'CKVSS', 'CKWSS', 'CKYSS', 'MKASS', 'MKCSS', 'MKDSS', 'MKESS', 'MKFSS', 'MKGSS', 'MKHSS', 'MKISS', 'MKKSS', 'MKLSS', 'MKMSS', 'MKPSS', 'MKQSS', 'MKRSS', 'MKSSS', 'MKTSS', 'MKUSS', 'MKVSS', 'MKWSS', 'MKYSS', 'CRASS', 'CRCSS', 'CRDSS', 'CRESS', 'CRFSS', 'CRGSS', 'CRHSS', 'CRISS', 'CRKSS', 'CRLSS', 'CRMSS', 'CRPSS', 'CRQSS', 'CRRSS', 'CRSSS', 'CRTSS', 'CRUSS', 'CRVSS', 'CRWSS', 'CRYSS', 'MRASS', 'MRCSS', 'MRDSS', 'MRESS', 'MRFSS', 'MRGSS', 'MRHSS', 'MRISS', 'MRKSS', 'MRLSS', 'MRMSS', 'MRPSS', 'MRQSS', 'MRRSS', 'MRSSS', 'MRTSS', 'MRUSS', 'MRVSS', 'MRWSS', 'MRYSS', 'CHASS', 'CHCSS', 'CHDSS', 'CHESS', 'CHFSS', 'CHGSS', 'CHHSS', 'CHISS', 'CHKSS', 'CHLSS', 'CHMSS', 'CHPSS', 'CHQSS', 'CHRSS', 'CHSSS', 'CHTSS', 'CHUSS', 'CHVSS', 'CHWSS', 'CHYSS', 'MHASS', 'MHCSS', 'MHDSS', 'MHESS', 'MHFSS', 'MHGSS', 'MHHSS', 'MHISS', 'MHKSS', 'MHLSS', 'MHMSS', 'MHPSS', 'MHQSS', 'MHRSS', 'MHSSS', 'MHTSS', 'MHUSS', 'MHVSS', 'MHWSS', 'MHYSS', 'CKAST', 'CKCST', 'CKDST', 'CKEST', 'CKFST', 'CKGST', 'CKHST', 'CKIST', 'CKKST', 'CKLST', 'CKMST', 'CKPST', 'CKQST', 'CKRST', 'CKSST', 'CKTST', 'CKUST', 'CKVST', 'CKWST', 'CKYST', 'MKAST', 'MKCST', 'MKDST', 'MKEST', 'MKFST', 'MKGST', 'MKHST', 'MKIST', 'MKKST', 'MKLST', 'MKMST', 'MKPST', 'MKQST', 'MKRST', 'MKSST', 'MKTST', 'MKUST', 'MKVST', 'MKWST', 'MKYST', 'CRAST', 'CRCST', 'CRDST', 'CREST', 'CRFST', 'CRGST', 'CRHST', 'CRIST', 'CRKST', 'CRLST', 'CRMST', 'CRPST', 'CRQST', 'CRRST', 'CRSST', 'CRTST', 'CRUST', 'CRVST', 'CRWST', 'CRYST', 'MRAST', 'MRCST', 'MRDST', 'MREST', 'MRFST', 'MRGST', 'MRHST', 'MRIST', 'MRKST', 'MRLST', 'MRMST', 'MRPST', 'MRQST', 'MRRST', 'MRSST', 'MRTST', 'MRUST', 'MRVST', 'MRWST', 'MRYST', 'CHAST', 'CHCST', 'CHDST', 'CHEST', 'CHFST', 'CHGST', 'CHHST', 'CHIST', 'CHKST', 'CHLST', 'CHMST', 'CHPST', 'CHQST', 'CHRST', 'CHSST', 'CHTST', 'CHUST', 'CHVST', 'CHWST', 'CHYST', 'MHAST', 'MHCST', 'MHDST', 'MHEST', 'MHFST', 'MHGST', 'MHHST', 'MHIST', 'MHKST', 'MHLST', 'MHMST', 'MHPST', 'MHQST', 'MHRST', 'MHSST', 'MHTST', 'MHUST', 'MHVST', 'MHWST', 'MHYST', 'CKASN', 'CKCSN', 'CKDSN', 'CKESN', 'CKFSN', 'CKGSN', 'CKHSN', 'CKISN', 'CKKSN', 'CKLSN', 'CKMSN', 'CKPSN', 'CKQSN', 'CKRSN', 'CKSSN', 'CKTSN', 'CKUSN', 'CKVSN', 'CKWSN', 'CKYSN', 'MKASN', 'MKCSN', 'MKDSN', 'MKESN', 'MKFSN', 'MKGSN', 'MKHSN', 'MKISN', 'MKKSN', 'MKLSN', 'MKMSN', 'MKPSN', 'MKQSN', 'MKRSN', 'MKSSN', 'MKTSN', 'MKUSN', 'MKVSN', 'MKWSN', 'MKYSN', 'CRASN', 'CRCSN', 'CRDSN', 'CRESN', 'CRFSN', 'CRGSN', 'CRHSN', 'CRISN', 'CRKSN', 'CRLSN', 'CRMSN', 'CRPSN', 'CRQSN', 'CRRSN', 'CRSSN', 'CRTSN', 'CRUSN', 'CRVSN', 'CRWSN', 'CRYSN', 'MRASN', 'MRCSN', 'MRDSN', 'MRESN', 'MRFSN', 'MRGSN', 'MRHSN', 'MRISN', 'MRKSN', 'MRLSN', 'MRMSN', 'MRPSN', 'MRQSN', 'MRRSN', 'MRSSN', 'MRTSN', 'MRUSN', 'MRVSN', 'MRWSN', 'MRYSN', 'CHASN', 'CHCSN', 'CHDSN', 'CHESN', 'CHFSN', 'CHGSN', 'CHHSN', 'CHISN', 'CHKSN', 'CHLSN', 'CHMSN', 'CHPSN', 'CHQSN', 'CHRSN', 'CHSSN', 'CHTSN', 'CHUSN', 'CHVSN', 'CHWSN', 'CHYSN', 'MHASN', 'MHCSN', 'MHDSN', 'MHESN', 'MHFSN', 'MHGSN', 'MHHSN', 'MHISN', 'MHKSN', 'MHLSN', 'MHMSN', 'MHPSN', 'MHQSN', 'MHRSN', 'MHSSN', 'MHTSN', 'MHUSN', 'MHVSN', 'MHWSN', 'MHYSN', 'CKASQ', 'CKCSQ', 'CKDSQ', 'CKESQ', 'CKFSQ', 'CKGSQ', 'CKHSQ', 'CKISQ', 'CKKSQ', 'CKLSQ', 'CKMSQ', 'CKPSQ', 'CKQSQ', 'CKRSQ', 'CKSSQ', 'CKTSQ', 'CKUSQ', 'CKVSQ', 'CKWSQ', 'CKYSQ', 'MKASQ', 'MKCSQ', 'MKDSQ', 'MKESQ', 'MKFSQ', 'MKGSQ', 'MKHSQ', 'MKISQ', 'MKKSQ', 'MKLSQ', 'MKMSQ', 'MKPSQ', 'MKQSQ', 'MKRSQ', 'MKSSQ', 'MKTSQ', 'MKUSQ', 'MKVSQ', 'MKWSQ', 'MKYSQ', 'CRASQ', 'CRCSQ', 'CRDSQ', 'CRESQ', 'CRFSQ', 'CRGSQ', 'CRHSQ', 'CRISQ', 'CRKSQ', 'CRLSQ', 'CRMSQ', 'CRPSQ', 'CRQSQ', 'CRRSQ', 'CRSSQ', 'CRTSQ', 'CRUSQ', 'CRVSQ', 'CRWSQ', 'CRYSQ', 'MRASQ', 'MRCSQ', 'MRDSQ', 'MRESQ', 'MRFSQ', 'MRGSQ', 'MRHSQ', 'MRISQ', 'MRKSQ', 'MRLSQ', 'MRMSQ', 'MRPSQ', 'MRQSQ', 'MRRSQ', 'MRSSQ', 'MRTSQ', 'MRUSQ', 'MRVSQ', 'MRWSQ', 'MRYSQ', 'CHASQ', 'CHCSQ', 'CHDSQ', 'CHESQ', 'CHFSQ', 'CHGSQ', 'CHHSQ', 'CHISQ', 'CHKSQ', 'CHLSQ', 'CHMSQ', 'CHPSQ', 'CHQSQ', 'CHRSQ', 'CHSSQ', 'CHTSQ', 'CHUSQ', 'CHVSQ', 'CHWSQ', 'CHYSQ', 'MHASQ', 'MHCSQ', 'MHDSQ', 'MHESQ', 'MHFSQ', 'MHGSQ', 'MHHSQ', 'MHISQ', 'MHKSQ', 'MHLSQ', 'MHMSQ', 'MHPSQ', 'MHQSQ', 'MHRSQ', 'MHSSQ', 'MHTSQ', 'MHUSQ', 'MHVSQ', 'MHWSQ', 'MHYSQ', 'CKASS', 'CKCSS', 'CKDSS', 'CKESS', 'CKFSS', 'CKGSS', 'CKHSS', 'CKISS', 'CKKSS', 'CKLSS', 'CKMSS', 'CKPSS', 'CKQSS', 'CKRSS', 'CKSSS', 'CKTSS', 'CKUSS', 'CKVSS', 'CKWSS', 'CKYSS', 'CRASS', 'CRCSS', 'CRDSS', 'CRESS', 'CRFSS', 'CRGSS', 'CRHSS', 'CRISS', 'CRKSS', 'CRLSS', 'CRMSS', 'CRPSS', 'CRQSS', 'CRRSS', 'CRSSS', 'CRTSS', 'CRUSS', 'CRVSS', 'CRWSS', 'CRYSS', 'CHASS', 'CHCSS', 'CHDSS', 'CHESS', 'CHFSS', 'CHGSS', 'CHHSS', 'CHISS', 'CHKSS', 'CHLSS', 'CHMSS', 'CHPSS', 'CHQSS', 'CHRSS', 'CHSSS', 'CHTSS', 'CHUSS', 'CHVSS', 'CHWSS', 'CHYSS', 'CKAST', 'CKCST', 'CKDST', 'CKEST', 'CKFST', 'CKGST', 'CKHST', 'CKIST', 'CKKST', 'CKLST', 'CKMST', 'CKPST', 'CKQST', 'CKRST', 'CKSST', 'CKTST', 'CKUST', 'CKVST', 'CKWST', 'CKYST', 'CRAST', 'CRCST', 'CRDST', 'CREST', 'CRFST', 'CRGST', 'CRHST', 'CRIST', 'CRKST', 'CRLST', 'CRMST', 'CRPST', 'CRQST', 'CRRST', 'CRSST', 'CRTST', 'CRUST', 'CRVST', 'CRWST', 'CRYST', 'CHAST', 'CHCST', 'CHDST', 'CHEST', 'CHFST', 'CHGST', 'CHHST', 'CHIST', 'CHKST', 'CHLST', 'CHMST', 'CHPST', 'CHQST', 'CHRST', 'CHSST', 'CHTST', 'CHUST', 'CHVST', 'CHWST', 'CHYST', 'CKASN', 'CKCSN', 'CKDSN', 'CKESN', 'CKFSN', 'CKGSN', 'CKHSN', 'CKISN', 'CKKSN', 'CKLSN', 'CKMSN', 'CKPSN', 'CKQSN', 'CKRSN', 'CKSSN', 'CKTSN', 'CKUSN', 'CKVSN', 'CKWSN', 'CKYSN', 'CRASN', 'CRCSN', 'CRDSN', 'CRESN', 'CRFSN', 'CRGSN', 'CRHSN', 'CRISN', 'CRKSN', 'CRLSN', 'CRMSN', 'CRPSN', 'CRQSN', 'CRRSN', 'CRSSN', 'CRTSN', 'CRUSN', 'CRVSN', 'CRWSN', 'CRYSN', 'CHASN', 'CHCSN', 'CHDSN', 'CHESN', 'CHFSN', 'CHGSN', 'CHHSN', 'CHISN', 'CHKSN', 'CHLSN', 'CHMSN', 'CHPSN', 'CHQSN', 'CHRSN', 'CHSSN', 'CHTSN', 'CHUSN', 'CHVSN', 'CHWSN', 'CHYSN', 'CKASQ', 'CKCSQ', 'CKDSQ', 'CKESQ', 'CKFSQ', 'CKGSQ', 'CKHSQ', 'CKISQ', 'CKKSQ', 'CKLSQ', 'CKMSQ', 'CKPSQ', 'CKQSQ', 'CKRSQ', 'CKSSQ', 'CKTSQ', 'CKUSQ', 'CKVSQ', 'CKWSQ', 'CKYSQ', 'CRASQ', 'CRCSQ', 'CRDSQ', 'CRESQ', 'CRFSQ', 'CRGSQ', 'CRHSQ', 'CRISQ', 'CRKSQ', 'CRLSQ', 'CRMSQ', 'CRPSQ', 'CRQSQ', 'CRRSQ', 'CRSSQ', 'CRTSQ', 'CRUSQ', 'CRVSQ', 'CRWSQ', 'CRYSQ', 'CHASQ', 'CHCSQ', 'CHDSQ', 'CHESQ', 'CHFSQ', 'CHGSQ', 'CHHSQ', 'CHISQ', 'CHKSQ', 'CHLSQ', 'CHMSQ', 'CHPSQ', 'CHQSQ', 'CHRSQ', 'CHSSQ', 'CHTSQ', 'CHUSQ', 'CHVSQ', 'CHWSQ', 'CHYSQ', 'YAFC', 'YCFC', 'YDFC', 'YEFC', 'YFFC', 'YGFC', 'YHFC', 'YIFC', 'YKFC', 'YLFC', 'YMFC', 'YPFC', 'YQFC', 'YRFC', 'YSFC', 'YTFC', 'YUFC', 'YVFC', 'YWFC', 'YYFC', 'YAWC', 'YCWC', 'YDWC', 'YEWC', 'YFWC', 'YGWC', 'YHWC', 'YIWC', 'YKWC', 'YLWC', 'YMWC', 'YPWC', 'YQWC', 'YRWC', 'YSWC', 'YTWC', 'YUWC', 'YVWC', 'YWWC', 'YYWC', 'YAYC', 'YCYC', 'YDYC', 'YEYC', 'YFYC', 'YGYC', 'YHYC', 'YIYC', 'YKYC', 'YLYC', 'YMYC', 'YPYC', 'YQYC', 'YRYC', 'YSYC', 'YTYC', 'YUYC', 'YVYC', 'YWYC', 'YYYC', 'SAWSS', 'SCWSS', 'SDWSS', 'SEWSS', 'SFWSS', 'SGWSS', 'SHWSS', 'SIWSS', 'SKWSS', 'SLWSS', 'SMWSS', 'SPWSS', 'SQWSS', 'SRWSS', 'SSWSS', 'STWSS', 'SUWSS', 'SVWSS', 'SWWSS', 'SYWSS', 'SAWTT', 'SCWTT', 'SDWTT', 'SEWTT', 'SFWTT', 'SGWTT', 'SHWTT', 'SIWTT', 'SKWTT', 'SLWTT', 'SMWTT', 'SPWTT', 'SQWTT', 'SRWTT', 'SSWTT', 'STWTT', 'SUWTT', 'SVWTT', 'SWWTT', 'SYWTT', 'SAWNN', 'SCWNN', 'SDWNN', 'SEWNN', 'SFWNN', 'SGWNN', 'SHWNN', 'SIWNN', 'SKWNN', 'SLWNN', 'SMWNN', 'SPWNN', 'SQWNN', 'SRWNN', 'SSWNN', 'STWNN', 'SUWNN', 'SVWNN', 'SWWNN', 'SYWNN', 'SAWQQ', 'SCWQQ', 'SDWQQ', 'SEWQQ', 'SFWQQ', 'SGWQQ', 'SHWQQ', 'SIWQQ', 'SKWQQ', 'SLWQQ', 'SMWQQ', 'SPWQQ', 'SQWQQ', 'SRWQQ', 'SSWQQ', 'STWQQ', 'SUWQQ', 'SVWQQ', 'SWWQQ', 'SYWQQ', 'PSCRN', 'PSCNN', 'PSCDN', 'PSCCN', 'PSCEN', 'PSCQN', 'PSCHN', 'PSCKN', 'PSCSN', 'PSCIN', 'PTCRN', 'PTCNN', 'PTCDN', 'PTCCN', 'PTCEN', 'PTCQN', 'PTCHN', 'PTCKN', 'PTCSN', 'PTCIN', 'PNCRN', 'PNCNN', 'PNCDN', 'PNCCN', 'PNCEN', 'PNCQN', 'PNCHN', 'PNCKN', 'PNCSN', 'PNCIN', 'PQCRN', 'PQCNN', 'PQCDN', 'PQCCN', 'PQCEN', 'PQCQN', 'PQCHN', 'PQCKN', 'PQCSN', 'PQCIN', 'PSCRD', 'PSCND', 'PSCDD', 'PSCCD', 'PSCED', 'PSCQD', 'PSCHD', 'PSCKD', 'PSCSD', 'PSCID', 'PTCRD', 'PTCND', 'PTCDD', 'PTCCD', 'PTCED', 'PTCQD', 'PTCHD', 'PTCKD', 'PTCSD', 'PTCID', 'PNCRD', 'PNCND', 'PNCDD', 'PNCCD', 'PNCED', 'PNCQD', 'PNCHD', 'PNCKD', 'PNCSD', 'PNCID', 'PQCRD', 'PQCND', 'PQCDD', 'PQCCD', 'PQCED', 'PQCQD', 'PQCHD', 'PQCKD', 'PQCSD', 'PQCID', 'PSCRC', 'PSCNC', 'PSCDC', 'PSCCC', 'PSCEC', 'PSCQC', 'PSCHC', 'PSCKC', 'PSCSC', 'PSCIC', 'PTCRC', 'PTCNC', 'PTCDC', 'PTCCC', 'PTCEC', 'PTCQC', 'PTCHC', 'PTCKC', 'PTCSC', 'PTCIC', 'PNCRC', 'PNCNC', 'PNCDC', 'PNCCC', 'PNCEC', 'PNCQC', 'PNCHC', 'PNCKC', 'PNCSC', 'PNCIC', 'PQCRC', 'PQCNC', 'PQCDC', 'PQCCC', 'PQCEC', 'PQCQC', 'PQCHC', 'PQCKC', 'PQCSC', 'PQCIC', 'PSCRP', 'PSCNP', 'PSCDP', 'PSCCP', 'PSCEP', 'PSCQP', 'PSCHP', 'PSCKP', 'PSCSP', 'PSCIP', 'PTCRP', 'PTCNP', 'PTCDP', 'PTCCP', 'PTCEP', 'PTCQP', 'PTCHP', 'PTCKP', 'PTCSP', 'PTCIP', 'PNCRP', 'PNCNP', 'PNCDP', 'PNCCP', 'PNCEP', 'PNCQP', 'PNCHP', 'PNCKP', 'PNCSP', 'PNCIP', 'PQCRP', 'PQCNP', 'PQCDP', 'PQCCP', 'PQCEP', 'PQCQP', 'PQCHP', 'PQCKP', 'PQCSP', 'PQCIP', 'PSCRT', 'PSCNT', 'PSCDT', 'PSCCT', 'PSCET', 'PSCQT', 'PSCHT', 'PSCKT', 'PSCST', 'PSCIT', 'PTCRT', 'PTCNT', 'PTCDT', 'PTCCT', 'PTCET', 'PTCQT', 'PTCHT', 'PTCKT', 'PTCST', 'PTCIT', 'PNCRT', 'PNCNT', 'PNCDT', 'PNCCT', 'PNCET', 'PNCQT', 'PNCHT', 'PNCKT', 'PNCST', 'PNCIT', 'PQCRT', 'PQCNT', 'PQCDT', 'PQCCT', 'PQCET', 'PQCQT', 'PQCHT', 'PQCKT', 'PQCST', 'PQCIT', 'PSCRV', 'PSCNV', 'PSCDV', 'PSCCV', 'PSCEV', 'PSCQV', 'PSCHV', 'PSCKV', 'PSCSV', 'PSCIV', 'PTCRV', 'PTCNV', 'PTCDV', 'PTCCV', 'PTCEV', 'PTCQV', 'PTCHV', 'PTCKV', 'PTCSV', 'PTCIV', 'PNCRV', 'PNCNV', 'PNCDV', 'PNCCV', 'PNCEV', 'PNCQV', 'PNCHV', 'PNCKV', 'PNCSV', 'PNCIV', 'PQCRV', 'PQCNV', 'PQCDV', 'PQCCV', 'PQCEV', 'PQCQV', 'PQCHV', 'PQCKV', 'PQCSV', 'PQCIV', 'PACRN', 'PRCRN', 'PNCRN', 'PDCRN', 'PCCRN', 'PECRN', 'PQCRN', 'PGCRN', 'PICRN', 'PLCRN', 'PKCRN', 'PMCRN', 'PSCRN', 'PTCRN', 'PVCRN', 'PACNN', 'PRCNN', 'PNCNN', 'PDCNN', 'PCCNN', 'PECNN', 'PQCNN', 'PGCNN', 'PICNN', 'PLCNN', 'PKCNN', 'PMCNN', 'PSCNN', 'PTCNN', 'PVCNN', 'PACDN', 'PRCDN', 'PNCDN', 'PDCDN', 'PCCDN', 'PECDN', 'PQCDN', 'PGCDN', 'PICDN', 'PLCDN', 'PKCDN', 'PMCDN', 'PSCDN', 'PTCDN', 'PVCDN', 'PACCN', 'PRCCN', 'PNCCN', 'PDCCN', 'PCCCN', 'PECCN', 'PQCCN', 'PGCCN', 'PICCN', 'PLCCN', 'PKCCN', 'PMCCN', 'PSCCN', 'PTCCN', 'PVCCN', 'PACEN', 'PRCEN', 'PNCEN', 'PDCEN', 'PCCEN', 'PECEN', 'PQCEN', 'PGCEN', 'PICEN', 'PLCEN', 'PKCEN', 'PMCEN', 'PSCEN', 'PTCEN', 'PVCEN', 'PACQN', 'PRCQN', 'PNCQN', 'PDCQN', 'PCCQN', 'PECQN', 'PQCQN', 'PGCQN', 'PICQN', 'PLCQN', 'PKCQN', 'PMCQN', 'PSCQN', 'PTCQN', 'PVCQN', 'PACHN', 'PRCHN', 'PNCHN', 'PDCHN', 'PCCHN', 'PECHN', 'PQCHN', 'PGCHN', 'PICHN', 'PLCHN', 'PKCHN', 'PMCHN', 'PSCHN', 'PTCHN', 'PVCHN', 'PACKN', 'PRCKN', 'PNCKN', 'PDCKN', 'PCCKN', 'PECKN', 'PQCKN', 'PGCKN', 'PICKN', 'PLCKN', 'PKCKN', 'PMCKN', 'PSCKN', 'PTCKN', 'PVCKN', 'PACSN', 'PRCSN', 'PNCSN', 'PDCSN', 'PCCSN', 'PECSN', 'PQCSN', 'PGCSN', 'PICSN', 'PLCSN', 'PKCSN', 'PMCSN', 'PSCSN', 'PTCSN', 'PVCSN', 'PACIN', 'PRCIN', 'PNCIN', 'PDCIN', 'PCCIN', 'PECIN', 'PQCIN', 'PGCIN', 'PICIN', 'PLCIN', 'PKCIN', 'PMCIN', 'PSCIN', 'PTCIN', 'PVCIN', 'PACRD', 'PRCRD', 'PNCRD', 'PDCRD', 'PCCRD', 'PECRD', 'PQCRD', 'PGCRD', 'PICRD', 'PLCRD', 'PKCRD', 'PMCRD', 'PSCRD', 'PTCRD', 'PVCRD', 'PACND', 'PRCND', 'PNCND', 'PDCND', 'PCCND', 'PECND', 'PQCND', 'PGCND', 'PICND', 'PLCND', 'PKCND', 'PMCND', 'PSCND', 'PTCND', 'PVCND', 'PACDD', 'PRCDD', 'PNCDD', 'PDCDD', 'PCCDD', 'PECDD', 'PQCDD', 'PGCDD', 'PICDD', 'PLCDD', 'PKCDD', 'PMCDD', 'PSCDD', 'PTCDD', 'PVCDD', 'PACCD', 'PRCCD', 'PNCCD', 'PDCCD', 'PCCCD', 'PECCD', 'PQCCD', 'PGCCD', 'PICCD', 'PLCCD', 'PKCCD', 'PMCCD', 'PSCCD', 'PTCCD', 'PVCCD', 'PACED', 'PRCED', 'PNCED', 'PDCED', 'PCCED', 'PECED', 'PQCED', 'PGCED', 'PICED', 'PLCED', 'PKCED', 'PMCED', 'PSCED', 'PTCED', 'PVCED', 'PACQD', 'PRCQD', 'PNCQD', 'PDCQD', 'PCCQD', 'PECQD', 'PQCQD', 'PGCQD', 'PICQD', 'PLCQD', 'PKCQD', 'PMCQD', 'PSCQD', 'PTCQD', 'PVCQD', 'PACHD', 'PRCHD', 'PNCHD', 'PDCHD', 'PCCHD', 'PECHD', 'PQCHD', 'PGCHD', 'PICHD', 'PLCHD', 'PKCHD', 'PMCHD', 'PSCHD', 'PTCHD', 'PVCHD', 'PACKD', 'PRCKD', 'PNCKD', 'PDCKD', 'PCCKD', 'PECKD', 'PQCKD', 'PGCKD', 'PICKD', 'PLCKD', 'PKCKD', 'PMCKD', 'PSCKD', 'PTCKD', 'PVCKD', 'PACSD', 'PRCSD', 'PNCSD', 'PDCSD', 'PCCSD', 'PECSD', 'PQCSD', 'PGCSD', 'PICSD', 'PLCSD', 'PKCSD', 'PMCSD', 'PSCSD', 'PTCSD', 'PVCSD', 'PACID', 'PRCID', 'PNCID', 'PDCID', 'PCCID', 'PECID', 'PQCID', 'PGCID', 'PICID', 'PLCID', 'PKCID', 'PMCID', 'PSCID', 'PTCID', 'PVCID', 'PACRC', 'PRCRC', 'PNCRC', 'PDCRC', 'PCCRC', 'PECRC', 'PQCRC', 'PGCRC', 'PICRC', 'PLCRC', 'PKCRC', 'PMCRC', 'PSCRC', 'PTCRC', 'PVCRC', 'PACNC', 'PRCNC', 'PNCNC', 'PDCNC', 'PCCNC', 'PECNC', 'PQCNC', 'PGCNC', 'PICNC', 'PLCNC', 'PKCNC', 'PMCNC', 'PSCNC', 'PTCNC', 'PVCNC', 'PACDC', 'PRCDC', 'PNCDC', 'PDCDC', 'PCCDC', 'PECDC', 'PQCDC', 'PGCDC', 'PICDC', 'PLCDC', 'PKCDC', 'PMCDC', 'PSCDC', 'PTCDC', 'PVCDC', 'PACCC', 'PRCCC', 'PNCCC', 'PDCCC', 'PCCCC', 'PECCC', 'PQCCC', 'PGCCC', 'PICCC', 'PLCCC', 'PKCCC', 'PMCCC', 'PSCCC', 'PTCCC', 'PVCCC', 'PACEC', 'PRCEC', 'PNCEC', 'PDCEC', 'PCCEC', 'PECEC', 'PQCEC', 'PGCEC', 'PICEC', 'PLCEC', 'PKCEC', 'PMCEC', 'PSCEC', 'PTCEC', 'PVCEC', 'PACQC', 'PRCQC', 'PNCQC', 'PDCQC', 'PCCQC', 'PECQC', 'PQCQC', 'PGCQC', 'PICQC', 'PLCQC', 'PKCQC', 'PMCQC', 'PSCQC', 'PTCQC', 'PVCQC', 'PACHC', 'PRCHC', 'PNCHC', 'PDCHC', 'PCCHC', 'PECHC', 'PQCHC', 'PGCHC', 'PICHC', 'PLCHC', 'PKCHC', 'PMCHC', 'PSCHC', 'PTCHC', 'PVCHC', 'PACKC', 'PRCKC', 'PNCKC', 'PDCKC', 'PCCKC', 'PECKC', 'PQCKC', 'PGCKC', 'PICKC', 'PLCKC', 'PKCKC', 'PMCKC', 'PSCKC', 'PTCKC', 'PVCKC', 'PACSC', 'PRCSC', 'PNCSC', 'PDCSC', 'PCCSC', 'PECSC', 'PQCSC', 'PGCSC', 'PICSC', 'PLCSC', 'PKCSC', 'PMCSC', 'PSCSC', 'PTCSC', 'PVCSC', 'PACIC', 'PRCIC', 'PNCIC', 'PDCIC', 'PCCIC', 'PECIC', 'PQCIC', 'PGCIC', 'PICIC', 'PLCIC', 'PKCIC', 'PMCIC', 'PSCIC', 'PTCIC', 'PVCIC', 'PACRP', 'PRCRP', 'PNCRP', 'PDCRP', 'PCCRP', 'PECRP', 'PQCRP', 'PGCRP', 'PICRP', 'PLCRP', 'PKCRP', 'PMCRP', 'PSCRP', 'PTCRP', 'PVCRP', 'PACNP', 'PRCNP', 'PNCNP', 'PDCNP', 'PCCNP', 'PECNP', 'PQCNP', 'PGCNP', 'PICNP', 'PLCNP', 'PKCNP', 'PMCNP', 'PSCNP', 'PTCNP', 'PVCNP', 'PACDP', 'PRCDP', 'PNCDP', 'PDCDP', 'PCCDP', 'PECDP', 'PQCDP', 'PGCDP', 'PICDP', 'PLCDP', 'PKCDP', 'PMCDP', 'PSCDP', 'PTCDP', 'PVCDP', 'PACCP', 'PRCCP', 'PNCCP', 'PDCCP', 'PCCCP', 'PECCP', 'PQCCP', 'PGCCP', 'PICCP', 'PLCCP', 'PKCCP', 'PMCCP', 'PSCCP', 'PTCCP', 'PVCCP', 'PACEP', 'PRCEP', 'PNCEP', 'PDCEP', 'PCCEP', 'PECEP', 'PQCEP', 'PGCEP', 'PICEP', 'PLCEP', 'PKCEP', 'PMCEP', 'PSCEP', 'PTCEP', 'PVCEP', 'PACQP', 'PRCQP', 'PNCQP', 'PDCQP', 'PCCQP', 'PECQP', 'PQCQP', 'PGCQP', 'PICQP', 'PLCQP', 'PKCQP', 'PMCQP', 'PSCQP', 'PTCQP', 'PVCQP', 'PACHP', 'PRCHP', 'PNCHP', 'PDCHP', 'PCCHP', 'PECHP', 'PQCHP', 'PGCHP', 'PICHP', 'PLCHP', 'PKCHP', 'PMCHP', 'PSCHP', 'PTCHP', 'PVCHP', 'PACKP', 'PRCKP', 'PNCKP', 'PDCKP', 'PCCKP', 'PECKP', 'PQCKP', 'PGCKP', 'PICKP', 'PLCKP', 'PKCKP', 'PMCKP', 'PSCKP', 'PTCKP', 'PVCKP', 'PACSP', 'PRCSP', 'PNCSP', 'PDCSP', 'PCCSP', 'PECSP', 'PQCSP', 'PGCSP', 'PICSP', 'PLCSP', 'PKCSP', 'PMCSP', 'PSCSP', 'PTCSP', 'PVCSP', 'PACIP', 'PRCIP', 'PNCIP', 'PDCIP', 'PCCIP', 'PECIP', 'PQCIP', 'PGCIP', 'PICIP', 'PLCIP', 'PKCIP', 'PMCIP', 'PSCIP', 'PTCIP', 'PVCIP', 'PACRT', 'PRCRT', 'PNCRT', 'PDCRT', 'PCCRT', 'PECRT', 'PQCRT', 'PGCRT', 'PICRT', 'PLCRT', 'PKCRT', 'PMCRT', 'PSCRT', 'PTCRT', 'PVCRT', 'PACNT', 'PRCNT', 'PNCNT', 'PDCNT', 'PCCNT', 'PECNT', 'PQCNT', 'PGCNT', 'PICNT', 'PLCNT', 'PKCNT', 'PMCNT', 'PSCNT', 'PTCNT', 'PVCNT', 'PACDT', 'PRCDT', 'PNCDT', 'PDCDT', 'PCCDT', 'PECDT', 'PQCDT', 'PGCDT', 'PICDT', 'PLCDT', 'PKCDT', 'PMCDT', 'PSCDT', 'PTCDT', 'PVCDT', 'PACCT', 'PRCCT', 'PNCCT', 'PDCCT', 'PCCCT', 'PECCT', 'PQCCT', 'PGCCT', 'PICCT', 'PLCCT', 'PKCCT', 'PMCCT', 'PSCCT', 'PTCCT', 'PVCCT', 'PACET', 'PRCET', 'PNCET', 'PDCET', 'PCCET', 'PECET', 'PQCET', 'PGCET', 'PICET', 'PLCET', 'PKCET', 'PMCET', 'PSCET', 'PTCET', 'PVCET', 'PACQT', 'PRCQT', 'PNCQT', 'PDCQT', 'PCCQT', 'PECQT', 'PQCQT', 'PGCQT', 'PICQT', 'PLCQT', 'PKCQT', 'PMCQT', 'PSCQT', 'PTCQT', 'PVCQT', 'PACHT', 'PRCHT', 'PNCHT', 'PDCHT', 'PCCHT', 'PECHT', 'PQCHT', 'PGCHT', 'PICHT', 'PLCHT', 'PKCHT', 'PMCHT', 'PSCHT', 'PTCHT', 'PVCHT', 'PACKT', 'PRCKT', 'PNCKT', 'PDCKT', 'PCCKT', 'PECKT', 'PQCKT', 'PGCKT', 'PICKT', 'PLCKT', 'PKCKT', 'PMCKT', 'PSCKT', 'PTCKT', 'PVCKT', 'PACST', 'PRCST', 'PNCST', 'PDCST', 'PCCST', 'PECST', 'PQCST', 'PGCST', 'PICST', 'PLCST', 'PKCST', 'PMCST', 'PSCST', 'PTCST', 'PVCST', 'PACIT', 'PRCIT', 'PNCIT', 'PDCIT', 'PCCIT', 'PECIT', 'PQCIT', 'PGCIT', 'PICIT', 'PLCIT', 'PKCIT', 'PMCIT', 'PSCIT', 'PTCIT', 'PVCIT', 'PACRV', 'PRCRV', 'PNCRV', 'PDCRV', 'PCCRV', 'PECRV', 'PQCRV', 'PGCRV', 'PICRV', 'PLCRV', 'PKCRV', 'PMCRV', 'PSCRV', 'PTCRV', 'PVCRV', 'PACNV', 'PRCNV', 'PNCNV', 'PDCNV', 'PCCNV', 'PECNV', 'PQCNV', 'PGCNV', 'PICNV', 'PLCNV', 'PKCNV', 'PMCNV', 'PSCNV', 'PTCNV', 'PVCNV', 'PACDV', 'PRCDV', 'PNCDV', 'PDCDV', 'PCCDV', 'PECDV', 'PQCDV', 'PGCDV', 'PICDV', 'PLCDV', 'PKCDV', 'PMCDV', 'PSCDV', 'PTCDV', 'PVCDV', 'PACCV', 'PRCCV', 'PNCCV', 'PDCCV', 'PCCCV', 'PECCV', 'PQCCV', 'PGCCV', 'PICCV', 'PLCCV', 'PKCCV', 'PMCCV', 'PSCCV', 'PTCCV', 'PVCCV', 'PACEV', 'PRCEV', 'PNCEV', 'PDCEV', 'PCCEV', 'PECEV', 'PQCEV', 'PGCEV', 'PICEV', 'PLCEV', 'PKCEV', 'PMCEV', 'PSCEV', 'PTCEV', 'PVCEV', 'PACQV', 'PRCQV', 'PNCQV', 'PDCQV', 'PCCQV', 'PECQV', 'PQCQV', 'PGCQV', 'PICQV', 'PLCQV', 'PKCQV', 'PMCQV', 'PSCQV', 'PTCQV', 'PVCQV', 'PACHV', 'PRCHV', 'PNCHV', 'PDCHV', 'PCCHV', 'PECHV', 'PQCHV', 'PGCHV', 'PICHV', 'PLCHV', 'PKCHV', 'PMCHV', 'PSCHV', 'PTCHV', 'PVCHV', 'PACKV', 'PRCKV', 'PNCKV', 'PDCKV', 'PCCKV', 'PECKV', 'PQCKV', 'PGCKV', 'PICKV', 'PLCKV', 'PKCKV', 'PMCKV', 'PSCKV', 'PTCKV', 'PVCKV', 'PACSV', 'PRCSV', 'PNCSV', 'PDCSV', 'PCCSV', 'PECSV', 'PQCSV', 'PGCSV', 'PICSV', 'PLCSV', 'PKCSV', 'PMCSV', 'PSCSV', 'PTCSV', 'PVCSV', 'PACIV', 'PRCIV', 'PNCIV', 'PDCIV', 'PCCIV', 'PECIV', 'PQCIV', 'PGCIV', 'PICIV', 'PLCIV', 'PKCIV', 'PMCIV', 'PSCIV', 'PTCIV', 'PVCIV', 'SVRWR', 'SVRWN', 'SVRWD', 'SVRWE', 'SVRWQ', 'SVRWG', 'SVRWH', 'SVRWK', 'SVRWP', 'SVRWS', 'SVRWT', 'SVRWY', 'SVNWR', 'SVNWN', 'SVNWD', 'SVNWE', 'SVNWQ', 'SVNWG', 'SVNWH', 'SVNWK', 'SVNWP', 'SVNWS', 'SVNWT', 'SVNWY', 'SVDWR', 'SVDWN', 'SVDWD', 'SVDWE', 'SVDWQ', 'SVDWG', 'SVDWH', 'SVDWK', 'SVDWP', 'SVDWS', 'SVDWT', 'SVDWY', 'SVCWR', 'SVCWN', 'SVCWD', 'SVCWE', 'SVCWQ', 'SVCWG', 'SVCWH', 'SVCWK', 'SVCWP', 'SVCWS', 'SVCWT', 'SVCWY', 'SVEWR', 'SVEWN', 'SVEWD', 'SVEWE', 'SVEWQ', 'SVEWG', 'SVEWH', 'SVEWK', 'SVEWP', 'SVEWS', 'SVEWT', 'SVEWY', 'SVQWR', 'SVQWN', 'SVQWD', 'SVQWE', 'SVQWQ', 'SVQWG', 'SVQWH', 'SVQWK', 'SVQWP', 'SVQWS', 'SVQWT', 'SVQWY', 'SVHWR', 'SVHWN', 'SVHWD', 'SVHWE', 'SVHWQ', 'SVHWG', 'SVHWH', 'SVHWK', 'SVHWP', 'SVHWS', 'SVHWT', 'SVHWY', 'SVKWR', 'SVKWN', 'SVKWD', 'SVKWE', 'SVKWQ', 'SVKWG', 'SVKWH', 'SVKWK', 'SVKWP', 'SVKWS', 'SVKWT', 'SVKWY', 'SVSWR', 'SVSWN', 'SVSWD', 'SVSWE', 'SVSWQ', 'SVSWG', 'SVSWH', 'SVSWK', 'SVSWP', 'SVSWS', 'SVSWT', 'SVSWY', 'SVIWR', 'SVIWN', 'SVIWD', 'SVIWE', 'SVIWQ', 'SVIWG', 'SVIWH', 'SVIWK', 'SVIWP', 'SVIWS', 'SVIWT', 'SVIWY', 'TVRWR', 'TVRWN', 'TVRWD', 'TVRWE', 'TVRWQ', 'TVRWG', 'TVRWH', 'TVRWK', 'TVRWP', 'TVRWS', 'TVRWT', 'TVRWY', 'TVNWR', 'TVNWN', 'TVNWD', 'TVNWE', 'TVNWQ', 'TVNWG', 'TVNWH', 'TVNWK', 'TVNWP', 'TVNWS', 'TVNWT', 'TVNWY', 'TVDWR', 'TVDWN', 'TVDWD', 'TVDWE', 'TVDWQ', 'TVDWG', 'TVDWH', 'TVDWK', 'TVDWP', 'TVDWS', 'TVDWT', 'TVDWY', 'TVCWR', 'TVCWN', 'TVCWD', 'TVCWE', 'TVCWQ', 'TVCWG', 'TVCWH', 'TVCWK', 'TVCWP', 'TVCWS', 'TVCWT', 'TVCWY', 'TVEWR', 'TVEWN', 'TVEWD', 'TVEWE', 'TVEWQ', 'TVEWG', 'TVEWH', 'TVEWK', 'TVEWP', 'TVEWS', 'TVEWT', 'TVEWY', 'TVQWR', 'TVQWN', 'TVQWD', 'TVQWE', 'TVQWQ', 'TVQWG', 'TVQWH', 'TVQWK', 'TVQWP', 'TVQWS', 'TVQWT', 'TVQWY', 'TVHWR', 'TVHWN', 'TVHWD', 'TVHWE', 'TVHWQ', 'TVHWG', 'TVHWH', 'TVHWK', 'TVHWP', 'TVHWS', 'TVHWT', 'TVHWY', 'TVKWR', 'TVKWN', 'TVKWD', 'TVKWE', 'TVKWQ', 'TVKWG', 'TVKWH', 'TVKWK', 'TVKWP', 'TVKWS', 'TVKWT', 'TVKWY', 'TVSWR', 'TVSWN', 'TVSWD', 'TVSWE', 'TVSWQ', 'TVSWG', 'TVSWH', 'TVSWK', 'TVSWP', 'TVSWS', 'TVSWT', 'TVSWY', 'TVIWR', 'TVIWN', 'TVIWD', 'TVIWE', 'TVIWQ', 'TVIWG', 'TVIWH', 'TVIWK', 'TVIWP', 'TVIWS', 'TVIWT', 'TVIWY', 'NVRWR', 'NVRWN', 'NVRWD', 'NVRWE', 'NVRWQ', 'NVRWG', 'NVRWH', 'NVRWK', 'NVRWP', 'NVRWS', 'NVRWT', 'NVRWY', 'NVNWR', 'NVNWN', 'NVNWD', 'NVNWE', 'NVNWQ', 'NVNWG', 'NVNWH', 'NVNWK', 'NVNWP', 'NVNWS', 'NVNWT', 'NVNWY', 'NVDWR', 'NVDWN', 'NVDWD', 'NVDWE', 'NVDWQ', 'NVDWG', 'NVDWH', 'NVDWK', 'NVDWP', 'NVDWS', 'NVDWT', 'NVDWY', 'NVCWR', 'NVCWN', 'NVCWD', 'NVCWE', 'NVCWQ', 'NVCWG', 'NVCWH', 'NVCWK', 'NVCWP', 'NVCWS', 'NVCWT', 'NVCWY', 'NVEWR', 'NVEWN', 'NVEWD', 'NVEWE', 'NVEWQ', 'NVEWG', 'NVEWH', 'NVEWK', 'NVEWP', 'NVEWS', 'NVEWT', 'NVEWY', 'NVQWR', 'NVQWN', 'NVQWD', 'NVQWE', 'NVQWQ', 'NVQWG', 'NVQWH', 'NVQWK', 'NVQWP', 'NVQWS', 'NVQWT', 'NVQWY', 'NVHWR', 'NVHWN', 'NVHWD', 'NVHWE', 'NVHWQ', 'NVHWG', 'NVHWH', 'NVHWK', 'NVHWP', 'NVHWS', 'NVHWT', 'NVHWY', 'NVKWR', 'NVKWN', 'NVKWD', 'NVKWE', 'NVKWQ', 'NVKWG', 'NVKWH', 'NVKWK', 'NVKWP', 'NVKWS', 'NVKWT', 'NVKWY', 'NVSWR', 'NVSWN', 'NVSWD', 'NVSWE', 'NVSWQ', 'NVSWG', 'NVSWH', 'NVSWK', 'NVSWP', 'NVSWS', 'NVSWT', 'NVSWY', 'NVIWR', 'NVIWN', 'NVIWD', 'NVIWE', 'NVIWQ', 'NVIWG', 'NVIWH', 'NVIWK', 'NVIWP', 'NVIWS', 'NVIWT', 'NVIWY', 'QVRWR', 'QVRWN', 'QVRWD', 'QVRWE', 'QVRWQ', 'QVRWG', 'QVRWH', 'QVRWK', 'QVRWP', 'QVRWS', 'QVRWT', 'QVRWY', 'QVNWR', 'QVNWN', 'QVNWD', 'QVNWE', 'QVNWQ', 'QVNWG', 'QVNWH', 'QVNWK', 'QVNWP', 'QVNWS', 'QVNWT', 'QVNWY', 'QVDWR', 'QVDWN', 'QVDWD', 'QVDWE', 'QVDWQ', 'QVDWG', 'QVDWH', 'QVDWK', 'QVDWP', 'QVDWS', 'QVDWT', 'QVDWY', 'QVCWR', 'QVCWN', 'QVCWD', 'QVCWE', 'QVCWQ', 'QVCWG', 'QVCWH', 'QVCWK', 'QVCWP', 'QVCWS', 'QVCWT', 'QVCWY', 'QVEWR', 'QVEWN', 'QVEWD', 'QVEWE', 'QVEWQ', 'QVEWG', 'QVEWH', 'QVEWK', 'QVEWP', 'QVEWS', 'QVEWT', 'QVEWY', 'QVQWR', 'QVQWN', 'QVQWD', 'QVQWE', 'QVQWQ', 'QVQWG', 'QVQWH', 'QVQWK', 'QVQWP', 'QVQWS', 'QVQWT', 'QVQWY', 'QVHWR', 'QVHWN', 'QVHWD', 'QVHWE', 'QVHWQ', 'QVHWG', 'QVHWH', 'QVHWK', 'QVHWP', 'QVHWS', 'QVHWT', 'QVHWY', 'QVKWR', 'QVKWN', 'QVKWD', 'QVKWE', 'QVKWQ', 'QVKWG', 'QVKWH', 'QVKWK', 'QVKWP', 'QVKWS', 'QVKWT', 'QVKWY', 'QVSWR', 'QVSWN', 'QVSWD', 'QVSWE', 'QVSWQ', 'QVSWG', 'QVSWH', 'QVSWK', 'QVSWP', 'QVSWS', 'QVSWT', 'QVSWY', 'QVIWR', 'QVIWN', 'QVIWD', 'QVIWE', 'QVIWQ', 'QVIWG', 'QVIWH', 'QVIWK', 'QVIWP', 'QVIWS', 'QVIWT', 'QVIWY', 'RPRCD', 'RPRCE', 'RPRCH', 'RPRCK', 'RPRCR', 'NPRCD', 'NPRCE', 'NPRCH', 'NPRCK', 'NPRCR', 'DPRCD', 'DPRCE', 'DPRCH', 'DPRCK', 'DPRCR', 'EPRCD', 'EPRCE', 'EPRCH', 'EPRCK', 'EPRCR', 'QPRCD', 'QPRCE', 'QPRCH', 'QPRCK', 'QPRCR', 'GPRCD', 'GPRCE', 'GPRCH', 'GPRCK', 'GPRCR', 'HPRCD', 'HPRCE', 'HPRCH', 'HPRCK', 'HPRCR', 'KPRCD', 'KPRCE', 'KPRCH', 'KPRCK', 'KPRCR', 'PPRCD', 'PPRCE', 'PPRCH', 'PPRCK', 'PPRCR', 'SPRCD', 'SPRCE', 'SPRCH', 'SPRCK', 'SPRCR', 'TPRCD', 'TPRCE', 'TPRCH', 'TPRCK', 'TPRCR', 'YPRCD', 'YPRCE', 'YPRCH', 'YPRCK', 'YPRCR', 'RPECD', 'RPECE', 'RPECH', 'RPECK', 'RPECR', 'NPECD', 'NPECE', 'NPECH', 'NPECK', 'NPECR', 'DPECD', 'DPECE', 'DPECH', 'DPECK', 'DPECR', 'EPECD', 'EPECE', 'EPECH', 'EPECK', 'EPECR', 'QPECD', 'QPECE', 'QPECH', 'QPECK', 'QPECR', 'GPECD', 'GPECE', 'GPECH', 'GPECK', 'GPECR', 'HPECD', 'HPECE', 'HPECH', 'HPECK', 'HPECR', 'KPECD', 'KPECE', 'KPECH', 'KPECK', 'KPECR', 'PPECD', 'PPECE', 'PPECH', 'PPECK', 'PPECR', 'SPECD', 'SPECE', 'SPECH', 'SPECK', 'SPECR', 'TPECD', 'TPECE', 'TPECH', 'TPECK', 'TPECR', 'YPECD', 'YPECE', 'YPECH', 'YPECK', 'YPECR', 'RPQCD', 'RPQCE', 'RPQCH', 'RPQCK', 'RPQCR', 'NPQCD', 'NPQCE', 'NPQCH', 'NPQCK', 'NPQCR', 'DPQCD', 'DPQCE', 'DPQCH', 'DPQCK', 'DPQCR', 'EPQCD', 'EPQCE', 'EPQCH', 'EPQCK', 'EPQCR', 'QPQCD', 'QPQCE', 'QPQCH', 'QPQCK', 'QPQCR', 'GPQCD', 'GPQCE', 'GPQCH', 'GPQCK', 'GPQCR', 'HPQCD', 'HPQCE', 'HPQCH', 'HPQCK', 'HPQCR', 'KPQCD', 'KPQCE', 'KPQCH', 'KPQCK', 'KPQCR', 'PPQCD', 'PPQCE', 'PPQCH', 'PPQCK', 'PPQCR', 'SPQCD', 'SPQCE', 'SPQCH', 'SPQCK', 'SPQCR', 'TPQCD', 'TPQCE', 'TPQCH', 'TPQCK', 'TPQCR', 'YPQCD', 'YPQCE', 'YPQCH', 'YPQCK', 'YPQCR', 'RPHCD', 'RPHCE', 'RPHCH', 'RPHCK', 'RPHCR', 'NPHCD', 'NPHCE', 'NPHCH', 'NPHCK', 'NPHCR', 'DPHCD', 'DPHCE', 'DPHCH', 'DPHCK', 'DPHCR', 'EPHCD', 'EPHCE', 'EPHCH', 'EPHCK', 'EPHCR', 'QPHCD', 'QPHCE', 'QPHCH', 'QPHCK', 'QPHCR', 'GPHCD', 'GPHCE', 'GPHCH', 'GPHCK', 'GPHCR', 'HPHCD', 'HPHCE', 'HPHCH', 'HPHCK', 'HPHCR', 'KPHCD', 'KPHCE', 'KPHCH', 'KPHCK', 'KPHCR', 'PPHCD', 'PPHCE', 'PPHCH', 'PPHCK', 'PPHCR', 'SPHCD', 'SPHCE', 'SPHCH', 'SPHCK', 'SPHCR', 'TPHCD', 'TPHCE', 'TPHCH', 'TPHCK', 'TPHCR', 'YPHCD', 'YPHCE', 'YPHCH', 'YPHCK', 'YPHCR', 'RPICD', 'RPICE', 'RPICH', 'RPICK', 'RPICR', 'NPICD', 'NPICE', 'NPICH', 'NPICK', 'NPICR', 'DPICD', 'DPICE', 'DPICH', 'DPICK', 'DPICR', 'EPICD', 'EPICE', 'EPICH', 'EPICK', 'EPICR', 'QPICD', 'QPICE', 'QPICH', 'QPICK', 'QPICR', 'GPICD', 'GPICE', 'GPICH', 'GPICK', 'GPICR', 'HPICD', 'HPICE', 'HPICH', 'HPICK', 'HPICR', 'KPICD', 'KPICE', 'KPICH', 'KPICK', 'KPICR', 'PPICD', 'PPICE', 'PPICH', 'PPICK', 'PPICR', 'SPICD', 'SPICE', 'SPICH', 'SPICK', 'SPICR', 'TPICD', 'TPICE', 'TPICH', 'TPICK', 'TPICR', 'YPICD', 'YPICE', 'YPICH', 'YPICK', 'YPICR', 'RPLCD', 'RPLCE', 'RPLCH', 'RPLCK', 'RPLCR', 'NPLCD', 'NPLCE', 'NPLCH', 'NPLCK', 'NPLCR', 'DPLCD', 'DPLCE', 'DPLCH', 'DPLCK', 'DPLCR', 'EPLCD', 'EPLCE', 'EPLCH', 'EPLCK', 'EPLCR', 'QPLCD', 'QPLCE', 'QPLCH', 'QPLCK', 'QPLCR', 'GPLCD', 'GPLCE', 'GPLCH', 'GPLCK', 'GPLCR', 'HPLCD', 'HPLCE', 'HPLCH', 'HPLCK', 'HPLCR', 'KPLCD', 'KPLCE', 'KPLCH', 'KPLCK', 'KPLCR', 'PPLCD', 'PPLCE', 'PPLCH', 'PPLCK', 'PPLCR', 'SPLCD', 'SPLCE', 'SPLCH', 'SPLCK', 'SPLCR', 'TPLCD', 'TPLCE', 'TPLCH', 'TPLCK', 'TPLCR', 'YPLCD', 'YPLCE', 'YPLCH', 'YPLCK', 'YPLCR', 'RPKCD', 'RPKCE', 'RPKCH', 'RPKCK', 'RPKCR', 'NPKCD', 'NPKCE', 'NPKCH', 'NPKCK', 'NPKCR', 'DPKCD', 'DPKCE', 'DPKCH', 'DPKCK', 'DPKCR', 'EPKCD', 'EPKCE', 'EPKCH', 'EPKCK', 'EPKCR', 'QPKCD', 'QPKCE', 'QPKCH', 'QPKCK', 'QPKCR', 'GPKCD', 'GPKCE', 'GPKCH', 'GPKCK', 'GPKCR', 'HPKCD', 'HPKCE', 'HPKCH', 'HPKCK', 'HPKCR', 'KPKCD', 'KPKCE', 'KPKCH', 'KPKCK', 'KPKCR', 'PPKCD', 'PPKCE', 'PPKCH', 'PPKCK', 'PPKCR', 'SPKCD', 'SPKCE', 'SPKCH', 'SPKCK', 'SPKCR', 'TPKCD', 'TPKCE', 'TPKCH', 'TPKCK', 'TPKCR', 'YPKCD', 'YPKCE', 'YPKCH', 'YPKCK', 'YPKCR', 'RPMCD', 'RPMCE', 'RPMCH', 'RPMCK', 'RPMCR', 'NPMCD', 'NPMCE', 'NPMCH', 'NPMCK', 'NPMCR', 'DPMCD', 'DPMCE', 'DPMCH', 'DPMCK', 'DPMCR', 'EPMCD', 'EPMCE', 'EPMCH', 'EPMCK', 'EPMCR', 'QPMCD', 'QPMCE', 'QPMCH', 'QPMCK', 'QPMCR', 'GPMCD', 'GPMCE', 'GPMCH', 'GPMCK', 'GPMCR', 'HPMCD', 'HPMCE', 'HPMCH', 'HPMCK', 'HPMCR', 'KPMCD', 'KPMCE', 'KPMCH', 'KPMCK', 'KPMCR', 'PPMCD', 'PPMCE', 'PPMCH', 'PPMCK', 'PPMCR', 'SPMCD', 'SPMCE', 'SPMCH', 'SPMCK', 'SPMCR', 'TPMCD', 'TPMCE', 'TPMCH', 'TPMCK', 'TPMCR', 'YPMCD', 'YPMCE', 'YPMCH', 'YPMCK', 'YPMCR', 'RPFCD', 'RPFCE', 'RPFCH', 'RPFCK', 'RPFCR', 'NPFCD', 'NPFCE', 'NPFCH', 'NPFCK', 'NPFCR', 'DPFCD', 'DPFCE', 'DPFCH', 'DPFCK', 'DPFCR', 'EPFCD', 'EPFCE', 'EPFCH', 'EPFCK', 'EPFCR', 'QPFCD', 'QPFCE', 'QPFCH', 'QPFCK', 'QPFCR', 'GPFCD', 'GPFCE', 'GPFCH', 'GPFCK', 'GPFCR', 'HPFCD', 'HPFCE', 'HPFCH', 'HPFCK', 'HPFCR', 'KPFCD', 'KPFCE', 'KPFCH', 'KPFCK', 'KPFCR', 'PPFCD', 'PPFCE', 'PPFCH', 'PPFCK', 'PPFCR', 'SPFCD', 'SPFCE', 'SPFCH', 'SPFCK', 'SPFCR', 'TPFCD', 'TPFCE', 'TPFCH', 'TPFCK', 'TPFCR', 'YPFCD', 'YPFCE', 'YPFCH', 'YPFCK', 'YPFCR', 'RPWCD', 'RPWCE', 'RPWCH', 'RPWCK', 'RPWCR', 'NPWCD', 'NPWCE', 'NPWCH', 'NPWCK', 'NPWCR', 'DPWCD', 'DPWCE', 'DPWCH', 'DPWCK', 'DPWCR', 'EPWCD', 'EPWCE', 'EPWCH', 'EPWCK', 'EPWCR', 'QPWCD', 'QPWCE', 'QPWCH', 'QPWCK', 'QPWCR', 'GPWCD', 'GPWCE', 'GPWCH', 'GPWCK', 'GPWCR', 'HPWCD', 'HPWCE', 'HPWCH', 'HPWCK', 'HPWCR', 'KPWCD', 'KPWCE', 'KPWCH', 'KPWCK', 'KPWCR', 'PPWCD', 'PPWCE', 'PPWCH', 'PPWCK', 'PPWCR', 'SPWCD', 'SPWCE', 'SPWCH', 'SPWCK', 'SPWCR', 'TPWCD', 'TPWCE', 'TPWCH', 'TPWCK', 'TPWCR', 'YPWCD', 'YPWCE', 'YPWCH', 'YPWCK', 'YPWCR', 'RPYCD', 'RPYCE', 'RPYCH', 'RPYCK', 'RPYCR', 'NPYCD', 'NPYCE', 'NPYCH', 'NPYCK', 'NPYCR', 'DPYCD', 'DPYCE', 'DPYCH', 'DPYCK', 'DPYCR', 'EPYCD', 'EPYCE', 'EPYCH', 'EPYCK', 'EPYCR', 'QPYCD', 'QPYCE', 'QPYCH', 'QPYCK', 'QPYCR', 'GPYCD', 'GPYCE', 'GPYCH', 'GPYCK', 'GPYCR', 'HPYCD', 'HPYCE', 'HPYCH', 'HPYCK', 'HPYCR', 'KPYCD', 'KPYCE', 'KPYCH', 'KPYCK', 'KPYCR', 'PPYCD', 'PPYCE', 'PPYCH', 'PPYCK', 'PPYCR', 'SPYCD', 'SPYCE', 'SPYCH', 'SPYCK', 'SPYCR', 'TPYCD', 'TPYCE', 'TPYCH', 'TPYCK', 'TPYCR', 'YPYCD', 'YPYCE', 'YPYCH', 'YPYCK', 'YPYCR', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'IaPVRW', 'IaPVNW', 'IaPVDW', 'IaPVCW', 'IaPVEW', 'IaPVQW', 'IaPVHW', 'IaPVKW', 'IaPVSW', 'IaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'VaPVRW', 'VaPVNW', 'VaPVDW', 'VaPVCW', 'VaPVEW', 'VaPVQW', 'VaPVHW', 'VaPVKW', 'VaPVSW', 'VaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'LaPVRW', 'LaPVNW', 'LaPVDW', 'LaPVCW', 'LaPVEW', 'LaPVQW', 'LaPVHW', 'LaPVKW', 'LaPVSW', 'LaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'AaPVRW', 'AaPVNW', 'AaPVDW', 'AaPVCW', 'AaPVEW', 'AaPVQW', 'AaPVHW', 'AaPVKW', 'AaPVSW', 'AaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'GaPVRW', 'GaPVNW', 'GaPVDW', 'GaPVCW', 'GaPVEW', 'GaPVQW', 'GaPVHW', 'GaPVKW', 'GaPVSW', 'GaPVIW', 'PACDN', 'PACEN', 'PACHN', 'PACKN', 'PACRN', 'PCCDN', 'PCCEN', 'PCCHN', 'PCCKN', 'PCCRN', 'PDCDN', 'PDCEN', 'PDCHN', 'PDCKN', 'PDCRN', 'PECDN', 'PECEN', 'PECHN', 'PECKN', 'PECRN', 'PFCDN', 'PFCEN', 'PFCHN', 'PFCKN', 'PFCRN', 'PGCDN', 'PGCEN', 'PGCHN', 'PGCKN', 'PGCRN', 'PHCDN', 'PHCEN', 'PHCHN', 'PHCKN', 'PHCRN', 'PICDN', 'PICEN', 'PICHN', 'PICKN', 'PICRN', 'PKCDN', 'PKCEN', 'PKCHN', 'PKCKN', 'PKCRN', 'PLCDN', 'PLCEN', 'PLCHN', 'PLCKN', 'PLCRN', 'PMCDN', 'PMCEN', 'PMCHN', 'PMCKN', 'PMCRN', 'PPCDN', 'PPCEN', 'PPCHN', 'PPCKN', 'PPCRN', 'PQCDN', 'PQCEN', 'PQCHN', 'PQCKN', 'PQCRN', 'PRCDN', 'PRCEN', 'PRCHN', 'PRCKN', 'PRCRN', 'PSCDN', 'PSCEN', 'PSCHN', 'PSCKN', 'PSCRN', 'PTCDN', 'PTCEN', 'PTCHN', 'PTCKN', 'PTCRN', 'PUCDN', 'PUCEN', 'PUCHN', 'PUCKN', 'PUCRN', 'PVCDN', 'PVCEN', 'PVCHN', 'PVCKN', 'PVCRN', 'PWCDN', 'PWCEN', 'PWCHN', 'PWCKN', 'PWCRN', 'PYCDN', 'PYCEN', 'PYCHN', 'PYCKN', 'PYCRN', 'PACDD', 'PACED', 'PACHD', 'PACKD', 'PACRD', 'PCCDD', 'PCCED', 'PCCHD', 'PCCKD', 'PCCRD', 'PDCDD', 'PDCED', 'PDCHD', 'PDCKD', 'PDCRD', 'PECDD', 'PECED', 'PECHD', 'PECKD', 'PECRD', 'PFCDD', 'PFCED', 'PFCHD', 'PFCKD', 'PFCRD', 'PGCDD', 'PGCED', 'PGCHD', 'PGCKD', 'PGCRD', 'PHCDD', 'PHCED', 'PHCHD', 'PHCKD', 'PHCRD', 'PICDD', 'PICED', 'PICHD', 'PICKD', 'PICRD', 'PKCDD', 'PKCED', 'PKCHD', 'PKCKD', 'PKCRD', 'PLCDD', 'PLCED', 'PLCHD', 'PLCKD', 'PLCRD', 'PMCDD', 'PMCED', 'PMCHD', 'PMCKD', 'PMCRD', 'PPCDD', 'PPCED', 'PPCHD', 'PPCKD', 'PPCRD', 'PQCDD', 'PQCED', 'PQCHD', 'PQCKD', 'PQCRD', 'PRCDD', 'PRCED', 'PRCHD', 'PRCKD', 'PRCRD', 'PSCDD', 'PSCED', 'PSCHD', 'PSCKD', 'PSCRD', 'PTCDD', 'PTCED', 'PTCHD', 'PTCKD', 'PTCRD', 'PUCDD', 'PUCED', 'PUCHD', 'PUCKD', 'PUCRD', 'PVCDD', 'PVCED', 'PVCHD', 'PVCKD', 'PVCRD', 'PWCDD', 'PWCED', 'PWCHD', 'PWCKD', 'PWCRD', 'PYCDD', 'PYCED', 'PYCHD', 'PYCKD', 'PYCRD', 'PACDC', 'PACEC', 'PACHC', 'PACKC', 'PACRC', 'PCCDC', 'PCCEC', 'PCCHC', 'PCCKC', 'PCCRC', 'PDCDC', 'PDCEC', 'PDCHC', 'PDCKC', 'PDCRC', 'PECDC', 'PECEC', 'PECHC', 'PECKC', 'PECRC', 'PFCDC', 'PFCEC', 'PFCHC', 'PFCKC', 'PFCRC', 'PGCDC', 'PGCEC', 'PGCHC', 'PGCKC', 'PGCRC', 'PHCDC', 'PHCEC', 'PHCHC', 'PHCKC', 'PHCRC', 'PICDC', 'PICEC', 'PICHC', 'PICKC', 'PICRC', 'PKCDC', 'PKCEC', 'PKCHC', 'PKCKC', 'PKCRC', 'PLCDC', 'PLCEC', 'PLCHC', 'PLCKC', 'PLCRC', 'PMCDC', 'PMCEC', 'PMCHC', 'PMCKC', 'PMCRC', 'PPCDC', 'PPCEC', 'PPCHC', 'PPCKC', 'PPCRC', 'PQCDC', 'PQCEC', 'PQCHC', 'PQCKC', 'PQCRC', 'PRCDC', 'PRCEC', 'PRCHC', 'PRCKC', 'PRCRC', 'PSCDC', 'PSCEC', 'PSCHC', 'PSCKC', 'PSCRC', 'PTCDC', 'PTCEC', 'PTCHC', 'PTCKC', 'PTCRC', 'PUCDC', 'PUCEC', 'PUCHC', 'PUCKC', 'PUCRC', 'PVCDC', 'PVCEC', 'PVCHC', 'PVCKC', 'PVCRC', 'PWCDC', 'PWCEC', 'PWCHC', 'PWCKC', 'PWCRC', 'PYCDC', 'PYCEC', 'PYCHC', 'PYCKC', 'PYCRC', 'PACDP', 'PACEP', 'PACHP', 'PACKP', 'PACRP', 'PCCDP', 'PCCEP', 'PCCHP', 'PCCKP', 'PCCRP', 'PDCDP', 'PDCEP', 'PDCHP', 'PDCKP', 'PDCRP', 'PECDP', 'PECEP', 'PECHP', 'PECKP', 'PECRP', 'PFCDP', 'PFCEP', 'PFCHP', 'PFCKP', 'PFCRP', 'PGCDP', 'PGCEP', 'PGCHP', 'PGCKP', 'PGCRP', 'PHCDP', 'PHCEP', 'PHCHP', 'PHCKP', 'PHCRP', 'PICDP', 'PICEP', 'PICHP', 'PICKP', 'PICRP', 'PKCDP', 'PKCEP', 'PKCHP', 'PKCKP', 'PKCRP', 'PLCDP', 'PLCEP', 'PLCHP', 'PLCKP', 'PLCRP', 'PMCDP', 'PMCEP', 'PMCHP', 'PMCKP', 'PMCRP', 'PPCDP', 'PPCEP', 'PPCHP', 'PPCKP', 'PPCRP', 'PQCDP', 'PQCEP', 'PQCHP', 'PQCKP', 'PQCRP', 'PRCDP', 'PRCEP', 'PRCHP', 'PRCKP', 'PRCRP', 'PSCDP', 'PSCEP', 'PSCHP', 'PSCKP', 'PSCRP', 'PTCDP', 'PTCEP', 'PTCHP', 'PTCKP', 'PTCRP', 'PUCDP', 'PUCEP', 'PUCHP', 'PUCKP', 'PUCRP', 'PVCDP', 'PVCEP', 'PVCHP', 'PVCKP', 'PVCRP', 'PWCDP', 'PWCEP', 'PWCHP', 'PWCKP', 'PWCRP', 'PYCDP', 'PYCEP', 'PYCHP', 'PYCKP', 'PYCRP', 'PACDT', 'PACET', 'PACHT', 'PACKT', 'PACRT', 'PCCDT', 'PCCET', 'PCCHT', 'PCCKT', 'PCCRT', 'PDCDT', 'PDCET', 'PDCHT', 'PDCKT', 'PDCRT', 'PECDT', 'PECET', 'PECHT', 'PECKT', 'PECRT', 'PFCDT', 'PFCET', 'PFCHT', 'PFCKT', 'PFCRT', 'PGCDT', 'PGCET', 'PGCHT', 'PGCKT', 'PGCRT', 'PHCDT', 'PHCET', 'PHCHT', 'PHCKT', 'PHCRT', 'PICDT', 'PICET', 'PICHT', 'PICKT', 'PICRT', 'PKCDT', 'PKCET', 'PKCHT', 'PKCKT', 'PKCRT', 'PLCDT', 'PLCET', 'PLCHT', 'PLCKT', 'PLCRT', 'PMCDT', 'PMCET', 'PMCHT', 'PMCKT', 'PMCRT', 'PPCDT', 'PPCET', 'PPCHT', 'PPCKT', 'PPCRT', 'PQCDT', 'PQCET', 'PQCHT', 'PQCKT', 'PQCRT', 'PRCDT', 'PRCET', 'PRCHT', 'PRCKT', 'PRCRT', 'PSCDT', 'PSCET', 'PSCHT', 'PSCKT', 'PSCRT', 'PTCDT', 'PTCET', 'PTCHT', 'PTCKT', 'PTCRT', 'PUCDT', 'PUCET', 'PUCHT', 'PUCKT', 'PUCRT', 'PVCDT', 'PVCET', 'PVCHT', 'PVCKT', 'PVCRT', 'PWCDT', 'PWCET', 'PWCHT', 'PWCKT', 'PWCRT', 'PYCDT', 'PYCET', 'PYCHT', 'PYCKT', 'PYCRT', 'PACDV', 'PACEV', 'PACHV', 'PACKV', 'PACRV', 'PCCDV', 'PCCEV', 'PCCHV', 'PCCKV', 'PCCRV', 'PDCDV', 'PDCEV', 'PDCHV', 'PDCKV', 'PDCRV', 'PECDV', 'PECEV', 'PECHV', 'PECKV', 'PECRV', 'PFCDV', 'PFCEV', 'PFCHV', 'PFCKV', 'PFCRV', 'PGCDV', 'PGCEV', 'PGCHV', 'PGCKV', 'PGCRV', 'PHCDV', 'PHCEV', 'PHCHV', 'PHCKV', 'PHCRV', 'PICDV', 'PICEV', 'PICHV', 'PICKV', 'PICRV', 'PKCDV', 'PKCEV', 'PKCHV', 'PKCKV', 'PKCRV', 'PLCDV', 'PLCEV', 'PLCHV', 'PLCKV', 'PLCRV', 'PMCDV', 'PMCEV', 'PMCHV', 'PMCKV', 'PMCRV', 'PPCDV', 'PPCEV', 'PPCHV', 'PPCKV', 'PPCRV', 'PQCDV', 'PQCEV', 'PQCHV', 'PQCKV', 'PQCRV', 'PRCDV', 'PRCEV', 'PRCHV', 'PRCKV', 'PRCRV', 'PSCDV', 'PSCEV', 'PSCHV', 'PSCKV', 'PSCRV', 'PTCDV', 'PTCEV', 'PTCHV', 'PTCKV', 'PTCRV', 'PUCDV', 'PUCEV', 'PUCHV', 'PUCKV', 'PUCRV', 'PVCDV', 'PVCEV', 'PVCHV', 'PVCKV', 'PVCRV', 'PWCDV', 'PWCEV', 'PWCHV', 'PWCKV', 'PWCRV', 'PYCDV', 'PYCEV', 'PYCHV', 'PYCKV', 'PYCRV', 'PSCRN', 'PSCNN', 'PSCDN', 'PSCCN', 'PSCEN', 'PSCQN', 'PSCHN', 'PSCKN', 'PSCSN', 'PSCIN', 'PTCRN', 'PTCNN', 'PTCDN', 'PTCCN', 'PTCEN', 'PTCQN', 'PTCHN', 'PTCKN', 'PTCSN', 'PTCIN', 'PNCRN', 'PNCNN', 'PNCDN', 'PNCCN', 'PNCEN', 'PNCQN', 'PNCHN', 'PNCKN', 'PNCSN', 'PNCIN', 'PQCRN', 'PQCNN', 'PQCDN', 'PQCCN', 'PQCEN', 'PQCQN', 'PQCHN', 'PQCKN', 'PQCSN', 'PQCIN', 'PSCRD', 'PSCND', 'PSCDD', 'PSCCD', 'PSCED', 'PSCQD', 'PSCHD', 'PSCKD', 'PSCSD', 'PSCID', 'PTCRD', 'PTCND', 'PTCDD', 'PTCCD', 'PTCED', 'PTCQD', 'PTCHD', 'PTCKD', 'PTCSD', 'PTCID', 'PNCRD', 'PNCND', 'PNCDD', 'PNCCD', 'PNCED', 'PNCQD', 'PNCHD', 'PNCKD', 'PNCSD', 'PNCID', 'PQCRD', 'PQCND', 'PQCDD', 'PQCCD', 'PQCED', 'PQCQD', 'PQCHD', 'PQCKD', 'PQCSD', 'PQCID', 'PSCRC', 'PSCNC', 'PSCDC', 'PSCCC', 'PSCEC', 'PSCQC', 'PSCHC', 'PSCKC', 'PSCSC', 'PSCIC', 'PTCRC', 'PTCNC', 'PTCDC', 'PTCCC', 'PTCEC', 'PTCQC', 'PTCHC', 'PTCKC', 'PTCSC', 'PTCIC', 'PNCRC', 'PNCNC', 'PNCDC', 'PNCCC', 'PNCEC', 'PNCQC', 'PNCHC', 'PNCKC', 'PNCSC', 'PNCIC', 'PQCRC', 'PQCNC', 'PQCDC', 'PQCCC', 'PQCEC', 'PQCQC', 'PQCHC', 'PQCKC', 'PQCSC', 'PQCIC', 'PSCRP', 'PSCNP', 'PSCDP', 'PSCCP', 'PSCEP', 'PSCQP', 'PSCHP', 'PSCKP', 'PSCSP', 'PSCIP', 'PTCRP', 'PTCNP', 'PTCDP', 'PTCCP', 'PTCEP', 'PTCQP', 'PTCHP', 'PTCKP', 'PTCSP', 'PTCIP', 'PNCRP', 'PNCNP', 'PNCDP', 'PNCCP', 'PNCEP', 'PNCQP', 'PNCHP', 'PNCKP', 'PNCSP', 'PNCIP', 'PQCRP', 'PQCNP', 'PQCDP', 'PQCCP', 'PQCEP', 'PQCQP', 'PQCHP', 'PQCKP', 'PQCSP', 'PQCIP', 'PSCRT', 'PSCNT', 'PSCDT', 'PSCCT', 'PSCET', 'PSCQT', 'PSCHT', 'PSCKT', 'PSCST', 'PSCIT', 'PTCRT', 'PTCNT', 'PTCDT', 'PTCCT', 'PTCET', 'PTCQT', 'PTCHT', 'PTCKT', 'PTCST', 'PTCIT', 'PNCRT', 'PNCNT', 'PNCDT', 'PNCCT', 'PNCET', 'PNCQT', 'PNCHT', 'PNCKT', 'PNCST', 'PNCIT', 'PQCRT', 'PQCNT', 'PQCDT', 'PQCCT', 'PQCET', 'PQCQT', 'PQCHT', 'PQCKT', 'PQCST', 'PQCIT', 'PSCRV', 'PSCNV', 'PSCDV', 'PSCCV', 'PSCEV', 'PSCQV', 'PSCHV', 'PSCKV', 'PSCSV', 'PSCIV', 'PTCRV', 'PTCNV', 'PTCDV', 'PTCCV', 'PTCEV', 'PTCQV', 'PTCHV', 'PTCKV', 'PTCSV', 'PTCIV', 'PNCRV', 'PNCNV', 'PNCDV', 'PNCCV', 'PNCEV', 'PNCQV', 'PNCHV', 'PNCKV', 'PNCSV', 'PNCIV', 'PQCRV', 'PQCNV', 'PQCDV', 'PQCCV', 'PQCEV', 'PQCQV', 'PQCHV', 'PQCKV', 'PQCSV', 'PQCIV', 'FACDN', 'FACEN', 'FACHN', 'FACKN', 'FACRN', 'FCCDN', 'FCCEN', 'FCCHN', 'FCCKN', 'FCCRN', 'FDCDN', 'FDCEN', 'FDCHN', 'FDCKN', 'FDCRN', 'FECDN', 'FECEN', 'FECHN', 'FECKN', 'FECRN', 'FFCDN', 'FFCEN', 'FFCHN', 'FFCKN', 'FFCRN', 'FGCDN', 'FGCEN', 'FGCHN', 'FGCKN', 'FGCRN', 'FHCDN', 'FHCEN', 'FHCHN', 'FHCKN', 'FHCRN', 'FICDN', 'FICEN', 'FICHN', 'FICKN', 'FICRN', 'FKCDN', 'FKCEN', 'FKCHN', 'FKCKN', 'FKCRN', 'FLCDN', 'FLCEN', 'FLCHN', 'FLCKN', 'FLCRN', 'FMCDN', 'FMCEN', 'FMCHN', 'FMCKN', 'FMCRN', 'FPCDN', 'FPCEN', 'FPCHN', 'FPCKN', 'FPCRN', 'FQCDN', 'FQCEN', 'FQCHN', 'FQCKN', 'FQCRN', 'FRCDN', 'FRCEN', 'FRCHN', 'FRCKN', 'FRCRN', 'FSCDN', 'FSCEN', 'FSCHN', 'FSCKN', 'FSCRN', 'FTCDN', 'FTCEN', 'FTCHN', 'FTCKN', 'FTCRN', 'FUCDN', 'FUCEN', 'FUCHN', 'FUCKN', 'FUCRN', 'FVCDN', 'FVCEN', 'FVCHN', 'FVCKN', 'FVCRN', 'FWCDN', 'FWCEN', 'FWCHN', 'FWCKN', 'FWCRN', 'FYCDN', 'FYCEN', 'FYCHN', 'FYCKN', 'FYCRN', 'WACDN', 'WACEN', 'WACHN', 'WACKN', 'WACRN', 'WCCDN', 'WCCEN', 'WCCHN', 'WCCKN', 'WCCRN', 'WDCDN', 'WDCEN', 'WDCHN', 'WDCKN', 'WDCRN', 'WECDN', 'WECEN', 'WECHN', 'WECKN', 'WECRN', 'WFCDN', 'WFCEN', 'WFCHN', 'WFCKN', 'WFCRN', 'WGCDN', 'WGCEN', 'WGCHN', 'WGCKN', 'WGCRN', 'WHCDN', 'WHCEN', 'WHCHN', 'WHCKN', 'WHCRN', 'WICDN', 'WICEN', 'WICHN', 'WICKN', 'WICRN', 'WKCDN', 'WKCEN', 'WKCHN', 'WKCKN', 'WKCRN', 'WLCDN', 'WLCEN', 'WLCHN', 'WLCKN', 'WLCRN', 'WMCDN', 'WMCEN', 'WMCHN', 'WMCKN', 'WMCRN', 'WPCDN', 'WPCEN', 'WPCHN', 'WPCKN', 'WPCRN', 'WQCDN', 'WQCEN', 'WQCHN', 'WQCKN', 'WQCRN', 'WRCDN', 'WRCEN', 'WRCHN', 'WRCKN', 'WRCRN', 'WSCDN', 'WSCEN', 'WSCHN', 'WSCKN', 'WSCRN', 'WTCDN', 'WTCEN', 'WTCHN', 'WTCKN', 'WTCRN', 'WUCDN', 'WUCEN', 'WUCHN', 'WUCKN', 'WUCRN', 'WVCDN', 'WVCEN', 'WVCHN', 'WVCKN', 'WVCRN', 'WWCDN', 'WWCEN', 'WWCHN', 'WWCKN', 'WWCRN', 'WYCDN', 'WYCEN', 'WYCHN', 'WYCKN', 'WYCRN', 'YACDN', 'YACEN', 'YACHN', 'YACKN', 'YACRN', 'YCCDN', 'YCCEN', 'YCCHN', 'YCCKN', 'YCCRN', 'YDCDN', 'YDCEN', 'YDCHN', 'YDCKN', 'YDCRN', 'YECDN', 'YECEN', 'YECHN', 'YECKN', 'YECRN', 'YFCDN', 'YFCEN', 'YFCHN', 'YFCKN', 'YFCRN', 'YGCDN', 'YGCEN', 'YGCHN', 'YGCKN', 'YGCRN', 'YHCDN', 'YHCEN', 'YHCHN', 'YHCKN', 'YHCRN', 'YICDN', 'YICEN', 'YICHN', 'YICKN', 'YICRN', 'YKCDN', 'YKCEN', 'YKCHN', 'YKCKN', 'YKCRN', 'YLCDN', 'YLCEN', 'YLCHN', 'YLCKN', 'YLCRN', 'YMCDN', 'YMCEN', 'YMCHN', 'YMCKN', 'YMCRN', 'YPCDN', 'YPCEN', 'YPCHN', 'YPCKN', 'YPCRN', 'YQCDN', 'YQCEN', 'YQCHN', 'YQCKN', 'YQCRN', 'YRCDN', 'YRCEN', 'YRCHN', 'YRCKN', 'YRCRN', 'YSCDN', 'YSCEN', 'YSCHN', 'YSCKN', 'YSCRN', 'YTCDN', 'YTCEN', 'YTCHN', 'YTCKN', 'YTCRN', 'YUCDN', 'YUCEN', 'YUCHN', 'YUCKN', 'YUCRN', 'YVCDN', 'YVCEN', 'YVCHN', 'YVCKN', 'YVCRN', 'YWCDN', 'YWCEN', 'YWCHN', 'YWCKN', 'YWCRN', 'YYCDN', 'YYCEN', 'YYCHN', 'YYCKN', 'YYCRN', 'FACDD', 'FACED', 'FACHD', 'FACKD', 'FACRD', 'FCCDD', 'FCCED', 'FCCHD', 'FCCKD', 'FCCRD', 'FDCDD', 'FDCED', 'FDCHD', 'FDCKD', 'FDCRD', 'FECDD', 'FECED', 'FECHD', 'FECKD', 'FECRD', 'FFCDD', 'FFCED', 'FFCHD', 'FFCKD', 'FFCRD', 'FGCDD', 'FGCED', 'FGCHD', 'FGCKD', 'FGCRD', 'FHCDD', 'FHCED', 'FHCHD', 'FHCKD', 'FHCRD', 'FICDD', 'FICED', 'FICHD', 'FICKD', 'FICRD', 'FKCDD', 'FKCED', 'FKCHD', 'FKCKD', 'FKCRD', 'FLCDD', 'FLCED', 'FLCHD', 'FLCKD', 'FLCRD', 'FMCDD', 'FMCED', 'FMCHD', 'FMCKD', 'FMCRD', 'FPCDD', 'FPCED', 'FPCHD', 'FPCKD', 'FPCRD', 'FQCDD', 'FQCED', 'FQCHD', 'FQCKD', 'FQCRD', 'FRCDD', 'FRCED', 'FRCHD', 'FRCKD', 'FRCRD', 'FSCDD', 'FSCED', 'FSCHD', 'FSCKD', 'FSCRD', 'FTCDD', 'FTCED', 'FTCHD', 'FTCKD', 'FTCRD', 'FUCDD', 'FUCED', 'FUCHD', 'FUCKD', 'FUCRD', 'FVCDD', 'FVCED', 'FVCHD', 'FVCKD', 'FVCRD', 'FWCDD', 'FWCED', 'FWCHD', 'FWCKD', 'FWCRD', 'FYCDD', 'FYCED', 'FYCHD', 'FYCKD', 'FYCRD', 'WACDD', 'WACED', 'WACHD', 'WACKD', 'WACRD', 'WCCDD', 'WCCED', 'WCCHD', 'WCCKD', 'WCCRD', 'WDCDD', 'WDCED', 'WDCHD', 'WDCKD', 'WDCRD', 'WECDD', 'WECED', 'WECHD', 'WECKD', 'WECRD', 'WFCDD', 'WFCED', 'WFCHD', 'WFCKD', 'WFCRD', 'WGCDD', 'WGCED', 'WGCHD', 'WGCKD', 'WGCRD', 'WHCDD', 'WHCED', 'WHCHD', 'WHCKD', 'WHCRD', 'WICDD', 'WICED', 'WICHD', 'WICKD', 'WICRD', 'WKCDD', 'WKCED', 'WKCHD', 'WKCKD', 'WKCRD', 'WLCDD', 'WLCED', 'WLCHD', 'WLCKD', 'WLCRD', 'WMCDD', 'WMCED', 'WMCHD', 'WMCKD', 'WMCRD', 'WPCDD', 'WPCED', 'WPCHD', 'WPCKD', 'WPCRD', 'WQCDD', 'WQCED', 'WQCHD', 'WQCKD', 'WQCRD', 'WRCDD', 'WRCED', 'WRCHD', 'WRCKD', 'WRCRD', 'WSCDD', 'WSCED', 'WSCHD', 'WSCKD', 'WSCRD', 'WTCDD', 'WTCED', 'WTCHD', 'WTCKD', 'WTCRD', 'WUCDD', 'WUCED', 'WUCHD', 'WUCKD', 'WUCRD', 'WVCDD', 'WVCED', 'WVCHD', 'WVCKD', 'WVCRD', 'WWCDD', 'WWCED', 'WWCHD', 'WWCKD', 'WWCRD', 'WYCDD', 'WYCED', 'WYCHD', 'WYCKD', 'WYCRD', 'YACDD', 'YACED', 'YACHD', 'YACKD', 'YACRD', 'YCCDD', 'YCCED', 'YCCHD', 'YCCKD', 'YCCRD', 'YDCDD', 'YDCED', 'YDCHD', 'YDCKD', 'YDCRD', 'YECDD', 'YECED', 'YECHD', 'YECKD', 'YECRD', 'YFCDD', 'YFCED', 'YFCHD', 'YFCKD', 'YFCRD', 'YGCDD', 'YGCED', 'YGCHD', 'YGCKD', 'YGCRD', 'YHCDD', 'YHCED', 'YHCHD', 'YHCKD', 'YHCRD', 'YICDD', 'YICED', 'YICHD', 'YICKD', 'YICRD', 'YKCDD', 'YKCED', 'YKCHD', 'YKCKD', 'YKCRD', 'YLCDD', 'YLCED', 'YLCHD', 'YLCKD', 'YLCRD', 'YMCDD', 'YMCED', 'YMCHD', 'YMCKD', 'YMCRD', 'YPCDD', 'YPCED', 'YPCHD', 'YPCKD', 'YPCRD', 'YQCDD', 'YQCED', 'YQCHD', 'YQCKD', 'YQCRD', 'YRCDD', 'YRCED', 'YRCHD', 'YRCKD', 'YRCRD', 'YSCDD', 'YSCED', 'YSCHD', 'YSCKD', 'YSCRD', 'YTCDD', 'YTCED', 'YTCHD', 'YTCKD', 'YTCRD', 'YUCDD', 'YUCED', 'YUCHD', 'YUCKD', 'YUCRD', 'YVCDD', 'YVCED', 'YVCHD', 'YVCKD', 'YVCRD', 'YWCDD', 'YWCED', 'YWCHD', 'YWCKD', 'YWCRD', 'YYCDD', 'YYCED', 'YYCHD', 'YYCKD', 'YYCRD', 'FACDC', 'FACEC', 'FACHC', 'FACKC', 'FACRC', 'FCCDC', 'FCCEC', 'FCCHC', 'FCCKC', 'FCCRC', 'FDCDC', 'FDCEC', 'FDCHC', 'FDCKC', 'FDCRC', 'FECDC', 'FECEC', 'FECHC', 'FECKC', 'FECRC', 'FFCDC', 'FFCEC', 'FFCHC', 'FFCKC', 'FFCRC', 'FGCDC', 'FGCEC', 'FGCHC', 'FGCKC', 'FGCRC', 'FHCDC', 'FHCEC', 'FHCHC', 'FHCKC', 'FHCRC', 'FICDC', 'FICEC', 'FICHC', 'FICKC', 'FICRC', 'FKCDC', 'FKCEC', 'FKCHC', 'FKCKC', 'FKCRC', 'FLCDC', 'FLCEC', 'FLCHC', 'FLCKC', 'FLCRC', 'FMCDC', 'FMCEC', 'FMCHC', 'FMCKC', 'FMCRC', 'FPCDC', 'FPCEC', 'FPCHC', 'FPCKC', 'FPCRC', 'FQCDC', 'FQCEC', 'FQCHC', 'FQCKC', 'FQCRC', 'FRCDC', 'FRCEC', 'FRCHC', 'FRCKC', 'FRCRC', 'FSCDC', 'FSCEC', 'FSCHC', 'FSCKC', 'FSCRC', 'FTCDC', 'FTCEC', 'FTCHC', 'FTCKC', 'FTCRC', 'FUCDC', 'FUCEC', 'FUCHC', 'FUCKC', 'FUCRC', 'FVCDC', 'FVCEC', 'FVCHC', 'FVCKC', 'FVCRC', 'FWCDC', 'FWCEC', 'FWCHC', 'FWCKC', 'FWCRC', 'FYCDC', 'FYCEC', 'FYCHC', 'FYCKC', 'FYCRC', 'WACDC', 'WACEC', 'WACHC', 'WACKC', 'WACRC', 'WCCDC', 'WCCEC', 'WCCHC', 'WCCKC', 'WCCRC', 'WDCDC', 'WDCEC', 'WDCHC', 'WDCKC', 'WDCRC', 'WECDC', 'WECEC', 'WECHC', 'WECKC', 'WECRC', 'WFCDC', 'WFCEC', 'WFCHC', 'WFCKC', 'WFCRC', 'WGCDC', 'WGCEC', 'WGCHC', 'WGCKC', 'WGCRC', 'WHCDC', 'WHCEC', 'WHCHC', 'WHCKC', 'WHCRC', 'WICDC', 'WICEC', 'WICHC', 'WICKC', 'WICRC', 'WKCDC', 'WKCEC', 'WKCHC', 'WKCKC', 'WKCRC', 'WLCDC', 'WLCEC', 'WLCHC', 'WLCKC', 'WLCRC', 'WMCDC', 'WMCEC', 'WMCHC', 'WMCKC', 'WMCRC', 'WPCDC', 'WPCEC', 'WPCHC', 'WPCKC', 'WPCRC', 'WQCDC', 'WQCEC', 'WQCHC', 'WQCKC', 'WQCRC', 'WRCDC', 'WRCEC', 'WRCHC', 'WRCKC', 'WRCRC', 'WSCDC', 'WSCEC', 'WSCHC', 'WSCKC', 'WSCRC', 'WTCDC', 'WTCEC', 'WTCHC', 'WTCKC', 'WTCRC', 'WUCDC', 'WUCEC', 'WUCHC', 'WUCKC', 'WUCRC', 'WVCDC', 'WVCEC', 'WVCHC', 'WVCKC', 'WVCRC', 'WWCDC', 'WWCEC', 'WWCHC', 'WWCKC', 'WWCRC', 'WYCDC', 'WYCEC', 'WYCHC', 'WYCKC', 'WYCRC', 'YACDC', 'YACEC', 'YACHC', 'YACKC', 'YACRC', 'YCCDC', 'YCCEC', 'YCCHC', 'YCCKC', 'YCCRC', 'YDCDC', 'YDCEC', 'YDCHC', 'YDCKC', 'YDCRC', 'YECDC', 'YECEC', 'YECHC', 'YECKC', 'YECRC', 'YFCDC', 'YFCEC', 'YFCHC', 'YFCKC', 'YFCRC', 'YGCDC', 'YGCEC', 'YGCHC', 'YGCKC', 'YGCRC', 'YHCDC', 'YHCEC', 'YHCHC', 'YHCKC', 'YHCRC', 'YICDC', 'YICEC', 'YICHC', 'YICKC', 'YICRC', 'YKCDC', 'YKCEC', 'YKCHC', 'YKCKC', 'YKCRC', 'YLCDC', 'YLCEC', 'YLCHC', 'YLCKC', 'YLCRC', 'YMCDC', 'YMCEC', 'YMCHC', 'YMCKC', 'YMCRC', 'YPCDC', 'YPCEC', 'YPCHC', 'YPCKC', 'YPCRC', 'YQCDC', 'YQCEC', 'YQCHC', 'YQCKC', 'YQCRC', 'YRCDC', 'YRCEC', 'YRCHC', 'YRCKC', 'YRCRC', 'YSCDC', 'YSCEC', 'YSCHC', 'YSCKC', 'YSCRC', 'YTCDC', 'YTCEC', 'YTCHC', 'YTCKC', 'YTCRC', 'YUCDC', 'YUCEC', 'YUCHC', 'YUCKC', 'YUCRC', 'YVCDC', 'YVCEC', 'YVCHC', 'YVCKC', 'YVCRC', 'YWCDC', 'YWCEC', 'YWCHC', 'YWCKC', 'YWCRC', 'YYCDC', 'YYCEC', 'YYCHC', 'YYCKC', 'YYCRC', 'FACDP', 'FACEP', 'FACHP', 'FACKP', 'FACRP', 'FCCDP', 'FCCEP', 'FCCHP', 'FCCKP', 'FCCRP', 'FDCDP', 'FDCEP', 'FDCHP', 'FDCKP', 'FDCRP', 'FECDP', 'FECEP', 'FECHP', 'FECKP', 'FECRP', 'FFCDP', 'FFCEP', 'FFCHP', 'FFCKP', 'FFCRP', 'FGCDP', 'FGCEP', 'FGCHP', 'FGCKP', 'FGCRP', 'FHCDP', 'FHCEP', 'FHCHP', 'FHCKP', 'FHCRP', 'FICDP', 'FICEP', 'FICHP', 'FICKP', 'FICRP', 'FKCDP', 'FKCEP', 'FKCHP', 'FKCKP', 'FKCRP', 'FLCDP', 'FLCEP', 'FLCHP', 'FLCKP', 'FLCRP', 'FMCDP', 'FMCEP', 'FMCHP', 'FMCKP', 'FMCRP', 'FPCDP', 'FPCEP', 'FPCHP', 'FPCKP', 'FPCRP', 'FQCDP', 'FQCEP', 'FQCHP', 'FQCKP', 'FQCRP', 'FRCDP', 'FRCEP', 'FRCHP', 'FRCKP', 'FRCRP', 'FSCDP', 'FSCEP', 'FSCHP', 'FSCKP', 'FSCRP', 'FTCDP', 'FTCEP', 'FTCHP', 'FTCKP', 'FTCRP', 'FUCDP', 'FUCEP', 'FUCHP', 'FUCKP', 'FUCRP', 'FVCDP', 'FVCEP', 'FVCHP', 'FVCKP', 'FVCRP', 'FWCDP', 'FWCEP', 'FWCHP', 'FWCKP', 'FWCRP', 'FYCDP', 'FYCEP', 'FYCHP', 'FYCKP', 'FYCRP', 'WACDP', 'WACEP', 'WACHP', 'WACKP', 'WACRP', 'WCCDP', 'WCCEP', 'WCCHP', 'WCCKP', 'WCCRP', 'WDCDP', 'WDCEP', 'WDCHP', 'WDCKP', 'WDCRP', 'WECDP', 'WECEP', 'WECHP', 'WECKP', 'WECRP', 'WFCDP', 'WFCEP', 'WFCHP', 'WFCKP', 'WFCRP', 'WGCDP', 'WGCEP', 'WGCHP', 'WGCKP', 'WGCRP', 'WHCDP', 'WHCEP', 'WHCHP', 'WHCKP', 'WHCRP', 'WICDP', 'WICEP', 'WICHP', 'WICKP', 'WICRP', 'WKCDP', 'WKCEP', 'WKCHP', 'WKCKP', 'WKCRP', 'WLCDP', 'WLCEP', 'WLCHP', 'WLCKP', 'WLCRP', 'WMCDP', 'WMCEP', 'WMCHP', 'WMCKP', 'WMCRP', 'WPCDP', 'WPCEP', 'WPCHP', 'WPCKP', 'WPCRP', 'WQCDP', 'WQCEP', 'WQCHP', 'WQCKP', 'WQCRP', 'WRCDP', 'WRCEP', 'WRCHP', 'WRCKP', 'WRCRP', 'WSCDP', 'WSCEP', 'WSCHP', 'WSCKP', 'WSCRP', 'WTCDP', 'WTCEP', 'WTCHP', 'WTCKP', 'WTCRP', 'WUCDP', 'WUCEP', 'WUCHP', 'WUCKP', 'WUCRP', 'WVCDP', 'WVCEP', 'WVCHP', 'WVCKP', 'WVCRP', 'WWCDP', 'WWCEP', 'WWCHP', 'WWCKP', 'WWCRP', 'WYCDP', 'WYCEP', 'WYCHP', 'WYCKP', 'WYCRP', 'YACDP', 'YACEP', 'YACHP', 'YACKP', 'YACRP', 'YCCDP', 'YCCEP', 'YCCHP', 'YCCKP', 'YCCRP', 'YDCDP', 'YDCEP', 'YDCHP', 'YDCKP', 'YDCRP', 'YECDP', 'YECEP', 'YECHP', 'YECKP', 'YECRP', 'YFCDP', 'YFCEP', 'YFCHP', 'YFCKP', 'YFCRP', 'YGCDP', 'YGCEP', 'YGCHP', 'YGCKP', 'YGCRP', 'YHCDP', 'YHCEP', 'YHCHP', 'YHCKP', 'YHCRP', 'YICDP', 'YICEP', 'YICHP', 'YICKP', 'YICRP', 'YKCDP', 'YKCEP', 'YKCHP', 'YKCKP', 'YKCRP', 'YLCDP', 'YLCEP', 'YLCHP', 'YLCKP', 'YLCRP', 'YMCDP', 'YMCEP', 'YMCHP', 'YMCKP', 'YMCRP', 'YPCDP', 'YPCEP', 'YPCHP', 'YPCKP', 'YPCRP', 'YQCDP', 'YQCEP', 'YQCHP', 'YQCKP', 'YQCRP', 'YRCDP', 'YRCEP', 'YRCHP', 'YRCKP', 'YRCRP', 'YSCDP', 'YSCEP', 'YSCHP', 'YSCKP', 'YSCRP', 'YTCDP', 'YTCEP', 'YTCHP', 'YTCKP', 'YTCRP', 'YUCDP', 'YUCEP', 'YUCHP', 'YUCKP', 'YUCRP', 'YVCDP', 'YVCEP', 'YVCHP', 'YVCKP', 'YVCRP', 'YWCDP', 'YWCEP', 'YWCHP', 'YWCKP', 'YWCRP', 'YYCDP', 'YYCEP', 'YYCHP', 'YYCKP', 'YYCRP', 'FACDT', 'FACET', 'FACHT', 'FACKT', 'FACRT', 'FCCDT', 'FCCET', 'FCCHT', 'FCCKT', 'FCCRT', 'FDCDT', 'FDCET', 'FDCHT', 'FDCKT', 'FDCRT', 'FECDT', 'FECET', 'FECHT', 'FECKT', 'FECRT', 'FFCDT', 'FFCET', 'FFCHT', 'FFCKT', 'FFCRT', 'FGCDT', 'FGCET', 'FGCHT', 'FGCKT', 'FGCRT', 'FHCDT', 'FHCET', 'FHCHT', 'FHCKT', 'FHCRT', 'FICDT', 'FICET', 'FICHT', 'FICKT', 'FICRT', 'FKCDT', 'FKCET', 'FKCHT', 'FKCKT', 'FKCRT', 'FLCDT', 'FLCET', 'FLCHT', 'FLCKT', 'FLCRT', 'FMCDT', 'FMCET', 'FMCHT', 'FMCKT', 'FMCRT', 'FPCDT', 'FPCET', 'FPCHT', 'FPCKT', 'FPCRT', 'FQCDT', 'FQCET', 'FQCHT', 'FQCKT', 'FQCRT', 'FRCDT', 'FRCET', 'FRCHT', 'FRCKT', 'FRCRT', 'FSCDT', 'FSCET', 'FSCHT', 'FSCKT', 'FSCRT', 'FTCDT', 'FTCET', 'FTCHT', 'FTCKT', 'FTCRT', 'FUCDT', 'FUCET', 'FUCHT', 'FUCKT', 'FUCRT', 'FVCDT', 'FVCET', 'FVCHT', 'FVCKT', 'FVCRT', 'FWCDT', 'FWCET', 'FWCHT', 'FWCKT', 'FWCRT', 'FYCDT', 'FYCET', 'FYCHT', 'FYCKT', 'FYCRT', 'WACDT', 'WACET', 'WACHT', 'WACKT', 'WACRT', 'WCCDT', 'WCCET', 'WCCHT', 'WCCKT', 'WCCRT', 'WDCDT', 'WDCET', 'WDCHT', 'WDCKT', 'WDCRT', 'WECDT', 'WECET', 'WECHT', 'WECKT', 'WECRT', 'WFCDT', 'WFCET', 'WFCHT', 'WFCKT', 'WFCRT', 'WGCDT', 'WGCET', 'WGCHT', 'WGCKT', 'WGCRT', 'WHCDT', 'WHCET', 'WHCHT', 'WHCKT', 'WHCRT', 'WICDT', 'WICET', 'WICHT', 'WICKT', 'WICRT', 'WKCDT', 'WKCET', 'WKCHT', 'WKCKT', 'WKCRT', 'WLCDT', 'WLCET', 'WLCHT', 'WLCKT', 'WLCRT', 'WMCDT', 'WMCET', 'WMCHT', 'WMCKT', 'WMCRT', 'WPCDT', 'WPCET', 'WPCHT', 'WPCKT', 'WPCRT', 'WQCDT', 'WQCET', 'WQCHT', 'WQCKT', 'WQCRT', 'WRCDT', 'WRCET', 'WRCHT', 'WRCKT', 'WRCRT', 'WSCDT', 'WSCET', 'WSCHT', 'WSCKT', 'WSCRT', 'WTCDT', 'WTCET', 'WTCHT', 'WTCKT', 'WTCRT', 'WUCDT', 'WUCET', 'WUCHT', 'WUCKT', 'WUCRT', 'WVCDT', 'WVCET', 'WVCHT', 'WVCKT', 'WVCRT', 'WWCDT', 'WWCET', 'WWCHT', 'WWCKT', 'WWCRT', 'WYCDT', 'WYCET', 'WYCHT', 'WYCKT', 'WYCRT', 'YACDT', 'YACET', 'YACHT', 'YACKT', 'YACRT', 'YCCDT', 'YCCET', 'YCCHT', 'YCCKT', 'YCCRT', 'YDCDT', 'YDCET', 'YDCHT', 'YDCKT', 'YDCRT', 'YECDT', 'YECET', 'YECHT', 'YECKT', 'YECRT', 'YFCDT', 'YFCET', 'YFCHT', 'YFCKT', 'YFCRT', 'YGCDT', 'YGCET', 'YGCHT', 'YGCKT', 'YGCRT', 'YHCDT', 'YHCET', 'YHCHT', 'YHCKT', 'YHCRT', 'YICDT', 'YICET', 'YICHT', 'YICKT', 'YICRT', 'YKCDT', 'YKCET', 'YKCHT', 'YKCKT', 'YKCRT', 'YLCDT', 'YLCET', 'YLCHT', 'YLCKT', 'YLCRT', 'YMCDT', 'YMCET', 'YMCHT', 'YMCKT', 'YMCRT', 'YPCDT', 'YPCET', 'YPCHT', 'YPCKT', 'YPCRT', 'YQCDT', 'YQCET', 'YQCHT', 'YQCKT', 'YQCRT', 'YRCDT', 'YRCET', 'YRCHT', 'YRCKT', 'YRCRT', 'YSCDT', 'YSCET', 'YSCHT', 'YSCKT', 'YSCRT', 'YTCDT', 'YTCET', 'YTCHT', 'YTCKT', 'YTCRT', 'YUCDT', 'YUCET', 'YUCHT', 'YUCKT', 'YUCRT', 'YVCDT', 'YVCET', 'YVCHT', 'YVCKT', 'YVCRT', 'YWCDT', 'YWCET', 'YWCHT', 'YWCKT', 'YWCRT', 'YYCDT', 'YYCET', 'YYCHT', 'YYCKT', 'YYCRT', 'FACDV', 'FACEV', 'FACHV', 'FACKV', 'FACRV', 'FCCDV', 'FCCEV', 'FCCHV', 'FCCKV', 'FCCRV', 'FDCDV', 'FDCEV', 'FDCHV', 'FDCKV', 'FDCRV', 'FECDV', 'FECEV', 'FECHV', 'FECKV', 'FECRV', 'FFCDV', 'FFCEV', 'FFCHV', 'FFCKV', 'FFCRV', 'FGCDV', 'FGCEV', 'FGCHV', 'FGCKV', 'FGCRV', 'FHCDV', 'FHCEV', 'FHCHV', 'FHCKV', 'FHCRV', 'FICDV', 'FICEV', 'FICHV', 'FICKV', 'FICRV', 'FKCDV', 'FKCEV', 'FKCHV', 'FKCKV', 'FKCRV', 'FLCDV', 'FLCEV', 'FLCHV', 'FLCKV', 'FLCRV', 'FMCDV', 'FMCEV', 'FMCHV', 'FMCKV', 'FMCRV', 'FPCDV', 'FPCEV', 'FPCHV', 'FPCKV', 'FPCRV', 'FQCDV', 'FQCEV', 'FQCHV', 'FQCKV', 'FQCRV', 'FRCDV', 'FRCEV', 'FRCHV', 'FRCKV', 'FRCRV', 'FSCDV', 'FSCEV', 'FSCHV', 'FSCKV', 'FSCRV', 'FTCDV', 'FTCEV', 'FTCHV', 'FTCKV', 'FTCRV', 'FUCDV', 'FUCEV', 'FUCHV', 'FUCKV', 'FUCRV', 'FVCDV', 'FVCEV', 'FVCHV', 'FVCKV', 'FVCRV', 'FWCDV', 'FWCEV', 'FWCHV', 'FWCKV', 'FWCRV', 'FYCDV', 'FYCEV', 'FYCHV', 'FYCKV', 'FYCRV', 'WACDV', 'WACEV', 'WACHV', 'WACKV', 'WACRV', 'WCCDV', 'WCCEV', 'WCCHV', 'WCCKV', 'WCCRV', 'WDCDV', 'WDCEV', 'WDCHV', 'WDCKV', 'WDCRV', 'WECDV', 'WECEV', 'WECHV', 'WECKV', 'WECRV', 'WFCDV', 'WFCEV', 'WFCHV', 'WFCKV', 'WFCRV', 'WGCDV', 'WGCEV', 'WGCHV', 'WGCKV', 'WGCRV', 'WHCDV', 'WHCEV', 'WHCHV', 'WHCKV', 'WHCRV', 'WICDV', 'WICEV', 'WICHV', 'WICKV', 'WICRV', 'WKCDV', 'WKCEV', 'WKCHV', 'WKCKV', 'WKCRV', 'WLCDV', 'WLCEV', 'WLCHV', 'WLCKV', 'WLCRV', 'WMCDV', 'WMCEV', 'WMCHV', 'WMCKV', 'WMCRV', 'WPCDV', 'WPCEV', 'WPCHV', 'WPCKV', 'WPCRV', 'WQCDV', 'WQCEV', 'WQCHV', 'WQCKV', 'WQCRV', 'WRCDV', 'WRCEV', 'WRCHV', 'WRCKV', 'WRCRV', 'WSCDV', 'WSCEV', 'WSCHV', 'WSCKV', 'WSCRV', 'WTCDV', 'WTCEV', 'WTCHV', 'WTCKV', 'WTCRV', 'WUCDV', 'WUCEV', 'WUCHV', 'WUCKV', 'WUCRV', 'WVCDV', 'WVCEV', 'WVCHV', 'WVCKV', 'WVCRV', 'WWCDV', 'WWCEV', 'WWCHV', 'WWCKV', 'WWCRV', 'WYCDV', 'WYCEV', 'WYCHV', 'WYCKV', 'WYCRV', 'YACDV', 'YACEV', 'YACHV', 'YACKV', 'YACRV', 'YCCDV', 'YCCEV', 'YCCHV', 'YCCKV', 'YCCRV', 'YDCDV', 'YDCEV', 'YDCHV', 'YDCKV', 'YDCRV', 'YECDV', 'YECEV', 'YECHV', 'YECKV', 'YECRV', 'YFCDV', 'YFCEV', 'YFCHV', 'YFCKV', 'YFCRV', 'YGCDV', 'YGCEV', 'YGCHV', 'YGCKV', 'YGCRV', 'YHCDV', 'YHCEV', 'YHCHV', 'YHCKV', 'YHCRV', 'YICDV', 'YICEV', 'YICHV', 'YICKV', 'YICRV', 'YKCDV', 'YKCEV', 'YKCHV', 'YKCKV', 'YKCRV', 'YLCDV', 'YLCEV', 'YLCHV', 'YLCKV', 'YLCRV', 'YMCDV', 'YMCEV', 'YMCHV', 'YMCKV', 'YMCRV', 'YPCDV', 'YPCEV', 'YPCHV', 'YPCKV', 'YPCRV', 'YQCDV', 'YQCEV', 'YQCHV', 'YQCKV', 'YQCRV', 'YRCDV', 'YRCEV', 'YRCHV', 'YRCKV', 'YRCRV', 'YSCDV', 'YSCEV', 'YSCHV', 'YSCKV', 'YSCRV', 'YTCDV', 'YTCEV', 'YTCHV', 'YTCKV', 'YTCRV', 'YUCDV', 'YUCEV', 'YUCHV', 'YUCKV', 'YUCRV', 'YVCDV', 'YVCEV', 'YVCHV', 'YVCKV', 'YVCRV', 'YWCDV', 'YWCEV', 'YWCHV', 'YWCKV', 'YWCRV', 'YYCDV', 'YYCEV', 'YYCHV', 'YYCKV', 'YYCRV', 'IKKLN', 'VKKLN', 'LKKLN', 'AKKLN', 'GKKLN', 'IKRLN', 'VKRLN', 'LKRLN', 'AKRLN', 'GKRLN', 'IKHLN', 'VKHLN', 'LKHLN', 'AKHLN', 'GKHLN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'WKRIN', 'WKRVN', 'WKRLN', 'WKRAN', 'WKRGN', 'YKRIN', 'YKRVN', 'YKRLN', 'YKRAN', 'YKRGN', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'IMHSL', 'VMHSL', 'LMHSL', 'AMHSL', 'GMHSL', 'IMHTL', 'VMHTL', 'LMHTL', 'AMHTL', 'GMHTL', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'IMHQL', 'VMHQL', 'LMHQL', 'AMHQL', 'GMHQL', 'ICHNL', 'VCHNL', 'LCHNL', 'ACHNL', 'GCHNL', 'IMHNL', 'VMHNL', 'LMHNL', 'AMHNL', 'GMHNL', 'MHNL', 'SIWVI', 'SIWVV', 'SIWVL', 'SIWVA', 'SIWVG', 'TIWVI', 'TIWVV', 'TIWVL', 'TIWVA', 'TIWVG', 'NIWVI', 'NIWVV', 'NIWVL', 'NIWVA', 'NIWVG', 'QIWVI', 'QIWVV', 'QIWVL', 'QIWVA', 'QIWVG', 'MAHNL', 'MCHNL', 'MDHNL', 'MEHNL', 'MFHNL', 'MGHNL', 'MHHNL', 'MIHNL', 'MKHNL', 'MLHNL', 'MMHNL', 'MPHNL', 'MQHNL', 'MRHNL', 'MSHNL', 'MTHNL', 'MUHNL', 'MVHNL', 'MWHNL', 'MYHNL', 'YICAC', 'YICCC', 'YICDC', 'YICEC', 'YICFC', 'YICGC', 'YICHC', 'YICIC', 'YICKC', 'YICLC', 'YICMC', 'YICPC', 'YICQC', 'YICRC', 'YICSC', 'YICTC', 'YICUC', 'YICVC', 'YICWC', 'YICYC', 'YIMAM', 'YIMCM', 'YIMDM', 'YIMEM', 'YIMFM', 'YIMGM', 'YIMHM', 'YIMIM', 'YIMKM', 'YIMLM', 'YIMMM', 'YIMPM', 'YIMQM', 'YIMRM', 'YIMSM', 'YIMTM', 'YIMUM', 'YIMVM', 'YIMWM', 'YIMYM', 'MHNL', 'DTPEE', 'DVHNF', 'DYYM', 'ERVEW', 'EWLRK', 'FKRIN', 'GKHLN', 'HLNSM', 'MHNL', 'MAHNL', 'MCHNL', 'MDHNL', 'MEHNL', 'MFHNL', 'MGHNL', 'MHHNL', 'MIHNL', 'MKHNL', 'MLHNL', 'MMHNL', 'MPHNL', 'MQHNL', 'MRHNL', 'MSHNL', 'MTHNL', 'MUHNL', 'MVHNL', 'MWHNL', 'MYHNL', 'REAQT', 'RECQT', 'REDQT', 'REEQT', 'REFQT', 'REGQT', 'REHQT', 'REIQT', 'REKQT', 'RELQT', 'REMQT', 'REPQT', 'REQQT', 'RERQT', 'RESQT', 'RETQT', 'REUQT', 'REVQT', 'REWQT', 'REYQT', 'CAWSS', 'CCWSS', 'CDWSS', 'CEWSS', 'CFWSS', 'CGWSS', 'CHWSS', 'CIWSS', 'CKWSS', 'CLWSS', 'CMWSS', 'CPWSS', 'CQWSS', 'CRWSS', 'CSWSS', 'CTWSS', 'CUWSS', 'CVWSS', 'CWWSS', 'CYWSS', 'EAPCG', 'ECPCG', 'EDPCG', 'EEPCG', 'EFPCG', 'EGPCG', 'EHPCG', 'EIPCG', 'EKPCG', 'ELPCG', 'EMPCG', 'EPPCG', 'EQPCG', 'ERPCG', 'ESPCG', 'ETPCG', 'EUPCG', 'EVPCG', 'EWPCG', 'EYPCG', 'RAWIS', 'RGWIS', 'RIWIS', 'RLWIS', 'RMWIS', 'RFWIS', 'RPWIS', 'RWWIS', 'RYWIS', 'RVWIS', 'EAWIS', 'EGWIS', 'EIWIS', 'ELWIS', 'EMWIS', 'EFWIS', 'EPWIS', 'EWWIS', 'EYWIS', 'EVWIS', 'QAWIS', 'QGWIS', 'QIWIS', 'QLWIS', 'QMWIS', 'QFWIS', 'QPWIS', 'QWWIS', 'QYWIS', 'QVWIS', 'HAWIS', 'HGWIS', 'HIWIS', 'HLWIS', 'HMWIS', 'HFWIS', 'HPWIS', 'HWWIS', 'HYWIS', 'HVWIS', 'IAWIS', 'IGWIS', 'IIWIS', 'ILWIS', 'IMWIS', 'IFWIS', 'IPWIS', 'IWWIS', 'IYWIS', 'IVWIS', 'LAWIS', 'LGWIS', 'LIWIS', 'LLWIS', 'LMWIS', 'LFWIS', 'LPWIS', 'LWWIS', 'LYWIS', 'LVWIS', 'KAWIS', 'KGWIS', 'KIWIS', 'KLWIS', 'KMWIS', 'KFWIS', 'KPWIS', 'KWWIS', 'KYWIS', 'KVWIS', 'MAWIS', 'MGWIS', 'MIWIS', 'MLWIS', 'MMWIS', 'MFWIS', 'MPWIS', 'MWWIS', 'MYWIS', 'MVWIS', 'FAWIS', 'FGWIS', 'FIWIS', 'FLWIS', 'FMWIS', 'FFWIS', 'FPWIS', 'FWWIS', 'FYWIS', 'FVWIS', 'WAWIS', 'WGWIS', 'WIWIS', 'WLWIS', 'WMWIS', 'WFWIS', 'WPWIS', 'WWWIS', 'WYWIS', 'WVWIS', 'YAWIS', 'YGWIS', 'YIWIS', 'YLWIS', 'YMWIS', 'YFWIS', 'YPWIS', 'YWWIS', 'YYWIS', 'YVWIS', 'FKRAN', 'FKRCN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRWN', 'FKRVN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRPN', 'FKRWN', 'FKRYN', 'FKRVN', 'FKRRN', 'FKREN', 'FKRQN', 'FKRHN', 'FKRIN', 'FKRLN', 'FKRKN', 'FKRMN', 'FKRFN', 'FKRWN', 'FKRYN', 'FKRAN', 'WKRAN', 'YKRAN', 'FKRCN', 'WKRCN', 'YKRCN', 'FKRIN', 'WKRIN', 'YKRIN', 'FKRLN', 'WKRLN', 'YKRLN', 'FKRMN', 'WKRMN', 'YKRMN', 'FKRFN', 'WKRFN', 'YKRFN', 'FKRWN', 'WKRWN', 'YKRWN', 'FKRVN', 'WKRVN', 'YKRVN', 'FKRIN', 'FKRVN', 'FKRLN', 'FKRAN', 'FKRGN', 'WKRIN', 'WKRVN', 'WKRLN', 'WKRAN', 'WKRGN', 'YKRIN', 'YKRVN', 'YKRLN', 'YKRAN', 'YKRGN', 'FKRAN', 'FKRGN', 'FKRIN', 'FKRLN', 'FKRMN', 'FKRFN', 'FKRPN', 'FKRWN', 'FKRYN', 'FKRVN', 'WKRAN', 'WKRGN', 'WKRIN', 'WKRLN', 'WKRMN', 'WKRFN', 'WKRPN', 'WKRWN', 'WKRYN', 'WKRVN', 'YKRAN', 'YKRGN', 'YKRIN', 'YKRLN', 'YKRMN', 'YKRFN', 'YKRPN', 'YKRWN', 'YKRYN', 'YKRVN']
neg_motifs = ['ILDL', 'FPDW', 'GFPV', 'LDLW', 'PMAT', 'PMCT', 'PMDT', 'PMET', 'PMFT', 'PMGT', 'PMHT', 'PMIT', 'PMKT', 'PMLT', 'PMMT', 'PMPT', 'PMQT', 'PMRT', 'PMST', 'PMTT', 'PMUT', 'PMVT', 'PMWT', 'PMYT', 'ILADL', 'ILCDL', 'ILDDL', 'ILEDL', 'ILFDL', 'ILGDL', 'ILHDL', 'ILIDL', 'ILKDL', 'ILLDL', 'ILMDL', 'ILPDL', 'ILQDL', 'ILRDL', 'ILSDL', 'ILTDL', 'ILUDL', 'ILVDL', 'ILWDL', 'ILYDL', 'PVDP', 'PVEP', 'TPIPI', 'TPVPV', 'TPLPL', 'TPAPA', 'TPGPG', 'IPIKP', 'VPVKP', 'LPLKP', 'APAKP', 'GPGKP', 'IPIRP', 'VPVRP', 'LPLRP', 'APARP', 'GPGRP', 'IPIHP', 'VPVHP', 'LPLHP', 'APAHP', 'GPGHP', 'LDLF', 'LDLW', 'LDLY', 'LELF', 'LELW', 'LELY', 'LDLFI', 'LDLFV', 'LDLFL', 'LDLFA', 'LDLFG', 'LDLWI', 'LDLWV', 'LDLWL', 'LDLWA', 'LDLWG', 'LDLYI', 'LDLYV', 'LDLYL', 'LDLYA', 'LDLYG', 'LELFI', 'LELFV', 'LELFL', 'LELFA', 'LELFG', 'LELWI', 'LELWV', 'LELWL', 'LELWA', 'LELWG', 'LELYI', 'LELYV', 'LELYL', 'LELYA', 'LELYG', 'PVADP', 'PVCDP', 'PVDDP', 'PVEDP', 'PVFDP', 'PVGDP', 'PVHDP', 'PVIDP', 'PVKDP', 'PVLDP', 'PVMDP', 'PVPDP', 'PVQDP', 'PVRDP', 'PVSDP', 'PVTDP', 'PVUDP', 'PVVDP', 'PVWDP', 'PVYDP', 'PVAEP', 'PVCEP', 'PVDEP', 'PVEEP', 'PVFEP', 'PVGEP', 'PVHEP', 'PVIEP', 'PVKEP', 'PVLEP', 'PVMEP', 'PVPEP', 'PVQEP', 'PVREP', 'PVSEP', 'PVTEP', 'PVUEP', 'PVVEP', 'PVWEP', 'PVYEP', 'VIFAP', 'VIFCP', 'VIFDP', 'VIFEP', 'VIFFP', 'VIFGP', 'VIFHP', 'VIFIP', 'VIFKP', 'VIFLP', 'VIFMP', 'VIFPP', 'VIFQP', 'VIFRP', 'VIFSP', 'VIFTP', 'VIFUP', 'VIFVP', 'VIFWP', 'VIFYP', 'VVFAP', 'VVFCP', 'VVFDP', 'VVFEP', 'VVFFP', 'VVFGP', 'VVFHP', 'VVFIP', 'VVFKP', 'VVFLP', 'VVFMP', 'VVFPP', 'VVFQP', 'VVFRP', 'VVFSP', 'VVFTP', 'VVFUP', 'VVFVP', 'VVFWP', 'VVFYP', 'VLFAP', 'VLFCP', 'VLFDP', 'VLFEP', 'VLFFP', 'VLFGP', 'VLFHP', 'VLFIP', 'VLFKP', 'VLFLP', 'VLFMP', 'VLFPP', 'VLFQP', 'VLFRP', 'VLFSP', 'VLFTP', 'VLFUP', 'VLFVP', 'VLFWP', 'VLFYP', 'VAFAP', 'VAFCP', 'VAFDP', 'VAFEP', 'VAFFP', 'VAFGP', 'VAFHP', 'VAFIP', 'VAFKP', 'VAFLP', 'VAFMP', 'VAFPP', 'VAFQP', 'VAFRP', 'VAFSP', 'VAFTP', 'VAFUP', 'VAFVP', 'VAFWP', 'VAFYP', 'VGFAP', 'VGFCP', 'VGFDP', 'VGFEP', 'VGFFP', 'VGFGP', 'VGFHP', 'VGFIP', 'VGFKP', 'VGFLP', 'VGFMP', 'VGFPP', 'VGFQP', 'VGFRP', 'VGFSP', 'VGFTP', 'VGFUP', 'VGFVP', 'VGFWP', 'VGFYP', 'PVDP', 'PVEP', 'PVHP', 'PVKP', 'PVRP', 'PVDPR', 'PVEPR', 'PVHPR', 'PVKPR', 'PVRPR', 'PVDPN', 'PVEPN', 'PVHPN', 'PVKPN', 'PVRPN', 'PVDPD', 'PVEPD', 'PVHPD', 'PVKPD', 'PVRPD', 'PVDPE', 'PVEPE', 'PVHPE', 'PVKPE', 'PVRPE', 'PVDPQ', 'PVEPQ', 'PVHPQ', 'PVKPQ', 'PVRPQ', 'PVDPG', 'PVEPG', 'PVHPG', 'PVKPG', 'PVRPG', 'PVDPH', 'PVEPH', 'PVHPH', 'PVKPH', 'PVRPH', 'PVDPK', 'PVEPK', 'PVHPK', 'PVKPK', 'PVRPK', 'PVDPP', 'PVEPP', 'PVHPP', 'PVKPP', 'PVRPP', 'PVDPS', 'PVEPS', 'PVHPS', 'PVKPS', 'PVRPS', 'PVDPT', 'PVEPT', 'PVHPT', 'PVKPT', 'PVRPT', 'PVDPY', 'PVEPY', 'PVHPY', 'PVKPY', 'PVRPY', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPaP', 'PVEPaP', 'PVHPaP', 'PVKPaP', 'PVRPaP', 'PVDPR', 'PVEPR', 'PVHPR', 'PVKPR', 'PVRPR', 'PVDPN', 'PVEPN', 'PVHPN', 'PVKPN', 'PVRPN', 'PVDPD', 'PVEPD', 'PVHPD', 'PVKPD', 'PVRPD', 'PVDPC', 'PVEPC', 'PVHPC', 'PVKPC', 'PVRPC', 'PVDPE', 'PVEPE', 'PVHPE', 'PVKPE', 'PVRPE', 'PVDPQ', 'PVEPQ', 'PVHPQ', 'PVKPQ', 'PVRPQ', 'PVDPH', 'PVEPH', 'PVHPH', 'PVKPH', 'PVRPH', 'PVDPK', 'PVEPK', 'PVHPK', 'PVKPK', 'PVRPK', 'PVDPS', 'PVEPS', 'PVHPS', 'PVKPS', 'PVRPS', 'PVDPI', 'PVEPI', 'PVHPI', 'PVKPI', 'PVRPI', 'PVDPS', 'PVEPS', 'PVHPS', 'PVKPS', 'PVRPS', 'PVDPT', 'PVEPT', 'PVHPT', 'PVKPT', 'PVRPT', 'PVDPN', 'PVEPN', 'PVHPN', 'PVKPN', 'PVRPN', 'PVDPQ', 'PVEPQ', 'PVHPQ', 'PVKPQ', 'PVRPQ', 'PVADP', 'PVAEP', 'PVAHP', 'PVAKP', 'PVARP', 'PVCDP', 'PVCEP', 'PVCHP', 'PVCKP', 'PVCRP', 'PVDDP', 'PVDEP', 'PVDHP', 'PVDKP', 'PVDRP', 'PVEDP', 'PVEEP', 'PVEHP', 'PVEKP', 'PVERP', 'PVFDP', 'PVFEP', 'PVFHP', 'PVFKP', 'PVFRP', 'PVGDP', 'PVGEP', 'PVGHP', 'PVGKP', 'PVGRP', 'PVHDP', 'PVHEP', 'PVHHP', 'PVHKP', 'PVHRP', 'PVIDP', 'PVIEP', 'PVIHP', 'PVIKP', 'PVIRP', 'PVKDP', 'PVKEP', 'PVKHP', 'PVKKP', 'PVKRP', 'PVLDP', 'PVLEP', 'PVLHP', 'PVLKP', 'PVLRP', 'PVMDP', 'PVMEP', 'PVMHP', 'PVMKP', 'PVMRP', 'PVPDP', 'PVPEP', 'PVPHP', 'PVPKP', 'PVPRP', 'PVQDP', 'PVQEP', 'PVQHP', 'PVQKP', 'PVQRP', 'PVRDP', 'PVREP', 'PVRHP', 'PVRKP', 'PVRRP', 'PVSDP', 'PVSEP', 'PVSHP', 'PVSKP', 'PVSRP', 'PVTDP', 'PVTEP', 'PVTHP', 'PVTKP', 'PVTRP', 'PVUDP', 'PVUEP', 'PVUHP', 'PVUKP', 'PVURP', 'PVVDP', 'PVVEP', 'PVVHP', 'PVVKP', 'PVVRP', 'PVWDP', 'PVWEP', 'PVWHP', 'PVWKP', 'PVWRP', 'PVYDP', 'PVYEP', 'PVYHP', 'PVYKP', 'PVYRP', 'PVDAP', 'PVEAP', 'PVHAP', 'PVKAP', 'PVRAP', 'PVDCP', 'PVECP', 'PVHCP', 'PVKCP', 'PVRCP', 'PVDDP', 'PVEDP', 'PVHDP', 'PVKDP', 'PVRDP', 'PVDEP', 'PVEEP', 'PVHEP', 'PVKEP', 'PVREP', 'PVDFP', 'PVEFP', 'PVHFP', 'PVKFP', 'PVRFP', 'PVDGP', 'PVEGP', 'PVHGP', 'PVKGP', 'PVRGP', 'PVDHP', 'PVEHP', 'PVHHP', 'PVKHP', 'PVRHP', 'PVDIP', 'PVEIP', 'PVHIP', 'PVKIP', 'PVRIP', 'PVDKP', 'PVEKP', 'PVHKP', 'PVKKP', 'PVRKP', 'PVDLP', 'PVELP', 'PVHLP', 'PVKLP', 'PVRLP', 'PVDMP', 'PVEMP', 'PVHMP', 'PVKMP', 'PVRMP', 'PVDPP', 'PVEPP', 'PVHPP', 'PVKPP', 'PVRPP', 'PVDQP', 'PVEQP', 'PVHQP', 'PVKQP', 'PVRQP', 'PVDRP', 'PVERP', 'PVHRP', 'PVKRP', 'PVRRP', 'PVDSP', 'PVESP', 'PVHSP', 'PVKSP', 'PVRSP', 'PVDTP', 'PVETP', 'PVHTP', 'PVKTP', 'PVRTP', 'PVDUP', 'PVEUP', 'PVHUP', 'PVKUP', 'PVRUP', 'PVDVP', 'PVEVP', 'PVHVP', 'PVKVP', 'PVRVP', 'PVDWP', 'PVEWP', 'PVHWP', 'PVKWP', 'PVRWP', 'PVDYP', 'PVEYP', 'PVHYP', 'PVKYP', 'PVRYP', 'PVDP', 'PVEP', 'PVHP', 'PVKP', 'PVRP']
# Open your FASTA file
with open(input_fasta_file, 'r') as fasta_file:
num_pos_matches=0
num_neg_matches=0
# Use BioPython's SeqIO to parse the file
records = list(SeqIO.parse(fasta_file, 'fasta'))
# Create a list to hold your labels
labels = []
# Iterate over each record in the file
for record in records:
for i in pos_motifs:
if i in str(record.seq):
num_pos_matches+=1
for i in neg_motifs:
if i in str(record.seq):
num_neg_matches+=1
# Determine the label for this sequence
if num_pos_matches > num_neg_matches:
label = 1
elif num_pos_matches < num_neg_matches:
label = -1
else:
label = 0
# Append the label to your list
labels.append(label)
hybrid = [x + y for x, y in zip(score, labels)]
#new_predictions = [predictions[i] if labels[i] == 2 else labels[i] for i in range(len(predictions))]
new_predictions = [1 if hybrid[i]>=float(thr) else 0 for i in range(len(hybrid))]
fasta_file = input_fasta_file
records = list(SeqIO.parse(fasta_file, "fasta"))
df = pd.DataFrame({'Subject': [str(record.id) for record in records],'ML Score': score,'Motif Score': labels,'Hybrid Score': hybrid, 'Prediction': new_predictions})
# replace the values in the 'target' column
df['Prediction'] = df['Prediction'].replace({1: 'Therapeutic', 0: 'Non-Therapeutic'})
df = df.reset_index(drop=True)
return df
def main():
print('##############################################################################')
print('# The program ThpPred is developed for predicting therapeutic and non therapeutic #')
print("# protein/peptides from their primary sequence, developed by Prof G. P. S. Raghava's group. #")
print('# ############################################################################')
# Default values
fasta_file = "example.fasta"
m = 2
thr = 0.5
# Check if command-line arguments are provided
if len(sys.argv) > 1:
# Get the filename argument
filename = sys.argv[1]
# Get the integer argument
if len(sys.argv) > 2:
try:
m = int(sys.argv[2])
if m not in [1, 2, 3, 4]:
print("Invalid model number. Using default value.")
m = 2
except ValueError:
print("Invalid model number. Using default value.")
# Get the float argument
if len(sys.argv) > 3:
try:
thr = float(sys.argv[3])
except ValueError:
print("Invalid threshold value. Using default value.")
# Process the arguments
print('Summary of Parameters:')
print('Input File: ',fasta_file,'; Model: ',m,'; Threshold: ', thr)
# Add your code here to perform the desired operations using the arguments
# Rename the file
new_file_name = fasta_file
new_file_path = os.path.join(os.path.dirname(fasta_file), new_file_name)
if fasta_file != "example.fasta":
os.rename(fasta_file, new_file_path)
fasta_file = new_file_path
select_model = m
if select_model == 1:
print("Running AAC based XGB Model...")
table = aac_xgb(fasta_file,thr)
table.to_csv('aac_xgb.csv', index=False)
print(table)
elif select_model ==2:
print("Running AAC based XGB Model with Motifs...")
table = aac_xgb_merci(fasta_file,thr)
table.to_csv('aac_xgb_motif.csv', index=False)
print(table)
elif select_model ==3:
print("Running DPC based RF Model...")
table = dpc_rf(fasta_file,thr)
table.to_csv('dpc_rf.csv', index=False)
print(table)
elif select_model ==4:
print("Running DPC based RF Model with Motifs...")
table = dpc_rf_merci(fasta_file,thr)
table.to_csv('dpc_rf_motif.csv', index=False)
print(table)
else:
print("Invalid Input; valid inputs are: 1,2,3 and 4")
sys.exit() # Exit the program
if os.path.exists("aac_xgb.csv") or os.path.exists("aac_xgb_motif.csv") or os.path.exists("dpc_rf.csv") or os.path.exists("dpc_rf_motif.csv"):
print("Process Successful")
else:
print("Process Unsuccessful")
if os.path.exists('sam_allcomp.dpc'):
os.remove('sam_allcomp.dpc')
if os.path.exists('sam_allcomp.aac'):
os.remove('sam_allcomp.aac')
if os.path.exists('tempfile_out'):
os.remove('tempfile_out')
if os.path.exists('pfeature_result.csv'):
os.remove('pfeature_result.csv')
# Delete files with hyphens in their names
files_to_delete = glob.glob("*-*") # Change the pattern to match the files you want to delete
for file_name in files_to_delete:
os.remove(file_name)
######################################################
if __name__ == "__main__":
main()
print('\n======= Thanks for using ThpPred. =====\n\n')
print('Please cite: ThpPred\n')