Switch to unified view

a b/demo/kgwas_simulation.ipynb
1
{
2
 "cells": [
3
  {
4
   "cell_type": "markdown",
5
   "metadata": {},
6
   "source": [
7
    "## Reproducing Simulation result\n",
8
    "### Null simulation\n",
9
    "We share the pre-computed null simulation results for GWAS/FINDOR/GWAS in the data folder. We first load it via:"
10
   ]
11
  },
12
  {
13
   "cell_type": "code",
14
   "execution_count": null,
15
   "metadata": {},
16
   "outputs": [],
17
   "source": [
18
    "import pandas as pd\n",
19
    "import multiprocessing\n",
20
    "from tqdm import tqdm\n",
21
    "import numpy as np\n",
22
    "import sys\n",
23
    "sys.path.append('../')\n",
24
    "from kgwas.eval_utils import get_clumps_gold_label, get_meta_clumps, get_mega_clump_query, get_curve\n",
25
    "\n",
26
    "data_path = '/dfs/project/datasets/20220524-ukbiobank/data/kgwas_data/'\n",
27
    "snp_info = pd.read_csv(data_path + 'misc_data/snp_qc_info.csv')\n",
28
    "\n",
29
    "df_gwas = pd.read_csv(data_path + 'model_pred/simulation/null_simulation_gwas.csv')\n",
30
    "df_kgwas = pd.read_csv(data_path + 'model_pred/simulation/null_simulation_kgwas.csv')\n",
31
    "df_findor = pd.read_csv(data_path + 'model_pred/simulation/null_simulation_findor.csv')\n",
32
    "\n",
33
    "df_gwas = snp_info.merge(df_gwas, left_on = 'SNP', right_on = 'ID')\n",
34
    "df_kgwas = snp_info.merge(df_kgwas, left_on = 'SNP', right_on = 'ID')\n",
35
    "df_findor = snp_info.merge(df_findor)"
36
   ]
37
  },
38
  {
39
   "cell_type": "markdown",
40
   "metadata": {},
41
   "source": [
42
    "This dataframe saves p-values for all the 500 seeds:"
43
   ]
44
  },
45
  {
46
   "cell_type": "code",
47
   "execution_count": 11,
48
   "metadata": {},
49
   "outputs": [
50
    {
51
     "data": {
52
      "text/html": [
53
       "<div>\n",
54
       "<style scoped>\n",
55
       "    .dataframe tbody tr th:only-of-type {\n",
56
       "        vertical-align: middle;\n",
57
       "    }\n",
58
       "\n",
59
       "    .dataframe tbody tr th {\n",
60
       "        vertical-align: top;\n",
61
       "    }\n",
62
       "\n",
63
       "    .dataframe thead th {\n",
64
       "        text-align: right;\n",
65
       "    }\n",
66
       "</style>\n",
67
       "<table border=\"1\" class=\"dataframe\">\n",
68
       "  <thead>\n",
69
       "    <tr style=\"text-align: right;\">\n",
70
       "      <th></th>\n",
71
       "      <th>CHR</th>\n",
72
       "      <th>SNP</th>\n",
73
       "      <th>POS</th>\n",
74
       "      <th>A1</th>\n",
75
       "      <th>A2</th>\n",
76
       "      <th>N</th>\n",
77
       "      <th>AF1</th>\n",
78
       "      <th>P_seed1</th>\n",
79
       "      <th>P_seed2</th>\n",
80
       "      <th>P_seed3</th>\n",
81
       "      <th>...</th>\n",
82
       "      <th>P_seed491</th>\n",
83
       "      <th>P_seed492</th>\n",
84
       "      <th>P_seed493</th>\n",
85
       "      <th>P_seed494</th>\n",
86
       "      <th>P_seed495</th>\n",
87
       "      <th>P_seed496</th>\n",
88
       "      <th>P_seed497</th>\n",
89
       "      <th>P_seed498</th>\n",
90
       "      <th>P_seed499</th>\n",
91
       "      <th>P_seed500</th>\n",
92
       "    </tr>\n",
93
       "  </thead>\n",
94
       "  <tbody>\n",
95
       "    <tr>\n",
96
       "      <th>0</th>\n",
97
       "      <td>1</td>\n",
98
       "      <td>rs3131962</td>\n",
99
       "      <td>756604</td>\n",
100
       "      <td>A</td>\n",
101
       "      <td>G</td>\n",
102
       "      <td>155603</td>\n",
103
       "      <td>0.129731</td>\n",
104
       "      <td>1.039910</td>\n",
105
       "      <td>0.966660</td>\n",
106
       "      <td>1.015493</td>\n",
107
       "      <td>...</td>\n",
108
       "      <td>1.039910</td>\n",
109
       "      <td>0.110102</td>\n",
110
       "      <td>0.370526</td>\n",
111
       "      <td>0.991077</td>\n",
112
       "      <td>1.064326</td>\n",
113
       "      <td>0.202375</td>\n",
114
       "      <td>1.015493</td>\n",
115
       "      <td>0.435631</td>\n",
116
       "      <td>1.039910</td>\n",
117
       "      <td>0.673215</td>\n",
118
       "    </tr>\n",
119
       "    <tr>\n",
120
       "      <th>1</th>\n",
121
       "      <td>1</td>\n",
122
       "      <td>rs12562034</td>\n",
123
       "      <td>768448</td>\n",
124
       "      <td>A</td>\n",
125
       "      <td>G</td>\n",
126
       "      <td>155612</td>\n",
127
       "      <td>0.105188</td>\n",
128
       "      <td>0.478095</td>\n",
129
       "      <td>0.069428</td>\n",
130
       "      <td>1.015493</td>\n",
131
       "      <td>...</td>\n",
132
       "      <td>0.232310</td>\n",
133
       "      <td>0.008637</td>\n",
134
       "      <td>1.039910</td>\n",
135
       "      <td>0.735306</td>\n",
136
       "      <td>0.432725</td>\n",
137
       "      <td>1.039910</td>\n",
138
       "      <td>1.015493</td>\n",
139
       "      <td>0.769550</td>\n",
140
       "      <td>1.039910</td>\n",
141
       "      <td>0.076054</td>\n",
142
       "    </tr>\n",
143
       "    <tr>\n",
144
       "      <th>2</th>\n",
145
       "      <td>1</td>\n",
146
       "      <td>rs4040617</td>\n",
147
       "      <td>779322</td>\n",
148
       "      <td>G</td>\n",
149
       "      <td>A</td>\n",
150
       "      <td>155423</td>\n",
151
       "      <td>0.127632</td>\n",
152
       "      <td>1.039910</td>\n",
153
       "      <td>0.966660</td>\n",
154
       "      <td>1.015493</td>\n",
155
       "      <td>...</td>\n",
156
       "      <td>1.039910</td>\n",
157
       "      <td>0.385465</td>\n",
158
       "      <td>0.051355</td>\n",
159
       "      <td>0.991077</td>\n",
160
       "      <td>1.064326</td>\n",
161
       "      <td>1.039910</td>\n",
162
       "      <td>1.015493</td>\n",
163
       "      <td>0.991077</td>\n",
164
       "      <td>0.094461</td>\n",
165
       "      <td>1.015493</td>\n",
166
       "    </tr>\n",
167
       "    <tr>\n",
168
       "      <th>3</th>\n",
169
       "      <td>1</td>\n",
170
       "      <td>rs79373928</td>\n",
171
       "      <td>801536</td>\n",
172
       "      <td>G</td>\n",
173
       "      <td>T</td>\n",
174
       "      <td>155775</td>\n",
175
       "      <td>0.014890</td>\n",
176
       "      <td>1.039910</td>\n",
177
       "      <td>0.966660</td>\n",
178
       "      <td>1.015493</td>\n",
179
       "      <td>...</td>\n",
180
       "      <td>1.039910</td>\n",
181
       "      <td>1.015493</td>\n",
182
       "      <td>1.039910</td>\n",
183
       "      <td>0.991077</td>\n",
184
       "      <td>1.064326</td>\n",
185
       "      <td>0.102502</td>\n",
186
       "      <td>1.015493</td>\n",
187
       "      <td>0.230932</td>\n",
188
       "      <td>1.039910</td>\n",
189
       "      <td>0.128050</td>\n",
190
       "    </tr>\n",
191
       "    <tr>\n",
192
       "      <th>4</th>\n",
193
       "      <td>1</td>\n",
194
       "      <td>rs11240779</td>\n",
195
       "      <td>808631</td>\n",
196
       "      <td>G</td>\n",
197
       "      <td>A</td>\n",
198
       "      <td>154651</td>\n",
199
       "      <td>0.225226</td>\n",
200
       "      <td>0.649663</td>\n",
201
       "      <td>0.966660</td>\n",
202
       "      <td>0.323705</td>\n",
203
       "      <td>...</td>\n",
204
       "      <td>1.039910</td>\n",
205
       "      <td>1.015493</td>\n",
206
       "      <td>0.025025</td>\n",
207
       "      <td>0.991077</td>\n",
208
       "      <td>1.064326</td>\n",
209
       "      <td>0.782647</td>\n",
210
       "      <td>0.794389</td>\n",
211
       "      <td>0.991077</td>\n",
212
       "      <td>0.154599</td>\n",
213
       "      <td>0.256710</td>\n",
214
       "    </tr>\n",
215
       "    <tr>\n",
216
       "      <th>...</th>\n",
217
       "      <td>...</td>\n",
218
       "      <td>...</td>\n",
219
       "      <td>...</td>\n",
220
       "      <td>...</td>\n",
221
       "      <td>...</td>\n",
222
       "      <td>...</td>\n",
223
       "      <td>...</td>\n",
224
       "      <td>...</td>\n",
225
       "      <td>...</td>\n",
226
       "      <td>...</td>\n",
227
       "      <td>...</td>\n",
228
       "      <td>...</td>\n",
229
       "      <td>...</td>\n",
230
       "      <td>...</td>\n",
231
       "      <td>...</td>\n",
232
       "      <td>...</td>\n",
233
       "      <td>...</td>\n",
234
       "      <td>...</td>\n",
235
       "      <td>...</td>\n",
236
       "      <td>...</td>\n",
237
       "      <td>...</td>\n",
238
       "    </tr>\n",
239
       "    <tr>\n",
240
       "      <th>524827</th>\n",
241
       "      <td>22</td>\n",
242
       "      <td>rs73174435</td>\n",
243
       "      <td>51174939</td>\n",
244
       "      <td>T</td>\n",
245
       "      <td>C</td>\n",
246
       "      <td>155675</td>\n",
247
       "      <td>0.053374</td>\n",
248
       "      <td>0.007886</td>\n",
249
       "      <td>0.037670</td>\n",
250
       "      <td>1.015493</td>\n",
251
       "      <td>...</td>\n",
252
       "      <td>0.178205</td>\n",
253
       "      <td>0.854147</td>\n",
254
       "      <td>0.203594</td>\n",
255
       "      <td>0.991077</td>\n",
256
       "      <td>1.064326</td>\n",
257
       "      <td>0.573911</td>\n",
258
       "      <td>1.015493</td>\n",
259
       "      <td>0.146576</td>\n",
260
       "      <td>0.722465</td>\n",
261
       "      <td>1.015493</td>\n",
262
       "    </tr>\n",
263
       "    <tr>\n",
264
       "      <th>524828</th>\n",
265
       "      <td>22</td>\n",
266
       "      <td>rs3810648</td>\n",
267
       "      <td>51175626</td>\n",
268
       "      <td>G</td>\n",
269
       "      <td>A</td>\n",
270
       "      <td>154836</td>\n",
271
       "      <td>0.060984</td>\n",
272
       "      <td>1.039910</td>\n",
273
       "      <td>0.966660</td>\n",
274
       "      <td>1.015493</td>\n",
275
       "      <td>...</td>\n",
276
       "      <td>1.039910</td>\n",
277
       "      <td>0.224030</td>\n",
278
       "      <td>1.039910</td>\n",
279
       "      <td>0.991077</td>\n",
280
       "      <td>0.002261</td>\n",
281
       "      <td>1.039910</td>\n",
282
       "      <td>0.056953</td>\n",
283
       "      <td>0.389743</td>\n",
284
       "      <td>1.039910</td>\n",
285
       "      <td>0.930820</td>\n",
286
       "    </tr>\n",
287
       "    <tr>\n",
288
       "      <th>524829</th>\n",
289
       "      <td>22</td>\n",
290
       "      <td>rs5771002</td>\n",
291
       "      <td>51183255</td>\n",
292
       "      <td>A</td>\n",
293
       "      <td>G</td>\n",
294
       "      <td>153451</td>\n",
295
       "      <td>0.334621</td>\n",
296
       "      <td>1.039910</td>\n",
297
       "      <td>0.966660</td>\n",
298
       "      <td>1.015493</td>\n",
299
       "      <td>...</td>\n",
300
       "      <td>1.039910</td>\n",
301
       "      <td>1.015493</td>\n",
302
       "      <td>0.043223</td>\n",
303
       "      <td>0.991077</td>\n",
304
       "      <td>1.064326</td>\n",
305
       "      <td>1.039910</td>\n",
306
       "      <td>1.015493</td>\n",
307
       "      <td>0.991077</td>\n",
308
       "      <td>1.039910</td>\n",
309
       "      <td>0.395818</td>\n",
310
       "    </tr>\n",
311
       "    <tr>\n",
312
       "      <th>524830</th>\n",
313
       "      <td>22</td>\n",
314
       "      <td>rs3865764</td>\n",
315
       "      <td>51185848</td>\n",
316
       "      <td>G</td>\n",
317
       "      <td>A</td>\n",
318
       "      <td>155442</td>\n",
319
       "      <td>0.050797</td>\n",
320
       "      <td>0.299359</td>\n",
321
       "      <td>0.966660</td>\n",
322
       "      <td>1.015493</td>\n",
323
       "      <td>...</td>\n",
324
       "      <td>1.039910</td>\n",
325
       "      <td>1.015493</td>\n",
326
       "      <td>1.039910</td>\n",
327
       "      <td>0.991077</td>\n",
328
       "      <td>1.064326</td>\n",
329
       "      <td>0.280792</td>\n",
330
       "      <td>0.584575</td>\n",
331
       "      <td>0.844995</td>\n",
332
       "      <td>1.039910</td>\n",
333
       "      <td>0.281122</td>\n",
334
       "    </tr>\n",
335
       "    <tr>\n",
336
       "      <th>524831</th>\n",
337
       "      <td>22</td>\n",
338
       "      <td>rs142680588</td>\n",
339
       "      <td>51193629</td>\n",
340
       "      <td>G</td>\n",
341
       "      <td>A</td>\n",
342
       "      <td>155653</td>\n",
343
       "      <td>0.075331</td>\n",
344
       "      <td>0.028412</td>\n",
345
       "      <td>0.513042</td>\n",
346
       "      <td>1.015493</td>\n",
347
       "      <td>...</td>\n",
348
       "      <td>1.039910</td>\n",
349
       "      <td>0.699220</td>\n",
350
       "      <td>1.039910</td>\n",
351
       "      <td>0.361852</td>\n",
352
       "      <td>1.064326</td>\n",
353
       "      <td>0.288267</td>\n",
354
       "      <td>0.549154</td>\n",
355
       "      <td>0.991077</td>\n",
356
       "      <td>0.287155</td>\n",
357
       "      <td>1.015493</td>\n",
358
       "    </tr>\n",
359
       "  </tbody>\n",
360
       "</table>\n",
361
       "<p>524832 rows × 507 columns</p>\n",
362
       "</div>"
363
      ],
364
      "text/plain": [
365
       "        CHR          SNP       POS A1 A2       N       AF1   P_seed1  \\\n",
366
       "0         1    rs3131962    756604  A  G  155603  0.129731  1.039910   \n",
367
       "1         1   rs12562034    768448  A  G  155612  0.105188  0.478095   \n",
368
       "2         1    rs4040617    779322  G  A  155423  0.127632  1.039910   \n",
369
       "3         1   rs79373928    801536  G  T  155775  0.014890  1.039910   \n",
370
       "4         1   rs11240779    808631  G  A  154651  0.225226  0.649663   \n",
371
       "...     ...          ...       ... .. ..     ...       ...       ...   \n",
372
       "524827   22   rs73174435  51174939  T  C  155675  0.053374  0.007886   \n",
373
       "524828   22    rs3810648  51175626  G  A  154836  0.060984  1.039910   \n",
374
       "524829   22    rs5771002  51183255  A  G  153451  0.334621  1.039910   \n",
375
       "524830   22    rs3865764  51185848  G  A  155442  0.050797  0.299359   \n",
376
       "524831   22  rs142680588  51193629  G  A  155653  0.075331  0.028412   \n",
377
       "\n",
378
       "         P_seed2   P_seed3  ...  P_seed491  P_seed492  P_seed493  P_seed494  \\\n",
379
       "0       0.966660  1.015493  ...   1.039910   0.110102   0.370526   0.991077   \n",
380
       "1       0.069428  1.015493  ...   0.232310   0.008637   1.039910   0.735306   \n",
381
       "2       0.966660  1.015493  ...   1.039910   0.385465   0.051355   0.991077   \n",
382
       "3       0.966660  1.015493  ...   1.039910   1.015493   1.039910   0.991077   \n",
383
       "4       0.966660  0.323705  ...   1.039910   1.015493   0.025025   0.991077   \n",
384
       "...          ...       ...  ...        ...        ...        ...        ...   \n",
385
       "524827  0.037670  1.015493  ...   0.178205   0.854147   0.203594   0.991077   \n",
386
       "524828  0.966660  1.015493  ...   1.039910   0.224030   1.039910   0.991077   \n",
387
       "524829  0.966660  1.015493  ...   1.039910   1.015493   0.043223   0.991077   \n",
388
       "524830  0.966660  1.015493  ...   1.039910   1.015493   1.039910   0.991077   \n",
389
       "524831  0.513042  1.015493  ...   1.039910   0.699220   1.039910   0.361852   \n",
390
       "\n",
391
       "        P_seed495  P_seed496  P_seed497  P_seed498  P_seed499  P_seed500  \n",
392
       "0        1.064326   0.202375   1.015493   0.435631   1.039910   0.673215  \n",
393
       "1        0.432725   1.039910   1.015493   0.769550   1.039910   0.076054  \n",
394
       "2        1.064326   1.039910   1.015493   0.991077   0.094461   1.015493  \n",
395
       "3        1.064326   0.102502   1.015493   0.230932   1.039910   0.128050  \n",
396
       "4        1.064326   0.782647   0.794389   0.991077   0.154599   0.256710  \n",
397
       "...           ...        ...        ...        ...        ...        ...  \n",
398
       "524827   1.064326   0.573911   1.015493   0.146576   0.722465   1.015493  \n",
399
       "524828   0.002261   1.039910   0.056953   0.389743   1.039910   0.930820  \n",
400
       "524829   1.064326   1.039910   1.015493   0.991077   1.039910   0.395818  \n",
401
       "524830   1.064326   0.280792   0.584575   0.844995   1.039910   0.281122  \n",
402
       "524831   1.064326   0.288267   0.549154   0.991077   0.287155   1.015493  \n",
403
       "\n",
404
       "[524832 rows x 507 columns]"
405
      ]
406
     },
407
     "execution_count": 11,
408
     "metadata": {},
409
     "output_type": "execute_result"
410
    }
411
   ],
412
   "source": [
413
    "df_findor"
414
   ]
415
  },
416
  {
417
   "cell_type": "markdown",
418
   "metadata": {},
419
   "source": [
420
    "Now, let's count the number of discoveries on the even chromosomes, which are used as a proxy for the number of false discoveries. The goal is to compare against GWAS, and if it has the same number of false discoveries, we are confident that KGWAS is calibrated."
421
   ]
422
  },
423
  {
424
   "cell_type": "code",
425
   "execution_count": null,
426
   "metadata": {},
427
   "outputs": [],
428
   "source": [
429
    "t_p = 5e-8\n",
430
    "def get_stats(seed):\n",
431
    "    stats = {}\n",
432
    "    df_gwas_temp = df_gwas[['SNP', 'CHR', 'P_seed'+str(seed)]]\n",
433
    "    df_kgwas_temp = df_kgwas[['SNP', 'CHR', 'P_seed'+str(seed)]]\n",
434
    "    df_findor_temp = df_findor[['SNP', 'CHR', 'P_seed'+str(seed)]]\n",
435
    "\n",
436
    "    ## Get number of discoveries on the even chromsomes => they are false discoveries\n",
437
    "    df_gwas_temp = df_gwas_temp[df_gwas_temp['CHR'].apply(lambda x: x%2==0)]\n",
438
    "    clumps = get_clumps_gold_label(data_path, df_gwas_temp, t_p = t_p, no_hla = True, column = 'P_seed'+str(seed)) ## merge LD blocks\n",
439
    "    idx2mega_clump, idx2mega_clump_rsid, idx2mega_clump_chrom = get_meta_clumps(clumps, data_path) ## merging LD blocks within 0.1 cM\n",
440
    "    stats['gwas_num_false_pos'] = len([j for i,j in idx2mega_clump_rsid.items()])\n",
441
    "\n",
442
    "    df_kgwas_temp = df_kgwas_temp[df_kgwas_temp['CHR'].apply(lambda x: x%2==0)]\n",
443
    "    clumps_kgwas = get_clumps_gold_label(data_path,df_kgwas_temp, t_p = t_p, no_hla = True, column = 'P_seed'+str(seed))\n",
444
    "    idx2mega_clump, idx2mega_clump_rsid, idx2mega_clump_chrom = get_meta_clumps(clumps_kgwas, data_path) \n",
445
    "    stats['kgwas_num_false_pos'] = len([j for i,j in idx2mega_clump_rsid.items()])\n",
446
    "\n",
447
    "    df_findor_temp = df_findor_temp[df_findor_temp['CHR'].apply(lambda x: x%2==0)]\n",
448
    "    clumps_findor = get_clumps_gold_label(data_path, df_findor_temp, t_p = t_p, no_hla = True, column = 'P_seed'+str(seed))\n",
449
    "    idx2mega_clump, idx2mega_clump_rsid, idx2mega_clump_chrom = get_meta_clumps(clumps_findor, data_path) \n",
450
    "    stats['findor_num_false_pos'] = len([j for i,j in idx2mega_clump_rsid.items()])\n",
451
    "\n",
452
    "    return stats"
453
   ]
454
  },
455
  {
456
   "cell_type": "code",
457
   "execution_count": 21,
458
   "metadata": {},
459
   "outputs": [
460
    {
461
     "name": "stderr",
462
     "output_type": "stream",
463
     "text": [
464
      "100%|██████████| 500/500 [15:28<00:00,  1.86s/it]\n"
465
     ]
466
    }
467
   ],
468
   "source": [
469
    "seed_list = list(range(1, 501))\n",
470
    "import multiprocessing\n",
471
    "from tqdm import tqdm\n",
472
    "with multiprocessing.Pool(10) as p:\n",
473
    "    res = list(tqdm(p.imap(get_stats, seed_list), total=len(seed_list)))"
474
   ]
475
  },
476
  {
477
   "cell_type": "code",
478
   "execution_count": null,
479
   "metadata": {},
480
   "outputs": [
481
    {
482
     "name": "stderr",
483
     "output_type": "stream",
484
     "text": [
485
      "100%|██████████| 500/500 [00:00<00:00, 424610.65it/s]\n"
486
     ]
487
    }
488
   ],
489
   "source": [
490
    "res_all = []\n",
491
    "for x in tqdm(res):\n",
492
    "    res_all += [[x['gwas_num_false_pos'], 'GWAS']]\n",
493
    "    res_all += [[x['kgwas_num_false_pos'], 'KGWAS']]\n",
494
    "    res_all += [[x['findor_num_false_pos'], 'FINDOR']]\n",
495
    "df_size2res_sig = pd.DataFrame(res_all).rename(columns = {0: '# False Pos.', 1: 'Method'})"
496
   ]
497
  },
498
  {
499
   "cell_type": "markdown",
500
   "metadata": {},
501
   "source": [
502
    "Let's plot the same figure as in the paper!"
503
   ]
504
  },
505
  {
506
   "cell_type": "code",
507
   "execution_count": 43,
508
   "metadata": {},
509
   "outputs": [
510
    {
511
     "data": {
512
      "image/png": "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",
513
      "text/plain": [
514
       "<Figure size 400x300 with 1 Axes>"
515
      ]
516
     },
517
     "metadata": {},
518
     "output_type": "display_data"
519
    }
520
   ],
521
   "source": [
522
    "from scipy.stats import ttest_ind\n",
523
    "import seaborn as sns\n",
524
    "from matplotlib import font_manager\n",
525
    "import matplotlib.pyplot as plt\n",
526
    "from tqdm import tqdm\n",
527
    "\n",
528
    "font_dirs = [\"/dfs/project/datasets/20220524-ukbiobank/data/kgwas_data/misc_data/\"]\n",
529
    "font_files = font_manager.findSystemFonts(fontpaths=font_dirs)\n",
530
    "\n",
531
    "for font_file in font_files:\n",
532
    "    font_manager.fontManager.addfont(font_file)\n",
533
    "    \n",
534
    "sns.set(rc={'figure.figsize':(4,3)})\n",
535
    "sns.set_theme(style=\"ticks\", rc={\"axes.facecolor\": (0, 0, 0, 0)}, font=\"Roboto\", font_scale=1.5)\n",
536
    "plt.rc('axes', unicode_minus=False)\n",
537
    "\n",
538
    "data_gwas = df_size2res_sig[(df_size2res_sig['Method'] == 'GWAS') ]['# False Pos.']\n",
539
    "data_kgwas = df_size2res_sig[(df_size2res_sig['Method'] == 'KGWAS')]['# False Pos.']\n",
540
    "# T-test\n",
541
    "t_stat, p_val = ttest_ind(data_gwas, data_kgwas, equal_var=False)  # Assuming unequal variances\n",
542
    "\n",
543
    "# Create the barplot\n",
544
    "g = sns.barplot(data=df_size2res_sig, x='Method', y='# False Pos.', order = ['GWAS', 'FINDOR', 'KGWAS'], hue = 'Method', hue_order = ['GWAS', 'FINDOR', 'KGWAS'], alpha=0.7)\n",
545
    "g.set(ylabel='Number of False \\n Discovery Indep. Loci', xlabel = '')\n",
546
    "\n",
547
    "\n",
548
    "gwas_bar = plt.gca().patches[0]\n",
549
    "kgwas_bar = plt.gca().patches[2]\n",
550
    "\n",
551
    "max_height = max(gwas_bar.get_height(), kgwas_bar.get_height())\n",
552
    "\n",
553
    "# Define where to place the bracket\n",
554
    "bracket_height = max_height * 2\n",
555
    "\n",
556
    "# Draw the bracket and label based on p-value\n",
557
    "plt.plot([gwas_bar.get_x() + gwas_bar.get_width() / 2, kgwas_bar.get_x() + kgwas_bar.get_width() / 2],\n",
558
    "            [bracket_height, bracket_height], color='black', lw=1.5)\n",
559
    "\n",
560
    "label = f'p = {p_val:.3f}' if p_val < 0.05 else f'n.s.'\n",
561
    "plt.text((gwas_bar.get_x() + kgwas_bar.get_x()) / 2 + kgwas_bar.get_width() / 2, bracket_height + 0.001, label,\n",
562
    "            ha='center', va='bottom', color='black', fontsize=16)\n",
563
    "\n",
564
    "sns.despine()\n",
565
    "plt.show()\n"
566
   ]
567
  },
568
  {
569
   "cell_type": "markdown",
570
   "metadata": {},
571
   "source": [
572
    "We can see that majority of the 500 runs have 0 false discoveries. A few of them have at most 1 false discovery."
573
   ]
574
  },
575
  {
576
   "cell_type": "code",
577
   "execution_count": null,
578
   "metadata": {},
579
   "outputs": [
580
    {
581
     "data": {
582
      "text/plain": [
583
       "[Text(0, 0.5, 'Number of False \\n Discovery Indep. Loci'), Text(0.5, 0, '')]"
584
      ]
585
     },
586
     "execution_count": 46,
587
     "metadata": {},
588
     "output_type": "execute_result"
589
    },
590
    {
591
     "data": {
592
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAbAAAAEfCAYAAAAgBJMRAAAAOXRFWHRTb2Z0d2FyZQBNYXRwbG90bGliIHZlcnNpb24zLjcuNSwgaHR0cHM6Ly9tYXRwbG90bGliLm9yZy/xnp5ZAAAACXBIWXMAAA9hAAAPYQGoP6dpAABmQklEQVR4nO3dd3hUVfrA8e+dSZv03iChJKRQQpcuRRQB+YG69tVVXBUQlHUVFREVFdTFBq7gousqFqQoXanSm5RQQggpJCQkIb1Pn/v7I85ITELCZEgm5Hyeh2fXuWfueZPJnfeec0+RZFmWEQRBEIRWRtHSAQiCIAiCNUQCEwRBEFolkcAEQRCEVkkkMEEQBKFVEglMEARBaJVEAhMEQRBaJYeWDqAu586d48CBA9x6662EhYUBsHbtWqvONWnSJNsFJgiCINgNyR7ngQ0ePJji4mL69OnDt99+C0BMTAySJF3TeSRJ4uzZs9cjREEQBKGF2WULrEuXLhw+fJiIiAjLa6GhoS0YkX3q168fOp2OgICAlg5FEATBJvLz83FycuLo0aMNlrXLFpgsyxQXF+Pr69vSodi1Hj16YDQaCQkJaelQBEEQbCInJwelUsnp06cbLGuXLTBJkkTyaoTAwEAAduzY0cKRCIIg2MYtt9zS6LKtchRiRUUF586dq/V6Xl4epaWlLRCRIAiC0NxaVQKrqKjgxRdfZODAgTzxxBO1jn/33XcMGTKE119/HZ1O1wIRCoIgCM3FLrsQ66LT6fjb3/7G2bNnkWUZFxeXWmVcXFwwGAz88MMPZGZm8sUXX7RApIIgCEJzaDUtsK+//pqEhAQ8PT1ZvHgxW7ZsqVVmypQpfP/99wQEBHDgwAF+/PHHFohUEARBaA6tJoFt3LgRSZJ4/fXXufXWW1Eo6g69d+/evP7668iyzJo1a5o5SkEQBKG5tJoElp6ejlKpZPTo0Q2Wvfnmm3FwcOD8+fPNEJkgCILQElrNMzBnZ2dkWcbR0bHBsg4ODiiVSoxGYzNEJgiCILSEVtMC69ChAzqdjkOHDjVY9vDhw2i1Wjp27Hj9AxOENsJoNGKH6x4Iv2uLN+ytJoFNnDgRWZaZM2cOqamp9ZZLS0vjlVdeQZIkxo8f34wRCk0lyzLZ2dkYDIaWDkX4E6PRyKJFH7N8+fKWDkWow5YtW1jwzjttbh5sq+lCvOeee1i/fj0nT55k4sSJDB06lJ49e+Lr64skSRQXFxMfH8++ffvQ6/XExMTw8MMPt3TYwjU4c+YMq1evYfDgQYwZM6alwxGuoNVqKS0qpLysrKVDEepw+PBh1HoNRUVFeHl5tXQ4zabVJDAnJyeWLl3Kyy+/zK5du9i1axe7d++uUcbcvTF48GAWLlyIk5NTS4QqWCk7Oxudwcjp06dFArMzer0eWZZFF6IdM5lM6PX6lg6jWbWaBAbg4+PD0qVLOXr0KL/88gvnzp2joKAAAG9vb7p27cptt93GwIEDWzhSwVomk/iStEc6nQ5kGX5PYte6tZFw/RlNRpHAWoN+/frRr1+/lg5DuA4MRpP4crRDer0e2WRCNpnQarV1roQjtCyDydjmltBrNYM4hLbBaDSJFpgd0mg0IJuQ5eoEJtgXk2zCJJuqP6c2pFW2wM6dO8e6des4deoUBQUFSJJEQEAAPXv25I477iAmJsam9RUUFPDTTz+xevVqPvroI2JjY6/p/adPn2bp0qUcP36c8vJy/P39GTZsGNOnTycoKMimsbZmBoNBtMDslEajQZZNSKbqL8m2NFDA3smyjMlUfePX1m4uWlUC02q1vP7666xduxagxp16eno6R48e5YsvvuAvf/kLs2fPRqVSWV2X0Whk7969rFq1il27dlk9tHvv3r1MnToVvV6Pn58fkZGRpKens3LlSn799VdWrFhB+/btrY7zRqLVajGIFphd0mg01V2IirZ3l2/vtFotJtmEUTahVqtbOpxm1WoSmCzLTJs2jQMHDiDLMr169WLw4MEEBwdjNBrJzc3l0KFDnDx5ktWrV5Ofn8+SJUusupuvqqri9ttv5/Lly0D1xpFlZWXXfOHqdDrmzp2LXq/n2WefZcqUKSgUCioqKnj22WfZt28f7777LosXL77mGG9EGo3m9wTW0pEIf6bRaOD3Z2AigdkXjUaDUTZhMhlFC8xerVmzhv379+Pu7s7ChQsZMWJEneX27dvHc889x+7du9m4cSMTJky45roMBgNFRUWMGTOGu+++m6FDh3Lrrbdy6dKlazrPwYMHyc7OJjY2lmnTplled3d3Z/78+YwaNYqdO3dSXFyMj4/PNcd5o9FqtcgmGV0bG0nVGli6ENvgcxZ7p9FoLM/A2loLrNUM4vjpp5+QJInXXnut3uQFMHToUMtq9CtXrrSqLldXV/bu3cuiRYsYPnw4SqXSqvMcP34coM54g4KC6NatGwaDgVOnTll1/huNVqvFZKruxxfdiPal+ubij1GIgv0wfzYmWRajEO3V+fPnUSqVjBs3rsGyY8aMwcHBgZSUFKvqcnBwsEmLKCMjA6DeNRnNr2dmZja5rhtBdV++jCzT5i5Ee1c9D8wEYhSi3dFqtRhlGVMb/GxaTQIzGo04Ojo2qjWkVCpxdHRs8a6O8vJyoLpFVxcPDw8AKioqmi0me6bTVXcdmkxym5uQae+uXImjLS4aa88MBgMy1Z9NW7tuWs0zsPDwcJKSkjh58iQ9e/a8atmTJ0+iVqvp0qVLM0VXN3Mror7NN82vX+2P7pZbbqn3WE5ODiEhIU2I0L6YR3rKiC9Je2MwGCwrcYjFlu2LwWCovrmANvfZtJoW2Lhx4yyr0RcWFtZbrrCwkDlz5iBJErfddlszRig0ldFkqv4/cvW6boL9uPKZpHg+aV/a8mfTalpgDz74ID/99BPJycmMHTuWe++9lwEDBhASEoJCoSAvL4+DBw+yYsUKSktLCQ0N5bHHHmvpsBvlakP9d+zYUe+xq7XOWiOF+fcgXf13IrQksValPWtrn02rSWDu7u4sW7aMp59+mqSkJL744gu++OKLWuVkWaZTp04sWbIEd3f3Foj0D+bdo+tr1pv/2JydnZstJntm7lKVEAnM3iiVSvMHY/WoXOH6UCqV1R8N1QPQ2pJW9dO2b9+eNWvWsHLlSjZu3MipU6csyUGpVBITE8P//d//cd9999nFYqPmBGoezPFn5sEb5sEcbZ2jU3XClyTJkvwF++Dg4PD7TYVIYPbmj8+GNvfZ2DSBqdVqysrKMBgMtGvXzpantnBwcODBBx/kwQcfBKCoqAiTyYSXl5fdfemFh4cD1LuDdHp6OlD/MPu2xsnR0dL6srfPsq1zdHQESYEkKUSPgZ1xcnJCkhQo2uBn0+RBHKmpqcydO5dRo0bRp08fRowYwT333GM5XlZWxlNPPUVWVlZTq6qTr68v/v7+tb7wsrOzyc7Ovi51NpZ5y5cdO3bUGpRQUFDAmTNncHZ2Ji4uriXCszsuLi5ICgkHB2Wb6wqxd9VfkhIoJLFRrJ1xcnJCIUkopLb32TQpgX3//fdMnDiRVatWkZ2dbZkncuWDxJ07d7J7924mT55MZWVlkwNurFGjRjF69OhmqSszM5MHH3yQt956q8brgwcPJjQ0lIsXL7JgwQJLd2dFRQWzZ89Gr9czduzYeueJtTXOzs4oFRIuzs7iGZidcXFxAYUCSVLaRfe88AdnZ2cUv7fA2tpnY3UCO3z4MG+88QYGg4HRo0ezdOlSNm7cWKvcpEmTmDhxIpmZmXz11VdNCvZaNdeInF9++YVjx46xfPlyioqKLK87OTkxb948HB0d+frrrxkyZAh33nknw4YNY/fu3YSEhPDcc881S4ytgYuLCwqFAgeHttWP3xqoVCokSYmkaHtfkvZOpVJVJzCF6EJstP/+979IksQ//vEPFi9ezIgRI4iMjKyz7LRp05BlmS1btlgdqD0bOHAg3t7elv+90rBhw1ixYgWjR49GkiSSk5Px9vbmgQceYPXq1WI/sCs4OzvjoGw1UxPblOruXQW0wecs9s7Z2RmForoF1pQtpFojqx80xMfHo1QqefTRRxss26FDB1xcXK7bc7DmsHPnznqP9ejRg8OHD9d7vHv37vz73/++HmHdUMwJTHQf2h8XF5fqQRyKtvclae8cHR1R/t4Ca2utY6sTmE6nw8nJqVF3YyaTCaPRKL6YhKuSJAkHpUKswmGHnJ2dkRRiFKK9UohRiNemQ4cOqNVqTpw40WDZgwcPotfr6dSpk7XVCW2EUrTA7JKzszOSpIA2+JylNZAkCaVIYI131113IcsyL730EufPn6+3XEFBAfPmzUOSJG6//XZrqxPaCKVSanPL4bQGTk5OIEnVrWQxxcEuKRXKNjeM3uq/xPvvv5/NmzcTHx/PXXfdxejRo+nfvz9QvXTSzp07OXnyJCtXrqS4uJiOHTvy8MMP2yxw4cakUIgWmD2qnsgs/T6ZWXw+9kipULa5BQCsTmBOTk589tlnzJo1i927d/PLL7+wZcsWJEmioqKCp59+Gqgeyh4VFcWnn37a6Ie/jzzyiLVhCa2cQhItMHvk6OiIJJKXXVNICrGU1LXw8vLis88+Y9++fWzcuJETJ06Ql5eHTqfD09OT2NhYxo4dy8SJE6+paXvkyBEk8UXWJikUUr37pwktp3oxX6n6n2CX2uJ1Y5PO7KFDhzJ06FBbnAqonvws7vTaJvGp26crF4wV7JOiDV49dvk09p133mnpEIQWIlre9kkSrS+7J/0+yKYtaXICy83NZffu3YwYMaLGqhKHDh1i165dGI1GhgwZwogRI5paldAGSGIzSzsmPhd71hZv/pqUwNasWcO8efPQ6XR8++23lgT23//+l3/961+Wct988w133XUXb7/9dtOiFdqAtncRthbixsLetb0WmNVP/U6dOsXcuXPRarV4e3tbNm/MzMzkgw8+QJZlunfvzpAhQwD48ccfb9i1EAXbamsXoSDYgiQ13wLm9sLqBPb5559jNBoZOXIku3fvJioqCoAVK1ZgMBi4++67WbVqFZ9//jn/+Mc/kGWZlStX2ixw4cbUFi/CVkPcV9g1SbTAGu/48eNIksTcuXNrDJHfuXMnkiQxZcoUy2vm3ZPPnDnThFCFtqKtXYSth/hc7F1bu/mzOoGVlJTg4uJCSEiI5bWcnBwuXLhAhw4dCAsLs7zu7u6Oq6srVVVVTYtWaBPa2kUoCLbS1m7+rE5g3t7eaDQaSktLLa/t2rULqN6J+Erl5eVUVVXh4+NjbXWCIAhCA9razZ/VCaxPnz4AlgEbpaWlfPXVV0iSxC233FKj7HfffQdAr169rI9UaDPa2kUoCIJ1rB5G/+STT7Jz505WrlzJxo0b0ev16PV6unTpYhl5mJSUxFdffcXatWuRJIkHHnjAZoE3pLi4WLT4BEEQbmBWt8C6d+/OggULcHFxobKyEp1Oh5+fHwsXLrSUOXr0KD/++CMmk4lHH32UQYMG2STohixYsIDBgwfz+OOPN0t9giAIQvNr0kTmCRMmMHToUH777TccHR0ZOHBgjRXnPT09GTJkCPfeey9jxoxpcrCNFR8fjyzLnDp1qtnqFARBaGltbRBHk5eS8vHx4bbbbqvz2IQJE5gwYUJTq7hmr732GqtXr+bmm29u9roFQRCE5mGXi/k2VdeuXZk7d25LhyEIgiBcR41KYJmZmTar8Mr5YYIgCIJgrUYlsPq6CK+VJEmcPXu2yefR6XTEx8eTkpJCaWkpsizj5eVFVFQUvXr1anPbaguCILRFjUpgtpqX09Tz6HQ6lixZwnfffUdZWVmdZby8vPjb3/7G3//+d5HIBEEQbmCNSmA7duy43nE0SKfTMXnyZI4dO4Ysy0iShK+vLyEhISiVSvLy8sjJyaGkpIRFixZx+PBhli1bJpKYIAjCDapRCaxdu3bXO44G/ec//+Ho0aMA3Hvvvfz9738nPDy8Rpnc3Fy++OILli9fbklg06ZNa4lwBUEQhOvM6onMzW3Dhg1IksQzzzzDvHnzaiUvgODgYF555RWeeeYZZFlm3bp1LRCpIAiC0BxsMoy+qqqKoqKiOp9xybJMeXk5WVlZ5Ofn89e//tWqOrKzs1EoFDz66KMNln300Uf55JNPyMnJsaouQRAEwf41KYGdP3+eN9980/JcqiF9+vSxOoF5eHig0WhwdXVtsKyrqyvOzs6NKisIgiC0TlZ3IV66dImHHnqIo0ePYjKZkGW5wX9+fn5WB9q/f3/UajUXL15ssGxGRgZqtZoBAwZYXZ8gCIJg36xOYEuXLqW8vJzIyEj++9//sn37dry8vJAkiR07dlj+TZ8+HYB+/frx0UcfWR3otGnTcHR05K233sJgMNRbzmg0Mn/+fFQqFVOnTrW6PkEQBMG+Wd2FuH//fiRJ4r333iM2Nhb4YyHJK0ctTp8+nbKyMpYvX87333/PQw89ZFV9e/bsoVu3buzdu5c777zTUuefJSUlcf78eTp16sSyZctqHZckiXfffdeqGARBEAT7YXUCy8vLw8nJqUYicXCoPp1er68x/+qJJ57g66+/Zs2aNVYnsPfffx9JkpBlmeTkZJKTk69aPi0tjbS0NMt/m98rEpggCMKNweoE5ubmRmVlpSUpQPX2KYWFhWRnZ9OhQwdL2YCAAFQqVY2Ecq0mTZrU5rYKEARBEOpndQKLiori6NGjHDp0yLJRZZcuXbhw4QK7du3ib3/7m6VsZmYmarUaDw8PqwN95513rH6vIAiCcOOxehDH+PHjkWWZV155hYMHDwLVi/7Ksswnn3zCrl27UKvVJCUl8cILLyBJEn379rVZ4IIgCELbZnUL7J577mHNmjWcPn2aZcuWMWjQIMaNG8fy5cuJj4+vMQJQlmUcHBxstqxTfHw8e/fuJSUlhbKyMlxcXFiyZInl+C+//MLtt99uk7oEQRAE+2R1AlMqlXz++ee89dZbqNVqoHqgxGeffcarr77K9u3bMZlMAISEhPDGG28QFxfXpGAzMzOZNWsW8fHxwB+r2/v4+FjKrF27lpdffpk9e/Ywf/78JtUnCIIg2K8mrcTh5eXFv/71r1qvLVq0iKKiIjIzM1GpVHTp0qXJAzCKiop46KGHyMvLQ6VSMWzYMMLCwvjiiy9qlBs5ciTh4eH89NNPjBo1itGjRzepXkEQBME+XbfFfH19fenZsydRUVE2GT346aefkpeXR//+/dm2bRuLFi3ihRdeqFXOy8uL2bNnI8syK1eubHK9giAIgn1qVAJ7+eWXefvtt693LFf166+/IkkS8+fPx9/f/6plhw4dilKptMnuz4IgCIJ9alQC++mnn9i4ceNVy3z99dfXtcWTn5+Pq6srYWFhDZZVKpW4uLjUu2uzIAiC0PrZrAtx/vz5TVrrsCEBAQGo1WqKiooaLJuVlUVlZWWTFg8WBEEQ7JtNn4E1ZksVaw0ePBhZlnnvvfcaLLto0SIkSWLgwIHXLR5BEAShZbWaHZmffPJJVCoV69at47777mP37t1UVFTUKJORkcHzzz/P+vXrUSqVPP744y0UrSAIgnC92WRH5uYQFhbGokWLmDFjBidPnmTKlCkoFAokSaKsrIwBAwZQVlaGLMsolUrefPNNIiMjWzpsQRAE4TppNS0wqB5duGnTJsaNG4ezszNGoxFZljEajZSWliLLMr179+brr7/mzjvvbOlwBUEQhOuo1bTAzEJDQ/nggw9Qq9UkJiaSn5+PVqvFy8uLmJgYgoKCWjpEQRAEoRm0ugRmplKp6NOnT0uHIQiCILSQRiewkpKSendBhup1EBtTRkwuFgRBEGyh0Qnseg6R/zNrd23+M0mS+Oabb2xyLkEQBMG+NCqBLViw4HrHUcOxY8fqPSZJUoPJ1FxG7OAsCIJw42pUAmvuEX3Tp0+v8/Vt27aRlJTEwIED6devX51lDh06xNGjR+nZsyePPPLI9QxTEARBaEF2OYijrgT222+/8emnnzJ+/Hjef//9q7535syZbNmypcY+YYIgCMKNpdXMA/vss8+QZbnOLVT+bNasWciyXGuvMEEQBOHG0WoS2KlTp1CpVAQHBzdYNjQ0FFdXV06fPt0MkQmCIAgtodUkML1ej0ajoby8vMGy5eXlaDQa9Hp9M0QmCIIgtIRWk8AiIyORZZlPP/20wbKffvopJpNJrIUoCIJwA2s1Ceyhhx5ClmX+97//MXPmTI4fP16jhWUymTh16hTPPfcc//vf/5Akib/97W8tGLEgCIJwPTU4CvHEiRMUFRVx88034+jo2Bwx1WnSpEmcOXOGb775hi1btrBlyxaUSiWenp4oFArKysosCU2WZR5//HHuuOOOFotXEARBuL4aTGBz584lJSWFkydP1nj9k08+QaVSNeueW3PmzGHgwIEsWbKEhIQEDAZDrR2ae/XqxdSpUxk+fHizxSUIgiA0vwYTWFlZGQClpaUEBARYXv/kk0/w8fFp9k0jR48ezejRo8nPzycpKYmSkhIkScLHx4eYmBh8fX2bNR5BEAShZTSYwMLCwsjLy+Pjjz/m9ddfx8HBPuY+BwQE1EiogiAIQtvSYDa68847OXr0KGvWrGHnzp107NjRksTKy8uvabkmSZL46quvrI9WEARBEH7XYAK7++67SUlJ4auvvqKoqKjGMyeDwcCRI0caXVlTF9fV6/Vs2rSJI0eOkJeXh06na7A+kTAFQRBuTI3qD3zxxRd58MEHOXToEAUFBRiNxmYfxFFUVMTf/vY3UlJSgMZt7yJWoxcEQbhxNfqBVlhYGGFhYZb//uSTT3Bxcal35Xhb++ijj0hOTgZgyJAhREdH4+rq2ix1C4IgCPbH6hEZkyZNwt3d3ZaxXNWvv/6KJEnMnTuXBx54oNnqFQRBEOyT1QnsnXfesWUcDSopKUGhUPCXv/ylWesVBEEQ7JPNxsQnJydz8uRJCgsLkSSJgIAA4uLiiIiIsMn5AwICKCwsbNHVQARBEAT70eQEdvjwYd555x3OnTtX5/HY2Fhmz55d7w7KjTVq1Ci+/fZbfvvtN/r379+kcwmCIAitX5MW8125ciWPPfYYiYmJyLJMcHAwPXv2pEePHvj7+yPLMmfPnuWRRx5h9erVTQp02rRp+Pv7M3fuXPLz85t0LkEQBKH1s7oFdu7cOV5//XVMJhNjxoxh5syZdOrUqUaZtLQ0/v3vf7Np0yZef/11unfvTkxMjFX1ff755/To0YOdO3cyfvx4hg8f3uAweUmSePfdd62qTxAEQbBvViewZcuWYTKZuOeee3jzzTfrLNO5c2fef/99PD09+f777/nf//5n9eCP//73v5aEVVZWxoYNG+otK0kSsiw3OYGdPn2apUuXcvz4ccrLy/H392fYsGFMnz6doKCgRp9nwIABlJSU1Hv8n//8J08++aTVcQqCILRFView3377DUmSmDlzZoNlZ8yYwYoVKzh69Ki11TFp0qRmnZi8d+9epk6dil6vx8/Pj8jISNLT01m5ciW//vorK1asoH379g2eR6fTUVJSgqOjI127dq2zTGBgoK3DFwRBuOFZncBKSkpwdXXFz8+vwbK+vr64urqSl5dnbXXNOmxfp9Mxd+5c9Ho9zz77LFOmTEGhUFBRUcGzzz7Lvn37ePfdd1m8eHGD5zI/r+vcuTMrV6683qELgiC0GVYP4ggMDKSqqqrWflx1KSoqoqqqCm9vb2ura1YHDx4kOzub2NhYpk2bhkJR/Wtyd3dn/vz5ODg4sHPnToqLixs8lzmBXUuXoyAIgtAwqxOYeVj8okWLGiy7ePFiZFluNcPfjx8/DsCIESNqHQsKCqJbt24YDAZOnTrV4LnMrU7RTSgIgmBbVnchTp48mY0bN/LDDz9QXl7OtGnTak1azsjIYPHixWzcuBGlUsnf//73Rp177dq11oZVy6RJk675PRkZGQB07NixzuMdO3bk5MmTZGZmNngucwtMJDBBEATbsjqBRUVF8eabb/LKK6+wefNmNm/ejJ+fH8HBwSiVSvLy8sjNzQWqRwXOmTOH2NjYRp37pZdessmADUmSrEpg5eXlAPUuFuzh4QFARUVFg+cyt8DOnz/Pww8/zPnz59FoNERERPDAAw9wzz33XHN8giAIQhNX4rjzzjvp1KkTb7/9NqdPn6agoICCgoIaZWJiYnjxxRcZNGjQNZ27MdulXK9zmPcZMz/7+jPz63q9vsFzmVtg27dvx9PTk9DQUAoKCkhISGDOnDkkJiYyd+7cet9/yy231HssJyeHkJCQBmMQBEG4ETV5KalevXqxatUqLl68yIkTJ8jPz8dkMuHn50dcXBxdunS55nPWtyxVazR06FAuX77MyJEjuf/++3FwcECWZVatWsVrr73Gt99+y+jRoxk8eHBLhyoIgtCq2Gwx3/DwcMLDw211ulahMd2c48aNY9y4cbXed++99xIfH8+aNWtYuXJlvQlsx44d9Z77aq0zQRCEG12T1kK8UZlXvDcYDHUeN3dNOjs7N6me8ePHA3D27NkmnUcQBKEtEgmsDuaNOs2DOf7MPHjDPJjDWsHBwUD10liCIAjCtREJrA7mrtDU1NQ6j6enpwP1D7M3u3DhAs8//zyffvppnccvX74MND0RCoIgtEUigdXBPEl7x44dmEymGscKCgo4c+YMzs7OxMXFXfU8Xl5ebN68mc8++4zS0tJax7dv3w5Q7xqJgiAIQv1EAqvD4MGDCQ0N5eLFiyxYsMDyLKyiooLZs2ej1+sZO3asZZ5YZmYmDz74IG+99VaN8/j6+jJq1Cg0Gg3PP/98jWW31q9fb1kb8d57722mn0wQBOHGYbNRiDcSJycn5s2bx9SpU/n6669Zv349oaGhpKenU1VVRUhICM8995yl/C+//MKxY8c4duwY06ZNw9fX13Ls1VdfJTExkT179jB8+HA6dOhAYWGhJZk9/PDDDBkypNl/RkEQhNbO6hbYI488wuOPP27LWK7KaDQ2W10Aw4YNY8WKFYwePRpJkkhOTsbb25sHHniA1atX11icd+DAgXh7e1v+90pBQUH8+OOPPP7444SEhJCeno5Op6Nv374sXLiQOXPmNOvPJQiCcKOwugUWHx+Pg0PzNeAGDx7MmDFjGDt2LAMHDmyWvcG6d+/Ov//97wbL9ejRg8OHD9d73MvLi1mzZjFr1ixbhicIgtCmWd0Ci4yMRK1Wk52dbct46lVaWsqqVauYPHkyQ4cOZd68efz222/NUrcgCIJgf6xOYE8++SSyLDN//vx6J/za0osvvkj//v1RKpUUFhby/fff88gjj3DzzTczf/58Tpw4cd1jEARBEOyH1X2AR48eJTQ0lB07djBu3Dh69erV4HskSeLdd9+1qr7HHnuMxx57jPLycvbu3cuvv/7Knj17yMvL4+uvv2b58uUEBwczduxYxo4dS48ePayqRxAEQWgdrE5g33zzDZIkIcsyFy9e5OLFi/WWNZdrSgIz8/DwsKwvaDKZOH78OL/++iu//voraWlpfPnll3z55Ze0b9+ecePGMXbsWGJiYppUpyAIgmB/rE5gkyZNapaBFFejUCjo168f/fr1Y8qUKXz11Vf85z//Qa/Xk5mZyWeffcZ//vMfIiIimDx5MpMmTap3ixRBEAShdbE6gb3zzju2jMMqhYWF7Nixg61bt3L48GEMBgOyLKNUKhkwYABxcXFs27aNlJQUXnnlFTZs2MAnn3yCm5tbS4cuCIIgNFGrm8icnZ3N1q1b2bZtG/Hx8ZhMJsvq8HFxcdxxxx2MGzcOf39/AGbOnMnBgweZPXs2hw4d4qOPPuKVV15pyR9BEARBsAGbJLD4+Hj27t1LSkoKZWVluLi4sGTJEsvxX375hdtvv71JdSxdupStW7eSmJgI/LGlSefOnbnjjjuYMGECYWFhdb530KBBvPHGGzz55JNs2bJFJDBBEIQbQJMSWGZmJrNmzSI+Ph74I6n4+PhYyqxdu5aXX36ZPXv2MH/+fKvr+uijjyz/Pzg4mHHjxjFhwgRiY2Mb9X7zqETzViiCIAhC62Z1AisqKuKhhx4iLy8PlUrFsGHDCAsL44svvqhRbuTIkYSHh/PTTz8xatQoRo8ebVV9Xl5ejBkzhgkTJtC/f/9rfr+bmxsLFiwQW5cIgiDcIKxOYJ9++il5eXn079+fDz/80PLM6c8JzMvLi9mzZ/PUU0+xcuVKqxPYhx9+iJOTk2Wrk2vl5OTEnXfeadV7BUEQBPtjdQL79ddfkSSJ+fPnW5JXfYYOHYpSqeTs2bPWVsfkyZNxc3Pj2LFjVp9DEARBuHFYPSkqPz8fV1fXegdOXEmpVOLi4kJZWZm11eHj44NWq232VekFQRAE+2R1AgsICECtVtfYpLE+WVlZVFZW4ufnZ211jBo1CqPRyJYtW6w+hyAIgnDjsLoLcfDgwaxevZr33nuvwUnNixYtQpIkBg4caG11TJ48mYMHDzJnzhw0Gk2jB3I0poUoCIIgtD5WJ7Ann3ySTZs2sW7dOi5cuMC0adPo27dvjTIZGRksXryYjRs34uDg0KQNMO+44w7L/2/sPC5Jkpr03E0QBEGwX1YnsLCwMBYtWsSMGTM4efIkU6ZMQaFQIEkSZWVlDBgwgLKyMsvSTm+++SaRkZFWB2qeY3a93yMIgiC0Dk2ayDx06FA2bdrEwoUL2blzJxqNBgCj0UhpaSkAvXv35vnnn6/VOrtWO3bsaNL7BUEQhBtLk5eSCg0N5YMPPkCtVpOYmEh+fj5arRYvLy9iYmIICgqyRZy0a9fOJucRBEEQbgw2W8xXpVLRp08fW52uQXq9noyMDEpLS5Fl2eoJzoIgCELrZLMElp2dTXJysiWheHt7ExkZafOW04EDB/jiiy84cuQIBoMBqJ4jduDAAQByc3N54oknmD9/vtiVWRAE4QbW5AS2evVqvvzyS9LS0uo83qVLFx5//HEmTpzY1Kp4//33+fzzz2sNzrjyv0+ePElqaipTpkxh/fr1TZp7JgiCINgvqycym0wmnn32WV599VVSU1ORZRlHR0cCAgLw8/NDqVQiyzLnz5/npZdeYtasWU0KdOvWrSxbtgylUsmjjz7Khg0bOHHiRK1yY8aM4ZFHHqGwsJAvv/yySXUKgiAI9svqBLZ8+XK2bNmCLMvceeed/Pjjj8THx7Nnzx727dvHyZMnWblyJRMmTECWZTZs2MC3335rdaDffPMNkiTx+uuv89JLL9GlSxdUKlWdZR977DEAdu7caXV9giAIgn2zOoGtXr0aSZKYPn06CxYsoGvXrigUf5xOqVQSFxfHv/71L6ZOnYosy/zwww9WB5qYmIiDg0OjVpQPCgpCpVKRk5NjdX2CIAiCfbM6gV28eBGFQsHkyZMbLPvEE0+gVCrJyMiwtjpkWcbBwQGlUtlgWb1ej16vb1RZQRAEoXWyOoGpVCqcnJxwdXVtsKyrqytOTk71dvk1RkREBBqNht27dzdYdufOnRgMhiat/CEIgiDYN6sTWN++fdFoNI1qVaWmpqJWq5s0T+yBBx5AlmVeeumlqyaxlJQU3nzzTSRJYsKECVbXJwiCINg3qxPY008/jYODA2+//bZlPlZd9Ho9b775Jg4ODkyZMsXa6vi///s/Ro0aRXFxMVOmTOGee+7h3XffBUCn07F8+XKef/557rrrLgoKCujZsyf33Xef1fUJgiAI9q1R88A+/vjjOl/v1q0be/fu5c4772T06NF1ltm6dStpaWkMGTKEixcvEhcXZ1WgCoWCDz/8kHfffZcVK1Zw+vRpzpw5gyRJVFVVMX/+fMt8sKFDh7Jw4UIcHGw2T1sQBEGwM436hl+yZAmSJNV5TJZlkpOTSUlJqfc4wL59+9i/f3+NbVGulbOzM3PnzuWhhx5i8+bNnDhxwrL2oqenJ7GxsYwdO5bBgwdbXYcgCILQOjQqgTV288jmEhERwYwZM1o6DEEQBKEFNSqBLV++/HrH0aDNmzczatQoXFxcWjoUQRAEwQ60modEzz33HCqVihEjRjB27FhGjBiBk5NTS4clCIIgtJBWk8C8vLwoLS3l559/5pdffkGlUjFq1Chuv/12br75ZpHMBEEQ2pgmJTCdTsfGjRs5cuQI+fn56PX6q5aXJImvvvrKqroOHjzI0aNH2bFjBzt27CArK4uNGzeyadMm3NzcGD16NLfffjtDhw4Vow8FQRDaAKu/6UtLS3nkkUc4f/48QK0tTupS30jGxlAoFNx0003cdNNNvPzyyyQlJbF9+3Z27NjB2bNnWbt2LevWrcPT05NRo0Yxbtw4Bg8eLJaTEgRBuEFZncAWLVpEUlISAAMGDKBr1664ubnZLLCGREdHEx0dzdNPP01ubi47duxg+/bt/Pbbb6xdu5a1a9fi7e3NwYMHmy0mQRAEoflYncB+/fVXJEli1qxZlu1LWoq/vz8dOnQgLCyMc+fOUVxcDFS3EgVBEIQbk9UJLD8/H4AHH3zQZsFcC7VazZ49e9i2bRu7d++moqLC0o3ZvXt3xo8fz9ixY1skNkEQBOH6szqBeXl5UVlZibOzsy3juaqSkhJ27tzJtm3bOHjwIFqt1pK0oqOjGTduHOPGjSMsLKzZYhIEQRBahtUJbMCAAWzevJmkpCSio6NtGVOdHnnkEY4fP47RaLQkrc6dO1uSVufOna97DIIgCIL9sDqBPfXUU2zbto3Zs2ezdOlSAgICbBlXLUeOHAEgLCyMcePGMXbsWGJiYq5rnYIgCIL9sjqBRUVF8eGHH/LMM89w22230bdvX3x9fa/6HkmSLFugXKvHHnuMcePG0aNHD6veLwiCINxYrE5ger2eVatWYTQaUavV7Nu3r96ykiQhy3KTEtiLL75obaiCIAjCDcjqBLZkyRJ27doFQGhoKF27dsXDw8NWcV1VUVERP//8MydPnqSwsBCAwMBA4uLiGDNmTIMtQUEQBKH1szqBbdq0CUmSuPvuu3n99debZfkmWZb597//zbJly9DpdDVW/5AkibVr17JgwQKmTZvGk08+iUJh9YbTgiAIgp2zOuvk5OQA8Pzzzzfb2oOzZ89m7dq1yLJMUFAQAwcOJDg4GKPRSE5ODr/99ht5eXl8/PHHZGdnM2/evGaJSxAEQWh+VmceNzc3NBoN3t7eNgynftu2beOnn37C0dGRl156iQcffLDW2oqyLLNy5UreeustVq1axahRoxgxYkSzxCcIgiA0L6v72Hr37o1Go7E8g7reVqxYYVm66qGHHqpzYWBJkrjvvvt4+eWXkWWZb7/9tlliEwRBsAeNWVT9RmJ1AnvqqaeQJImPP/7YlvHU68yZMygUCu69994Gy/7lL39BqVSSmJjYDJEJgiAILcHqLsRz587Rt29fVq1aRUZGBn369GnU+5599lmr6tPpdDg7Ozdq6SonJyecnZ0pLy+3qi6hZTVl2x1BENoOqxPYa6+9ZpnfdfjwYctKGfUxzwOzNoGFhoaSlpZGamoqERERVy2bmppKVVUVHTp0sKouQRCE1qit3fxZncD69+9vyzgaNHr0aD777DNee+01Pv/8c1xcXOosp9Vqef3115EkiZEjRzZrjIJttLWLsNWQZRCfjd2SkdvcMzCrE9jy5cttGUeDHnnkEdasWcOxY8eYMGECkydPZsCAAYSEhKBUKrl8+TKHDh3i888/JyMjAy8vL5544olmjVEQBKGlyDJtbu5r80zgsgE/Pz8+++wzpkyZQmZmZr1zvGRZxtfXl08//RQ/P79mjlJoKllue3eRrYUsm5AkZUuHIdSjLV47rSpdd+vWjZ9//pnHH3+c4OBgywdm/uft7c0jjzzChg0b6NWrV0uHK1ihupdKdFPZG6PRWP3hCHbLJJtaOoRmZ3UL7KGHHrrm90iSxDfffGNtlQC4u7vzwgsv8MILL5Cbm0teXp6l1SU2smz9TG3wLrI1MBgMyCYTkkJ8NvbKJJva3LVjdQI7duxYo8teuRq9LQUHBxMcHGzTcwoty2Sy/d+J0HRVVVXIshHZpLwu17LQdHqjHp1O19JhNCurE9j06dMbVe7gwYMcO3aMDh06MHnyZGurs7hw4QKrV6+moKCg1tYs69atIzExkb/+9a+0b9++yXUJzU9vMGIytb2uEHtXWVmJbDQhS9XbJ7m6urZ0SMIVZGR0Bj0VFRUtHUqzuu4JbPr06TzzzDNs27atyYMqfvrpJ1599VWMRmOd57pw4QL/+9//+OGHH/jggw/EMPpWRpZltDpDS4ch1OHy5cuYDDpAJj8/X8yxtCNVVVXoDXr0Rj15eXktHU6zapZBHDNnzmzy2oQJCQm8+uqrGAwGYmNjmTJlSq0yI0aMYMiQIajVap577jkyMzObErbQzMrKytBo9ej1+pYORfiTS5cuYdJrMel1ZGVltXQ4whWys7PRGnRoDW3vs2mWBNa5c2ecnZ05e/as1edYtmwZBoOB2267jVWrVvHXv/61VplevXrxxRdfcNddd6FWq/n888+bErbQjGRZ5kJ6OhqtgYoqDaWlpS0dkvA7jUZDwulTKIw6TNoq4uPj29xgAXsWHx9PpbYKWQkXLqZz+fLllg6p2TRLAtNqtRgMBqqqqqw+x9GjR5EkidmzZ6NUXn0uysyZMwHYu3ev1fUJzSs1NZWi4jJkoEqt48yZMy0dkvC7Y8eOUVVaRK+OQUQEeJB36SLnz59v6bAEoLCwkFNnTiO7KgjvE0GZppz9+/e3dFjN5ronMFmWWbx4MUajkdDQUKvPU1ZWhkqlatSow8DAQFxdXSkoKLC6PqH5yLLMjh07KSpT07nHzVRqTOzZsxe1Wt3SobV5GRkZ7Ni2FaWukph2fsR1CMRQUcK6n36kqKiopcNr07RaLSt+WEF+eQFBXULxCPTCpJI4cvy3axol3ppZPYhj1qxZDZYpLy8nKSmJnJwcJEliwoQJ1lZHYGAgly5dori4GB8fn6uWLSkpQa1W4+/vb3V9QvOQZZlffvmF86npuHqH4urhh29oFNl551m9ejX3338/jo6OLR1mm5Sdnc2qlT+gLc5lbFwHXBwdcHF0YGhUCHtTMlmx4nsefPChZtvUVviDRqPhxx9/5Hx6Mu7hPniF+gLQoV8kaXsT2bBpA25ubsTExLRwpNeX1Qls/fr1lvldjXHbbbfVOfCisfr27culS5dYunQpL7/88lXLfvbZZ8iyzE033WR1fcL1J8symzdvZteeA1TqHOgQ2QMAv+DOVJUXcvREArL8Pffffz9OTk4tHG3bIcsyBw4cYOf2baiLchkcEUywt7vleJcQX4orNZw5n8DSTz/ljv/7P7p3796CEbctFy9e5McffyQtOx28HAjp+scCDk6uzrTvF0HmkRS+/vZrhg4ayq233nrD3gRKspVPY1966aUGJzM6OTkREhLC4MGDiYuLsypAs3PnzvGXv/wFo9HI+PHjefTRR+natatl8UpZlklMTOSrr75i/fr1KBQKVq5cSbdu3ZpUrz275ZZbANixY0cLR3LtMjMz2bJlC4lJaVQanOjYdTBKhz+SlGwykZV8FLSFdO4Qwm233UZsbKyYQHudZWdns337dlLOnsZBV86I2DBCfT3qLJuSU8T+5BwU7r707NufESNG4Ovr28wRtx2VlZUcPHiQ3Xt3k1degE9kIIFdQuu8JjTlai4eT8VZ50CXDhGMuW0MERERreL6uZbvNasTWEtYs2YNr776qqXV5+joiKenJ5IkUVZWhk6nQ5ZlFAoFc+bM4cEHH2zhiK+v1pjASktL2bFjB0ePxVNQUonKK4SQTj1ROtS+Q5RlE3mZ5yi9nIqPl4qu0ZHcfvvtYvUVG5NlmQsXLrB//35SkhLRV5QQ7uXM0NgwXByv3klTVqVlV0IGhToJJ3dvusX1ZPDgwU163i3UVFxczKFDh/jt2FEKy4vQSDrC+kbg5uN+1feZjCZyz2VRll6It6sXncI6MmTIELp27drgQLiWdMMmMIBTp06xcOFCjh49WueKDf369WPmzJn069evBaJrXq0lgRmNRtLS0oiPj+dMwlkKiisxKV0J7hiHq0fDd+w6TSW56WfQV+bh6+1GdJcIevfuTWxs7A3bNdIcNBoNSUlJHD58mEvpaegrSwjxcKZnx0BCvN0bfbdukmUy8ks5mX6ZIi04unvRJaYr/fr1IyIiQnxGVjCZTFy8eJHjx48Tfyqe4spS9A5G/COC8AkLQKFs/Pg7dVkV+Sk5VOaW4eXiQbugUAYOGEi3bt3w8Ki7dd2SbugEZlZUVMT58+cpLCwEwNvbm9jY2DbVhWHvCayoqIj4+HhOnIgnN6+Q8kotsoMr/qFd8PJvf83dGRWl+eRnJaGvKsLT3QV/H0/i4nrQu3dvQkJCWkX3SEvT6XQkJyeTkJDA+XPn0FaWYlRX0NHPjbgOgfh7WL9ElCzL5BRXcDLjMjnlehxU7rh6+RAT25Xu3bvTqVMnu77zb2myLJOVlUVCQgJnEhLIL8qnXFuJrJIIjAzBK8QXSWH937iuSkt+ai5lmUW4Obni7uxGl4hIunXrRmxsrN0sD2bzBNbQoInGkiSJ+fPn2+Rcgv0lMFmWyc7OJjk5mfPnz5N+MYvySg1qnYynXxjegeGo3LybXI9OU0lx3kVK8zNwUhrxcHMhNDiQ6OgounTpQocOHcQX5RU0Gg0XLlwgMTGRc2fPoi4vwaipxNtZonOQDxFBPniobDtIpqhCTWpuMamXS6gyKXBQuePu7Ue37t2JiYkhPDxctMyobmllZ2dz7tw5ziScITf/MhXaSnQY8AjxxjvUFzc/D5venBl0BkouFVKaXYS+VIObkyseKneiu0TTtWtXIiMjcXe/evfk9WTzBBYTE3NNIw4tJ6/jl56YmHhN56iLRqPBwcEBB4c/+udNJhPJycmYTCaioqLaxBeYPSQwjUZDWlra70krmYKiEqrUOtQ6I85ufvgEhuPhG4JCYfvPQ5ZlKkvzKc7LoKo0D2dHcHVxwsvTjeioLkRGRtKlS5cWvRhbgixXr1eYkpJCSkoKGRfS0KsrMGiqcFfKRAR70znIBx83l2aJpaC8itTcEtLyStDigNLFDRc3TzpFRNClS/Xn1JaG4ldWVpKamkpKSgrJKckUlRVTpVWjlXW4B3vh3c4Pdz/PJrW2Gkuv1lGSXURJdiHGcj1uzq64OrrQMbwjkZGRREZGEhoa2qw7Pds8gTVmxGFdTpw4QXp6uiX5BQQENGl1jJycHF577TUOHDjA119/TZ8+fYDqEYrTp0/n0qVLAPj7+/POO+8wZMgQq+tqDVoigRmNRrKzs7lw4QIXLlwg7UI6FVVaqtQ6DLID7t5BuPsE4+4VgELZfBt+yyYTVeWFlBfnUl58GcmoxlXlhJvKifCwdnTu3JlOnTrdsHf+Op2OCxcuVH8pJp+nuCAPo0aNUafG39WRMD9PwgM88XNXtVhXqyzL5JZUkllQRmZhGSVaE0pnFQ7OrgSGtrMks7CwsBo3p62duWei+rNJJiMzgyqdmiqdGpMjuAd64RnojXuA5zU927I1XaWW0txiyvNK0BRXoXJwQeXkgq+nD10iqz+biIgI3NzcrmscLf4MrKioiHfeeYcNGzZYRgU++OCDzJw50+q74bKyMiZNmkR2djYA3333HX369EGj0TB+/HhL8jJzcXFh7dq1dOzY0eqf4/Tp0yxdupTjx49TXl6Ov78/w4YNY/r06QQFBTX7ef6sORKYLMsUFBRUJ6u0NFLTLlBaXolao0OtMeCo8sTDJwR3nyBcXL3s5jmUVl1BRcllyotz0VYW4eKoROXiiLubM506dqRTp0506tSJkJCQVtlaN7eyUlNTq78U0y+gr6rAqK3CQdbT3sedMD9P2vt54uJkn8mgQqOzJLOckipMDs4onVWo3D3pHNmFiIiIVts6M7eyUlNTq1tZpcVU6dRoDFqcvF3wDPTGI8gbZ3cXu7lmrmQ0GKksKKPscikVeaUoDODqpMLVSUWHsA6WZNauXTubt85aNIGtWLGCDz/8kLKyMmRZpnv37rzxxhtNno/1/vvvs2zZMvz9/Zk7dy4jRozAycmJVatW8eqrrxIREcHHH3+Ml5cXL7zwAocOHeKee+7hzTfftKq+vXv3MnXqVPR6PX5+fgQGBpKeno5arSYgIIAVK1Y0as8xW52nLtcrgWk0GksXR0pKKgWFxai1eqo0eiSlCjfvQNy8AnDz9K9z+Lu9MZmMVJUVUlmaT0VpPkZtGS7Ojri6OOLt6U5kZISlu8QeR2WZmZ9lpaSkkJqSUt3K0qox6dT4qhwI8/MkzN8Tf09XFHb4pXg1RpPJ0jrLKiyjVCejdFahdFYRGBJK5O8JrWPHjnbZOjOZTFy6dMly3dRoZTnIuAd64RHohbu/J8oGpibYG1mW0ZarKc8rpSyvBG2Jurp15uiCj6d3jdaZLbrrWySBnT17ltdff53Tp08jyzKenp7MnDmTBx54wCZ3GOPGjePChQssW7aMoUOHWl5/9NFHOXz4MJ9//rmlyzA1NZXx48fTrl07q77cdTodY8aMITs7m2effZYpU6agUCioqKjg2WefZd++fdx2220sXry4Wc5TH1slMPPdfHJycvWXY1o6leo/ugVdPQNw8wrA3SsAR2dVk+qyB0aDjsrSAipK86gsyUcyaXBVOeHq4kiH8PaWrqzrcXd5rfR6vWXUYFJiIrqqMgwaNU4YaO/rTntfD9r5eaBysv8biWthbp1lFZWTXVyJycEJpbMrbp4+xHStHtXYsWPHFm09m7sGz5w5w5mEM+QV5lOlr25lufi44hHgZdetLGtZWmd5v7fO9KByUuHm5EqXiEi6/z5Qx9pRjc2awCoqKvjoo4/4/vvvMZlMyLLM//3f//Hiiy82eQPLK5lX8jh58qTlj0GtVnPTTTfh6urKoUOHavyR9OrVC6PRyOnTp6+5rt27d/Pkk08SGxvL2rVraxy7fPkyo0aNAmDfvn1XXZfRVuepT1MTWHFxMb/99hsJZ8+Sl1dIlUZHlUaPg4sXHj7BuPsE4+LqeUNdfHX5o7vxMtrKQlROSlxVTvj6eBITHU3//v2bdWKued5cQkICiQlnUJeXYFBX4uUk0SnQmzB/D/w9XG/4z8XMaDKRV1pFZkEZaXklVJmUOKjc8PQNoGu3bnTr1o3w8PBm+31cvny5eqj7mTNk5+X8MWow2AvPIB/c/D1QOrS+bmlryLKMrlJD2eVSSnOK0ZdqcHd2xdPVk+guUXTv3p3o6OhrWgruWr7XmtSW3bRpE++88w4FBQXIskznzp157bXXGDBgQFNOWycHBwd0Ol2N144cOYJer6d///41/niNRiN6vd7qh43Hjx8HqjfI/LOgoCC6devGyZMnOXXqFMOHD7/u57ElWZbJzMzk8OHDnDp9hpIyNWo9uHkF4h4STLBXIA6ObWvdQWeVO84qd/xCIjAZDVSWFlBekktK5mUysvZx6MhRortEMHDgQKKioq5rq+z8+fNs2rSR4rxcDOoK3JQyXYO8iQju1CyjBu2RUqEgxMedEB93+keGkF9WRerlYtKyU9ifk8HhfbsJCe/EhAkTaNeu3XWLo7i4mM2bN5NwLoEKbRUakxb3IC8C27XHzd+zxVvrLUGSJJzdVQS4qwiICEan1lJ6qYi87CJyf9vL0VPH8fP04bZbb6Nv3742v8mwKoGlp6czb948Dh48iCzLuLi4MHXqVCZPnnzdRnhFRkZy+vRptm/fzq233grAjz/+iCRJDBs2rEbZw4cPYzQarR7AkZGRAVDv+zt27MjJkycb3PHZVuexlezsbDZv3kxKWjol5RokR3f82sUR5huK1AYvvroolA54+Abj4RtsGaZfmJPKgSOnSUhMJqxdELfddpvNV/muqKhgy5YtnDp+FEN5ETEhXkRGhbWpllZjSJJEoJcbgV5uDOjSjtziCs7nFJF6Np7Psy8xcMhQRo4cadPFn41GI0eOHGH7ju3kluSh8HLELyoYj0DvFh01aI+cVM4ERIYQEBmCtkJDyaVC0tOz+OHHlZw6dYoJEyYQEBBgs/quKYHpdDqWLFnCF198gV6vR5ZlRowYwZw5c6weiNBYd999N6dOnWLWrFlMmjSJwsJCtm7dikqlYty4cQAYDAbi4+N59dVXkSSJsWPHWlVXeXk5QL19uOYH/RUVFdf9PObmdF1ycnIICQm5agxmsiyzdu1aTiak4uQRSEiX3rh62K6LtykeGt+nzte/3XS8mSOpSZIk3L0DcfcORKsupzAnlVPnLlJW/iP/fO4fqFS2eR5YWlrKZ0uXUHr5Ev7OMKxfBN520tpqP+LeOl/P2rWymSOpTSFJhPp6EOrrQUxJBXsTs9i7/WfOJyUxZepUm91M//DDDxw/fYIyQyUhPcLwCvW1m5uK+/tPrPP1Fb+ta+ZIanN2dyEouh2+HQPJPpPBbwnHuJh1kUcfebRJo8Ov1Ojbhz179jB+/HiWLl2KTqcjODiYf//73yxduvS6Jy+Ae++9lxEjRqBWq1mxYgVbt24F4Pnnn7ckgh9++IGHH36YS5cuERERwUMPPWRVXeauyvq6BMyv6/X6ZjmPLSQnJ5N+MRsX71DCowfYTfJqLZxVHoR27oVfuxgKispsumFgZWUllaXFtPdw4I6+kXaTvFqTYG937hoQhaeko7Agr851Uq2Vn59PsbaMLiO7493Oz26SV2vh6OxIh76ReHbyo7SqnOLiYpudu1EtsGeeeYZt27ZZVuJo3749kydPpry8vNbghIZMmjTpWmMEqu+GP/30U1asWMGePXtwcnJi3Lhx3H777TXKmVuF8+fPvyH2kLrag8yrtc7+LCsrC6PRiFZTiqaqDBdXT1uEZxMt3dJqLL1OTWVpPpLRRFZWls3O6+/vj+TgRFlVOVU6A27O9jOi0B5aWo1VptZRpTXgHeKHs7Ozzc4bGBiIMv0cmtIq3APs57oB+2hpNYZRb0BdVoWL0tGmGw03KoFt3boVSZIsdx6XLl2yan6VJElWJzDAMiG6vm1Sbr/9dm699VYCAwOtruNa2OpOrDnu6IYOHYparWb/gUNcTNiNT0gUvsGdauzBJdTNZDJSWpBF/sUEfDwciesXZ+m2tgUnJyeiY7uSeOo4qw6dp1t7H+LCg3B2bBsj2ZqqUqPj2IVcUvLKcfTwpZuNN9fs2rUrZxITyD56AUdfFcGx7VF52sfCt/bOZDJRlJ5HfnIu7koVYe3b2XQ7pEY/A7PFdLHrvfC9rYbtm/vODQZDncfNP0dDd3m2Oo8tODk5MX78eKKjo1m3fj2Zly6QknMeZzc/vPzb4ekbIpLZFUwmIxXFlyktvERV6WVUzgo6hHgxduzt9OnTx+Y3Hffddx+nu3Zl584dnM25xLnsc3QN9aVToDc+N9g8IluQZZm80kpSL5dwPrcUhZsn4V17M3r0aCIiImxaV8+ePQkMDGT79u2cTTpLxr4kXIM88W7vV738kxgAVYuuSktpThFF6fk4Gx3p6BfG8GE3c9NNN9l0oF+jEti5c+dsVmFrYJ5Nbh6E8WfmQRcNrdpgq/PYUmRkJE9Pm8aJEydISEjgQvpFKi4nkp9xCmd3Pzz92uHhE4yD4/VPqvbGaNRTWZL/R9JyUuDu6kxU14507dqVPn36XLdljRQKBT179qRr164cPXqUvbt3k1BUwMnsDNyVMh0DvegU6I2/R8utZdjSTLJMbkkF6XmlpOeXWhYG9usUzahRt9CjR4/rlkxCQkJ4+OGHSUtLY9v2bVy4mE5B/CUuyRdwC/TEK9QXjwCvNj0qUVupoTS7iNKcYowV1QsDh6gCGDRwEEOHDr0u27XY5Zomr7zyCps3b+bJJ59k6tSpwLU97zGTJInt27df8/vCw8OB6hU96pKeng7UPzze1uexNRcXFwYNGsSgQYMoLi4mMTGRs2fPXpHMTqJwcsfdKwB370BcPf2vy2ryLU2WTagriqkoyaeiNA+9uhSVsxJ3lTNdYjvSrVtXunbtSlBQULMlDUdHRwYNGkS/fv1ISUkhMTGRpMSznCsu5UzORVwVJjoGeBHm70mwtxvKG/zuX2cwklNcQWZBGekFZegVjiid3fAMjaRv167ExMQ064ocnTt35sknniQ7O5vExEQSEhLIzc+lsCCHS8YLuAV44hnsjUeAFw529CzzepBlGXVJJWV5pZTlFCNXGXBzdiVI5UtU/yhiYmKIjo6+rvuM2eWGlv369aOiooK4uDhWrqx+iGzNvBtJkqzavmXXrl089dRThIeHs2XLlhp3dQUFBYwYMQKFQsGhQ4eu+uHY6jz1sfVaiMXFxZw7d47U1FQuXEinrEKNWqtHozPi5OpTPaTcKwAXN+9W2QqQZRmdpsKSsDTlhTg5gMrFETeVMx07hNG5c2diYmKaNWk1RK/Xk5aWVp3MziVSWVqMUatGMmgJ8VLR/vdFe71cW3+rWZZliis0ZBZWLyOVV65BcnRB6eyKp58/sbFdiY2NJTw83C4WYZZlmdzcXMtN4KXL2ah1aqr0GhzcnfD4fQ1EV2/3Ztke5XrTa3SU55dRnldCZX45TjigcnTB09WD6KhoYmNjiYqKwsXF+pG0zbYSx/WycOFCdu/eXWPAx4IFC5qt/sGDBxMaGsrFixdZsGABL774Ig4ODlRUVDB79mz0ej2TJk2yJJ3MzExefPFFunbtypw5c6w+T0vz8fGxtMz0ej1ZWVmkpaWRlpbGxcxLVJWmk3s5GZ1JwtUz4PeEFmjX6yMaDToqSvOpKMmjsjQPpaxD5eKEp4sjMV07EhHRmc6dO9OhQ4cmXXTXk6OjI9HR0URHR2M0TiAjI8OyaOzl7Cxysys5fKEANwdo7+tOmL8noT4eOLSS7iyt3silojIyC8q4VFyBRlZWb7Pi4kXnnj2JiIi4biufN5UkSYSEhBASEsLIkSMtOwSkpqaSmpZKRXYlOenF6DGg8nPHI9ALzyBvHF1ax/Nm2SRTWVROeV4p5fmlmCr0qJxUqJxc6Ng+mi5dqhdZ7tSpU7M8y/8zu2yB2YMrV5H39vYmNDSU9PR0qqqqCAkJ4YcffrBshbJs2TIWLlwIwMGDB/H19bXqPNeqOfcDq6qqsmypkpKSQl5BEWpN9Qr1OKhw9wrE3TsIN0+/Zt0H7M9k2YS6vJjykjwqSy9j0JSh+n3leR8fTyIjIujcuTppeXl5tVictlJaWmr5TNJSU6gqK8GoVYNeQ7CXinB/T8L8vGy+43JTyLJMSZWWzIJSLhaUkVeuReGsqm5l+fpZVp7v3Lmz3dzcWUOn05Genm75fLIv51ClU6PWqVG4O+IZVL2liqu3m9209gEMWr1l5fmq/HKccMTVyQUPVw8iOld/LpGRkfj5XZ85cS2+H9iN4syZMyxZsoRjx45RUVFBQEAAw4cPZ/r06TXmMpw+fZq///3vxMTE8OWXX9a6S2zsea5VS+3ILMsyRUVFV9xpXqCsvJIqTXV3o8ozEK/fB4M0RzKTTSYqy/IpLbhERUkuTkoZVxdH3N1c6NSxA507dyYiIoKQkBC7+qKwNfNmo8nJySQnJ5OTdRGjVo1BU4W3s4Iwf086+HsS6NX8X5gmk8yl4nIu5peSWVhOlUnxeyvLlbAOnYiKiiIyMtKuum5trbi42LLjQ0pqCuXqCqp0avSSEbcAD0tCa4mFgDXlakpziim/XIK+TIurkwsqJxXB/kFER0cTGRlJhw4dmmUz2Bs+gRUVFaHRaFCpVFat4n6jaKkE9mcGg4GsrCxSU1NJSkoi81IOFVU61FrDdUtmf05azg7g7upEUIAvsbGxRERE0KFDhxbp1rAXpaWlll2A01JS0FSWYdRUopKMRAb7EBnsc11X/ZBlmfyyKlJyi0nLK0WvcMLBpXpLlMioKEv3U2tuZVnL3DpLTk4mKSmJ/KJ8KnVqNEYtbkGe+LT3x93f87o+N9NrdJRkFVJ8qRCqjLg6ueLu4kZEp86WLYX8/f2b/Ybihktgx48fZ/PmzezatYvc3FyMRqPlmFKpJCgoiOHDhzN27Fj69+/fgpE2L3tJYH+Wl5fH2bNnOXv27BXJzIiHXxj+oV1wcrH+C8ug11GUm0bJ5Qs4OciWpNWtWze6du1K+/btb9g7+KbQ6/VkZGRUfy4JZ6gqLcKgrsTHRVGdzIJ8UNlo1FxZlZaU3GJScoupMEo4qNzx8guke48exMbG0q5dO7sYgGEvZFnm8uXLnDt3jlOnT5F9+fctWiQDXqE+eLf3x9Xbup01/sxoMFKaXUTJpUK0xWrcnVzxcvUkNiaWbt26ERER0eLPgm+YBFZUVMQbb7xhWffwaqGav7RGjhzJG2+8YdMVj+2VvSawK5mT2cmTJ8nKzqOkXIOrdwj+7aKuaTkrvVZNQU4KZfkZeLo6EhjgQ+9ePUXSsoJer+f8+fOcOXOG8+cS0VWWIWsqiQ7xIq5DkNVLWZVUaohPv0xaQQVKlQcqD2+6du9O9+7d6dSpk0hajSDLMpcuXeL06dOcOXOG/OICyrUVOHg7ExTdDjdf6+aMGg1GCi9cpjA1D5XSGQ9nNyI7R9Lj95sKe2oF3xAJrKioiHvuuYfs7GwcHR255ZZbGDZsGJGRkXh6euLo6IhOp6O0tJSkpCR+/fVX9u7di8lkIjg4mFWrVtl0zS171BoSmJnRaCQxMZF9+/ZxISOL4jI1ssK50YlHNmjwdHemfUgAQ4YMoVevXjfEWpctraqqioSEBA4eOEBBTiamqnJiQrzoFhaIUyOfxVRpdZzMyCOtoAJHd2/adazeOy0mJkZ8Rk1g3tj0yJEjJJxLoLiqtDqRRbXDxbNxI39NJpnii/kUpubh5qAiyDeQwQMHERcXd90m5TdVq09gsizz0EMPcfz4cXr27MnChQsJCwtr8H3nzp3jueeeIy0tjV69evH999/f0HfmrSmBmcmyTGpqKgcPHqSgoKDR73N3d+emm26ie/fu4k7+OjAajZw6dYq9e/ZQkJOJvqoCaNxXgyQpcHTzpF3HCIYPH05UVNQNfd21hKysLPbs2cOZxDOUVJVhNBkbftPvXJ1dCfINZOjgIfTv39/unwu3+gT2888/849//IPOnTuzevXqa2reFhQUcNddd5Gfn8/7779v00VX7U1rTGCCfTMnstTU1EavXapUKunWrZtIXM0gKyuLY8eO1dqd/mpCQ0Pp16+f3Scus1Y/kXnDhg1IksSzzz57zX2z/v7+PP3007z22mts2rTphk5ggmBrSqWS3r1707t375YORahD+/btm2X/xdbCvqa1/+706dMA3HzzzVa9/9ZbbwWq518JgiAINya7TGDFxcW4u7tbvWW7r68vKpWKwsJCG0cmCIIg2Au7TGAGgwEHh6b1bjo7O9eYLyYIgiDcWOwygQmCIAhCQ+xyEAdUz095+eWXm/R+QRAE4cZltwlMp9Oxdu1aq98vy7IY0isIgnADs8sE1pbWMxQEQRCsY5cTmYXG6dGjB0ajkZCQkJYORRAEwSZycnJQKpWW6VRXIwZxtGLOzs5NHq1pT3JycsjJyWnpMIQ6iM/Gvt1In4+Dg0OjVw0RLTDBboilseyX+GzsW1v9fEQLTBAEQWiVRAITBEEQWiWRwARBEIRWSSQwQRAEoVUSCUwQBEFolUQCEwRBEFolMYxeEARBaJVEC0wQBEFolUQCEwRBEFolkcAEQRCEVkkkMEEQBKFVEglMEARBaJVEAhOuKiMjg9dff53bbruNnj170qtXL+644w7effddLl++XKPsW2+9RXR0NG+//Xad57p06RLR0dHcdNNNmEymOsvccccdREdHX3VR0vvuu4/o6GiWLVvWqJ/h4MGDzJgxg6FDh9K9e3eGDBnCY489xtq1a7HHQbhZWVlER0c3+K9fv34A/Pjjj0RHR/Pwww/XOI/59d69e5Obm3vVOs3nLCsru2oc3bp1Y9SoUTz11FNs27YNo9HY4M9TXFzMJ598wsSJE+nTpw+DBg3i/vvvZ8WKFWi12jrfY479z/969OjBqFGjeOGFFzh16lSDdV8PV/5e6nP8+HHi4uKIjo5m1apVNY5VVFTwySefcOedd9K3b1+6d+/OqFGjmDVrFmfOnKl1rq1btxIdHc3EiRPrre+WW24hOjqas2fP1nl83rx5REdHs2DBgnrP8f777xMdHc0TTzxRb5krpaenM3fuXG699VZ69OhB//79ueuuu/jPf/5DZWVlo87RVDfOXhyCzW3cuJGXXnoJvV6Pi4sL4eHhaDQaLly4QHJyMqtXr+bTTz+1bEDap08fli9fzsmTJ+s834EDBwAoLS3lzJkzxMXF1TheUVFBamoqkiTRp0+fOs+Rnp5OfHw8AOvXr2/wYnvvvff44osvAPDy8qJz584UFRVx4MABDhw4wNq1a1myZAkqlarRv5fm1LNnz3qPubm5NeocVVVVzJs3j08//bTJcZhMJgoLC9m1axe7du2iX79+LF68GF9f3zrfl5CQwJNPPklBQQEuLi506NABrVZLfHw8J06cYMWKFSxbtoyAgIA63+/m5kZkZKTlv8vLy8nKymL9+vWWv8+//e1vVv9c18PFixeZNm0aWq2WJ554gnvuucdyLCkpib///e/k5eWhUCgIDw/H0dGRrKws1q1bx4YNG3jxxRd59NFHLe8xXwvJyclUVVXh6upao76MjAyysrKA6musa9eutWIyXzN9+/atM2aTycSGDRsA2L9/PwUFBfj7+9f7M27ZsoUXXngBrVaLSqWyfDecO3eOhIQEVqxYweeff07nzp0b/oU1hSwIdThx4oQcExMjR0VFyR9//LFcWVlpOVZYWCi/9NJLclRUlHzTTTfJBQUF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",
593
      "text/plain": [
594
       "<Figure size 400x300 with 1 Axes>"
595
      ]
596
     },
597
     "metadata": {},
598
     "output_type": "display_data"
599
    }
600
   ],
601
   "source": [
602
    "g = sns.violinplot(data=df_size2res_sig, x='Method', y='# False Pos.', order = ['GWAS', 'FINDOR', 'KGWAS'], hue = 'Method', hue_order = ['GWAS', 'FINDOR', 'KGWAS'], alpha=0.7)\n",
603
    "g.set(ylabel='Number of False \\n Discovery Indep. Loci', xlabel = '')"
604
   ]
605
  },
606
  {
607
   "cell_type": "code",
608
   "execution_count": 44,
609
   "metadata": {},
610
   "outputs": [
611
    {
612
     "data": {
613
      "text/plain": [
614
       "Method\n",
615
       "FINDOR    0.018\n",
616
       "GWAS      0.016\n",
617
       "KGWAS     0.018\n",
618
       "Name: # False Pos., dtype: float64"
619
      ]
620
     },
621
     "execution_count": 44,
622
     "metadata": {},
623
     "output_type": "execute_result"
624
    }
625
   ],
626
   "source": [
627
    "df_size2res_sig.groupby('Method')['# False Pos.'].mean()"
628
   ]
629
  },
630
  {
631
   "cell_type": "markdown",
632
   "metadata": {},
633
   "source": [
634
    "Awesome - now, let's look at the causal simulation. Similarly, we first need to load the data."
635
   ]
636
  },
637
  {
638
   "cell_type": "code",
639
   "execution_count": 1,
640
   "metadata": {},
641
   "outputs": [],
642
   "source": [
643
    "df_gwas = pd.read_csv(data_path + 'model_pred/simulation/causal_simulation_gwas.csv')\n",
644
    "df_kgwas = pd.read_csv(data_path + 'model_pred/simulation/causal_simulation_kgwas.csv')\n",
645
    "df_findor = pd.read_csv(data_path + 'model_pred/simulation/causal_simulation_findor.csv')\n",
646
    "\n",
647
    "df_gwas = snp_info.merge(df_gwas, left_on = 'SNP', right_on = 'ID')\n",
648
    "df_kgwas = snp_info.merge(df_kgwas, left_on = 'SNP', right_on = 'ID')\n",
649
    "df_findor = snp_info.merge(df_findor)"
650
   ]
651
  },
652
  {
653
   "cell_type": "markdown",
654
   "metadata": {},
655
   "source": [
656
    "For causal simulation, we need to know the ground truth causal variants. We can load it via:"
657
   ]
658
  },
659
  {
660
   "cell_type": "code",
661
   "execution_count": 2,
662
   "metadata": {},
663
   "outputs": [
664
    {
665
     "data": {
666
      "text/plain": [
667
       "array(['rs77902650', 'rs34970007', 'rs2260000', ..., 'rs61746937',\n",
668
       "       'rs35667233', 'rs4277734'], dtype=object)"
669
      ]
670
     },
671
     "execution_count": 2,
672
     "metadata": {},
673
     "output_type": "execute_result"
674
    }
675
   ],
676
   "source": [
677
    "import pickle\n",
678
    "causal_variants = pickle.load(open(data_path + 'model_pred/simulation/causal_variants.pkl', 'rb'))\n",
679
    "causal_variants[1]"
680
   ]
681
  },
682
  {
683
   "cell_type": "code",
684
   "execution_count": 5,
685
   "metadata": {},
686
   "outputs": [],
687
   "source": [
688
    "import copy\n",
689
    "t_p = 5e-8\n",
690
    "\n",
691
    "def get_stats(seed):\n",
692
    "    stats = {}\n",
693
    "    base_gwas = df_gwas[['SNP', 'CHR', 'P_seed'+str(seed)]].rename(columns = {'P_seed'+str(seed): 'P'})\n",
694
    "    kgwas = df_kgwas[['SNP', 'CHR', 'P_seed'+str(seed)]].rename(columns = {'P_seed'+str(seed): 'P'})\n",
695
    "    findor = df_findor[['SNP', 'CHR', 'P_seed'+str(seed)]].rename(columns = {'P_seed'+str(seed): 'P'})\n",
696
    "\n",
697
    "    # create a fake ground truth sum stats with causal variants have extremely low p-values\n",
698
    "    causal_snps = causal_variants[seed]\n",
699
    "    gold_label_gwas = copy.deepcopy(snp_info)\n",
700
    "    gold_label_gwas['P'] = 1\n",
701
    "    gold_label_gwas.loc[gold_label_gwas['SNP'].isin(causal_snps), 'P'] = 0\n",
702
    "\n",
703
    "    gold_snps = gold_label_gwas[gold_label_gwas.P < t_p].SNP.values\n",
704
    "    clumps = get_clumps_gold_label(data_path, gold_label_gwas, t_p = t_p, no_hla = True) \n",
705
    "    idx2mega_clump, idx2mega_clump_rsid, idx2mega_clump_chrom = get_meta_clumps(clumps, data_path) ## filtering cM\n",
706
    "    mega_clump_gold = [j for i,j in idx2mega_clump_rsid.items()]\n",
707
    "    \n",
708
    "    def get_scores(base_gwas, name):\n",
709
    "        frac2res = {}\n",
710
    "        base_gwas['logp'] = -np.log10(base_gwas['P'])\n",
711
    "        snp2rank = dict(base_gwas[['SNP', 'logp']].values)\n",
712
    "        snp_hits = base_gwas.sort_values('P').SNP.values\n",
713
    "\n",
714
    "        idx2mega_clump_pred, idx2mega_clump_rsid_pred, idx2mega_clump_chrom_pred = get_mega_clump_query(data_path, clumps, snp_hits, no_hla = True) \n",
715
    "        idx2mega_clump_rank_pred = {i: max([snp2rank[x] for x in j  if x in snp2rank]) for i,j in idx2mega_clump_rsid_pred.items()}\n",
716
    "        idx2mega_clump_rank_pred = dict(sorted(idx2mega_clump_rank_pred.items(), key=lambda item: item[1])[::-1]) ## rank based on logp\n",
717
    "        mega_clump_pred = [idx2mega_clump_rsid_pred[i] for i in list(idx2mega_clump_rank_pred.keys())][:1000] ## top 1000 predicted clumps\n",
718
    "        frac2res['recall_k_base_gwas'], frac2res['precision_k_base_gwas'], frac2res['k_to_clump_idx_base_gwas'] = get_curve(mega_clump_pred, mega_clump_gold)\n",
719
    "        frac2res['mega_clump_pred_base_gwas'] = mega_clump_pred\n",
720
    "        frac2res['mega_clump_gold'] = mega_clump_gold\n",
721
    "\n",
722
    "        rs_to_p = dict(base_gwas[['SNP', 'P']].values)\n",
723
    "        mega_clump_sign = []\n",
724
    "        for idx, mega_clump in enumerate(mega_clump_pred):\n",
725
    "            if min([rs_to_p[rs] for rs in mega_clump if rs in rs_to_p]) <= 5e-8:\n",
726
    "                ## is significant givent this threshold\n",
727
    "                mega_clump_sign.append(idx)\n",
728
    "\n",
729
    "        mega_clump_sign_rep = []\n",
730
    "        for idx in mega_clump_sign:\n",
731
    "            if len(np.intersect1d(mega_clump_pred[idx], gold_snps)) > 0:\n",
732
    "                mega_clump_sign_rep.append(idx)\n",
733
    "        frac2res['num_significant_' + str(5e-8) +'_' + name] = len(mega_clump_sign)\n",
734
    "        frac2res['num_significant_replicated_' + str(5e-8) + '_' + name] = len(mega_clump_sign_rep)\n",
735
    "        return frac2res\n",
736
    "\n",
737
    "    stats['gwas'] = get_scores(base_gwas, 'gwas')\n",
738
    "    stats['kgwas'] = get_scores(kgwas, 'kgwas')\n",
739
    "    stats['findor'] = get_scores(findor, 'findor')\n",
740
    "    return stats"
741
   ]
742
  },
743
  {
744
   "cell_type": "code",
745
   "execution_count": 6,
746
   "metadata": {},
747
   "outputs": [
748
    {
749
     "name": "stderr",
750
     "output_type": "stream",
751
     "text": [
752
      "100%|██████████| 100/100 [1:21:07<00:00, 48.67s/it]\n"
753
     ]
754
    }
755
   ],
756
   "source": [
757
    "seed_list = list(range(1, 101))\n",
758
    "with multiprocessing.Pool(10) as p:\n",
759
    "    res = list(tqdm(p.imap(get_stats, seed_list), total=len(seed_list)))"
760
   ]
761
  },
762
  {
763
   "cell_type": "code",
764
   "execution_count": null,
765
   "metadata": {},
766
   "outputs": [],
767
   "source": [
768
    "result = ([['GWAS', i['gwas']['num_significant_replicated_5e-08_gwas']] for i in res] + [['KGWAS', i['kgwas']['num_significant_replicated_5e-08_kgwas']] for i in res] + [['FINDOR', i['findor']['num_significant_replicated_5e-08_findor']] for i in res])\n",
769
    "df_size2res_sig = pd.DataFrame(result).rename(columns = {1: '# of hits', 0: 'Method'})"
770
   ]
771
  },
772
  {
773
   "cell_type": "code",
774
   "execution_count": null,
775
   "metadata": {},
776
   "outputs": [
777
    {
778
     "data": {
779
      "image/png": "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",
780
      "text/plain": [
781
       "<Figure size 400x300 with 1 Axes>"
782
      ]
783
     },
784
     "metadata": {},
785
     "output_type": "display_data"
786
    }
787
   ],
788
   "source": [
789
    "data_gwas = df_size2res_sig[(df_size2res_sig['Method'] == 'GWAS') ]['# of hits']\n",
790
    "data_kgwas = df_size2res_sig[(df_size2res_sig['Method'] == 'KGWAS')]['# of hits']\n",
791
    "# T-test\n",
792
    "t_stat, p_val = ttest_ind(data_gwas, data_kgwas, equal_var=False)  # Assuming unequal variances\n",
793
    "\n",
794
    "# Create the barplot\n",
795
    "g = sns.barplot(data=df_size2res_sig, x='Method', y='# of hits', order = ['GWAS', 'FINDOR', 'KGWAS'], hue = 'Method', hue_order = ['GWAS', 'FINDOR', 'KGWAS'], alpha=0.7)\n",
796
    "g.set(ylabel='Number of True \\n Discovery Indep. Loci', xlabel = '')\n",
797
    "\n",
798
    "gwas_bar = plt.gca().patches[0]\n",
799
    "kgwas_bar = plt.gca().patches[2]\n",
800
    "\n",
801
    "max_height = max(gwas_bar.get_height(), kgwas_bar.get_height())\n",
802
    "\n",
803
    "# Define where to place the bracket\n",
804
    "bracket_height = max_height * 1.2\n",
805
    "\n",
806
    "# Draw the bracket and label based on p-value\n",
807
    "plt.plot([gwas_bar.get_x() + gwas_bar.get_width() / 2, kgwas_bar.get_x() + kgwas_bar.get_width() / 2],\n",
808
    "            [bracket_height, bracket_height], color='black', lw=1.5)\n",
809
    "\n",
810
    "label = f'p = {p_val:.1e}' if p_val < 0.05 else f'n.s.'\n",
811
    "plt.text((gwas_bar.get_x() + kgwas_bar.get_x()) / 2 + kgwas_bar.get_width() / 2, bracket_height + 0.001, label,\n",
812
    "            ha='center', va='bottom', color='black', fontsize=16)\n",
813
    "\n",
814
    "sns.despine()\n",
815
    "plt.show()"
816
   ]
817
  },
818
  {
819
   "cell_type": "code",
820
   "execution_count": 26,
821
   "metadata": {},
822
   "outputs": [
823
    {
824
     "data": {
825
      "text/plain": [
826
       "[Text(0, 0.5, 'Number of True \\n Discovery Indep. Loci'), Text(0.5, 0, '')]"
827
      ]
828
     },
829
     "execution_count": 26,
830
     "metadata": {},
831
     "output_type": "execute_result"
832
    },
833
    {
834
     "data": {
835
      "image/png": "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RkbKL7zwQrv+JpaSlZXV+HdqjzVr1siRkZHy/fff3+zjDT87duxocR8N25SXl7crjpSUFPnRRx+VIyMj5ZkzZ8oajeaKbfLz8+WRI0fKkZGR8scff9zkM5SZmSnff//9cmRkpHzbbbfJer2+Xb+TLMtydXW1/MEHHzR+DuLj41v+43SC1v4uZWVl8owZM+TIyEj56aefbvKZKy8vlydOnChHRkbKixYtkvPy8hqfq6urk7/77rvGz/Xhw4eb7HfatGlyZGSkfOzYsSuO+dNPPzXGs2DBgiuer62tlQcOHChHRkbKhYWFzf5OR44caXJefffdd63+/oMHD5YjIyPlzz77TK6trW18rqCgQH766aflyMhIefr06bJWq21xP+Yguv56uPfeew+j0ciCBQt45plnmlzFeXl58d577zFmzBjKysr4+eefAQgICCAoKAidTkdsbGyT/RmNRo4dO4aXlxcKhaKxdXW5hpZYS60pWZbZuHEjQGM31/r161v8HRq6XBYtWsSMGTOQJKnxuYEDB7J06VKUSiUbN25ss2usO3j33Xepqqoyy7769OnDl19+yeTJk0lJSeGzzz67YpsPP/yQyspKHnroIf785z83+QyFhITw9ddfExERQXx8PCtXrmz3sZ2cnHjhhRe45pprMBqNbNiwwSy/U0dptVqeeuop0tLSGDx4MB9++GGTz9xXX31FQUEBw4YN47PPPsPf37/xOTs7Ox566CEWLlwIwBdffNFk3w3nREPL6HIN55Kvry+nTp1Cq9U2eT42NhadTkdoaGiLraSGv+H8+fOB1s+rjRs3UldXx8SJE3n66adxcHBofM7X15ePPvqI8PBw0tPT2b59e4v7MQeRqHqw5ORkzp07h729PYsXL252G4VCwf3334+Pj0+TpNRwQv2x++/ChQuUlZUxYsQI+vbty5kzZ664P9Hwmpa6J06ePEl2djbDhg3jkUceQaFQsGXLFvR6fbPbN6x42q9fv2afDw8PJywsDIPBcEVi7U6GDRtGeHg4eXl5/POf/zTbfpVKJW+88QYKhYIVK1Y0eT8rKyvZtm0bjo6OPP30082+3sHBgSeffBKANWvWXPXxx48fD0BqaqoJ0Zvfq6++yokTJwgKCuKLL75o8gUuyzLr1q0D4KmnnmpxZe577rkHX19fMjIymvw9W0pUer2e48eP4+7uzg03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",
836
      "text/plain": [
837
       "<Figure size 400x300 with 1 Axes>"
838
      ]
839
     },
840
     "metadata": {},
841
     "output_type": "display_data"
842
    }
843
   ],
844
   "source": [
845
    "g = sns.violinplot(data=df_size2res_sig, x='Method', y='# of hits', order = ['GWAS', 'FINDOR', 'KGWAS'], hue = 'Method', hue_order = ['GWAS', 'FINDOR', 'KGWAS'], alpha=0.7)\n",
846
    "g.set(ylabel='Number of True \\n Discovery Indep. Loci', xlabel = '')"
847
   ]
848
  },
849
  {
850
   "cell_type": "markdown",
851
   "metadata": {},
852
   "source": []
853
  }
854
 ],
855
 "metadata": {
856
  "kernelspec": {
857
   "display_name": "a100_env",
858
   "language": "python",
859
   "name": "python3"
860
  },
861
  "language_info": {
862
   "codemirror_mode": {
863
    "name": "ipython",
864
    "version": 3
865
   },
866
   "file_extension": ".py",
867
   "mimetype": "text/x-python",
868
   "name": "python",
869
   "nbconvert_exporter": "python",
870
   "pygments_lexer": "ipython3",
871
   "version": "3.8.0"
872
  }
873
 },
874
 "nbformat": 4,
875
 "nbformat_minor": 2
876
}