Switch to unified view

a b/DEMO/oneliner-3CLpro-finetuning-AID1706.ipynb
1
{
2
 "cells": [
3
  {
4
   "cell_type": "code",
5
   "execution_count": 1,
6
   "metadata": {},
7
   "outputs": [],
8
   "source": [
9
    "import os\n",
10
    "os.chdir('../')"
11
   ]
12
  },
13
  {
14
   "cell_type": "code",
15
   "execution_count": 2,
16
   "metadata": {},
17
   "outputs": [],
18
   "source": [
19
    "import DeepPurpose.oneliner as oneliner\n",
20
    "from DeepPurpose import dataset"
21
   ]
22
  },
23
  {
24
   "cell_type": "code",
25
   "execution_count": 3,
26
   "metadata": {},
27
   "outputs": [
28
    {
29
     "name": "stdout",
30
     "output_type": "stream",
31
     "text": [
32
      "Beginning Processing...\n"
33
     ]
34
    },
35
    {
36
     "name": "stderr",
37
     "output_type": "stream",
38
     "text": [
39
      "/home/kh278/.conda/envs/DeepPurpose/lib/python3.7/site-packages/IPython/core/interactiveshell.py:3254: DtypeWarning: Columns (0,7) have mixed types.Specify dtype option on import or set low_memory=False.\n",
40
      "  if (await self.run_code(code, result,  async_=asy)):\n",
41
      "/home/kh278/DeepPurpose/dataset.py:224: SettingWithCopyWarning: \n",
42
      "A value is trying to be set on a copy of a slice from a DataFrame\n",
43
      "\n",
44
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
45
      "  val['binary_label'][(val.PUBCHEM_ACTIVITY_SCORE >= threshold) & (val.PUBCHEM_ACTIVITY_SCORE <=100)] = 1\n"
46
     ]
47
    },
48
    {
49
     "name": "stdout",
50
     "output_type": "stream",
51
     "text": [
52
      "Default binary threshold for the binding affinity scores is 15, recommended by the investigator\n",
53
      "Done!\n"
54
     ]
55
    }
56
   ],
57
   "source": [
58
    "target, target_name = dataset.load_SARS_CoV_Protease_3CL()\n",
59
    "train_drug, train_target, train_y = dataset.load_AID1706_SARS_CoV_3CL('./data', seed = 1234)\n",
60
    "X_repurpose, drug_names, drug_CID = dataset.load_antiviral_drugs('./data')"
61
   ]
62
  },
63
  {
64
   "cell_type": "code",
65
   "execution_count": 4,
66
   "metadata": {},
67
   "outputs": [
68
    {
69
     "data": {
70
      "text/plain": [
71
       "26640"
72
      ]
73
     },
74
     "execution_count": 4,
75
     "metadata": {},
76
     "output_type": "execute_result"
77
    }
78
   ],
79
   "source": [
80
    "len(train_drug)"
81
   ]
82
  },
83
  {
84
   "cell_type": "code",
85
   "execution_count": 5,
86
   "metadata": {},
87
   "outputs": [
88
    {
89
     "data": {
90
      "text/plain": [
91
       "'SGFKKLVSPSSAVEKCIVSVSYRGNNLNGLWLGDSIYCPRHVLGKFSGDQWGDVLNLANNHEFEVVTQNGVTLNVVSRRLKGAVLILQTAVANAETPKYKFVKANCGDSFTIACSYGGTVIGLYPVTMRSNGTIRASFLAGACGSVGFNIEKGVVNFFYMHHLELPNALHTGTDLMGEFYGGYVDEEVAQRVPPDNLVTNNIVAWLYAAIISVKESSFSQPKWLESTTVSIEDYNRWASDNGFTPFSTSTAITKLSAITGVDVCKLLRTIMVKSAQWGSDPILGQYNFEDELTPESVFNQVGGVRLQ'"
92
      ]
93
     },
94
     "execution_count": 5,
95
     "metadata": {},
96
     "output_type": "execute_result"
97
    }
98
   ],
99
   "source": [
100
    "target"
101
   ]
102
  },
103
  {
104
   "cell_type": "code",
105
   "execution_count": 6,
106
   "metadata": {},
107
   "outputs": [
108
    {
109
     "data": {
110
      "text/plain": [
111
       "82"
112
      ]
113
     },
114
     "execution_count": 6,
115
     "metadata": {},
116
     "output_type": "execute_result"
117
    }
118
   ],
119
   "source": [
120
    "len(X_repurpose)"
121
   ]
122
  },
123
  {
124
   "cell_type": "code",
125
   "execution_count": 4,
126
   "metadata": {
127
    "scrolled": false
128
   },
129
   "outputs": [
130
    {
131
     "name": "stdout",
132
     "output_type": "stream",
133
     "text": [
134
      "Loading customized repurposing dataset...\n",
135
      "Checking if pretrained directory is valid...\n",
136
      "Beginning to load the pretrained models...\n",
137
      "Training on your own customized data...\n",
138
      "in total: 26640 drug-target pairs\n",
139
      "encoding drug...\n",
140
      "unique drugs: 13763\n",
141
      "drug encoding finished...\n",
142
      "encoding protein...\n",
143
      "unique target sequence: 1\n",
144
      "protein encoding finished...\n",
145
      "splitting dataset...\n",
146
      "Done.\n",
147
      "Use pretrained model...\n",
148
      "Begin to train model 0 with drug encoding MPNN and target encoding CNN\n",
149
      "Let's use 1 GPU!\n",
150
      "--- Data Preparation ---\n",
151
      "--- Go for Training ---\n",
152
      "Training at Epoch 1 iteration 0 with loss 2.8952746. Total time 0.0005555555555555556 hours\n",
153
      "Training at Epoch 1 iteration 100 with loss 0.6925026. Total time 0.014444444444444444 hours\n",
154
      "Validation at Epoch 1 , AUROC: 0.6995096436744034 , AUPRC: 0.07429036106716293 , F1: 0.08396124865446716\n",
155
      "Training at Epoch 2 iteration 0 with loss 0.68295914. Total time 0.025277777777777777 hours\n",
156
      "Training at Epoch 2 iteration 100 with loss 0.567375. Total time 0.03916666666666667 hours\n",
157
      "Validation at Epoch 2 , AUROC: 0.7209055246812683 , AUPRC: 0.12848468929504223 , F1: 0.10101010101010101\n",
158
      "Training at Epoch 3 iteration 0 with loss 0.59396875. Total time 0.05 hours\n",
159
      "Training at Epoch 3 iteration 100 with loss 0.4412401. Total time 0.06416666666666666 hours\n",
160
      "Validation at Epoch 3 , AUROC: 0.7587446878064726 , AUPRC: 0.14443723893655566 , F1: 0.1174496644295302\n",
161
      "Training at Epoch 4 iteration 0 with loss 0.5402388. Total time 0.075 hours\n",
162
      "Training at Epoch 4 iteration 100 with loss 0.38675064. Total time 0.08944444444444444 hours\n",
163
      "Validation at Epoch 4 , AUROC: 0.7593494606080418 , AUPRC: 0.16392332687442315 , F1: 0.12144212523719165\n",
164
      "Training at Epoch 5 iteration 0 with loss 0.44713253. Total time 0.09972222222222223 hours\n",
165
      "Training at Epoch 5 iteration 100 with loss 0.24516244. Total time 0.11333333333333333 hours\n",
166
      "Validation at Epoch 5 , AUROC: 0.7603301732592351 , AUPRC: 0.17947622982265415 , F1: 0.21212121212121213\n",
167
      "Training at Epoch 6 iteration 0 with loss 0.16557716. Total time 0.1238888888888889 hours\n",
168
      "Training at Epoch 6 iteration 100 with loss 0.21277495. Total time 0.13805555555555554 hours\n",
169
      "Validation at Epoch 6 , AUROC: 0.7408957175547564 , AUPRC: 0.17997259784665778 , F1: 0.22222222222222224\n",
170
      "Training at Epoch 7 iteration 0 with loss 0.10328247. Total time 0.1486111111111111 hours\n",
171
      "Training at Epoch 7 iteration 100 with loss 0.12615438. Total time 0.1625 hours\n",
172
      "Validation at Epoch 7 , AUROC: 0.7407976462896371 , AUPRC: 0.19082668735539288 , F1: 0.18691588785046728\n",
173
      "Training at Epoch 8 iteration 0 with loss 0.105843976. Total time 0.17305555555555555 hours\n",
174
      "Training at Epoch 8 iteration 100 with loss 0.1473576. Total time 0.18722222222222223 hours\n",
175
      "Validation at Epoch 8 , AUROC: 0.7495096436744034 , AUPRC: 0.1829652308462767 , F1: 0.2702702702702703\n",
176
      "Training at Epoch 9 iteration 0 with loss 0.14465933. Total time 0.19777777777777777 hours\n",
177
      "Training at Epoch 9 iteration 100 with loss 0.10792859. Total time 0.21166666666666667 hours\n",
178
      "Validation at Epoch 9 , AUROC: 0.7539555410264792 , AUPRC: 0.20953143763478946 , F1: 0.2689075630252101\n",
179
      "Training at Epoch 10 iteration 0 with loss 0.13459486. Total time 0.2222222222222222 hours\n",
180
      "Training at Epoch 10 iteration 100 with loss 0.1319775. Total time 0.2361111111111111 hours\n",
181
      "Validation at Epoch 10 , AUROC: 0.7591533180778032 , AUPRC: 0.189657100281938 , F1: 0.2692307692307692\n",
182
      "--- Go for Testing ---\n",
183
      "Testing AUROC: 0.7592975041224405 , AUPRC: 0.28790599593812577 , F1: 0.29508196721311475\n",
184
      "--- Training Finished ---\n",
185
      "model training finished, now repurposing\n",
186
      "repurposing...\n",
187
      "in total: 82 drug-target pairs\n",
188
      "encoding drug...\n",
189
      "unique drugs: 81\n",
190
      "drug encoding finished...\n",
191
      "encoding protein...\n",
192
      "unique target sequence: 1\n",
193
      "protein encoding finished...\n",
194
      "Done.\n",
195
      "predicting...\n",
196
      "---------------\n",
197
      "Predictions from model 0 with drug encoding MPNN and target encoding CNN are done...\n",
198
      "in total: 26640 drug-target pairs\n",
199
      "encoding drug...\n",
200
      "unique drugs: 13763\n",
201
      "drug encoding finished...\n",
202
      "encoding protein...\n",
203
      "unique target sequence: 1\n",
204
      "protein encoding finished...\n",
205
      "splitting dataset...\n",
206
      "Done.\n",
207
      "Use pretrained model...\n",
208
      "Begin to train model 1 with drug encoding CNN and target encoding CNN\n",
209
      "Let's use 1 GPU!\n",
210
      "--- Data Preparation ---\n",
211
      "--- Go for Training ---\n",
212
      "Training at Epoch 1 iteration 0 with loss 2.584126. Total time 0.0002777777777777778 hours\n",
213
      "Training at Epoch 1 iteration 100 with loss 0.4186633. Total time 0.009166666666666667 hours\n",
214
      "Validation at Epoch 1 , AUROC: 0.6758090879372344 , AUPRC: 0.16113168673137404 , F1: 0.17391304347826086\n",
215
      "Training at Epoch 2 iteration 0 with loss 0.1285939. Total time 0.01638888888888889 hours\n",
216
      "Training at Epoch 2 iteration 100 with loss 0.10919548. Total time 0.025277777777777777 hours\n",
217
      "Validation at Epoch 2 , AUROC: 0.7251062438705459 , AUPRC: 0.258599980455743 , F1: 0.2982456140350877\n",
218
      "Training at Epoch 3 iteration 0 with loss 0.06499502. Total time 0.0325 hours\n",
219
      "Training at Epoch 3 iteration 100 with loss 0.010095321. Total time 0.04138888888888889 hours\n",
220
      "Validation at Epoch 3 , AUROC: 0.7049199084668192 , AUPRC: 0.2698421813727852 , F1: 0.2891566265060241\n",
221
      "Training at Epoch 4 iteration 0 with loss 0.03634361. Total time 0.04861111111111111 hours\n",
222
      "Training at Epoch 4 iteration 100 with loss 0.01939588. Total time 0.0575 hours\n",
223
      "Validation at Epoch 4 , AUROC: 0.6927917620137299 , AUPRC: 0.2642335712317954 , F1: 0.33766233766233766\n",
224
      "Training at Epoch 5 iteration 0 with loss 0.005858685. Total time 0.06472222222222222 hours\n",
225
      "Training at Epoch 5 iteration 100 with loss 0.08927906. Total time 0.07361111111111111 hours\n",
226
      "Validation at Epoch 5 , AUROC: 0.6933638443935927 , AUPRC: 0.29244405443483384 , F1: 0.3174603174603175\n",
227
      "Training at Epoch 6 iteration 0 with loss 0.045198068. Total time 0.08055555555555556 hours\n",
228
      "Training at Epoch 6 iteration 100 with loss 0.001047113. Total time 0.08972222222222222 hours\n",
229
      "Validation at Epoch 6 , AUROC: 0.6931350114416476 , AUPRC: 0.2874232923910023 , F1: 0.3291139240506329\n",
230
      "Training at Epoch 7 iteration 0 with loss 0.0030203862. Total time 0.09666666666666666 hours\n",
231
      "Training at Epoch 7 iteration 100 with loss 0.027002987. Total time 0.10555555555555556 hours\n",
232
      "Validation at Epoch 7 , AUROC: 0.6951945080091533 , AUPRC: 0.2685735506568612 , F1: 0.2535211267605634\n",
233
      "Training at Epoch 8 iteration 0 with loss 0.008064516. Total time 0.11277777777777778 hours\n",
234
      "Training at Epoch 8 iteration 100 with loss 0.12616996. Total time 0.12166666666666667 hours\n",
235
      "Validation at Epoch 8 , AUROC: 0.7083360575351421 , AUPRC: 0.25191111466719107 , F1: 0.2564102564102564\n",
236
      "Training at Epoch 9 iteration 0 with loss 0.06623153. Total time 0.1288888888888889 hours\n",
237
      "Training at Epoch 9 iteration 100 with loss 0.058526967. Total time 0.13777777777777778 hours\n",
238
      "Validation at Epoch 9 , AUROC: 0.7365478914677999 , AUPRC: 0.28780717333872874 , F1: 0.20118343195266275\n",
239
      "Training at Epoch 10 iteration 0 with loss 0.0101304045. Total time 0.14472222222222222 hours\n",
240
      "Training at Epoch 10 iteration 100 with loss 0.007680407. Total time 0.15361111111111111 hours\n",
241
      "Validation at Epoch 10 , AUROC: 0.6922196796338673 , AUPRC: 0.18941687371528187 , F1: 0.2413793103448276\n",
242
      "--- Go for Testing ---\n",
243
      "Testing AUROC: 0.7451451259145414 , AUPRC: 0.2479534626750703 , F1: 0.34666666666666673\n",
244
      "--- Training Finished ---\n",
245
      "model training finished, now repurposing\n",
246
      "repurposing...\n",
247
      "in total: 82 drug-target pairs\n",
248
      "encoding drug...\n",
249
      "unique drugs: 81\n",
250
      "drug encoding finished...\n",
251
      "encoding protein...\n",
252
      "unique target sequence: 1\n",
253
      "protein encoding finished...\n",
254
      "Done.\n",
255
      "predicting...\n",
256
      "---------------\n",
257
      "Predictions from model 1 with drug encoding CNN and target encoding CNN are done...\n",
258
      "in total: 26640 drug-target pairs\n",
259
      "encoding drug...\n",
260
      "unique drugs: 13763\n",
261
      "drug encoding finished...\n",
262
      "encoding protein...\n",
263
      "unique target sequence: 1\n",
264
      "protein encoding finished...\n",
265
      "splitting dataset...\n",
266
      "Done.\n",
267
      "Use pretrained model...\n",
268
      "Begin to train model 2 with drug encoding Morgan and target encoding CNN\n",
269
      "Let's use 1 GPU!\n",
270
      "--- Data Preparation ---\n",
271
      "--- Go for Training ---\n",
272
      "Training at Epoch 1 iteration 0 with loss 2.911978. Total time 0.0002777777777777778 hours\n",
273
      "Training at Epoch 1 iteration 100 with loss 0.03561001. Total time 0.0075 hours\n",
274
      "Validation at Epoch 1 , AUROC: 0.7196305982347173 , AUPRC: 0.1808075015687251 , F1: 0.1764705882352941\n",
275
      "Training at Epoch 2 iteration 0 with loss 0.0067451023. Total time 0.013055555555555556 hours\n"
276
     ]
277
    },
278
    {
279
     "name": "stdout",
280
     "output_type": "stream",
281
     "text": [
282
      "Training at Epoch 2 iteration 100 with loss 0.01370963. Total time 0.020277777777777777 hours\n",
283
      "Validation at Epoch 2 , AUROC: 0.7198921216083687 , AUPRC: 0.1949855759852599 , F1: 0.22950819672131148\n",
284
      "Training at Epoch 3 iteration 0 with loss 0.0064470614. Total time 0.025833333333333333 hours\n",
285
      "Training at Epoch 3 iteration 100 with loss 0.004826802. Total time 0.03305555555555555 hours\n",
286
      "Validation at Epoch 3 , AUROC: 0.6990846681922196 , AUPRC: 0.17341377712606376 , F1: 0.11538461538461539\n",
287
      "Training at Epoch 4 iteration 0 with loss 0.011522379. Total time 0.03861111111111111 hours\n",
288
      "Training at Epoch 4 iteration 100 with loss 0.0005645127. Total time 0.04583333333333333 hours\n",
289
      "Validation at Epoch 4 , AUROC: 0.7308761033017326 , AUPRC: 0.18497426992285898 , F1: 0.2222222222222222\n",
290
      "Training at Epoch 5 iteration 0 with loss 0.0129869785. Total time 0.05138888888888889 hours\n",
291
      "Training at Epoch 5 iteration 100 with loss 8.904777e-05. Total time 0.058611111111111114 hours\n",
292
      "Validation at Epoch 5 , AUROC: 0.7353873814972213 , AUPRC: 0.19498788574535375 , F1: 0.21818181818181817\n",
293
      "Training at Epoch 6 iteration 0 with loss 1.7076078e-06. Total time 0.06416666666666666 hours\n",
294
      "Training at Epoch 6 iteration 100 with loss 1.9726174e-06. Total time 0.07138888888888889 hours\n",
295
      "Validation at Epoch 6 , AUROC: 0.722213141549526 , AUPRC: 0.2354742333080753 , F1: 0.2413793103448276\n",
296
      "Training at Epoch 7 iteration 0 with loss 5.498082e-05. Total time 0.07722222222222222 hours\n",
297
      "Training at Epoch 7 iteration 100 with loss 5.269306e-06. Total time 0.08444444444444445 hours\n",
298
      "Validation at Epoch 7 , AUROC: 0.7126185027786858 , AUPRC: 0.196544071559267 , F1: 0.0784313725490196\n",
299
      "Training at Epoch 8 iteration 0 with loss 7.543782e-07. Total time 0.09 hours\n",
300
      "Training at Epoch 8 iteration 100 with loss 4.7497487e-08. Total time 0.09722222222222222 hours\n",
301
      "Validation at Epoch 8 , AUROC: 0.7126757110166719 , AUPRC: 0.19541374781276266 , F1: 0.0784313725490196\n",
302
      "Training at Epoch 9 iteration 0 with loss 6.426132e-08. Total time 0.10305555555555555 hours\n",
303
      "Training at Epoch 9 iteration 100 with loss 3.5390308e-08. Total time 0.11027777777777778 hours\n",
304
      "Validation at Epoch 9 , AUROC: 0.7128963713631906 , AUPRC: 0.19686980274043872 , F1: 0.0784313725490196\n",
305
      "Training at Epoch 10 iteration 0 with loss 1.0337705e-07. Total time 0.11611111111111111 hours\n",
306
      "Training at Epoch 10 iteration 100 with loss 2.2351756e-08. Total time 0.12333333333333334 hours\n",
307
      "Validation at Epoch 10 , AUROC: 0.7131088591042823 , AUPRC: 0.20019048121474434 , F1: 0.0784313725490196\n",
308
      "--- Go for Testing ---\n",
309
      "Testing AUROC: 0.757288314682292 , AUPRC: 0.23409765566131366 , F1: 0.2622950819672131\n",
310
      "--- Training Finished ---\n",
311
      "model training finished, now repurposing\n",
312
      "repurposing...\n",
313
      "in total: 82 drug-target pairs\n",
314
      "encoding drug...\n",
315
      "unique drugs: 81\n",
316
      "drug encoding finished...\n",
317
      "encoding protein...\n",
318
      "unique target sequence: 1\n",
319
      "protein encoding finished...\n",
320
      "Done.\n",
321
      "predicting...\n",
322
      "---------------\n",
323
      "Predictions from model 2 with drug encoding Morgan and target encoding CNN are done...\n",
324
      "in total: 26640 drug-target pairs\n",
325
      "encoding drug...\n",
326
      "unique drugs: 13763\n",
327
      "drug encoding finished...\n",
328
      "encoding protein...\n",
329
      "unique target sequence: 1\n",
330
      "-- Encoding AAC takes time. Time Reference: 24s for ~100 sequences in a CPU. Calculate your time by the unique target sequence #, instead of the entire dataset.\n",
331
      "protein encoding finished...\n",
332
      "splitting dataset...\n",
333
      "Done.\n",
334
      "Use pretrained model...\n",
335
      "Begin to train model 3 with drug encoding Morgan and target encoding AAC\n",
336
      "Let's use 1 GPU!\n",
337
      "--- Data Preparation ---\n",
338
      "--- Go for Training ---\n",
339
      "Training at Epoch 1 iteration 0 with loss 2.957141. Total time 0.0 hours\n",
340
      "Training at Epoch 1 iteration 100 with loss 0.09619802. Total time 0.0025 hours\n",
341
      "Validation at Epoch 1 , AUROC: 0.696959790781301 , AUPRC: 0.19129984884488405 , F1: 0.25396825396825395\n",
342
      "Training at Epoch 2 iteration 0 with loss 0.005710384. Total time 0.0044444444444444444 hours\n",
343
      "Training at Epoch 2 iteration 100 with loss 0.004891664. Total time 0.006944444444444444 hours\n",
344
      "Validation at Epoch 2 , AUROC: 0.6876757110166721 , AUPRC: 0.22760637242506973 , F1: 0.1923076923076923\n",
345
      "Training at Epoch 3 iteration 0 with loss 0.018557834. Total time 0.008888888888888889 hours\n",
346
      "Training at Epoch 3 iteration 100 with loss 0.00025757938. Total time 0.01138888888888889 hours\n",
347
      "Validation at Epoch 3 , AUROC: 0.697842432167375 , AUPRC: 0.2024066056707718 , F1: 0.23728813559322035\n",
348
      "Training at Epoch 4 iteration 0 with loss 0.0012105738. Total time 0.01361111111111111 hours\n",
349
      "Training at Epoch 4 iteration 100 with loss 0.00030179665. Total time 0.01611111111111111 hours\n",
350
      "Validation at Epoch 4 , AUROC: 0.7173586139261197 , AUPRC: 0.20085550875576227 , F1: 0.21428571428571427\n",
351
      "Training at Epoch 5 iteration 0 with loss 0.00076105434. Total time 0.018055555555555554 hours\n",
352
      "Training at Epoch 5 iteration 100 with loss 5.1199386e-06. Total time 0.020555555555555556 hours\n",
353
      "Validation at Epoch 5 , AUROC: 0.7080254985289312 , AUPRC: 0.18557428840446735 , F1: 0.15384615384615383\n",
354
      "Training at Epoch 6 iteration 0 with loss 0.00062145246. Total time 0.0225 hours\n",
355
      "Training at Epoch 6 iteration 100 with loss 0.00020389628. Total time 0.025 hours\n",
356
      "Validation at Epoch 6 , AUROC: 0.7364089571755476 , AUPRC: 0.13513679393114597 , F1: 0.22727272727272724\n",
357
      "Training at Epoch 7 iteration 0 with loss 0.0012838377. Total time 0.02722222222222222 hours\n",
358
      "Training at Epoch 7 iteration 100 with loss 0.0030459866. Total time 0.029722222222222223 hours\n",
359
      "Validation at Epoch 7 , AUROC: 0.7314563582870219 , AUPRC: 0.19273655585945523 , F1: 0.2985074626865672\n",
360
      "Training at Epoch 8 iteration 0 with loss 0.00030530244. Total time 0.03166666666666667 hours\n",
361
      "Training at Epoch 8 iteration 100 with loss 0.0021231335. Total time 0.034166666666666665 hours\n",
362
      "Validation at Epoch 8 , AUROC: 0.7104118993135011 , AUPRC: 0.20420166085022062 , F1: 0.1724137931034483\n",
363
      "Training at Epoch 9 iteration 0 with loss 3.892237e-05. Total time 0.03611111111111111 hours\n",
364
      "Training at Epoch 9 iteration 100 with loss 5.6345122e-08. Total time 0.03861111111111111 hours\n",
365
      "Validation at Epoch 9 , AUROC: 0.711711343576332 , AUPRC: 0.1893368051121524 , F1: 0.1724137931034483\n",
366
      "Training at Epoch 10 iteration 0 with loss 3.1664985e-08. Total time 0.04083333333333333 hours\n",
367
      "Training at Epoch 10 iteration 100 with loss 1.2107201e-08. Total time 0.043333333333333335 hours\n",
368
      "Validation at Epoch 10 , AUROC: 0.7113844393592678 , AUPRC: 0.18876839621699176 , F1: 0.1724137931034483\n",
369
      "--- Go for Testing ---\n",
370
      "Testing AUROC: 0.7526775851303971 , AUPRC: 0.30979886766026277 , F1: 0.29032258064516125\n",
371
      "--- Training Finished ---\n",
372
      "model training finished, now repurposing\n",
373
      "repurposing...\n",
374
      "in total: 82 drug-target pairs\n",
375
      "encoding drug...\n",
376
      "unique drugs: 81\n",
377
      "drug encoding finished...\n",
378
      "encoding protein...\n",
379
      "unique target sequence: 1\n",
380
      "-- Encoding AAC takes time. Time Reference: 24s for ~100 sequences in a CPU. Calculate your time by the unique target sequence #, instead of the entire dataset.\n",
381
      "protein encoding finished...\n",
382
      "Done.\n",
383
      "predicting...\n",
384
      "---------------\n",
385
      "Predictions from model 3 with drug encoding Morgan and target encoding AAC are done...\n",
386
      "in total: 26640 drug-target pairs\n",
387
      "encoding drug...\n",
388
      "unique drugs: 13763\n",
389
      "drug encoding finished...\n",
390
      "encoding protein...\n",
391
      "unique target sequence: 1\n",
392
      "-- Encoding AAC takes time. Time Reference: 24s for ~100 sequences in a CPU. Calculate your time by the unique target sequence #, instead of the entire dataset.\n",
393
      "protein encoding finished...\n",
394
      "splitting dataset...\n",
395
      "Done.\n",
396
      "Use pretrained model...\n",
397
      "Begin to train model 4 with drug encoding Daylight and target encoding AAC\n",
398
      "Let's use 1 GPU!\n",
399
      "--- Data Preparation ---\n",
400
      "--- Go for Training ---\n",
401
      "Training at Epoch 1 iteration 0 with loss 2.9443107. Total time 0.0 hours\n",
402
      "Training at Epoch 1 iteration 100 with loss 0.47150522. Total time 0.0025 hours\n",
403
      "Validation at Epoch 1 , AUROC: 0.6874959136972867 , AUPRC: 0.17904211971409134 , F1: 0.11331444759206799\n",
404
      "Training at Epoch 2 iteration 0 with loss 0.15898931. Total time 0.004722222222222222 hours\n",
405
      "Training at Epoch 2 iteration 100 with loss 0.07629131. Total time 0.0075 hours\n",
406
      "Validation at Epoch 2 , AUROC: 0.6787185354691075 , AUPRC: 0.1820356878505126 , F1: 0.2564102564102564\n",
407
      "Training at Epoch 3 iteration 0 with loss 0.029954422. Total time 0.009722222222222222 hours\n"
408
     ]
409
    },
410
    {
411
     "name": "stdout",
412
     "output_type": "stream",
413
     "text": [
414
      "Training at Epoch 3 iteration 100 with loss 0.08131296. Total time 0.012222222222222223 hours\n",
415
      "Validation at Epoch 3 , AUROC: 0.6453906505393919 , AUPRC: 0.18346710639280428 , F1: 0.2823529411764706\n",
416
      "Training at Epoch 4 iteration 0 with loss 0.027965397. Total time 0.014444444444444444 hours\n",
417
      "Training at Epoch 4 iteration 100 with loss 0.0106874835. Total time 0.016944444444444446 hours\n",
418
      "Validation at Epoch 4 , AUROC: 0.6764628963713631 , AUPRC: 0.18349862326064548 , F1: 0.2647058823529412\n",
419
      "Training at Epoch 5 iteration 0 with loss 0.07962269. Total time 0.019166666666666665 hours\n",
420
      "Training at Epoch 5 iteration 100 with loss 0.0049899057. Total time 0.021666666666666667 hours\n",
421
      "Validation at Epoch 5 , AUROC: 0.6725073553448839 , AUPRC: 0.17377682895204807 , F1: 0.23655913978494622\n",
422
      "Training at Epoch 6 iteration 0 with loss 0.04211598. Total time 0.02388888888888889 hours\n",
423
      "Training at Epoch 6 iteration 100 with loss 0.008001091. Total time 0.02638888888888889 hours\n",
424
      "Validation at Epoch 6 , AUROC: 0.7000326904217065 , AUPRC: 0.16881333805459592 , F1: 0.275\n",
425
      "Training at Epoch 7 iteration 0 with loss 0.003507731. Total time 0.02861111111111111 hours\n",
426
      "Training at Epoch 7 iteration 100 with loss 0.0044978675. Total time 0.03111111111111111 hours\n",
427
      "Validation at Epoch 7 , AUROC: 0.7041353383458647 , AUPRC: 0.1856970424941901 , F1: 0.25\n",
428
      "Training at Epoch 8 iteration 0 with loss 0.05206099. Total time 0.03333333333333333 hours\n",
429
      "Training at Epoch 8 iteration 100 with loss 0.05816785. Total time 0.03611111111111111 hours\n",
430
      "Validation at Epoch 8 , AUROC: 0.7108859104282446 , AUPRC: 0.1952597801380466 , F1: 0.29473684210526313\n",
431
      "Training at Epoch 9 iteration 0 with loss 0.013554451. Total time 0.03805555555555556 hours\n",
432
      "Training at Epoch 9 iteration 100 with loss 0.007886992. Total time 0.04083333333333333 hours\n",
433
      "Validation at Epoch 9 , AUROC: 0.7187316116377901 , AUPRC: 0.16459869666835927 , F1: 0.27027027027027023\n",
434
      "Training at Epoch 10 iteration 0 with loss 0.025015991. Total time 0.043055555555555555 hours\n",
435
      "Training at Epoch 10 iteration 100 with loss 0.09150379. Total time 0.04555555555555556 hours\n",
436
      "Validation at Epoch 10 , AUROC: 0.7168846028113762 , AUPRC: 0.2023549752538576 , F1: 0.2424242424242424\n",
437
      "--- Go for Testing ---\n",
438
      "Testing AUROC: 0.7601780253910315 , AUPRC: 0.2671153851194677 , F1: 0.3008849557522124\n",
439
      "--- Training Finished ---\n",
440
      "model training finished, now repurposing\n",
441
      "repurposing...\n",
442
      "in total: 82 drug-target pairs\n",
443
      "encoding drug...\n",
444
      "unique drugs: 81\n",
445
      "drug encoding finished...\n",
446
      "encoding protein...\n",
447
      "unique target sequence: 1\n",
448
      "-- Encoding AAC takes time. Time Reference: 24s for ~100 sequences in a CPU. Calculate your time by the unique target sequence #, instead of the entire dataset.\n",
449
      "protein encoding finished...\n",
450
      "Done.\n",
451
      "predicting...\n",
452
      "---------------\n",
453
      "Predictions from model 4 with drug encoding Daylight and target encoding AAC are done...\n",
454
      "models prediction finished...\n",
455
      "aggregating results...\n",
456
      "---------------\n",
457
      "Drug Repurposing Result for SARS-CoV 3CL Protease\n",
458
      "+------+----------------------+-----------------------+-------------+-------------+\n",
459
      "| Rank |      Drug Name       |      Target Name      | Interaction | Probability |\n",
460
      "+------+----------------------+-----------------------+-------------+-------------+\n",
461
      "|  1   |      Darunavir       | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
462
      "|  2   |      Amprenavir      | SARS-CoV 3CL Protease |     YES     |     1.00    |\n",
463
      "|  3   |      Efavirenz       | SARS-CoV 3CL Protease |     YES     |     0.99    |\n",
464
      "|  4   |     Raltegravir      | SARS-CoV 3CL Protease |     YES     |     0.99    |\n",
465
      "|  5   |    Fosamprenavir     | SARS-CoV 3CL Protease |     YES     |     0.98    |\n",
466
      "|  6   |      Tipranavir      | SARS-CoV 3CL Protease |     YES     |     0.98    |\n",
467
      "|  7   |      Doravirine      | SARS-CoV 3CL Protease |     YES     |     0.97    |\n",
468
      "|  8   |     Methisazone      | SARS-CoV 3CL Protease |     YES     |     0.95    |\n",
469
      "|  9   |       Loviride       | SARS-CoV 3CL Protease |     YES     |     0.94    |\n",
470
      "|  10  |      Simeprevir      | SARS-CoV 3CL Protease |     YES     |     0.93    |\n",
471
      "|  11  |     Elvitegravir     | SARS-CoV 3CL Protease |     YES     |     0.88    |\n",
472
      "|  12  |      Vicriviroc      | SARS-CoV 3CL Protease |      NO     |     0.43    |\n",
473
      "|  13  |     Nitazoxanide     | SARS-CoV 3CL Protease |      NO     |     0.39    |\n",
474
      "|  14  |      Letermovir      | SARS-CoV 3CL Protease |      NO     |     0.23    |\n",
475
      "|  15  |      Amantadine      | SARS-CoV 3CL Protease |      NO     |     0.17    |\n",
476
      "|  16  |      Indinavir       | SARS-CoV 3CL Protease |      NO     |     0.09    |\n",
477
      "|  17  |      Atazanavir      | SARS-CoV 3CL Protease |      NO     |     0.08    |\n",
478
      "|  18  |      Didanosine      | SARS-CoV 3CL Protease |      NO     |     0.07    |\n",
479
      "|  19  | Tenofovir_disoproxil | SARS-CoV 3CL Protease |      NO     |     0.06    |\n",
480
      "|  20  |   Podophyllotoxin    | SARS-CoV 3CL Protease |      NO     |     0.03    |\n",
481
      "|  21  |      Docosanol       | SARS-CoV 3CL Protease |      NO     |     0.03    |\n",
482
      "|  22  |      Zanamivir       | SARS-CoV 3CL Protease |      NO     |     0.03    |\n",
483
      "|  23  |      Peramivir       | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
484
      "|  24  |      Lopinavir       | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
485
      "|  25  |      Nelfinavir      | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
486
      "|  26  |     Bictegravir      | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
487
      "|  27  |      Imiquimod       | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
488
      "|  28  |      Nevirapine      | SARS-CoV 3CL Protease |      NO     |     0.01    |\n",
489
      "|  29  |     Grazoprevir      | SARS-CoV 3CL Protease |      NO     |     0.00    |\n",
490
      "|  30  |      Foscarnet       | SARS-CoV 3CL Protease |      NO     |     0.00    |\n",
491
      "checkout ./save_folder/results_aggregation/repurposing.txt for the whole list\n",
492
      "\n"
493
     ]
494
    },
495
    {
496
     "data": {
497
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAY4AAAEaCAYAAAAG87ApAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nOydd3gVRffHPwcSCEnooQqRJhCCoQgIL9L0RUEQEFHEXrBgodh+YgMVFRUVfEF9LSjKiygoFiwoCoIoICggRXoLhiqEkoTckPn9sZubm+QmuUluTc7nee5zd2dnZ87dbPbszJn5jhhjUBRFURRPKRdoAxRFUZTQQh2HoiiKUiTUcSiKoihFQh2HoiiKUiTUcSiKoihFQh2HoiiKUiTUcZQxRORaEfku0HYEEyJyUkSaBKDeRiJiRCTM33X7AhHZICI9i3Ge3pMhhjqOACIiu0Qk1X5w7ReR90Qk2pd1GmP+Z4y52Jd1uCIi/xKRH0XkhIgki8iXItLKX/W7sWexiAx3TTPGRBtjdviovuYiMkdEDtu/f52I3Cci5X1RX3GxHVizkpRhjIk3xiwupJ48zrIk96SIdBKRr0XkmIj8IyIrReTm4pSleI46jsBzmTEmGmgLtAPGBtieYuHurVlEugDfAZ8D9YHGwFpgmS/e8IPtzV1EmgIrgL3AucaYqsCVQAegspfrCthvD1Td9v31I/AT0AyoCYwA+hazvKBy5kGNMUY/AfoAu4B/u+y/AHzlsl8RmATsAQ4AbwCVXI4PBNYAx4HtQB87vSrwDpAE7AMmAOXtYzcBP9vbbwCTctn0OXCfvV0f+AQ4BOwERrrkGw/MBWba9Q938/uWAq+5Sf8GeN/e7gkkAo8Ah+1rcq0n18Dl3P8D9gMfANWB+bbNR+3tBnb+Z4AzQBpwEphqpxugmb39HjAN+Ao4gfXgb+piz8XAZiAZeA3roZXnt9t5Z7r+Pd0cb2TXfaP9+w4Dj7oc7wT8Chyz/5ZTgQouxw1wN7AV2GmnTcFyVMeB1UA3l/zl7eu83f5tq4GGwBK7rFP2dRlq5++PdX8dA34BEnLdu/8HrANOA2G43M+27atsOw4AL9vpe+y6TtqfLrjck3aeeOB74B/73EfyuX4/A9MKuL45ys3nb/068LX92x+z76PyLvkvB9bZ2+WAh+3rdwT4GKgR6OdIID4BN6Asf3L9ozUA/gSmuByfDHwB1MB6Q/0SeM4+1sl+ePW2b+izgJb2sc+A/wJRQG1gJXCHfcz5zwR0tx8yYu9XB1KxHEY5+8HyBFABaALsAC6x844HHMAgO2+lXL8tEush3cvN774ZSLK3ewIZwMtYTqKH/U/cwoNrkHXu8/a5lbDeOq+w668MzAE+c6l7Mbke9G4eJv/Y1zcM+B8w2z4Wg/UgHGwfG2Vfg/wcx37g5gL+/o3sut+ybW+D9RCOs4+fB3S262oEbAJG57L7e/vaZDnT6+xrEAbcb9sQYR97EOseawGIXV/N3NfA3m8PHATOx3I4N2LdrxVd7t01WI6nkkta1v38K3C9vR0NdM71m8Nc6rqJ7HuyMpaTvB+IsPfPd3Pt8r2/3JVbwN86GeiKdQ9HYDmF3i755wAP29ujgeVY/6sVsf7HPgz0cyQQn4AbUJY/9j/aSay3PwP8AFSzjwnWA9T1bbcL2W+W/wVecVNmHfvh49oyGQYssrdd/0kF6w2wu71/G/CjvX0+sCdX2WOBd+3t8cCSAn5bA/s3tXRzrA/gsLd7Yj38o1yOfww87sE16AmkYz8Y87GjLXDUZX8xhTuOt12OXQr8ZW/fAPzqckywHG9+jsOB3QrM53gju+4GLmkrgavzyT8amJfL7gsLuceOAm3s7c3AwHzy5XYcrwNP58qzGejhcu/e4uZ+znIcS4AngZh8fnN+jmMY8IcH/ztn5Xd/uSu3gL/1+7mOTwCm29uV7fvvbHt/E3CRS9569t84rDB7S9tHYxyBZ5AxpjLWQ7Al1lstQC2st6rVduDvGPCtnQ7Wm952N+WdDYQDSS7n/Rer5ZEDY939s7H+WQGuwXrDziqnflYZdjmPYDmmLPYW8LuOAplY/1y5qYfVLePMa4w55bK/G6vVU9g1ADhkjEnL2hGRSBH5r4jsFpHjWA+wakXsv97vsp2C9caMbZPzN9vXL7GAco7g/vd7VJ8dWJ9vD5w4DjxL9v2RRY6/gYjcLyKb7ED8Maxuy6xz8rtn3HE2cH+uv39DrGvgtu5c3Ao0B/4Skd9EpL+H9XpqY0H3V1HI/RtmAYNFpCJWy/J3Y8xu+9jZwDyX67EJq9VThzKGOo4gwRjzE9Yb0CQ76TBWt1G8Maaa/alqrEA6WDd8UzdF7cVqccS4nFfFGBOfT9UfAkNE5GysVsYnLuXsdCmjmjGmsjHmUlezC/g9p7C6K650c/gqrNZVFtVFJMplPxb424Nr4M6G+7G6Ys43xlTB6o4Dq3VQoM0ekITVkrIKFBHXfTcsxOo2Ky6vA38B59i/5RGyf0cWzt8jIt2w4g5XAdWNMdWwumKyzsnvnnHHXuCZXH//SGPMh+7qzo0xZqsxZhjWC8vzwFz7b1zY9ffIRmNMCtb9VdD1PYX14gGAiNR1V1Sucjdivbj0xXqRmpXLtr65rkmEMWZfYfaWNtRxBBeTgd4i0tYYk4nV9/2KiNQGEJGzROQSO+87wM0icpGIlLOPtTTGJGGNZHpJRKrYx5qKSA93FRpj/sAKJL8NLDDGHLMPrQSOi8j/iUglESkvIq1FpGMRfs/DwI0iMlJEKotIdRGZgNXd9GSuvE+KSAX74dcfmOPBNXBHZSxnc0xEagDjch0/gBWvKQ5fAeeKyCB7JNHdgLuHURbjgH+JyItZDy0RaSYiM0Wkmgf1VcaKqZwUkZZYI4YKy5+B9fcME5EngCoux98GnhaRc8QiQURq2sdyX5e3gDtF5Hw7b5SI9BMRj0aDich1IlLL/htm3VNnbNsyyf9vMB+oKyKjRaSifd+cn0/eh4CbROTBrN8hIm1EZLZ9fC0QLyJtRSQCq3vVE2YBI7FeOua4pL8BPGO/ZCEitURkoIdllirUcQQRxphDwPtY/ftgvT1uA5bbXRULsd6mMcasxAoyv4L1VvkTVlMarL74CsBGrCb9XApu0n8I/BuXtytjzBngMqwYwU6st/+3sbo+PP09PwOXYDX5k7De5NoBFxhjtrpk3W/b+TdWV9mdxpi/CrsG+TAZK9B8GCuQ+W2u41OwWlhHReRVT3+L/XsOY7WgXsDqhmqFNXLodD75t2M5yUbABhFJxmrRrcKKaxXGA1hvvSewHuQfFZJ/AdaItS1Y1zqNnF0xL2PFj77DckjvYF0rsB6qM+xumKuMMauwYl5Tsf4227BiBp7SB+s3n8S65lcbY9LslsIzWEOyj4lIZ9eTjDEnsAZ8XIZ1X2wFermrwBjzC3Ch/dkhIv8Ab2KNksIYswV4Cuue2Yo1CssTPsTqOv7R/ptnMQVroMZ3InIC6/7Kz6mVarJG0yhKQBBrpvFMY0xBXT5BiYiUw4pxXGuMWRRoexTFX2iLQ1GKgIhcIiLV7OBpVsxheYDNUhS/oo5DUYpGF6xRP4exulMGGWNSA2uSovgX7apSFEVRioS2OBRFUZQiEVSicMUhJibGNGrUKNBmKIqihBSrV68+bIypVXjOvIS842jUqBGrVq0KtBmKoighhYjsLjyXe7SrSlEURSkS6jgURVGUIqGOQ1EURSkS6jgURVGUIqGOQ1EURSkS6jgURVGUIuE3xyEi00XkoIisz+e4iMirIrJNRNaJSHt/2aYoiqJ4jj/ncbyHJdH8fj7H+wLn2J/zsRaxKZOSxYqiKHlIPwl/LwOTWbJyHKfYv21ziYrwm+MwxiwRkUYFZBmItf6vwVp7oZqI1LMXJlIURQlOPu0HO78OtBUe8+CXvfnj75KtuBtMMY6zyLnoTKKdlgcRuV1EVonIqkOHDvnFOEVRFLeEkNMAaF33IEt3xJaojGCSHMm9ljLksz6xMeZNrJW+6NChg8r7KooSeO730aPoJfvRWL+r1VV16YcQVgEOroVDa+HwOkje6f7c6LN47vNGfLSmNWt+7Am12nDNPY3Y3WoF48ZNKLZJweQ4EoGGLvsNsJYSVRRFKXukn4BDf2bvH1pnfX89LG/e8hWhZjzUSoBabaBWG9Ym1aFjt09wOM4A8H/v1uD55+MIB554oifjxhXftGByHF8A99gLzZ8PJGt8Q1EUr+HrWMRL7jpNvIijgGXqz5yGg79bH6DNpDtYt78uVkeOUE4y6d79bK+Z4jfHISJZC8DHiEgiMA4IBzDGvIG1wPylwDYgBbjZX7YpilIGCLFYRHGYvKQDY77oR3bPv+Hi5ltZ8Nwx6Pek1+rx56gqN+2rHMcNcLefzFEUpaxS1FhEVkuioPOyWjOXTIfYC/Mef6uR9T3wM6gU40GlApG1oXx4zuSImlAhOt+zxjyQ7Ryio8PZuXM0MTGRHtRXNIKpq0pRFCW0iawNVQroEqrbEaLre7XKw4dTnM5h5MhOvPrqSp577kIefribV+txRR2HoiihzfE9sPkjyMzwLP+K5/I/ZjLh4B9WYDo3cy/J/zw7tsDmj7OD2D7m+++307fv/zhzxpCe/gjh4eFMmdKXKVP6+rxudRyKooQeJQl0//xI8c7b/V3heTbmJ4xhE1apeHW74HA4aN58Grt2JTvTrr/+M2bPvrLEZXuKOg5FUUKP4jqNqk2hRQEP2H+2wLZP86ZXrAY1WlrbScuLV3etdhBRvXjn2owdu5CJE5flSLv++nN5//3BJSq3qKjjUBQldLnfZLc+Lp8PTfqVrLytn2U7jvyC4Z4Ey31AdPSznDrlcO7XrFmJPXvGEBkZXsBZvkEdh6IoocupA5CRYm2nn4S0oyUrz3Gy5Db5iDNnLEclAu++O4Abb2wXMFvUcSiK4n+8NRnvjbrZ219dXfLyXPH1hL5C+N//1vHOO3/w4483ArB+/R3ccsuX/PRT4Ke4qeNQFMX/eHsynpSD8GjruzBOHyt5fY0vLXkZ+ZCS4uDss1/h8OFUAD77bBODBsXRtGlMUDgNUMehKEogKU6cIPFn+KgbxCRYAn/1zodrihCwdhejCFDcIje33PIZ7767Nkfajh1ecHReRh2HoihKgPntt3107TodhyN7kabY2Cps23YP4eH+D34XhlhKH6FLhw4dzKpVqwJthqKUDkJsUSKvE6AWh0i2VEi5csL8+cPo2/ccH9cpq40xHYpzbjAt5KQoSqApy07Dh3GLwuja1VpR4tJLm3HmzBM+dxolRbuqFEXJiydv3p/0gV0LrO1+s71vw1+zYPsXUP9fUCfXi7GUg5qtoWIVS1SwUk0rPUhiFQVx+HAKTZpMISXFQUbGEwD8/PMtpKQ4AjInozio41AUpeS0HOr9Mg/+YTmOJpfB+Q97v/wAcNlls5g/f6tz/7bbvuCttwYAhIzTAHUciqIc2WhNpHNlz6L88xsDx7bmXK60oPzF5fhu75cZIL75Ziv9+39IZmZ2S6hVq1pOpxFqqONQlLJAUYPec9ysKeHN/EWhXPns7RAM3p999ivs2XPcuR8eXo5ly26hY8ezAmhVyVDHoShlAV8+bCtWh9ptfFN2harQfEj2vie/I4BBbnfs3ZvtNG68MYH33rs8gNZ4B3UcilLWcA0cb5kLX14J51wBA+Z6dv7yZ2DZY3D+I3DBM76xsTCCOPi9ffth3n13HRMmWK2wDz8czMiR37Jz5+iQimMUhDoORVEUL9Gly9ssX74PgNtvP4/Y2KoMHXouQ4eeG2DLvIs6DkUJJvzdh7/2dc/yOU7BZ4PgxB5IPZKdHoIxB18wffrvDB/+Ja7zqd98c7Wz1VHaUMehKMGErx/Cufv/T/5tfYdHFnze/lWwZ2HOtJqtYMWz3rPNU4IohpGS4qBhw5f55580Z1qlSmH89dc9xMZWDaBlvkUdh6IEI97uw8+aGDf4q5zpWWqyHR8qpADbnrodoe8HEB4FlRvA19dZ6UEcc/AlUVE5HefDD3fluef+HSBr/Ic6DkVRAA/XngiLhBotfGtKCFGnThQHDpyiUaOqbNlyd1AKEvoCdRyKUhrZ+Q3885e1nfUNVpzCleN7re+N70NUXfLl6Dbv2heixMVNY//+kxw9+n8A7N07iuXL99GtW6PAGuZnVB1XUfxBUYPIxen6CWSgupR3VU2cuJSxY3907j/6aLeQD3yXRB1XWxyK4g+K8kAvbvA3UE4jiILV3iYpKZnmzadx8qTDmValSgUefLBzAK0KPOo4FMWf+OPN/KaN8F4rqNEyu5uqahMYvt33dZci+vadybffZl8zEXj55UsYPbpsOw1Qx6EoJeOMAzIzPM/vSC1C2elgzhTdpjR7qVGTWXA+pUBcnUbr1rX5888RAbQmuFDHoSjFJXGJtSZFRhGcwauFzJfwBrP/ZX0f3eL7ukoRDoeDn39OpFevxgCMHNmJ119fxcqVw2nbtl6ArQsudAVARSkuSSstpyHlISwi/08WEqB/NykHzUJfWM+XjBr1DRUqPMuFF76Pw2HFM6ZM6Ut6+uPqNNzgcYtDRMKBS4CmwLvGmOMi0hBINsYcL/hsRSnFtB8NPSflfzxr8t19ZzxfoW7pWFg5ES54Fs4fWzR7QmAVvGBh8+bDJCS8Tnp6drfeM88sZfz40B4x5Ws8chwi0gj4HqgDRAJfAseB+4FKwB2+MU9RFMU3dOjwJqtXJzn3RWDOnCFccUV8AK0KDTxtcUwBlgG3Af+4pM8D3vG0MhHpY5dVHnjbGDMx1/FYYAZQzc7zsDFGFdSU4OL9tnBobfb+6pesT2G8lM/s7DWvQdLynGkHfi+8PBUYLBYOh4OKFZ/NIUjYo8fZLF58U8BsCjU8dRxdga7GGIdIjpt/N1DfkwJEpDwwDegNJAK/icgXxpiNLtkeAz42xrwuIq2Ar4FGHtqoKP7B1WkUB9d5D+kn4Ie7889bqVb+xwpyGqV4bkVJCQ8Pp2LFMNLSMoiMDGPTptItSOgLPHUc5e1PbhoAJzwsoxOwzRizA0BEZgMDAVfHYYAq9nZV4G8Py1YU/3Px21CxmvWQDq9UvNjCGXtiWVgk/DuXxHmFKtDEAwegsYxCueaauWzYcIi1a60htevX38EHH6zTWEYx8dRxfA/cC2QNZDYiEgWMA771sIyzgL0u+4nA+bnyjAe+E5F7gSjArcykiNwO3A4QGxvrYfWK4mXiroOwit4pK6wixN/gnbIUJ0uX7qJXr/c5c8Zyrp99tolBg+Jo2jRGnUYJ8NRxPAAsFpF1QATwPtAcq7VxvYdluOvgzf2qNAx4zxjzkoh0AT4QkdbG5JzJZIx5E3gTLK0qD+tXlOJzxgEHf4fMYkzIy8JkwsE/ION0dlq6Dkj0BQ6Hg1atXmfbtqPOtPLlhZo1KwXQqtKDR47DGLNHRBKwnMR5WPM/PgJmGGM87apKBBq67Dcgb1fUrUAfu85fRSQCiAEOeliHoniPwoLPUyLcp+cXBC+ItKPFO0/JwzPPLOGxxxblSBsyJI45c64KkEWlD0+H43YCVhtjXs+VXl5EOhljVnpQzG/AOSLSGNgHXA1ckyvPHuAi4D0RicNq3RzyxEZF8TqhMGJJg+A5cDgcOZxGtWoV2bVrJFWr+mHGfhnC066qX4F65H3zr2Yfcxc4z4ExJkNE7gEW2PmnG2M2iMhTwCpjzBdY80LeEpExWN1YN5lQ131XQp/7TXZr4MofYM5F2elFYcGtsH66FVQ/91bv2ljGSUlxEBkZTnh4OF27NuSXX/YybVpfRozoFGjTSiWeOg4hbzwCoDqQ4mll9pyMr3OlPeGyvRFr6K+iKEqhfPLJBq68ci4AmZnjAPj551sCaVKZoEDHISIf25sGeFtEXKJ6lAfaAMvznKgowUpxJs25xh6yWhsAMxKKVs6JvYXnUTzC4XDQsOEUDhw45Ux7+eVfue++LgG0quxQWIsjawiJAJku+wCpwP+A13OfpChBizfjFof/LN551c/xng1lkBEj5vPGG6tzpN19d0d1Gn6kQMdhjBkGICK7gAnGmFMF5VeUkMJdjCKrdXHpTIg5F4yBD9paaVf9CBE1S1ZnRA2o3KBkZZRRHA4H0dETcwgS1q0bzZ49IwkPDw+gZWUPT4fjFlGeU1FCnGrnQK0EcggaNewVOHsUwsPDcTgspyECn356FYMGxQXYqrJJUWTVh2FN0IsFKrgeM8a08rJdiuJ/klZkb2+ZCwdW5XQcit+ZNm0FK1bs4/33BwPw4YeDeeutP1i4UGfZBxLxZLSriIwGngSmY8mOvA2cgyUZ8qrryCh/06FDB7Nq1apAVa8EA/5QiQ2rBKM8HkColJDk5BTOPvtVkpOt8Ti7d49WIUIvIyKrjTEdinOupy2OEcDtxpiPRGQ48LIxZoc9B6MA+U5F8QO+cBp1z4c67bP3Y1XXyF9ceeXHzJ27KUfar7/uITb23ABZpOTGU8fRkOxht6lAZXv7AztdV3FXAo+nE/Jch9dmnZN+Ev5TGcqFQ6YDzhkMnR7yvo1KvixatJPevT9wChICNGtWnY0bR2jwO8jwdBHkA0ANe3sPlkQ6wNm4Fy9UlODBZOb8uJKZkf1RAobD4eDCC7NVbMPChCVLbmTrVh0xFYx42uJYBPQH/sBaoW+yiAzGinF87iPbFCWbosQxipL3lVwPpUxH0exSvEJ4eDh16kRx4MAphg2LZ9asIYE2SSkATx3HnVl5jTH/EZHjWNIgPwD/8ZFtipJNYY7AVeyvpDGPitXgrAtKVoZSIHv2JBMXNxUR4eTJRwDYu3cUKSkOFSQMATydx5EOpLvsz8BqeSiKfymKsKCrOOFtu6FKLJzaD2/Ug8g6MGK/b2xUCqRnz/f46afdzv3p03/nllvaEx4eTtWq2i0VCnga43CLiPQXkd+9ZYyiKKWXjz76k3LlnszhNDp2rMctt7Qv4CwlGCm0xSEi1wMXAw5gqjHmdxHpDEwG2gGzfWuiEhCSVloS4LmDyZ6w61vfCfoVZbGjKdHZ20sehgrRkKFzMfyNw+GgQYPJHDyYfe0rVizP2rV30qJFTAAtU4pLYeq4o4BJwGagKXCliDyGtdb4f4HBxpjcq/gppYGfH4U9CwNtRcnIcJFW2/xhzmOVSqg5pRQJV6cxcmQnpkzpG0BrlJJSWIvjduAeY8x/RaQ31iJMg4HmxpjDPrdOCRxn0qzvDg8UXc31+zus797/LXq9mQ744R5rO+7aop/vyqb/Wd8dH4RqzXIea9CzZGUrBbJmTRK//rqXESM6ER4ezsiRnZg7dyO7dunw2tJAgZIjInIKaGWM2W3vpwM9jDG/+sm+QlHJER8xuxvs+xmGLoEG3Yp2blZ3UlFXyAPIOJ29lndxzveWHUqxadPmddatsxYLTU9/RB1FkOJLyZFKWDPFsziNNRlQKS2cccDh9eRZ4DH9ZMnLPlCMcRNn0gvPowQlkycvZ8yYBTnSPv30L4YOVamQ0oYnw3FvEpGsp0gYcJ2I5OimMsa85nXLFP/w9TWWEmx+SK6Bd0WZXDfzvOLbVZz6lICQnJxCbOwUjh/PdvrR0RXYuXMUMTE6J6M0UpjjOAiMcdk/Rl5dKgOo4whVjm6zvqu3gPBc/+RVzoY6uR7+Hj/Ey0HtNtbmwT+KbldWTKKkTsN1YqDidVJSHFSr9mKOtOeeu5CHHy5i96YSUhS2AmBdfxmiBJh+H0Kddp7nzy9u8M8WeLcFVG8K19tdVd6INWicIiiJjAwnIiKMtLQMWraMYdOmuwNtkuIHPF7ISVEUxeFw0KzZNMLDhW3bRgGwfv0dHDqUSufODQNsneIv1HGUdta+YU3ky4+jm3PuexpT+F+nvGlHt8DpZHt7a97JekWZvKcEHWPHLmTixGXO/a++2ky/fi1o2jSGpk0DaJjid9RxlHZWTYJj2wvOU74CVD7L2vY0prD/t5LZVRQ0ThFQtm8/TOvW/yUtLVt6vmbNSvTq1SSAVimBRB1HaSdLMmTApxB9lvs8lRtCZO2caVkxhY97wd7FcNE0qFPIkO9Z51vf166EmAQIq2jt63yKkOWCC6azbFm2fIwIvPvuAG68sQjxMKXUoY6jrFCrDVQrwRtijTio56Z7yh11Oxa/HiVoSE5OyeE0/vWvBixbdmsALVKCBY/VcUUk3FbDHSUiVey0hlnbSink1AGrtaGUGVJSHKxZkwRA1aqRdOvWkIiIMLZtu1udhuLEoxaHiDQCvgfqAJHAl8Bx4H6s2eV3+MY8xacUFgj/4a7s7TkXel6uBsFDkptumseMGesQgczMcQAsWXJLgK1SghFPWxxTgGVATXJKkMwDLvK2UYqfyM9pZAWjU72oY6kB7qDlt9/2UaHC08yYsQ4AY6wRU4qSH57GOLoCXY0xDpEcb5O7gfpet0rxL54GrV3zacC7VNCq1TQ2bcp+QShXTpg/fxh9+xZREVkpU3jqOMrbn9w0AE54zxxFUfzB4cMp1KqVUyqkf/9z+PLLawJkkRJKeOo4vgfuJVunyohIFNaCTt/6wjDFQ769OXvdCXdkOqzvdwqYofVKhVznZJBHLTcLFR0sFcTERCJidUtVrlyBHTtUkFDxHE8dxwPAYhFZB0QA7wPNsVob13tamYj0wYqXlAfeNsZMdJPnKmA81pNrrTFGX4EKYvvn2c6huHhyflaMwtVpaNwipOjXz3rB+Oora4GsOXOGsHv3ce67r0sgzVJCEI8chzFmj4gkADcA7bGC6h8BM4wxHnVViUh5YBrQG0gEfhORL4wxG13ynAOMxYqnHBWR2u5LU/JwZxJE1MibPtmehJc7FpF2FKbVgIpVYcRB9+eMPg3lwvJKq7srTwlavvlmK/37f0hmpvU327MnmdjYqlxxRXyALVNCFU+H41YxxhynZPLpnYBtxpgddpmzgYHARpc8twHTjDFHAYwxB/OUorinXAVLOqTISP7nFas8JVhwOBw0aTKVxMTjzrTw8HIcP54GVA2cYUrI42lX1QERmQ98AHxtjMko7AQ3nAXsddlPBM7Plac5gIgsw+rOGm+M0RhKFofXW4KFmS6X33EqZ578YmRtvswAACAASURBVBD5za04fSz/YzofI2R54IEFvPTS8hxpN9/chunTBwXIIqU04anjGApcA3wIpIrIHOADY8wvRajL3VMod39HGHAO0BNrxNZSEWltjDmWoyCR24HbAWJjY4tgQoiz7AnYNi9vevmKEGav0+2PwLXGNoKapKTkHE6jVq1Idu0aTWSkrv2teAdPYxxfAF+ISDRwBZYT+UlE9gIzjTFPeFBMIuAq2N8A+NtNnuXGGAewU0Q2YzmSHFKsxpg3gTcBOnToUHY62zPsuZcJd0DNVtnptdvnXb3PldzxiPfi4chG6PQwtLwGauma0KUBh8NBeHg49epVpW7daA4cOMkHH1zOtdcmBNo0pZRRJJFDY8xJYAYwQ0TigFnAo4AnjuM34BwRaQzsA67GckCufAYMA94TkRisrqsdRbGxTNBsIDTuW/Jy4q6DGA2QhjrTp//O8OFfUrFiGKmpjwKQlHR/gK1SSjNFchwiUhG4DLgW6AscAiZ5cq4xJkNE7gEWYMUvphtjNojIU8Aqu1WzALhYRDYCZ4AHjTFHimJjqcQYa5Ekx0lr/0Si1WLwlNx5M9K8Z5sSMFJSHDRs+DL//GP9PdPSMli6dBfdujUKrGFKqUeMKbynR0QuwnIWg+2kT4GZwCLjSQE+pEOHDmbVqlWBNMH3/DgS/viP98u9aUPOLi8lZLj22k+YNWt9jrRHH+3GhAlFEKNUyjQistoYU8giO+7xtMXxNVZr4Hbgc2PM6eJUphSTI5us78oNwZECaUcgugGcTCz83PAoqOxmAEGNllC9hXftVHxOUlIysbFTyMjIfl9r3LgamzffRXi4Br8V/+Cp46hnjPnHp5YohXPxO/D7ZGvkVO83YF5/Kz0r+K3Cg6WemJhIp9MoX1745ptr6d1bF/xW/Eu+jkNEIo0xKfZumojkO2zHJZ+iKF5m4sSlpKU5GD/+QsLDw7n//s5s336UefOuDrRpShkl3xiHiJzBamkcFJFM8lW9A2OMO+Vcv1AqYhzeFg7UFkepICkpmXPOmcapU5aWWHr6I9odpXgNX8U4LgX+cdnWp5Gv8KbTqFTLe2UpAeOSSz7gu++yR6KLwJo1B+nY8awAWqUoFvk6DmPMApdtlf3wB7ljFVkM/Qmiz4J3mln7N6zTSXullK++2syAAR85BQkBEhJqs3btiALOUhT/4qnIYQpwtjHmUK70GkCiMUaF/H1Jg+4596vr6mylke3bD9O//2znfnh4OVauHE7btvUCaJWi5MXTUVURuNeaisDzdcuVwvhrNpjMvOlnHLBrQd50pVTRtGkMERFhpKVlcNtt7XnzzcsCbZKiuKVAxyEid9mbBrhJRE66HC4P9AC2+Mi2ssGn/bK3vxrmPs/kXPLm7tbHUEKOzZsPk5DwOrVrR7N37xgA9u4dQ9Wq4RoEV4Kawlocj9vfAtwPuL4OpwO7gLtQik9RA+M1W+s6GaWADh3eZPXqJAASE4+zfv0BWreuo8u3KiFBgY7DGFMPQER+BS7NWmBJ8QOuQ2qXPwPLHoPzH4ELngmcTUqJeeut37njji9xHQXfq1cjWreuEzCbFKWoeCqrrosSK0oJSE5OoVGj/3DsWLbAZGRkGJs23UNsrK7Gp4QWBc0cfwF40hhzyt7OF2PMQ163rLTw+eWw7XOKPA3mP1Wyt8+oNFiok5zsyOE0xo3rxvjxKkiohCYFtTi6AeEu2/mhEwMLYvcPFOsSpZ/IuV8uHOrmXmlXCWaWLt3FyZMO+vY9h9jYqvTq1Yg9e46xaZMKEiqhTUETALu421a8xO1786aFRUK5fP4k5cIhvJJvbVK8gsPhIC7udbZvP4oIZGaOA+DHH28MsGWK4h2KtJCTKyLSANhvjMnwoj1lh8oNAm2B4gOeemox48b95Nw3xhp226JFTACtUhTv4unM8fHANmPMTHt/PraWlYj0McaEuMqgF5iRAIf/DLQVSoBISkqmWbOppKRkv0dVq1aRXbtGUrWqDrFVSheeziS7CdgOICKXAF2AnsAcYKIvDAspju8umtNofKnvbFH8zpo1SdSvP9npNETgtdf6cvTow+o0lFKJp11VdYGs5eYuBeYYY5aISBKw0ieWhRION8uRdHsetsyBA3ZjbFQahFX0r12KX2jbth4iVrdU+/Z1Wb36jkCbpCg+xdMWxz9AVqf8JcAP9rZgSY8ouen0EMS4KNiq0yg1OBwO6tadxIUXznCmLVhwHX/+eac6DaVM4GmL4zNgpohsAmoDWTLrbYFtvjAspDBn8qYd2wHpx/1vi+JTRoyYzxtvrAbgwIFT7NmTTGxsVV2+VSlTeOo4RgMPArFAH2NM1iSDs4G3fWFYQPHGinzv6IOkNLF+/QHOO+9N0tOz5drq14+mXj2NYShlD08lR9KBPCJJxpgXvW5RMODNFfkAGvbybnmKX2nX7g3WrDng3BeBTz+9ikGD4gJolaIEDo/ncdiLNt0JtMKaCr0BeNMY80+BJ4YyuVfky28t76zjw36FD7tAtWZw61bf26f4nOXL9+ZwGhdd1JiFC28IoEWKEng8Co6LyPlYw3HvBCpiLeB0F7BNRDr6zjxF8T/JySkkJSUD0LlzQxo0qEJkZDh//z1anYai4HmL4yWsAPltWTPFRSQMK77xCnCBb8zzA6/VhtRD7o/lXvs7935ufrzXOzYpAWPIkI/45JO/iIgIIzX1UQDnIkuKolh46jjOA4a7yosYYzJs1dzQnjWen9MoDllzNlROJORYtGgnvXt/wJkzVndkWloGSUnJ1KunkueKkhtPHccJoCHwV670Bvax0Mc1fpE7pvH3r/Dhv6BSbUg9CGddkHf2d+WGEFkbEKinKrahgsPhoEWL19i585gzLSxMWLr0ZnUaipIPnjqOj4F3RGQM8AtWcPwCrC6sj31kW/ARFmF91+sM548NrC1KiVm6dBfdu8/IkTZsWDyzZg0JkEWKEhp46jgewFqbYzbZAfVMrBjHgz6wy/9s/TT/tINrre8MN9IiSsjSufNZzu3q1SNITLyPyEhdJ0NRCsPTeRxpwB0i8n/AOVhSI1uMMccKPjOIyR0U/+KKvHlyp6Uetr7L6cMlVOnR4106dqzPpEmXEB4ezoQJvahXL5pbbmkfaNMUJWQQYwpenU5E6gMXYbU4lhhjgkpipEOHDmbVqmLE53OPkGrYEypWt7a3zbO+m11ufe9bZsU2arSCOu2hyzio3qzYNiv+56OP/mTYsE/Jut3T0x/RVfiUMo2IrDbGdCjOuQW2OETkX8DXQNYC2Okicp0xZm5xKgtK6nSwRkN1fwHq2lNSspzKQLurau7FsPt76PUKNLo4MHYqxSIlxUHjxpM5eDC7mzEiojzJyQ5iYtRxKEpxKGwC4ARgOdAMawTVLGBScSsTkT4isllEtonIwwXkGyIiRkSK5Q0VBeC2274gKurZHE5j9OjzSU19jJgY1ZhSlOJSWIyjDdDLGLMDQERGAcdEpFpR4xsiUh6YBvTGWtvjNxH5whizMVe+ysBIYEVRys+X7fPhh7sgI8398ay5F//rlPfYa7Wt79OhG8opq3z//XbefvsP5/5ZZ1Vm5857tXtKUbxAYS2O6sD+rB1bFTfFTi8qnbCWn91hiybOBga6yfc08AKQz5O+iGz/HE7stQLhrh9PyMqb6YAKlaGGitoFOw6HA4DevZsSERFGuXLC/PlXk5h4nzoNRfESnoyqai4iMS77ApwjIpWyEnK3GvLhLGCvy34ikGOmnIi0AxoaY+aLyAP5FSQitwO3A8TGxnpQNdBjErS6Pnv/9Tp584w4kDcti/DKEF4p/+NKQJk8eTljxiygfv1o9u27H4Djxx8KKmfhcDhITEwkLc0770SK4gkRERE0aNDAq/8LnjiOn3LtC9ZCTsbeNni2CqA7oSfnkC4RKYele3VTYQUZY94E3gRrVJUHdUOFKvbM7gIo7LgSdBw+nELTplM4fjwdgL//PklycgpVq0YGldMASExMpHLlyjRq1AiRQnTPFMULGGM4cuQIiYmJNG7c2GvlFuY4vNk3k4glW5JFA+Bvl/3KQGtgsf1PVRf4QkQGGGOKp4e1fxX8aa8z9fur8P3txSpGCU4GDvyQL77YkiPthRf+TdWqwRn4TktLU6eh+BURoWbNmhw65EVNPgpxHMaYzV6s6zesLq7GwD7gauAal7qSAWeXmIgsBh4ottMA+O7W7O0j6wvOm1t7SglafvttH507v0NmZnZjs2XLGDZtujuAVnmGOg3F3/jinvNoPQ5vYCvr3gMsADYBHxtjNojIUyIywCeVpp+0vs9zI4udpTsFlpjh4K98YoLifWrUqOh0GuHh5Vi5cnhIOA1FKS34zXEAGGO+NsY0N8Y0NcY8Y6c9YYz5wk3eniVqbbjS1s1DJUwD3aHE2LEL+eSTDQA0bRrDgAHNufHGBNLTH6djx7MKOVvJonz58rRt25bWrVtz2WWXcexY9lDzDRs2cOGFF9K8eXPOOeccnn76aVyVJb755hs6dOhAXFwcLVu25IEH8h2/EjD++OMPhg8fHmgzCuS5556jWbNmtGjRggULFrjN061bN9q2bUvbtm2pX78+gwYNch5bvHgxbdu2JT4+nh49egCQnp5O9+7dycjIcFue1zHGhPTnvPPOM3lISzbmxD5j/htrzCSMObrN+nb9TK2eva0ELdu2HTIRERMMjDci4wNtTonYuHFjoE0wUVFRzu0bbrjBTJgwwRhjTEpKimnSpIlZsGCBMcaYU6dOmT59+pipU6caY4z5888/TZMmTcymTZuMMcY4HA4zbdo0r9rmcDhKXMaQIUPMmjVr/FpnUdiwYYNJSEgwaWlpZseOHaZJkyYmIyOjwHMGDx5sZsyYYYwx5ujRoyYuLs7s3r3bGGPMgQMHnPnGjx9vZs6c6bYMd/cesMoU87nr8ZrjIUPSSvioG5xJLzhf2lH/2KMUmwsumM6yZXtzpGWNmAp5CltNsrjc79kgQ4AuXbqwbt06AGbNmkXXrl25+GJLUicyMpKpU6fSs2dP7r77bl544QUeffRRWrZsCUBYWBh33XVXnjJPnjzJvffey6pVqxARxo0bxxVXXEF0dDQnT1pdx3PnzmX+/Pm899573HTTTdSoUYM//viDtm3bMm/ePNasWUO1atUAaNasGcuWLaNcuXLceeed7NmzB4DJkyfTtWvXHHWfOHGCdevW0aZNGwBWrlzJ6NGjSU1NpVKlSrz77ru0aNGC9957j6+++oq0tDROnTrFjz/+yIsvvsjHH3/M6dOnufzyy3nyyScBGDRoEHv37iUtLY1Ro0Zx++0lG2Dz+eefc/XVV1OxYkUaN25Ms2bNWLlyJV26dHGb/8SJE/z444+8++67zr/T4MGDndMQatfOHgk6aNAgxo4dy7XXXlsiGz2hSI5DRKKBpsBGY4zDNyaVkMPrLacRFmGJFsacC1Ua5Z9fg+JBx4wZf3DzzV84BQkB/vWvBixbdmv+JylF4syZM/zwww/ceqt1TTds2MB5552XI0/Tpk05efIkx48fZ/369dx///2Flvv0009TtWpV/vzzTwCOHi38BW3Lli0sXLiQ8uXLk5mZybx587j55ptZsWIFjRo1ok6dOlxzzTWMGTOGCy64gD179nDJJZewadOmHOWsWrWK1q1bO/dbtmzJkiVLCAsLY+HChTzyyCN88sknAPz666+sW7eOGjVq8N1337F161ZWrlyJMYYBAwawZMkSunfvzvTp06lRowapqal07NiRK664gpo1a+aod8yYMSxatCjP77r66qt5+OGcykr79u2jc+fOzv0GDRqwb9++fK/NvHnzuOiii6hSpYrzWjkcDnr27MmJEycYNWoUN9xwAwCtW7fmt99+K/R6ewOPHIeIRAGvA9dhrcPRHNghIlOBJGPHK4KKFsOgz/T8jxfhzUzxHx999Cc33ZQd8oqICGP9+jto2jSmgLNCkADdf6mpqbRt25Zdu3Zx3nnn0bt3b8Dqss5v9E1RRuUsXLiQ2bNnO/erVy9cZOLKK6+kfHlrKtjQoUN56qmnuPnmm5k9ezZDhw51lrtxY/Y84+PHj3PixAkqV67sTEtKSqJWrVrO/eTkZG688Ua2bt2KiDhVBQB69+5NjRo1APjuu+/47rvvaNeuHWC1mrZu3Ur37t159dVXmTfPUsveu3cvW7duzeM4XnnlFc8uDuSIGWVR0PX98MMPc8RsMjIyWL16NT/88AOpqal06dKFzp0707x5c8qXL0+FChXyXBdf4Glw/DmgJfAvckqBfAdc6W2jlLLL0KHnkvV/9NBDXUhNfbT0OY0AUqlSJdasWcPu3btJT09n2rRpAMTHx5N7eYIdO3YQHR1N5cqViY+PZ/Xq1YWWn58Dck3LPXM+KirKud2lSxe2bdvGoUOH+Oyzzxg8eDAAmZmZ/Prrr6xZs4Y1a9awb9++PA/HSpUq5Sj78ccfp1evXqxfv54vv/wyxzHXOo0xjB071ln2tm3buPXWW1m8eDELFy7k119/Ze3atbRr187trP8xY8Y4A9mun4kTJ+bJ26BBA/buze5+TUxMpH79+nkvJHDkyBFWrlxJv379cpzfp08foqKiiImJoXv37qxdu9Z5/PTp00RERLgrzqt46jgGAvcaY5bjMtsb2Ag08bpVJWH5U9b3hnetfuSsjxKU/PbbPipUeJoePd51pm3adDfp6Y/w/PMqYe8rqlatyquvvsqkSZNwOBxce+21/PzzzyxcuBCwWiYjR47koYceAuDBBx/k2WefZcsWa8JlZmYmL7/8cp5yL774YqZOnercz+qqqlOnDps2bXJ2ReWHiHD55Zdz3333ERcX53y7z13umjVr8pwbFxfHtm3ZywUlJydz1lnWiLv33nsv3zovueQSpk+f7ozB7Nu3j4MHD5KcnEz16tWJjIzkr7/+Yvny5W7Pf+WVV5xOx/WTu5sKYMCAAcyePZvTp0+zc+dOtm7dSqdObgRWgTlz5tC/f/8cjmDgwIEsXbqUjIwMUlJSWLFiBXFx1jztI0eOUKtWLb8oJnjqOGoBB92kR7lJCyzHdwfaAsVDWrWaRqdOb+NwZLJkyR5SUqyuhBYtYoJOLqQ00q5dO9q0acPs2bOpVKkSn3/+ORMmTKBFixace+65dOzYkXvuuQeAhIQEJk+ezLBhw4iLi6N169YkJSXlKfOxxx7j6NGjtG7dmjZt2jj7/idOnEj//v258MILqVevXoF2DR06lJkzZzq7qQBeffVVVq1aRUJCAq1ateKNN97Ic17Lli1JTk7mxIkTADz00EOMHTuWrl27cubMmXzru/jii7nmmmvo0qUL5557LkOGDOHEiRP06dOHjIwMEhISePzxx3PEJopLfHw8V111Fa1ataJPnz5MmzbN2U136aWX8vff2WIas2fPZtiwYTnOj4uLo0+fPiQkJNCpUyeGDx/ujOssWrSISy/1T8y20BUAAURkKTDbGDNNRE4ACcaYnSIyBWhpjLnE14bmR54VALNaF73fhITb8qZnoTGOgPHii8t46KGFOdIGDGjO558Py+eM0sGmTZucb4eKb3jllVeoXLly0M/l8AWDBw/mueeeo0WLFnmOubv3fLYCoAuPAl+LSEv7nLtFJB7oCfQoTsU+p3zFQFug5OLw4RQaN57CyZPZQ6WrVKnA9u2jdGElxSuMGDGCOXPmBNoMv5Oens6gQYPcOg1f4FFXlTFmCZaDqI2lMzUYOAV0Ncas9J15ReSfLe7TC5vTofiFn3/encNpvPTSxSQnj1WnoXiNiIgIrr/++sIzljIqVKjgHJbrDzyex2GMWQ0MLTRjoEj9B2Zkj+GmnMtPe6913vyKX/jmm600b16dpk1jGDQojqZNq9tDbPNOHlMUJTTwdB5Hga+ExpiUgo77hbQj1kp9WTTqk719bKv1HR4NjpP+tauM4nA4aNJkKomJx4mICCM19VEAtm0bGWDLFEUpKZ6OqjoJnCjgE3xUqpE3rcck/9tRBhkz5lsqVHiWxMTjAKSlZeSYfKUoSmjjaVdV31z74UA7YDjwuFctUkKWzZsP07btG6SlZQ99rF07kp07R+vwWkUpRXgaHF+Q6zPfGPM08BDBMHM8MwPeb5Mzzd3kv4V3+teuMsRbb/1Oy5bTnE5DBGbPHsyBAw8SGalOI1hQWfXAUxJZ9cWLF1O1alXnsaeesiY8+1tWvaTrcawCLvSGISXi2HbISPU8vwobep2bbjrXud2tW0MyM8cxdOi5BZyhBIIsyZH169dTo0YNp+RIamoqAwYM4OGHH2bLli2sXbuWX375hddeew2A9evXc8899zBz5kw2bdrE+vXradLEu6IR3njoPfvss9x7771+rbMobNy4kdmzZ7Nhwwa+/fZb7rrrLreTE5cuXeqcgd6lSxen9ApYTiXr2BNPPAFYo6ouuugiPvroI7/8jmLLqotIBeBurOG5wcv9Br6/A9a9Cf9+A9rcEWiLSgUpKQ4aNnyZG25owyuv9CE8PJx33rmMf/+7KbGxVQNtXvCjsuoqq14MWfWCCDpZdRE5RE6NKgGqAemA/wYPK0HBtdd+wqxZ1hrukyev4IUXLiI8PJxbbmkfYMsUT1FZ9dCUVc+yvU2bNtSvX59JkyYRHx8PBKGsOvBYrv1M4BDwizHGnYZV8HDGAeveCrQVpYLly/fSrdu7ZGRkv0M0blwtgBaFMCqr7kRl1T2XVW/fvj27d+8mOjqar7/+mkGDBrF1qzXdwJ+y6oU6DhEJAxzA18aY/T61prh8X0D3064FOBtLFaL9Yk5ppEWL/7Blyz/O/fLlhe+/v55evRoH0CqlqGTFOJKTk+nfvz/Tpk1j5MiRxMfHs2TJkhx53cmqZ3UD5Ye3ZdUfe8x6Z82SVa9UqVKBv82drPq8efPYtWsXPXv2dFtnlqz6HXfkfI64yqpHRkbSs2fPfGXVPW1xFEdW3VVN2LXlcemll3LXXXdx+PBhYmKspQeCRlbdGJMBTAWCV/wp8Sf36Y0vhfTj2fvNLvePPaWMyZOX53Aagwa1ICPjCXUaIYzKqmcTSrLq+/fvd7ZaVq5cSWZmpvMaBaOs+kqg4FeNYGTwV9nbLYdBuGoieUpSUrKzaT96dGeio8OpUqUix449yLx5VwfYOsUbqKy6RSjJqs+dO9d5bUeOHMns2bOdrblglFUfgrUK4EvAaiyBQyfGmI3uzvMHHTp0MKuG5bMy2V2HYctca/5Gy2HQb5Z/jQtRLr74A77/fgf160ezb1/hAVHFM1RW3feorHpwyap/bH+/Zn9neRuxt8sXp3Kf85ouOVoUPvtsE1dcMYfMTOvP+/ffJ3E4HDrrWwkZVFbdP7LqnjqOEHxNKgcR9oif8hWg2aDAmhPEOBwOGjV6lb//zhaArFChHKtX365OQwkpVFbdPxToOERkOjDKGLPZT/Z4j/gboc/0QFsR9Eyf/ju33vpljrQ77zyP11/vHyCLFEUJdgprcdwIPEywKuAqJaZHj1jndp06UezdO0pbGYqiFEhho6p8pIvgRTL9qzVTGujQ4U0++WQDAE2bxnDzzW2YO3cI+/c/oE5DUZRC8STGEZgprp5y+pj79Kg6/rUjBHj99ZXcffc3GANXXjmXzExLqmD6dI3/KIriOZ7M49gvImcK+vjcyoLIPZy4/8cw8HPo/ERg7AlCkpNTqF79ee666xvn5YqMDNfFlcogKqseeEoiqw7WjPa2bdsSHx9Pjx49AP/LqmOMyfeDpUl1K3BFQZ+CyvD157y4WGMmkf1RcjBkyEcGxuf4PPnkokCbVSbZuHFjoE0wUVFRzu0bbrjBTJgwwRhjTEpKimnSpIlZsGCBMcaYU6dOmT59+pipU6caY4z5888/TZMmTcymTZuMMcY4HA4zbdo0r9rmcDhKXMaQIUPMmjVr/FpnUdiwYYNJSEgwaWlpZseOHaZJkyYmIyOjwHMGDx5sZsyYYYwx5ujRoyYuLs7s3r3bGGPMgQMHnPnGjx9vZs6c6bYMd/cesMoU87nrSVfVlybYhQwVtzz11GLmzs1WEG3atDqbNo3QOEYwoLLqKqteDFn1WbNmMXjwYGJjrUEttWvXduYNJll1r8Y3RKQPMAVrwuDbxpiJuY7fh7UcbQaW+u4txpjdBVsY2J6yYOaJJ3oyfvxPlCsnLFp0A926NQq0SUqQoLLqoSmrvmXLFhwOBz179uTEiROMGjXKOX8jmGTVvfZaJCLlgWlAbyAR+E1EvjA55Ur+ADoYY1JEZATwAjA0b2kumMzs7fpd889XBnjqqcWMG/cT3bo1ZMmSWwA4ffoRbWEEIyqr7kRl1T2XVc/IyGD16tX88MMPpKam0qVLFzp37kzz5s2DR1bdGFPSpWVd6QRsM8bsABCR2cBAwHk3GGNc3fZy4Loi1TDs55JbGYIkJSXTrNlUUlKswNjSpdmyzeo0FFdUVj1vnSaEZNUbNGhATEwMUVFRREVF0b17d9auXUvz5s2BIJJV9yJnAXtd9hPttPy4FfjG3QERuV1EVonIqpSUU+6ylBkuvHAG9etPdjoNEXjttb4BtkoJdlRWPZtQklUfOHAgS5cuJSMjg5SUFFasWOEULwxGWXVv4K495ra9LiLXAR2AF90dN8a8aYzpYIzpECl53wDKAl99tZly5Z5k0aJdzrT27euSmTmOESPc34iK4orKqluEkqx6XFwcffr0ISEhgU6dOjF8+HBnXCfoZNW9UpFIF2C8MeYSe38sgDHmuVz5/g38B+jhyWiuDg3FrBpt7wSo3zgQfPLJBoYMmQtkCxK2bq2THoMZlVX3PSqr7h9ZdX+2OH4DzhGRxiJSAbga+MI1g4i0A/4LDNAhwHm5556v2b79MABXXBFP+/Z1ufvujpw+/bg6DUXBklWvWDF4Fyv1Ff6WVfdbiwNARC4FJmMNx51ujHlGRJ7CmojyhYgsBM4FR2+pTgAAEZVJREFUstrAe4wxAwoqsyy0ONasSaJTp7dxODKJiAgjNfXRQJukFANtcSiBIlALOXkFY8zXwNe50p5w2f63P+0JBdq1e4M1aw449x0OnbeiKEpg8WdXlVIEpk1bQblyT+ZwGr17NyEjQzW4FEUJLH5tcSieMWbMt0yevMK5HxUVztatd1OvXtUAWqUoimKhLY4g5IUXLnJuT5jQi5MnH1GnoShK0KCOIwhYtGgnYWFPMWbMt4A123vlyuEYM45HH+0eYOuU0oTKqgeeksiqL168mKpVqzqPPfXUU0CQyaqHwue8BqErqZ6enm4aN56cQ/JcKb2orHrBqKy6e1xl1RctWmT69evnNl+wyaorPuCxx37kmWeW5ki75prW+eRWSh0qq66y6sWQVS+IYJJVV7zMnj3JtGw5ldTU7CZljRoR7N17H5GRKkio+AeVVQ9NWfUs29u0aUP9+vWZNGkS8fHWEtDBJKuueJnXX//N6TRE4O23L+OWW9oH2CrF76isuhOVVfdcVr19+/bs3r2b6Ohovv76awYNGsTWrVsB/CqrrsFxP/DVV5udN+1zz/2bGjUi6NSpPpmZ49RpKH4lS1Z99+7dpKenM23aNMAS31u1alWOvO5k1QsjPwdUXFn1wYMHA9my6lnKs/v27cvzcMxPVn39+vV8+eWXOY65k1XPKnvbtm3ceuutOWTV165dS7t27fKVVc8KVrt+Jk6cmCdvcWTV+/Xr50yrUqUK0dHRgCWK6HA4OHz4sPN4aZRVL3OkpDioU+dF+vefTaNGrzrTjxz5P1asuC2AlillHZVVzyaUZNX379/vbLWsXLmSzMxM5zUqrbLqZYrbbvuCqKhnOXgwBYCkpJMBtkhRcqKy6hahJKs+d+5c57UdOXIks2fPdrbmSqWsuq8INpFDV0HCLBo0qMKOHffoanxlHBU59D0qq176ZNVLPWPGfEu7dm86nUa5csL8+Vezd+8YdRqK4gdUVt0/surqOLzIPfdkO+8+fZpy5swT9Ovnnz+koigQERHB9ddfH2gz/E6FChW44YYb/FZf6XEcjf3Tt+fK4cMpVKs2kU8+2QBA06YxTJjQi0OHHuSbb67zuz2Koij+oPTM4xj8lV+ru+yyWcyfb42fvvLKuWRmWpNwVFtKUZTSTulxHH7i+++306fP/8jMzA7Et2wZE0CLFEVR/Is6Dg9xOBw0azaVPXuOO9PCw8uxbNktdOx4VgAtUxRF8S+lJ8bhY2688fMcTuPGGxNIT39cnYYSUqiseuApiaw6WNLqbdu2JT4+nh49egAqq158WXUfcOzYqRz75cs/aWJinjenTqX7pD6ldKOy6gWjsurucZVVP3r0qImLizO7d+82xhhz4MABZz6VVQ8CunZ9h19+SaR791h++ulmAF3vW/EeKquusurFkFWfNWsWgwcPJjY2FoDatWs786qsegCZMeMPbr75C7Ja6EuW7AmsQYriA1RWPTRl1bds2YLD4aBnz56cOHGCUaNGOedvqKx6AEhJcRAb+wpHjqQ60yIiwli//o4AWqWUWlRW3YnKqnsuq56RkcHq1av54YcfSE1NpUuXLnTu3JnmzZv7VVZdHQcwfvyPPPlkztX4HnqoC88/f3GALFIU35Alq56cnEz//v2ZNm0aI0eOJD4+niVLluTI605WPasbKD/yc0DFlVV/7LHHgGxZ9UqVKhX429zJqs+bN49du3bRs2dPt3UaW1b9jjtyviS6yqpHRkbSs2fPfGXVPW1xFEdW3VVNuEGDBsTExBAVFUVUVBTdu3dn7dq1NG/eHFBZdb9y7rl1nNuxsVVJT39EnYZSqlFZ9WxCSVZ94MCBLF26lIyMDFJSUlixYoVTvFBl1f1A+/ZvsH27tQDKFVfEc/HFTfjuu+vYvXu0ChIqZQKVVbcIJVn1uLg4+vTpQ0JCAp06dWL48OHOuI7KqhcBp6y6h33GL764jIcest6qIiLCSE191IfWKUo2Kqvue1RW3T+y6mUmxnH4cAqNG0/h5Ml0Z1pERJn5+YpSJhgxYgRz5swJtBl+R2XVfUDfvjOpVevFHE7jlVcu4ejR/wugVYqieBuVVfcPpf6Vu1+///Htt9ud+/HxtVi/Pu/EJUXxBwUNe1UUX+CLcESpb3F89tlVgCVI+Mcft6vTUAJGREQER44c8ck/8v+3d/5BU1VlHP98BRREFIsyx1fUQknD8WeIk2YmmuEIZo7izyyCybQZMvuBZeKPxlHGMNPJEBWRFH/kDywZ0tRAChXzF5Iy6MuPVy0UEQVeUODpj3OWvS677959effuu8vzmbmz9+w999znPrt7nj3POfd5HKcYZsby5cs7fIluY4w4dsk/8XrRRTO49to5jB59GOPHH0+3bt1Yvfpitt/eV0o5taWpqYmWlhbeeeedWovibEV0796dpqamDm2zMVZVzZzB6xsPZsCAm1i7Nr/szuzSGkrmOI7TedmSVVWZuqokHS/pNUkLJW32dIyk7STdHY8/LWnPNO0ed8Zc+vW7cZPRkGDq1JM7VHbHcRwnkJmrSlIX4EbgWKAFeFbSNDObn6g2AlhhZv0kDQeuBk7bvLU8ze/15rmWfAyaZDRbx3Ecp+PJco5jILDQzN4AkDQVGAYkDccwYGzcvw+4QZKsDX/aijU9AKNHj268+uoF9O27U1WEdxzHcQJZGo7dgKWJcgtwWKk6ZrZe0krg08C7yUqSRgG5wPjr4LJ5ra2wxx6/qorgdUQfCnS1FeO6yOO6yOO6yNPupwWzNBzFFq8XjiTS1MHMJgATACTNbe8ET6PhusjjusjjusjjusgjaW57z81ycrwF2D1RbgLeKlVHUldgJ+C9TKRzHMdxUpGl4XgW2FvSXpK2BYYD0wrqTAO+E/dPAR5va37DcRzHyZ7MXFVxzuICYAbQBbjVzF6RdDkhafo04BbgDkkLCSON4SmanlA1oesP10Ue10Ue10Ue10Weduui7h8AdBzHcbKl4WNVOY7jOB2LGw7HcRynIurGcFQrXEk9kkIXF0qaL+klSX+XtEct5MyCcrpI1DtFkklq2KWYaXQh6dT43XhF0p1Zy5gVKX4jfSU9Ien5+DvJJudqxki6VdIySfNKHJek66OeXpJ0cKqGzazTb4TJ9NeBzwPbAi8C+xXU+SFwU9wfDtxda7lrqIujge3j/nlbsy5ivV7ATGAOcGit5a7h92Jv4Hlg51j+bK3lrqEuJgDnxf39gEW1lrtKuvgqcDAwr8TxIcB0wjN0g4Cn07RbLyOOTeFKzOwjIBeuJMkw4Pa4fx9wjBozY05ZXZjZE2a2JhbnEJ6ZaUTSfC8ArgCuAdZmKVzGpNHFSOBGM1sBYGbLMpYxK9LowoAd4/5ObP5MWUNgZjNp+1m4YcBkC8wBekvatVy79WI4ioUr2a1UHTNbD+TClTQaaXSRZAThH0UjUlYXkg4Cdjezv2QpWA1I873YB9hH0mxJcyQdn5l02ZJGF2OBsyS1AI8AP8pGtE5Hpf0JUD+JnDosXEkDkPo+JZ0FHAocVVWJakebupC0DTAeODcrgWpImu9FV4K76muEUegsSQPM7P0qy5Y1aXRxOjDJzK6VdDjh+bEBZrax+uJ1KtrVb9bLiMPDleRJowskDQZ+CQw1s3UZyZY15XTRCxgAPClpEcGHO61BJ8jT/kYeMrOPzawZeI1gSBqNNLoYAdwDYGb/AroTAiBubaTqTwqpF8Ph4UrylNVFdM/8kWA0GtWPDWV0YWYrzayPme1pZnsS5nuGmlm7g7t1YtL8Rh4kLJxAUh+C6+qNTKXMhjS6WAIcAyBpX4Lh2Bpz+k4DzomrqwYBK83s7XIn1YWryqoXrqTuSKmLccAOwL1xfcASMxtaM6GrREpdbBWk1MUM4DhJ84ENwE/NbHntpK4OKXXxE+BmST8muGbObcQ/mpLuIrgm+8T5nEuBbgBmdhNhfmcIsBBYA6TKguchRxzHcZyKqBdXleM4jtNJcMPhOI7jVIQbDsdxHKci3HA4juM4FeGGw3Ecx6kINxxOp0RS1xjN9qRay9JeJPWL93BgmXpTJD2YlVyOs6W44XCqgqRJsdMs3NrsRLNE0pUJuTZIWiJpgqSOinHWDOwKzIvXGxyv1bug3vlUOSxK4tq5bXkMuT+ownbq3qA7W44bDqeaPEboOJNb0bwANeQVglx9gQuAbwGTOqJhM9tgZv+NQTfbqrcyw3hR/Qn3ezSwApgenyJ3nNS44XCqybrYcSa39QCShkh6StL7kt6TNF1S/1INxZAIYyUtlrRO0tuSbksc30bSGElvSGqV9LKk01PIuD7K9WZ8ovgG4JuStovtHiDp8djmcoXEOLlw3MnjH0j6UNILko6Kxza5qiT1Ax6Np62I70+M9Ta5qiSdL+mtGKAxef/3SPpzojxM0r8lrZXULOmKGF6jHMvi/b4E/AboDXw50e5hkh6V9K6klZJmSRqYOH9RfH0g3sPCDpDJqTPccDi1oifwW0KndTQh3MHDkrqVqH8qMBr4ASEw31BCTKIcVwHnEBJX7QdcDdyiykOHtxJ+F10k7UAIW7GCkOPh24TEODcn6k8lhKUeCBwEXE7xvB/N8R4g/6//wiL1phKC7X0990Y0VCcCU2J5CDAZuB74EiFg3/B47VRI6knePfZx4lAvQl6bIwlBIV8mjEp2jsdzRua78R4GdZRMTh1R6wxVvjXmRnD3rAdWJbbpbdTfEdgIDIrlroQYQifF8s+A+UDXIuf2InTWhxe8fwMwrY1rXgm8kCjvS8gcNzuWzyPEPeuZqDM4yrVXLK8GzizRfr9Y98CCc3sX1JsCPJgoPwzcliifG+XYNpb/CYwpaOMUQoC6Uveau3bus7C4PV1Mp4nzRAj+N7zY55KoV7FMvtXv5iMOp5rMBA5MbN/PHZC0t6S7omvpA0IoZxHmGopxN8FANEuaqJBDPOcGGQBsBzwqaVVuI2S8+0IZGfeP9VsJ8x2LgLPjsX2BF81sdaL+7MQxCKOmSZIek3SxpH3KXC8NU4CTJXWP5TOBey1kswM4BPh1wb1OBnaU9JkybR9JSCV6OmEUdI4l5mAk7RIXCCyQtBL4kJAQrdTnkmNLZHLqjLqIjuvULWvMbGGJY38ldFwjCUZjI2FEUdQnbmaLY6c8mBAOezxwiUISntwfoBOANwtO/Yi2eY3g9toAvGWfzF0iNk9qY8lXM7tE0h2ECKPHAWMljTSz22k/DxFyYp8o6SmCKy/p8hEhyun9Rc4tl4Om2cJE/ILornpA0gFmlnNXTSHMe4wGFgPrgCcp8bl0kExOneGGw8kcSbsQ5ilGmNms+N5Aysy5mVkrwY3zsKRxhCQ0g4DnCAair5n9o0JxPmrDuM0HzpTUMzHqOCK+/ich1wJgAXCdpJsJ/v1ihiNnxLq0JZCZrZV0P2Gk0US4z6cSVZ4H+rchd1omAZcQXHLXx/eOAEaZ2SMACvmnP5c4Z0PcCu+ho2Ry6gA3HE4teJfwL3SUpLcJneM4wqijKJK+F3efIcwrnEGY1F1oZisljQfGS+oCzCLMmRxOMAwT2ynnHYR/0bdLGkuYtP4DcI+ZLYqT51cB9xFcXLsCXyG46IqxOL6eIGk60Gpmq0rUnULIldAf+JOZJUc+lwEPSVoK3EvoyPcHDjGzX6S9OTPbIOl3wBhJE81sDcEAni1pLsE1OI4w6sidY5KWAMdImk1YObeio2Ry6gOf43Ayx8w2AKcRfO3zgN8DY/jk6p5C3gdGEf55vwwMI0zQLonHxxAmu39OGA38DTiJ4A5rr5yrgG8AnyKs4LqfYJRGxirrCcZkMqHDzR2/qER7iwkd7DXA/4Dr2rj8E8Ay4IvE1VSJdh4hrLI6Nsr1DGHxwBIqZyLQg/AMC4SJ+N6EEcSdhEySSwvOuTBee2m8fkfL5HRyPJGT4ziOUxE+4nAcx3Eqwg2H4ziOUxFuOBzHcZyKcMPhOI7jVIQbDsdxHKci3HA4juM4FeGGw3Ecx6kINxyO4zhORfwf96IEbhM2JNIAAAAASUVORK5CYII=\n",
498
      "text/plain": [
499
       "<Figure size 432x288 with 1 Axes>"
500
      ]
501
     },
502
     "metadata": {
503
      "needs_background": "light"
504
     },
505
     "output_type": "display_data"
506
    },
507
    {
508
     "data": {
509
      "image/png": "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\n",
510
      "text/plain": [
511
       "<Figure size 432x288 with 1 Axes>"
512
      ]
513
     },
514
     "metadata": {
515
      "needs_background": "light"
516
     },
517
     "output_type": "display_data"
518
    },
519
    {
520
     "data": {
521
      "image/png": "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\n",
522
      "text/plain": [
523
       "<Figure size 432x288 with 1 Axes>"
524
      ]
525
     },
526
     "metadata": {
527
      "needs_background": "light"
528
     },
529
     "output_type": "display_data"
530
    }
531
   ],
532
   "source": [
533
    "oneliner.repurpose(target = target, \n",
534
    "                    target_name = target_name, \n",
535
    "                    train_drug = train_drug,\n",
536
    "                    train_target = train_target,\n",
537
    "                    train_y = train_y,\n",
538
    "                    X_repurpose = X_repurpose,\n",
539
    "                    drug_names = drug_names,\n",
540
    "                    save_dir = './save_folder',\n",
541
    "                    finetune_batch_size = 128,\n",
542
    "                    finetune_LR = 0.001,\n",
543
    "                    finetune_epochs=10,\n",
544
    "                    split='HTS',\n",
545
    "                    convert_y = False,\n",
546
    "                    frac=[0.8,0.1,0.1],\n",
547
    "                    pretrained = True,\n",
548
    "                    pretrained_dir = './save_folder/pretrained_models/DeepPurpose_BindingDB/',\n",
549
    "                    agg = 'max_effect')"
550
   ]
551
  },
552
  {
553
   "cell_type": "code",
554
   "execution_count": null,
555
   "metadata": {},
556
   "outputs": [],
557
   "source": []
558
  }
559
 ],
560
 "metadata": {
561
  "kernelspec": {
562
   "display_name": "Python 3",
563
   "language": "python",
564
   "name": "python3"
565
  },
566
  "language_info": {
567
   "codemirror_mode": {
568
    "name": "ipython",
569
    "version": 3
570
   },
571
   "file_extension": ".py",
572
   "mimetype": "text/x-python",
573
   "name": "python",
574
   "nbconvert_exporter": "python",
575
   "pygments_lexer": "ipython3",
576
   "version": "3.7.7"
577
  }
578
 },
579
 "nbformat": 4,
580
 "nbformat_minor": 4
581
}