gwaslab 3.4.46__py3-none-any.whl → 3.4.47__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of gwaslab might be problematic. Click here for more details.

@@ -58,6 +58,8 @@ def plot_stacked_mqq(objects,
58
58
  region_hspace=0.05,
59
59
  subplot_height=4,
60
60
  region_lead_grid_line=None,
61
+ fontsize=9,
62
+ font_family="Arial",
61
63
  build="99",
62
64
  save=None,
63
65
  save_args=None,
@@ -83,6 +85,11 @@ def plot_stacked_mqq(objects,
83
85
  region_chromatin_height = len(region_chromatin_files) * region_chromatin_height
84
86
  if region_chromatin_labels is None:
85
87
  region_chromatin_labels = []
88
+ if title_args is None:
89
+ title_args = {"family":"Arial"}
90
+ else:
91
+ if "family" not in title_args.keys():
92
+ title_args["family"] = "Arial"
86
93
  # create figure and axes ##################################################################################################################
87
94
  if mode=="r":
88
95
  if len(vcfs)==1:
@@ -131,6 +138,7 @@ def plot_stacked_mqq(objects,
131
138
  ##########################################################################################################################################
132
139
  # a dict to store lead variants of each plot
133
140
  lead_variants_is={}
141
+ lead_variants_is_color ={}
134
142
 
135
143
  ##########################################################################################################################################
136
144
  # plot manhattan plot
@@ -144,7 +152,7 @@ def plot_stacked_mqq(objects,
144
152
  #################################################################
145
153
  if index==0:
146
154
  # plot last m and gene track
147
- fig,log,lead_i,lead_i2 = mqqplot(sumstats,
155
+ fig,log,lead_snp_is,lead_snp_is_color = mqqplot(sumstats,
148
156
  chrom="CHR",
149
157
  pos="POS",
150
158
  p="P",
@@ -153,6 +161,8 @@ def plot_stacked_mqq(objects,
153
161
  snpid="SNPID",
154
162
  vcf_path=vcfs[index],
155
163
  mode=mode,
164
+ fontsize=fontsize,
165
+ font_family=font_family,
156
166
  region_lead_grid=False,
157
167
  gtf_path="default",
158
168
  rr_ylabel=False,
@@ -165,10 +175,11 @@ def plot_stacked_mqq(objects,
165
175
  log=log,
166
176
  **mqq_args_for_each_plot[index]
167
177
  )
168
- lead_variants_is[index] = (lead_i,lead_i2)
178
+ lead_variants_is[index] = lead_snp_is
179
+ lead_variants_is_color[index] = lead_snp_is_color
169
180
  else:
170
181
  # plot only the scatter plot
171
- fig,log,lead_i,lead_i2 = mqqplot(sumstats,
182
+ fig,log,lead_snp_is,lead_snp_is_color = mqqplot(sumstats,
172
183
  chrom="CHR",
173
184
  pos="POS",
174
185
  p="P",
@@ -177,6 +188,8 @@ def plot_stacked_mqq(objects,
177
188
  snpid="SNPID",
178
189
  vcf_path=vcfs[index],
179
190
  region_lead_grid=False,
191
+ fontsize=fontsize,
192
+ font_family=font_family,
180
193
  mode=mode,
181
194
  rr_ylabel=False,
182
195
  region_ld_legend=False,
@@ -190,8 +203,8 @@ def plot_stacked_mqq(objects,
190
203
  log=log,
191
204
  **mqq_args_for_each_plot[index]
192
205
  )
193
- lead_variants_is[index] = (lead_i,lead_i2)
194
-
206
+ lead_variants_is[index] = lead_snp_is
207
+ lead_variants_is_color[index] = lead_snp_is_color
195
208
  if len(region_chromatin_files)>0 and mode=="r":
196
209
  xlim_i = axes[-1].get_xlim()
197
210
  fig = _plot_chromatin_state( region_chromatin_files = region_chromatin_files,
@@ -201,7 +214,9 @@ def plot_stacked_mqq(objects,
201
214
  ax = axes[-2],
202
215
  xlim_i=xlim_i,
203
216
  log=log,
204
- verbose=verbose)
217
+ verbose=verbose,
218
+ fontsize = fontsize,
219
+ font_family = font_family)
205
220
  # adjust labels
206
221
  # drop labels for each plot
207
222
  # set a common laebl for all plots
@@ -210,44 +225,44 @@ def plot_stacked_mqq(objects,
210
225
  # title_box = dict(boxstyle='square', facecolor='white', alpha=1.0, edgecolor="black")
211
226
  # title_box = {}
212
227
 
213
- if title_args is None:
214
- title_args = {}
215
- if titles is not None and mode=="r":
216
- if title_pos is None:
217
- title_pos = [0.01,0.01]
218
- for index,title in enumerate(titles):
219
-
220
- current_text = axes[index].text(title_pos[0], title_pos[1] , title, transform=axes[index].transAxes,ha="left", va='bottom',zorder=999999, **title_args)
221
- r = fig.canvas.get_renderer()
222
- bb = current_text.get_window_extent(renderer=r).transformed(axes[index].transAxes.inverted())
223
- width = bb.width
224
- height = bb.height
225
-
226
- rect = patches.Rectangle((0.0,0.0),
227
- height=height + 0.02*2,
228
- width=width + 0.01*2,
229
- transform=axes[index].transAxes,
230
- linewidth=1,
231
- edgecolor='black',
232
- facecolor='white',
233
- alpha=1.0,
234
- zorder=99998)
235
- axes[index].add_patch(rect)
236
- rect.set(zorder=99998)
237
- else:
238
- if title_pos is None:
239
- title_pos = [0.01,0.97]
240
- for index,title in enumerate(titles):
241
- axes[index].text(title_pos[0], title_pos[1] , title, transform=axes[index].transAxes,ha="left", va='top',zorder=999999, **title_args)
228
+ #if title_args is None:
229
+ # title_args = {}
230
+ #if titles is not None and mode=="r":
231
+ # if title_pos is None:
232
+ # title_pos = [0.01,0.99]
233
+ # for index,title in enumerate(titles):
234
+ #
235
+ # current_text = axes[index].text(title_pos[0], title_pos[1] , title, transform=axes[index].transAxes,ha="left", va='top',zorder=999999, **title_args)
236
+ # r = fig.canvas.get_renderer()
237
+ # bb = current_text.get_window_extent(renderer=r).transformed(axes[index].transAxes.inverted())
238
+ # width = bb.width
239
+ # height = bb.height
240
+ #
241
+ # rect = patches.Rectangle((0.0,1.0 - height),
242
+ # height=height + 0.02*2,
243
+ # width=width + 0.01*2,
244
+ # transform=axes[index].transAxes,
245
+ # linewidth=1,
246
+ # edgecolor='black',
247
+ # facecolor='white',
248
+ # alpha=1.0,
249
+ # zorder=99998)
250
+ # axes[index].add_patch(rect)
251
+ # rect.set(zorder=99998)
252
+ #else:
253
+ if title_pos is None:
254
+ title_pos = [0.01,0.97]
255
+ for index,title in enumerate(titles):
256
+ axes[index].text(title_pos[0], title_pos[1] , title, transform=axes[index].transAxes,ha="left", va='top',zorder=999999, **title_args)
242
257
 
243
258
  ##########################################################################################################################################
244
259
  # draw the line for lead variants
245
- _draw_grid_line_for_lead_variants(mode, lead_variants_is, n_plot, axes, region_lead_grid_line,region_chromatin_files)
260
+ _draw_grid_line_for_lead_variants(mode, lead_variants_is,lead_variants_is_color, n_plot, axes, region_lead_grid_line,region_chromatin_files)
246
261
 
247
262
  ##########################################################################################################################################
248
263
  _drop_old_y_labels(axes, n_plot)
249
264
 
250
- _add_new_y_label(mode, fig, gene_track_height,n_plot,subplot_height )
265
+ _add_new_y_label(mode, fig, gene_track_height,n_plot,subplot_height ,fontsize,font_family)
251
266
 
252
267
  ##########################################################################################################################################
253
268
  save_figure(fig = fig, save = save, keyword= "stacked_" + mode, save_args=save_args, log = log, verbose=verbose)
@@ -260,26 +275,30 @@ def _drop_old_y_labels(axes, n_plot):
260
275
  for index in range(n_plot):
261
276
  axes[index].set_ylabel("")
262
277
 
263
- def _draw_grid_line_for_lead_variants(mode, lead_variants_is, n_plot, axes, region_lead_grid_line,region_chromatin_files):
278
+ def _draw_grid_line_for_lead_variants(mode, lead_variants_is,lead_variants_is_color, n_plot, axes, region_lead_grid_line,region_chromatin_files):
264
279
  if len(region_chromatin_files)>0:
265
280
  n_plot_and_track = n_plot+2
266
281
  else:
267
282
  n_plot_and_track = n_plot+1
268
283
  if mode=="r":
269
284
  for index, sig_is in lead_variants_is.items():
270
- for sig_i in sig_is:
285
+ for j, sig_i in enumerate(sig_is):
286
+ try:
287
+ region_lead_grid_line["color"]=lead_variants_is_color[index][j]
288
+ except:
289
+ pass
271
290
  if sig_i is not None:
272
291
  for each_axis_index in range(n_plot_and_track):
273
292
  axes[each_axis_index].axvline(x=sig_i, zorder=2,**region_lead_grid_line)
274
293
 
275
- def _add_new_y_label(mode, fig, gene_track_height,n_plot,subplot_height ):
294
+ def _add_new_y_label(mode, fig, gene_track_height,n_plot,subplot_height ,fontsize,font_family):
276
295
  gene_track_height_ratio = gene_track_height/(gene_track_height + n_plot*subplot_height)
277
296
  ylabel_height = (1 - gene_track_height_ratio)*0.5 + gene_track_height_ratio
278
297
  if mode=="r":
279
- fig.text(0.08, ylabel_height , "$-log_{10}(P)$", va='center', rotation='vertical')
280
- fig.text(0.93, ylabel_height, "Recombination rate(cM/Mb)", va='center', rotation=-90)
298
+ fig.text(0.08, ylabel_height , "$-log_{10}(P)$", va='center', rotation='vertical',fontsize=fontsize,family=font_family)
299
+ fig.text(0.93, ylabel_height, "Recombination rate(cM/Mb)", va='center', rotation=-90,fontsize=fontsize,family=font_family)
281
300
  elif mode=="m":
282
- fig.text(0.08, ylabel_height , "$-log_{10}(P)$", va='center', rotation='vertical')
301
+ fig.text(0.08, ylabel_height , "$-log_{10}(P)$", va='center', rotation='vertical',fontsize=fontsize,family=font_family)
283
302
 
284
303
  def _sort_args(mqq_args, n_plot):
285
304
  mqq_args_for_each_plot={i:{} for i in range(n_plot)}
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: gwaslab
3
- Version: 3.4.46
3
+ Version: 3.4.47
4
4
  Summary: A collection of handy tools for GWAS SumStats
5
5
  Author-email: Yunye <yunye@gwaslab.com>
6
6
  Project-URL: Homepage, https://cloufield.github.io/gwaslab/
@@ -12,14 +12,14 @@ gwaslab/g_SumstatsT.py,sha256=u_DighLMnMxwTLnqm-B58pA0G6WXRj6pudPyKMVKjSU,2133
12
12
  gwaslab/g_Sumstats_summary.py,sha256=FECvvFXJVKaCX5dggBvvk9YvJ6AbdbcLfjltysX7wEE,6380
13
13
  gwaslab/g_meta.py,sha256=htWlgURWclm9R6UqFcX1a93WN27xny7lGUeyJZOtszQ,2583
14
14
  gwaslab/g_vchange_status.py,sha256=jLoVzMJFhB5k_cJKzHuBNc2HZGBWydAunCNa0n_d54g,1923
15
- gwaslab/g_version.py,sha256=g2bR-qFeFvLADj57VXMT5dufwba2YGD86hfDHRYURfU,1818
15
+ gwaslab/g_version.py,sha256=_mujOAftzn4ic9p92turA93xxg-RqxoWIqVfJLiNaSg,1886
16
16
  gwaslab/hm_casting.py,sha256=FqP4EQl83Q2OKLw004OgLIvUH795TVCGwziLk5jsHqY,11368
17
17
  gwaslab/hm_harmonize_sumstats.py,sha256=1hjUdle2DSKHGBp2BktfFqf-QHU_q2xWl_mPhiYc_ZA,78616
18
18
  gwaslab/hm_rsid_to_chrpos.py,sha256=ODWREO0jPN0RAfNzL5fRzSRANfhiksOvUVPuEsFZQqA,6552
19
19
  gwaslab/io_preformat_input.py,sha256=AZ43WGqVTzbo3XtClWhjRjsj6pBR9stw6JBL_TZ461U,20673
20
20
  gwaslab/io_read_ldsc.py,sha256=8S9n4imgl4d0WPms_GYld-6uUM5z7iWGiCA-M814kzY,12123
21
21
  gwaslab/io_read_tabular.py,sha256=EG-C6KhCutt4J4LlOMgXnqzJvU-EZXzVhMvaDFnHrMM,2380
22
- gwaslab/io_to_formats.py,sha256=QuGWdvnAamaZAuhymj-0SuNBaKz1maTTyH396gvVaO8,29229
22
+ gwaslab/io_to_formats.py,sha256=m57dGoqmHzAE1E27j9YxYKVCA12_lKd1qCnZtp0WZLw,29401
23
23
  gwaslab/io_to_pickle.py,sha256=HhePU0VcaGni0HTNU0BqoRaOnrr0NOxotgY6ISdx3Ck,1833
24
24
  gwaslab/ldsc_irwls.py,sha256=83JbAMAhD0KOfpv4IJa6LgUDfQjp4XSJveTjnhCBJYQ,6142
25
25
  gwaslab/ldsc_jackknife.py,sha256=XrWHoKS_Xn9StG1I83S2vUMTertsb-GH-_gOFYUhLeU,17715
@@ -30,14 +30,14 @@ gwaslab/ldsc_sumstats.py,sha256=O0olsDxKlh1MJ1gAuEN1t40rxhajOEwOQ20ak7xoDrI,2624
30
30
  gwaslab/qc_check_datatype.py,sha256=kW68uk4dTLOU2b1dHoVat6n0loundDysAjIqxsXW28Q,3379
31
31
  gwaslab/qc_fix_sumstats.py,sha256=-DQz5dPW6YXXVP-LV2Txa4lJrpZHhqAoKNny6IYAW18,93100
32
32
  gwaslab/run_script.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
33
- gwaslab/util_ex_calculate_ldmatrix.py,sha256=LpE__LoYRHLgVKlCHo6lYWlz9LEUVUDqYPEAP-Svbm0,14598
34
- gwaslab/util_ex_calculate_prs.py,sha256=5l1eiZs8YwIpEgp7i3IurP8n5KwQM5awbG9fWSm4iT4,9053
33
+ gwaslab/util_ex_calculate_ldmatrix.py,sha256=Z_spxbq6SHDS0v84I59YTTF40iyLQIOZbt0dmEcNJjw,15417
34
+ gwaslab/util_ex_calculate_prs.py,sha256=9uJ588Sdj4V0vw3OZ9NeLECwOvW67f0IdLandVPS5RY,9442
35
35
  gwaslab/util_ex_gwascatalog.py,sha256=--Gde9HrsikfYTeFqSaYz0gUODr9wmv_gV6GZGNlElg,7688
36
36
  gwaslab/util_ex_ldproxyfinder.py,sha256=wWNW9wITWozj23gT41LR00WxU-rrHpGKbxs2H_3jEyM,9431
37
37
  gwaslab/util_ex_ldsc.py,sha256=a-OwyWmDcyinTPRfCNSeNYm6beVsydFeYmRAXAPcRnI,18350
38
38
  gwaslab/util_ex_plink_filter.py,sha256=pK1Yxtv9-J4rMOdVAG7VU9PktvI6-y4FxBiVEH0QuRs,1673
39
39
  gwaslab/util_ex_process_h5.py,sha256=ynFvo3zxgvOxWYL565v2IQf8P6iEuq7UlKQ_ULxrd6Y,2831
40
- gwaslab/util_ex_process_ref.py,sha256=BwS4hmzIWdgmRY_yiG6RJQJHjYcOR-2yZX7kU3s8lPw,16552
40
+ gwaslab/util_ex_process_ref.py,sha256=GQ0ZEWLxGpHLdBs3tqnAqKn3Pqx1A1YvNbYrBLBvXeg,17126
41
41
  gwaslab/util_ex_run_2samplemr.py,sha256=5c0DGF694T9j0Y58L2I7pr1_Z1hfpaatIgix7P5oPA8,9127
42
42
  gwaslab/util_ex_run_clumping.py,sha256=Y8KeUKuSpGc1a8iI_VKUgVQpAVBd7O9F11p85jY4oW4,7868
43
43
  gwaslab/util_ex_run_coloc.py,sha256=u57h8wPbTCOf6aY5u5DpzK1gv7inuDT8a15UGo-1ras,6288
@@ -53,7 +53,7 @@ gwaslab/util_in_get_sig.py,sha256=9kq1GXacknO2YnVmsTli1GlPA728ASweTZ3UKm3Wszo,38
53
53
  gwaslab/util_in_meta.py,sha256=5K9lIZcIgUy0AERqHy1GvMN2X6dp45JUUgopuDLgt4o,11284
54
54
  gwaslab/util_in_snphwe.py,sha256=-KpIDx6vn_nah6H55IkV2OyjXQVXV13XyBL069WE1wM,1751
55
55
  gwaslab/viz_aux_annotate_plot.py,sha256=R-1GT89E4NEBAMNTYzNawdi9rjQV5LCnODgnYOOKsys,32184
56
- gwaslab/viz_aux_chromatin.py,sha256=NzbFFpbwAMH-39F8z0qJaExw-JcKYcAlzyzbMkvFo5M,4002
56
+ gwaslab/viz_aux_chromatin.py,sha256=7cGmej5EkKO7fxR1b5w8r1oRRl9ofVzFRG52SCYWtz0,4109
57
57
  gwaslab/viz_aux_quickfix.py,sha256=Z6ZNEAUFuWVDTzH-qGreNGxPxJLCmqhXtBrvDOgo4g8,18308
58
58
  gwaslab/viz_aux_reposition_text.py,sha256=iRIP-Rkltlei068HekJcVubiqPrunBqvAoSQ1eHk04M,4304
59
59
  gwaslab/viz_aux_save_figure.py,sha256=nL-aoE8Kg06h7FgleGRBIZjhI-6w5gpn3E1HWMwBig8,2664
@@ -62,11 +62,12 @@ gwaslab/viz_plot_compare_effect.py,sha256=iA74jMzh-G65U6BeXyQro08tPlJWpNyvtrjFsY
62
62
  gwaslab/viz_plot_forestplot.py,sha256=xgOnefh737CgdQxu5naVyRNBX1NQXPFKzf51fbh6afs,6771
63
63
  gwaslab/viz_plot_miamiplot.py,sha256=rCFEp7VNuVqeBBG3WRkmFAtFklbF79BvIQQYiSY70VY,31238
64
64
  gwaslab/viz_plot_miamiplot2.py,sha256=SWv82D8UBbREKsk8EoKth-2w68l6FbXyVLsb_E1hh8o,15882
65
- gwaslab/viz_plot_mqqplot.py,sha256=oVFiLe6Xv_-ryY8I36tGjU9StjM_ust72YSSfnZgaUg,61828
65
+ gwaslab/viz_plot_mqqplot.py,sha256=udOTBKSX239KLFNauhHGDJHp0Viu18NkGwFn5GtAHuM,63297
66
66
  gwaslab/viz_plot_qqplot.py,sha256=psQgVpP29686CEZkzQz0iRbApzqy7aE3GGiBcazVvNw,7247
67
+ gwaslab/viz_plot_regional2.py,sha256=6Dfbq5vFm5B63nLUpaTrlq96x4CruIgJu0TXXq3a_Ck,34546
67
68
  gwaslab/viz_plot_regionalplot.py,sha256=8u-5-yfy-UaXhaxVVz3Y5k2kBAoqzczUw1hyyD450iI,37983
68
69
  gwaslab/viz_plot_rg_heatmap.py,sha256=PidUsgOiEVt6MfBPCF3_yDhOEytZ-I1q-ZD6_0pFrV4,13713
69
- gwaslab/viz_plot_stackedregional.py,sha256=yWxAJyqA3Kv9PUFTLzgbAu_hP7wi3_3bVVQlJECm8Gc,14687
70
+ gwaslab/viz_plot_stackedregional.py,sha256=HISwtPDV84mT3PS41e2sXq77GPBujgSKVX1mQ4bEeKs,15820
70
71
  gwaslab/viz_plot_trumpetplot.py,sha256=ZHdc6WcVx0-oKoj88yglRkmB4bS9pOiEMcuwKW35Yvo,42672
71
72
  gwaslab/data/formatbook.json,sha256=N2nJs80HH98Rsu9FxaSvIQO9J5yIV97WEtAKjRqYwiY,38207
72
73
  gwaslab/data/reference.json,sha256=k8AvvgDsuLxzv-NCJHWvTUZ5q_DLAFxs1Th3jtL313k,11441
@@ -76,9 +77,9 @@ gwaslab/data/hapmap3_SNPs/hapmap3_db150_hg19.snplist.gz,sha256=qD9RsC5S2h6l-OdpW
76
77
  gwaslab/data/hapmap3_SNPs/hapmap3_db151_hg38.snplist.gz,sha256=Y8ZT2FIAhbhlgCJdE9qQVAiwnV_fcsPt72usBa7RSBM,10225828
77
78
  gwaslab/data/high_ld/high_ld_hla_hg19.bed.gz,sha256=R7IkssKu0L4WwkU9SrS84xCMdrkkKL0gnTNO_OKbG0Y,219
78
79
  gwaslab/data/high_ld/high_ld_hla_hg38.bed.gz,sha256=76CIU0pibDJ72Y6UY-TbIKE9gEPwTELAaIbCXyjm80Q,470
79
- gwaslab-3.4.46.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
80
- gwaslab-3.4.46.dist-info/LICENSE_before_v3.4.39,sha256=GhLOU_1UDEKeOacYhsRN_m9u-eIuVTazSndZPeNcTZA,1066
81
- gwaslab-3.4.46.dist-info/METADATA,sha256=aw5qahaxh7TAYCLNPdBO1FmHCWQk3mQcOlZohaGqorw,7765
82
- gwaslab-3.4.46.dist-info/WHEEL,sha256=cpQTJ5IWu9CdaPViMhC9YzF8gZuS5-vlfoFihTBC86A,91
83
- gwaslab-3.4.46.dist-info/top_level.txt,sha256=PyY6hWtrALpv2MAN3kjkIAzJNmmBTH5a2risz9KwH08,8
84
- gwaslab-3.4.46.dist-info/RECORD,,
80
+ gwaslab-3.4.47.dist-info/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
81
+ gwaslab-3.4.47.dist-info/LICENSE_before_v3.4.39,sha256=GhLOU_1UDEKeOacYhsRN_m9u-eIuVTazSndZPeNcTZA,1066
82
+ gwaslab-3.4.47.dist-info/METADATA,sha256=G_RLrYWZe0z6Wbvyl_g7rXnJKoZ6HFKUHM66ogtfyug,7765
83
+ gwaslab-3.4.47.dist-info/WHEEL,sha256=y4mX-SOX4fYIkonsAGA5N0Oy-8_gI4FXw5HNI1xqvWg,91
84
+ gwaslab-3.4.47.dist-info/top_level.txt,sha256=PyY6hWtrALpv2MAN3kjkIAzJNmmBTH5a2risz9KwH08,8
85
+ gwaslab-3.4.47.dist-info/RECORD,,
@@ -1,5 +1,5 @@
1
1
  Wheel-Version: 1.0
2
- Generator: setuptools (70.1.0)
2
+ Generator: setuptools (70.2.0)
3
3
  Root-Is-Purelib: true
4
4
  Tag: py3-none-any
5
5