pylocuszoom 0.2.0__py3-none-any.whl → 0.3.0__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.
- pylocuszoom/backends/base.py +2 -0
- pylocuszoom/backends/bokeh_backend.py +220 -48
- pylocuszoom/backends/matplotlib_backend.py +29 -7
- pylocuszoom/backends/plotly_backend.py +262 -20
- pylocuszoom/finemapping.py +0 -1
- pylocuszoom/gene_track.py +231 -23
- pylocuszoom/plotter.py +277 -139
- {pylocuszoom-0.2.0.dist-info → pylocuszoom-0.3.0.dist-info}/METADATA +28 -14
- pylocuszoom-0.3.0.dist-info/RECORD +21 -0
- pylocuszoom-0.2.0.dist-info/RECORD +0 -21
- {pylocuszoom-0.2.0.dist-info → pylocuszoom-0.3.0.dist-info}/WHEEL +0 -0
- {pylocuszoom-0.2.0.dist-info → pylocuszoom-0.3.0.dist-info}/licenses/LICENSE.md +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.4
|
|
2
2
|
Name: pylocuszoom
|
|
3
|
-
Version: 0.
|
|
3
|
+
Version: 0.3.0
|
|
4
4
|
Summary: Regional association plots for GWAS results with LD coloring, gene tracks, and recombination rate overlays
|
|
5
5
|
Project-URL: Homepage, https://github.com/michael-denyer/pylocuszoom
|
|
6
6
|
Project-URL: Documentation, https://github.com/michael-denyer/pylocuszoom#readme
|
|
@@ -19,6 +19,7 @@ Classifier: Programming Language :: Python :: 3.12
|
|
|
19
19
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
20
20
|
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
21
21
|
Requires-Python: >=3.10
|
|
22
|
+
Requires-Dist: adjusttext>=0.8
|
|
22
23
|
Requires-Dist: bokeh>=3.8.2
|
|
23
24
|
Requires-Dist: kaleido>=0.2.0
|
|
24
25
|
Requires-Dist: loguru>=0.7.0
|
|
@@ -28,14 +29,11 @@ Requires-Dist: pandas>=1.4.0
|
|
|
28
29
|
Requires-Dist: plotly>=5.0.0
|
|
29
30
|
Requires-Dist: pyliftover>=0.4
|
|
30
31
|
Provides-Extra: all
|
|
31
|
-
Requires-Dist: adjusttext>=0.8; extra == 'all'
|
|
32
32
|
Requires-Dist: pyspark>=3.0.0; extra == 'all'
|
|
33
33
|
Provides-Extra: dev
|
|
34
34
|
Requires-Dist: pytest-cov>=4.0.0; extra == 'dev'
|
|
35
35
|
Requires-Dist: pytest>=7.0.0; extra == 'dev'
|
|
36
36
|
Requires-Dist: ruff>=0.1.0; extra == 'dev'
|
|
37
|
-
Provides-Extra: labels
|
|
38
|
-
Requires-Dist: adjusttext>=0.8; extra == 'labels'
|
|
39
37
|
Provides-Extra: spark
|
|
40
38
|
Requires-Dist: pyspark>=3.0.0; extra == 'spark'
|
|
41
39
|
Description-Content-Type: text/markdown
|
|
@@ -75,14 +73,20 @@ Inspired by [LocusZoom](http://locuszoom.org/) and [locuszoomr](https://github.c
|
|
|
75
73
|
|
|
76
74
|
## Installation
|
|
77
75
|
|
|
76
|
+
```bash
|
|
77
|
+
pip install pylocuszoom
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
Or with uv:
|
|
81
|
+
|
|
78
82
|
```bash
|
|
79
83
|
uv add pylocuszoom
|
|
80
84
|
```
|
|
81
85
|
|
|
82
|
-
Or with
|
|
86
|
+
Or with conda (Bioconda):
|
|
83
87
|
|
|
84
88
|
```bash
|
|
85
|
-
|
|
89
|
+
conda install -c bioconda pylocuszoom
|
|
86
90
|
```
|
|
87
91
|
|
|
88
92
|
## Quick Start
|
|
@@ -165,20 +169,30 @@ fig = plotter.plot(
|
|
|
165
169
|
)
|
|
166
170
|
```
|
|
167
171
|
|
|
168
|
-
##
|
|
172
|
+
## Backends
|
|
169
173
|
|
|
170
|
-
|
|
174
|
+
pyLocusZoom supports multiple rendering backends:
|
|
171
175
|
|
|
172
176
|
```python
|
|
173
|
-
# Static publication-quality plot (default
|
|
174
|
-
|
|
175
|
-
fig = plotter.plot(gwas_df, chrom=1, start=1000000, end=2000000)
|
|
177
|
+
# Static publication-quality plot (default)
|
|
178
|
+
fig = plotter.plot(gwas_df, chrom=1, start=1000000, end=2000000, backend="matplotlib")
|
|
176
179
|
fig.savefig("plot.png", dpi=150)
|
|
180
|
+
|
|
181
|
+
# Interactive Plotly (hover tooltips, pan/zoom)
|
|
182
|
+
fig = plotter.plot(gwas_df, chrom=1, start=1000000, end=2000000, backend="plotly")
|
|
183
|
+
fig.write_html("plot.html")
|
|
184
|
+
|
|
185
|
+
# Interactive Bokeh (dashboard-ready)
|
|
186
|
+
fig = plotter.plot(gwas_df, chrom=1, start=1000000, end=2000000, backend="bokeh")
|
|
177
187
|
```
|
|
178
188
|
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
189
|
+
| Backend | Output | Best For |
|
|
190
|
+
|---------|--------|----------|
|
|
191
|
+
| `matplotlib` | Static PNG/PDF/SVG | Publications, presentations |
|
|
192
|
+
| `plotly` | Interactive HTML | Web reports, data exploration |
|
|
193
|
+
| `bokeh` | Interactive HTML | Dashboards, web apps |
|
|
194
|
+
|
|
195
|
+
> **Note:** All backends support gene track, recombination overlay, and LD legend. SNP labels (auto-positioned with adjustText) are matplotlib-only.
|
|
182
196
|
|
|
183
197
|
## Stacked Plots
|
|
184
198
|
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
pylocuszoom/__init__.py,sha256=f8h22YYL3JkDP5P_dJftu98qlJkXvaAeyto5kVc8bzU,3785
|
|
2
|
+
pylocuszoom/colors.py,sha256=XXTCmCFfHrOrSiP6b0V8Kis7Z1tyvGEKJpdv59QDVQ8,6610
|
|
3
|
+
pylocuszoom/eqtl.py,sha256=9lZJ8jT1WEj3won6D9B54xdqUvbRvxpOitf97NCUR28,6167
|
|
4
|
+
pylocuszoom/finemapping.py,sha256=PJ4HJYeCaHZecUmADCEGQxKd9HhhjrdIA1H5LQsUmLI,6332
|
|
5
|
+
pylocuszoom/gene_track.py,sha256=CbKqIIl-3VpqIS0NWQ7p-VazhrgbF0-XDkkvoWx_2jI,18665
|
|
6
|
+
pylocuszoom/labels.py,sha256=Ams5WVZFNVT692BRiQ5wZcdbdNEAm5xtgRwmF5u0s_A,3492
|
|
7
|
+
pylocuszoom/ld.py,sha256=64xIulpDVvbMSryWUPoCQ99Odcjwf1wejpwVr_30MLU,6412
|
|
8
|
+
pylocuszoom/logging.py,sha256=nZHEkbnjp8zoyWj_S-Hy9UQvUYLoMoxyiOWRozBT2dg,4987
|
|
9
|
+
pylocuszoom/plotter.py,sha256=7wEN0b3emb0SM7gYn8bSjXBGNt7npw3y3y5AEC-Ha2k,43660
|
|
10
|
+
pylocuszoom/recombination.py,sha256=Q2tAft54nJWHlZt-vZje1r_5RP7D8_VUy5ab_deYXVw,13749
|
|
11
|
+
pylocuszoom/utils.py,sha256=fKNX9WSTbfHR1EpPYijt6ycNjXEjwzunQMHXAvHaK3s,5211
|
|
12
|
+
pylocuszoom/backends/__init__.py,sha256=7dlGvDoqMVK3fCtoMcI9zOP9qO0odQGPwfXhxnLfXfI,1196
|
|
13
|
+
pylocuszoom/backends/base.py,sha256=YEYMtaqPRTJQI-TPqK62-XPN6WvjVwqP6e6ydULK6H0,8523
|
|
14
|
+
pylocuszoom/backends/bokeh_backend.py,sha256=oOXTOhSx-tNgBzgtYfYvGUgNmuUP2vhCbtEBOZ5YZ18,18496
|
|
15
|
+
pylocuszoom/backends/matplotlib_backend.py,sha256=TIKaT7x0X3QKYUB5076XlG6RC0zbi0hcm3LSU7LGnmw,8521
|
|
16
|
+
pylocuszoom/backends/plotly_backend.py,sha256=ucQLmcz6WAdEvII5n3_rdHffZv5-a8FOp8nBGBng-hk,22222
|
|
17
|
+
pylocuszoom/reference_data/__init__.py,sha256=qqHqAUt1jebGlCN3CjqW3Z-_coHVNo5K3a3bb9o83hA,109
|
|
18
|
+
pylocuszoom-0.3.0.dist-info/METADATA,sha256=P-JbXF9KxFzixMAYKQalKO4F4TwOqxDZD0B0uciyy_c,12068
|
|
19
|
+
pylocuszoom-0.3.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
20
|
+
pylocuszoom-0.3.0.dist-info/licenses/LICENSE.md,sha256=U2y_hv8RcN5lECA3uK88irU3ODUE1TDAPictcmnP0Q4,698
|
|
21
|
+
pylocuszoom-0.3.0.dist-info/RECORD,,
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
pylocuszoom/__init__.py,sha256=f8h22YYL3JkDP5P_dJftu98qlJkXvaAeyto5kVc8bzU,3785
|
|
2
|
-
pylocuszoom/colors.py,sha256=XXTCmCFfHrOrSiP6b0V8Kis7Z1tyvGEKJpdv59QDVQ8,6610
|
|
3
|
-
pylocuszoom/eqtl.py,sha256=9lZJ8jT1WEj3won6D9B54xdqUvbRvxpOitf97NCUR28,6167
|
|
4
|
-
pylocuszoom/finemapping.py,sha256=IZEEF13m8xD2qfnTsqcv67BtPAvqC_FrXdGv1VG8BHk,6351
|
|
5
|
-
pylocuszoom/gene_track.py,sha256=ZYAWOUHOo9oieovl7VHGCB3j_HBbnr5wwtIwxozgRhE,10854
|
|
6
|
-
pylocuszoom/labels.py,sha256=Ams5WVZFNVT692BRiQ5wZcdbdNEAm5xtgRwmF5u0s_A,3492
|
|
7
|
-
pylocuszoom/ld.py,sha256=64xIulpDVvbMSryWUPoCQ99Odcjwf1wejpwVr_30MLU,6412
|
|
8
|
-
pylocuszoom/logging.py,sha256=nZHEkbnjp8zoyWj_S-Hy9UQvUYLoMoxyiOWRozBT2dg,4987
|
|
9
|
-
pylocuszoom/plotter.py,sha256=sPqK74B9-ldcKhrrWixyapIdQ4dVgFRERZfJw4ZNS5Y,37865
|
|
10
|
-
pylocuszoom/recombination.py,sha256=Q2tAft54nJWHlZt-vZje1r_5RP7D8_VUy5ab_deYXVw,13749
|
|
11
|
-
pylocuszoom/utils.py,sha256=fKNX9WSTbfHR1EpPYijt6ycNjXEjwzunQMHXAvHaK3s,5211
|
|
12
|
-
pylocuszoom/backends/__init__.py,sha256=7dlGvDoqMVK3fCtoMcI9zOP9qO0odQGPwfXhxnLfXfI,1196
|
|
13
|
-
pylocuszoom/backends/base.py,sha256=4EGT4_88y2jvhWm1zAal9v9yuaHhCLo7-rchcWmIK8c,8451
|
|
14
|
-
pylocuszoom/backends/bokeh_backend.py,sha256=V0yQi1lY96hjTjBXGJtLKGy1LFNii58kTAJiqu0LYPg,12900
|
|
15
|
-
pylocuszoom/backends/matplotlib_backend.py,sha256=yTTm9KG7e0ct-mvHk_tfJX6SOL97pABsJzs4Xn6H1zw,8010
|
|
16
|
-
pylocuszoom/backends/plotly_backend.py,sha256=2EDJZczqjZ5gItd3Fb4UaRYGj7SQy7Wgg5UIL8LJ9LM,14128
|
|
17
|
-
pylocuszoom/reference_data/__init__.py,sha256=qqHqAUt1jebGlCN3CjqW3Z-_coHVNo5K3a3bb9o83hA,109
|
|
18
|
-
pylocuszoom-0.2.0.dist-info/METADATA,sha256=tDPRbhg4r1NavMCH1e_VTzKY9qApsY97yyiEYh04S78,11723
|
|
19
|
-
pylocuszoom-0.2.0.dist-info/WHEEL,sha256=WLgqFyCfm_KASv4WHyYy0P3pM_m7J5L9k2skdKLirC8,87
|
|
20
|
-
pylocuszoom-0.2.0.dist-info/licenses/LICENSE.md,sha256=U2y_hv8RcN5lECA3uK88irU3ODUE1TDAPictcmnP0Q4,698
|
|
21
|
-
pylocuszoom-0.2.0.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|