gwaslab 3.5.4__tar.gz → 3.5.6__tar.gz
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.
- {gwaslab-3.5.4/src/gwaslab.egg-info → gwaslab-3.5.6}/PKG-INFO +4 -4
- {gwaslab-3.5.4 → gwaslab-3.5.6}/README.md +1 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/pyproject.toml +2 -2
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/__init__.py +3 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_Sumstats.py +56 -9
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_SumstatsPair.py +16 -12
- gwaslab-3.5.6/src/gwaslab/g_SumstatsSet.py +663 -0
- gwaslab-3.5.6/src/gwaslab/g_headers.py +131 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_meta.py +2 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_version.py +3 -3
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/hm_harmonize_sumstats.py +91 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_preformat_input.py +29 -7
- gwaslab-3.5.6/src/gwaslab/io_read_pipcs.py +23 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_to_formats.py +45 -44
- gwaslab-3.5.6/src/gwaslab/qc_check_datatype.py +126 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/qc_fix_sumstats.py +1 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_ldproxyfinder.py +162 -3
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_ldsc.py +9 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_run_2samplemr.py +34 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_run_clumping.py +4 -2
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_fill_data.py +28 -3
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_filter_value.py +66 -1
- gwaslab-3.5.6/src/gwaslab/util_in_merge.py +51 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_save_figure.py +2 -1
- gwaslab-3.5.6/src/gwaslab/viz_plot_credible_sets.py +99 -0
- gwaslab-3.5.6/src/gwaslab/viz_plot_effect.py +283 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_miamiplot2.py +1 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_mqqplot.py +31 -11
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_regional2.py +133 -32
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_stackedregional.py +64 -34
- {gwaslab-3.5.4 → gwaslab-3.5.6/src/gwaslab.egg-info}/PKG-INFO +4 -4
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab.egg-info/SOURCES.txt +6 -1
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab.egg-info/requires.txt +1 -1
- gwaslab-3.5.4/src/gwaslab/qc_check_datatype.py +0 -103
- gwaslab-3.5.4/src/gwaslab/vis_plot_credible sets.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/LICENSE +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/LICENSE_before_v3.4.39 +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/setup.cfg +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/bd_common_data.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/bd_config.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/bd_download.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/bd_get_hapmap3.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/cache_manager.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/chrx_par/chrx_par_hg19.bed.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/chrx_par/chrx_par_hg38.bed.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/formatbook.json +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/hapmap3_SNPs/hapmap3_db150_hg19.snplist.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/hapmap3_SNPs/hapmap3_db151_hg38.snplist.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/high_ld/high_ld_hla_hg19.bed.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/high_ld/high_ld_hla_hg38.bed.gz +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/data/reference.json +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_Log.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_Phenotypes.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_SumstatsT.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_Sumstats_summary.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/g_vchange_status.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/hm_casting.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/hm_rsid_to_chrpos.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_process_args.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_read_ldsc.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_read_tabular.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/io_to_pickle.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_irwls.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_jackknife.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_ldscore.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_parse.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_regressions.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/ldsc_sumstats.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/run_script.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_abf_finemapping.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_calculate_ldmatrix.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_calculate_prs.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_gwascatalog.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_plink_filter.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_process_h5.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_process_ref.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_run_coloc.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_ex_run_susie.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_calculate_gc.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_calculate_power.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_convert_h2.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_correct_winnerscurse.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_get_density.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_get_sig.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_meta.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/util_in_snphwe.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_annotate_plot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_chromatin.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_property.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_quickfix.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_aux_reposition_text.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_compare_af.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_compare_effect.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_forestplot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_miamiplot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_phe_heatmap.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_qqplot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_regionalplot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_rg_heatmap.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_scatter_with_reg.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab/viz_plot_trumpetplot.py +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab.egg-info/dependency_links.txt +0 -0
- {gwaslab-3.5.4 → gwaslab-3.5.6}/src/gwaslab.egg-info/top_level.txt +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
Metadata-Version: 2.
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
2
|
Name: gwaslab
|
|
3
|
-
Version: 3.5.
|
|
3
|
+
Version: 3.5.6
|
|
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/
|
|
@@ -14,7 +14,7 @@ License-File: LICENSE
|
|
|
14
14
|
License-File: LICENSE_before_v3.4.39
|
|
15
15
|
Requires-Dist: pandas!=1.5,>=1.3
|
|
16
16
|
Requires-Dist: numpy<2,>=1.21.2
|
|
17
|
-
Requires-Dist: matplotlib
|
|
17
|
+
Requires-Dist: matplotlib<3.9,>=3.8
|
|
18
18
|
Requires-Dist: seaborn>=0.12
|
|
19
19
|
Requires-Dist: scipy>=1.12
|
|
20
20
|
Requires-Dist: pySAM==0.22.1
|
|
@@ -51,7 +51,7 @@ Warning: Known issues of GWASLab are summarized in [https://cloufield.github.io/
|
|
|
51
51
|
### install via pip
|
|
52
52
|
|
|
53
53
|
```
|
|
54
|
-
pip install gwaslab==3.5.
|
|
54
|
+
pip install gwaslab==3.5.4
|
|
55
55
|
```
|
|
56
56
|
|
|
57
57
|
```python
|
|
@@ -7,7 +7,7 @@ build-backend = "setuptools.build_meta"
|
|
|
7
7
|
|
|
8
8
|
[project]
|
|
9
9
|
name = "gwaslab"
|
|
10
|
-
version = "3.5.
|
|
10
|
+
version = "3.5.6"
|
|
11
11
|
authors = [
|
|
12
12
|
{ name="Yunye", email="yunye@gwaslab.com" },
|
|
13
13
|
]
|
|
@@ -18,7 +18,7 @@ readme = "README.md"
|
|
|
18
18
|
dependencies = [
|
|
19
19
|
"pandas>=1.3,!=1.5",
|
|
20
20
|
"numpy>=1.21.2,<2",
|
|
21
|
-
"matplotlib>=3.
|
|
21
|
+
"matplotlib>=3.8,<3.9",
|
|
22
22
|
"seaborn>=0.12",
|
|
23
23
|
"scipy>=1.12",
|
|
24
24
|
"pySAM==0.22.1",
|
|
@@ -46,4 +46,6 @@ from gwaslab.util_ex_process_h5 import process_vcf_to_hfd5
|
|
|
46
46
|
from gwaslab.util_ex_run_susie import _run_susie_rss as run_susie_rss
|
|
47
47
|
from gwaslab.io_read_tabular import _read_tabular as read_tabular
|
|
48
48
|
from gwaslab.util_in_meta import meta_analyze
|
|
49
|
-
from gwaslab.viz_plot_scatter_with_reg import scatter
|
|
49
|
+
from gwaslab.viz_plot_scatter_with_reg import scatter
|
|
50
|
+
from gwaslab.util_in_fill_data import rank_based_int
|
|
51
|
+
from gwaslab.g_SumstatsSet import SumstatsSet
|
|
@@ -30,6 +30,7 @@ from gwaslab.hm_harmonize_sumstats import rsidtochrpos
|
|
|
30
30
|
from gwaslab.hm_harmonize_sumstats import parallelizeassignrsid
|
|
31
31
|
from gwaslab.hm_harmonize_sumstats import parallelinferstrand
|
|
32
32
|
from gwaslab.hm_harmonize_sumstats import parallelrsidtochrpos
|
|
33
|
+
from gwaslab.hm_harmonize_sumstats import _paralleleinferafwithmaf
|
|
33
34
|
from gwaslab.util_in_filter_value import filtervalues
|
|
34
35
|
from gwaslab.util_in_filter_value import filterout
|
|
35
36
|
from gwaslab.util_in_filter_value import filterin
|
|
@@ -39,6 +40,7 @@ from gwaslab.util_in_filter_value import _filter_indel
|
|
|
39
40
|
from gwaslab.util_in_filter_value import _filter_palindromic
|
|
40
41
|
from gwaslab.util_in_filter_value import _filter_snp
|
|
41
42
|
from gwaslab.util_in_filter_value import _exclude_hla
|
|
43
|
+
from gwaslab.util_in_filter_value import _search_variants
|
|
42
44
|
from gwaslab.util_in_filter_value import inferbuild
|
|
43
45
|
from gwaslab.util_in_filter_value import sampling
|
|
44
46
|
from gwaslab.util_in_filter_value import _get_flanking
|
|
@@ -77,9 +79,12 @@ from gwaslab.util_ex_ldsc import _estimate_h2_by_ldsc
|
|
|
77
79
|
from gwaslab.util_ex_ldsc import _estimate_rg_by_ldsc
|
|
78
80
|
from gwaslab.util_ex_ldsc import _estimate_h2_cts_by_ldsc
|
|
79
81
|
from gwaslab.util_ex_ldsc import _estimate_partitioned_h2_by_ldsc
|
|
82
|
+
from gwaslab.util_ex_ldproxyfinder import _extract_ld_proxy
|
|
80
83
|
from gwaslab.bd_get_hapmap3 import gethapmap3
|
|
81
84
|
from gwaslab.util_abf_finemapping import abf_finemapping
|
|
82
85
|
from gwaslab.util_abf_finemapping import make_cs
|
|
86
|
+
from gwaslab.io_read_pipcs import _read_pipcs
|
|
87
|
+
from gwaslab.viz_plot_credible_sets import _plot_cs
|
|
83
88
|
import gc
|
|
84
89
|
from gwaslab.viz_plot_phe_heatmap import _gwheatmap
|
|
85
90
|
|
|
@@ -88,6 +93,7 @@ class Sumstats():
|
|
|
88
93
|
def __init__(self,
|
|
89
94
|
sumstats,
|
|
90
95
|
fmt=None,
|
|
96
|
+
tab_fmt="tsv",
|
|
91
97
|
snpid=None,
|
|
92
98
|
rsid=None,
|
|
93
99
|
chrom=None,
|
|
@@ -154,10 +160,17 @@ class Sumstats():
|
|
|
154
160
|
self.meta["gwaslab"]["species"] = species
|
|
155
161
|
|
|
156
162
|
# initialize attributes for clumping and finmapping
|
|
157
|
-
self.to_finemapping_file_path = ""
|
|
158
|
-
self.to_finemapping_file = pd.DataFrame()
|
|
159
|
-
self.plink_log = ""
|
|
160
|
-
|
|
163
|
+
#self.to_finemapping_file_path = ""
|
|
164
|
+
#self.to_finemapping_file = pd.DataFrame()
|
|
165
|
+
#self.plink_log = ""
|
|
166
|
+
|
|
167
|
+
# path / file / plink_log
|
|
168
|
+
self.finemapping = dict()
|
|
169
|
+
|
|
170
|
+
# clumps / clumps_raw / plink_log
|
|
171
|
+
self.clumps = dict()
|
|
172
|
+
|
|
173
|
+
#
|
|
161
174
|
self.pipcs = pd.DataFrame()
|
|
162
175
|
|
|
163
176
|
# print gwaslab version information
|
|
@@ -167,6 +180,7 @@ class Sumstats():
|
|
|
167
180
|
self.data = preformat(
|
|
168
181
|
sumstats=sumstats,
|
|
169
182
|
fmt=fmt,
|
|
183
|
+
tab_fmt = tab_fmt,
|
|
170
184
|
snpid=snpid,
|
|
171
185
|
rsid=rsid,
|
|
172
186
|
chrom=chrom,
|
|
@@ -579,6 +593,24 @@ class Sumstats():
|
|
|
579
593
|
else:
|
|
580
594
|
self.data = _exclude_hla(self.data,log=self.log,**kwargs)
|
|
581
595
|
|
|
596
|
+
def search(self, inplace=False, **kwargs):
|
|
597
|
+
if inplace is False:
|
|
598
|
+
new_Sumstats_object = copy.deepcopy(self)
|
|
599
|
+
new_Sumstats_object.data = _search_variants(new_Sumstats_object.data,
|
|
600
|
+
log=new_Sumstats_object.log,
|
|
601
|
+
**kwargs)
|
|
602
|
+
return new_Sumstats_object
|
|
603
|
+
else:
|
|
604
|
+
self.data = _search_variants(self.data,log=self.log,**kwargs)
|
|
605
|
+
|
|
606
|
+
def get_proxy(self,snplist, inplace=False, **kwargs):
|
|
607
|
+
if inplace is False:
|
|
608
|
+
new_Sumstats_object = copy.deepcopy(self)
|
|
609
|
+
new_Sumstats_object.data = _extract_ld_proxy(common_sumstats = new_Sumstats_object.data,
|
|
610
|
+
snplist=snplist,
|
|
611
|
+
log=new_Sumstats_object.log,
|
|
612
|
+
**kwargs)
|
|
613
|
+
return new_Sumstats_object
|
|
582
614
|
|
|
583
615
|
def random_variants(self,inplace=False,n=1,p=None,**kwargs):
|
|
584
616
|
if inplace is True:
|
|
@@ -606,6 +638,11 @@ class Sumstats():
|
|
|
606
638
|
self.data = paralleleinferaf(self.data,ref_infer=ref_infer,log=self.log,**kwargs)
|
|
607
639
|
self.meta["gwaslab"]["references"]["ref_infer_af"] = ref_infer
|
|
608
640
|
self.meta["gwaslab"]["references"]["ref_infer_af"] = _append_meta_record(self.meta["gwaslab"]["references"]["ref_infer_af"] , ref_infer)
|
|
641
|
+
def maf_to_eaf(self,ref_infer,**kwargs):
|
|
642
|
+
self.data = _paralleleinferafwithmaf(self.data,ref_infer=ref_infer,log=self.log,**kwargs)
|
|
643
|
+
self.meta["gwaslab"]["references"]["ref_infer_maf"] = ref_infer
|
|
644
|
+
self.meta["gwaslab"]["references"]["ref_infer_maf"] = _append_meta_record(self.meta["gwaslab"]["references"]["ref_infer_af"] , ref_infer)
|
|
645
|
+
|
|
609
646
|
def plot_daf(self, **kwargs):
|
|
610
647
|
fig,outliers = plotdaf(self.data, **kwargs)
|
|
611
648
|
return fig, outliers
|
|
@@ -794,7 +831,7 @@ class Sumstats():
|
|
|
794
831
|
credible_sets = make_cs(region_data,threshold=0.95,log=self.log)
|
|
795
832
|
return region_data, credible_sets
|
|
796
833
|
|
|
797
|
-
|
|
834
|
+
|
|
798
835
|
## LDSC ##############################################################################################
|
|
799
836
|
def estimate_h2_by_ldsc(self, build=None, verbose=True, match_allele=True, how="right", **kwargs):
|
|
800
837
|
if build is None:
|
|
@@ -822,21 +859,31 @@ class Sumstats():
|
|
|
822
859
|
# external ################################################################################################
|
|
823
860
|
|
|
824
861
|
def calculate_ld_matrix(self,**kwargs):
|
|
825
|
-
self.
|
|
862
|
+
self.finemapping["path"],self.finemapping["file"],self.finemapping["plink_log"]= tofinemapping(self.data,study = self.meta["gwaslab"]["study_name"],**kwargs)
|
|
863
|
+
#self.to_finemapping_file_path, self.to_finemapping_file, self.plink_log = tofinemapping(self.data,study = self.meta["gwaslab"]["study_name"],**kwargs)
|
|
826
864
|
|
|
827
865
|
def run_susie_rss(self,**kwargs):
|
|
828
|
-
self.pipcs=_run_susie_rss(self.
|
|
866
|
+
self.pipcs=_run_susie_rss(self.finemapping["path"],**kwargs)
|
|
867
|
+
#self.pipcs=_run_susie_rss(self.to_finemapping_file_path,**kwargs)
|
|
829
868
|
|
|
830
869
|
def clump(self,**kwargs):
|
|
831
|
-
self.clumps,self.plink_log = _clump(self.data, log=self.log, study = self.meta["gwaslab"]["study_name"], **kwargs)
|
|
870
|
+
self.clumps["clumps"], self.clumps["clumps_raw"], self.clumps["plink_log"] = _clump(self.data, log=self.log, study = self.meta["gwaslab"]["study_name"], **kwargs)
|
|
832
871
|
|
|
833
872
|
def calculate_prs(self,**kwargs):
|
|
834
873
|
combined_results_summary = _calculate_prs(self.data, log=self.log, study = self.meta["gwaslab"]["study_name"], **kwargs)
|
|
835
874
|
return combined_results_summary
|
|
836
|
-
|
|
875
|
+
|
|
876
|
+
# loading aux data
|
|
877
|
+
def read_pipcs(self,prefix,**kwargs):
|
|
878
|
+
self.pipcs = _read_pipcs(self.data[["SNPID","CHR","POS"]],prefix, **kwargs)
|
|
879
|
+
|
|
880
|
+
def plot_pipcs(self, region,**kwargs):
|
|
881
|
+
_plot_cs(self.pipcs, region, **kwargs)
|
|
837
882
|
# to_format ###############################################################################################
|
|
838
883
|
|
|
839
884
|
def to_format(self, path, build=None, verbose=True, **kwargs):
|
|
840
885
|
if build is None:
|
|
841
886
|
build = self.meta["gwaslab"]["genome_build"]
|
|
842
887
|
_to_format(self.data, path, log=self.log, verbose=verbose, meta=self.meta, build=build, **kwargs)
|
|
888
|
+
|
|
889
|
+
|
|
@@ -23,6 +23,7 @@ from gwaslab.viz_plot_compare_af import plotdaf
|
|
|
23
23
|
from gwaslab.util_ex_run_2samplemr import _run_two_sample_mr
|
|
24
24
|
from gwaslab.util_ex_run_clumping import _clump
|
|
25
25
|
from gwaslab.util_ex_ldproxyfinder import _extract_with_ld_proxy
|
|
26
|
+
from gwaslab.g_headers import _get_headers
|
|
26
27
|
|
|
27
28
|
class SumstatsPair( ):
|
|
28
29
|
def __init__(self, sumstatsObject1, sumstatsObject2, study=None, suffixes = ("_1","_2") ,verbose=True ):
|
|
@@ -35,6 +36,7 @@ class SumstatsPair( ):
|
|
|
35
36
|
self.study_name = "{}_{}".format(sumstatsObject1.meta["gwaslab"]["study_name"], sumstatsObject2.meta["gwaslab"]["study_name"])
|
|
36
37
|
else:
|
|
37
38
|
self.study_name = "{}_{}".format("STUDY1", "STUDY2")
|
|
39
|
+
|
|
38
40
|
self.snp_info_cols = []
|
|
39
41
|
self.stats_cols =[]
|
|
40
42
|
self.stats_cols2 =[]
|
|
@@ -45,11 +47,13 @@ class SumstatsPair( ):
|
|
|
45
47
|
self.colocalization=pd.DataFrame()
|
|
46
48
|
self.sumstats1 = pd.DataFrame()
|
|
47
49
|
self.sumstats2 = pd.DataFrame()
|
|
48
|
-
|
|
49
|
-
self.
|
|
50
|
+
|
|
51
|
+
self.mr =dict()
|
|
52
|
+
self.clumps =dict()
|
|
50
53
|
self.ns = None
|
|
51
|
-
self.
|
|
52
|
-
self.
|
|
54
|
+
self.finemapping = dict()
|
|
55
|
+
#self.to_finemapping_file_path = ""
|
|
56
|
+
#self.plink_log = ""
|
|
53
57
|
|
|
54
58
|
self.log.write( "Start to create SumstatsPair object..." )
|
|
55
59
|
|
|
@@ -66,16 +70,17 @@ class SumstatsPair( ):
|
|
|
66
70
|
verbose=verbose)
|
|
67
71
|
|
|
68
72
|
for i in sumstatsObject1.data.columns:
|
|
69
|
-
if i in
|
|
73
|
+
if i in _get_headers(mode="info"):
|
|
74
|
+
# extract SNP info columns from sumstats1
|
|
70
75
|
self.snp_info_cols.append(i)
|
|
71
|
-
elif i in
|
|
76
|
+
elif i in _get_headers(mode="stats"):
|
|
72
77
|
self.stats_cols.append(i)
|
|
73
78
|
else:
|
|
74
79
|
self.other_cols.append(i)
|
|
75
80
|
for i in sumstatsObject2.data.columns:
|
|
76
|
-
if i in
|
|
81
|
+
if i in _get_headers(mode="info"):
|
|
77
82
|
continue
|
|
78
|
-
elif i in
|
|
83
|
+
elif i in _get_headers(mode="stats"):
|
|
79
84
|
self.stats_cols2.append(i)
|
|
80
85
|
else:
|
|
81
86
|
self.other_cols2.append(i)
|
|
@@ -136,14 +141,13 @@ class SumstatsPair( ):
|
|
|
136
141
|
|
|
137
142
|
|
|
138
143
|
def clump(self,**kwargs):
|
|
139
|
-
self.clumps["clumps"],
|
|
144
|
+
self.clumps["clumps"],self.clumps["clumps_raw"],self.clumps["plink_log"] = _clump(self.data, log=self.log, p="P_1",mlog10p="MLOG10P_1", study = self.study_name, **kwargs)
|
|
140
145
|
|
|
141
146
|
def to_coloc(self,**kwargs):
|
|
142
|
-
self.
|
|
147
|
+
self.finemapping["path"],self.finemapping["file"],self.finemapping["plink_log"] = tofinemapping(self.data,study=self.study_name,suffixes=self.suffixes,log=self.log,**kwargs)
|
|
143
148
|
|
|
144
149
|
def run_coloc_susie(self,**kwargs):
|
|
145
|
-
|
|
146
|
-
self.colocalization = _run_coloc_susie(self.to_finemapping_file_path,log=self.log,ncols=self.ns,**kwargs)
|
|
150
|
+
self.colocalization = _run_coloc_susie(self.finemapping["path"],log=self.log,ncols=self.ns,**kwargs)
|
|
147
151
|
|
|
148
152
|
def run_two_sample_mr(self, clump=False, **kwargs):
|
|
149
153
|
exposure1 = self.study_name.split("_")[0]
|