pg-sui 1.6.14.dev9__py3-none-any.whl → 1.7.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.
- pg_sui-1.7.0.dist-info/METADATA +288 -0
- {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/RECORD +29 -33
- pgsui/__init__.py +0 -8
- pgsui/_version.py +2 -2
- pgsui/cli.py +591 -126
- pgsui/data_processing/config.py +1 -2
- pgsui/data_processing/containers.py +218 -533
- pgsui/data_processing/transformers.py +44 -20
- pgsui/impute/deterministic/imputers/mode.py +475 -182
- pgsui/impute/deterministic/imputers/ref_allele.py +454 -147
- pgsui/impute/supervised/imputers/hist_gradient_boosting.py +4 -3
- pgsui/impute/supervised/imputers/random_forest.py +3 -2
- pgsui/impute/unsupervised/base.py +1268 -530
- pgsui/impute/unsupervised/callbacks.py +28 -33
- pgsui/impute/unsupervised/imputers/autoencoder.py +869 -764
- pgsui/impute/unsupervised/imputers/vae.py +928 -696
- pgsui/impute/unsupervised/loss_functions.py +156 -202
- pgsui/impute/unsupervised/models/autoencoder_model.py +7 -49
- pgsui/impute/unsupervised/models/vae_model.py +40 -221
- pgsui/impute/unsupervised/nn_scorers.py +53 -13
- pgsui/utils/classification_viz.py +240 -97
- pgsui/utils/misc.py +201 -3
- pgsui/utils/plotting.py +73 -58
- pgsui/utils/pretty_metrics.py +2 -6
- pgsui/utils/scorers.py +39 -0
- pg_sui-1.6.14.dev9.dist-info/METADATA +0 -344
- pgsui/impute/unsupervised/imputers/nlpca.py +0 -1554
- pgsui/impute/unsupervised/imputers/ubp.py +0 -1575
- pgsui/impute/unsupervised/models/nlpca_model.py +0 -206
- pgsui/impute/unsupervised/models/ubp_model.py +0 -200
- {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/WHEEL +0 -0
- {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/entry_points.txt +0 -0
- {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/licenses/LICENSE +0 -0
- {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/top_level.txt +0 -0
|
@@ -0,0 +1,288 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: pg-sui
|
|
3
|
+
Version: 1.7.0
|
|
4
|
+
Summary: Python machine and deep learning API to impute missing genotypes
|
|
5
|
+
Author-email: "Drs. Bradley T. Martin and Tyler K. Chafin" <evobio721@gmail.com>
|
|
6
|
+
Maintainer-email: "Dr. Bradley T. Martin" <evobio721@gmail.com>
|
|
7
|
+
License: GNU General Public License v3 (GPLv3)
|
|
8
|
+
Project-URL: Homepage, https://github.com/btmartin721/PG-SUI
|
|
9
|
+
Project-URL: Documentation, https://pg-sui.readthedocs.io/en/latest/
|
|
10
|
+
Project-URL: Source, https://github.com/btmartin721/PG-SUI.git
|
|
11
|
+
Project-URL: BugTracker, https://github.com/btmartin721/PG-SUI/issues
|
|
12
|
+
Keywords: impute,imputation,AI,deep learning,machine learning,neural network,vae,autoencoder,ubp,nlpca,population genetics,unsupervised,supervised,bioinformatics,snp,genomics,genotype,missing data,data analysis,data science,statistics,data visualization,python
|
|
13
|
+
Classifier: Programming Language :: Python :: 3
|
|
14
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
15
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
16
|
+
Classifier: Development Status :: 4 - Beta
|
|
17
|
+
Classifier: Environment :: Console
|
|
18
|
+
Classifier: Intended Audience :: Science/Research
|
|
19
|
+
Classifier: Intended Audience :: Developers
|
|
20
|
+
Classifier: Intended Audience :: Education
|
|
21
|
+
Classifier: License :: OSI Approved :: GNU General Public License v3 (GPLv3)
|
|
22
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
23
|
+
Classifier: Topic :: Scientific/Engineering :: Artificial Intelligence
|
|
24
|
+
Classifier: Topic :: Scientific/Engineering :: Information Analysis
|
|
25
|
+
Classifier: Topic :: Scientific/Engineering :: Visualization
|
|
26
|
+
Classifier: Operating System :: MacOS
|
|
27
|
+
Classifier: Operating System :: MacOS :: MacOS X
|
|
28
|
+
Classifier: Operating System :: Unix
|
|
29
|
+
Classifier: Operating System :: POSIX
|
|
30
|
+
Classifier: Natural Language :: English
|
|
31
|
+
Requires-Python: >=3.11
|
|
32
|
+
Description-Content-Type: text/markdown
|
|
33
|
+
License-File: LICENSE
|
|
34
|
+
Requires-Dist: matplotlib
|
|
35
|
+
Requires-Dist: numpy>=2.1
|
|
36
|
+
Requires-Dist: pandas>=2.2.2
|
|
37
|
+
Requires-Dist: scikit-learn>=1.4
|
|
38
|
+
Requires-Dist: scipy
|
|
39
|
+
Requires-Dist: seaborn
|
|
40
|
+
Requires-Dist: torch
|
|
41
|
+
Requires-Dist: tqdm
|
|
42
|
+
Requires-Dist: toytree
|
|
43
|
+
Requires-Dist: optuna
|
|
44
|
+
Requires-Dist: rich
|
|
45
|
+
Requires-Dist: rich[jupyter]
|
|
46
|
+
Requires-Dist: snpio
|
|
47
|
+
Provides-Extra: intel
|
|
48
|
+
Requires-Dist: scikit-learn-intelex; extra == "intel"
|
|
49
|
+
Provides-Extra: docs
|
|
50
|
+
Requires-Dist: sphinx; extra == "docs"
|
|
51
|
+
Requires-Dist: sphinx-rtd-theme; extra == "docs"
|
|
52
|
+
Requires-Dist: sphinxcontrib-napoleon; extra == "docs"
|
|
53
|
+
Requires-Dist: sphinxcontrib-programoutput; extra == "docs"
|
|
54
|
+
Provides-Extra: dev
|
|
55
|
+
Requires-Dist: twine; extra == "dev"
|
|
56
|
+
Requires-Dist: wheel; extra == "dev"
|
|
57
|
+
Requires-Dist: pytest; extra == "dev"
|
|
58
|
+
Requires-Dist: sphinx; extra == "dev"
|
|
59
|
+
Requires-Dist: sphinx-rtd-theme; extra == "dev"
|
|
60
|
+
Requires-Dist: sphinxcontrib-napoleon; extra == "dev"
|
|
61
|
+
Requires-Dist: sphinxcontrib-programoutput; extra == "dev"
|
|
62
|
+
Requires-Dist: requests; extra == "dev"
|
|
63
|
+
Provides-Extra: optional
|
|
64
|
+
Requires-Dist: PyObjC; extra == "optional"
|
|
65
|
+
Provides-Extra: gui
|
|
66
|
+
Requires-Dist: fastapi>=0.110; extra == "gui"
|
|
67
|
+
Requires-Dist: uvicorn[standard]>=0.23; extra == "gui"
|
|
68
|
+
Dynamic: license-file
|
|
69
|
+
|
|
70
|
+
# PG-SUI
|
|
71
|
+
|
|
72
|
+

|
|
73
|
+
|
|
74
|
+
Population Genomic Supervised and Unsupervised Imputation.
|
|
75
|
+
|
|
76
|
+
## About PG-SUI
|
|
77
|
+
|
|
78
|
+
PG-SUI is a Python 3 API that uses machine learning to impute missing values from population genomic SNP data. There are several supervised and unsupervised machine learning algorithms available to impute missing data, as well as some non-machine learning imputers that are useful.
|
|
79
|
+
|
|
80
|
+
Below is some general information and a basic tutorial. For more detailed information, see our [API Documentation](https://pg-sui.readthedocs.io/en/latest/).
|
|
81
|
+
|
|
82
|
+
### Unsupervised Imputation Methods
|
|
83
|
+
|
|
84
|
+
Unsupervised imputers include three custom neural network models:
|
|
85
|
+
|
|
86
|
+
+ Variational Autoencoder (VAE) [1](#1)
|
|
87
|
+
+ VAE models train themselves to reconstruct their input (i.e., the genotypes) [1](#1). To use VAE for imputation, the missing values are masked and the VAE model gets trained to reconstruct only on known values. Once the model is trained, it is then used to predict the missing values.
|
|
88
|
+
+ Autoencoder [2](#2)
|
|
89
|
+
+ A standard autoencoder that trains the input to predict itself [2](#2). As with VAE, missing values are masked and the model gets trained only on known values. Predictions are then made on the missing values.
|
|
90
|
+
|
|
91
|
+
See the below diagram for an overview of implemented features for each model.
|
|
92
|
+
|
|
93
|
+

|
|
94
|
+
|
|
95
|
+
### Supervised Imputation Methods
|
|
96
|
+
|
|
97
|
+
Supervised methods utilze the scikit-learn's ``IterativeImputer``, which is based on the MICE (Multivariate Imputation by Chained Equations) algorithm [3](#3), and iterates over each SNP site (i.e., feature) while uses the N nearest neighbor features to inform the imputation. The number of nearest features can be adjusted by users. IterativeImputer currently works with the following scikit-learn classifiers:
|
|
98
|
+
|
|
99
|
+
+ ImputeRandomForest
|
|
100
|
+
+ ImputeHistGradientBoosting
|
|
101
|
+
|
|
102
|
+
See the [scikit-learn documentation](https://scikit-learn.org) for more information on IterativeImputer and each of the classifiers.
|
|
103
|
+
|
|
104
|
+
### Non-Machine Learning (Deterministic) Methods
|
|
105
|
+
|
|
106
|
+
We also include several deterministic options for imputing missing data, including:
|
|
107
|
+
|
|
108
|
+
+ Per-population mode per SNP site
|
|
109
|
+
+ Overall mode per SNP site
|
|
110
|
+
|
|
111
|
+
## Installing PG-SUI
|
|
112
|
+
|
|
113
|
+
PG-SUI supports both pip and conda distributions. Both are kept current with up-to-date releases.
|
|
114
|
+
|
|
115
|
+
### Installation with Pip
|
|
116
|
+
|
|
117
|
+
To install PG-SUI with pip, do the following. It is strongly recommended to install pg-sui in a virtual environment.
|
|
118
|
+
|
|
119
|
+
``` shell
|
|
120
|
+
python3 -m venv .pgsui-venv
|
|
121
|
+
source .pgsui-venv/bin/activate
|
|
122
|
+
pip install pg-sui
|
|
123
|
+
```
|
|
124
|
+
|
|
125
|
+
### Installation with Anaconda
|
|
126
|
+
|
|
127
|
+
To install PG-SUI with Anaconda, do the following:
|
|
128
|
+
|
|
129
|
+
``` shell
|
|
130
|
+
conda create -n pgsui-env python=3.12
|
|
131
|
+
conda activate pgsui-env
|
|
132
|
+
conda install -c btmartin721 pg-sui
|
|
133
|
+
```
|
|
134
|
+
|
|
135
|
+
### Docker Container
|
|
136
|
+
|
|
137
|
+
We also maintains a Docker image that comes with PG-SUI preinstalled. This can be useful for automated worklows such as Nextflow or Snakemake.
|
|
138
|
+
|
|
139
|
+
``` shell
|
|
140
|
+
docker pull pg-sui:latest
|
|
141
|
+
```
|
|
142
|
+
|
|
143
|
+
### Optional MacOS GUI
|
|
144
|
+
|
|
145
|
+
PG-SUI ships an optional Electron GUI (Graphical User Interface) wrapper around the Python CLI. Currently for the GUI, only MacOS is supported.
|
|
146
|
+
|
|
147
|
+
1. Install the Python-side extras (FastAPI/ uvicorn helper) if you want to serve from Python:
|
|
148
|
+
`pip install pg-sui[gui]`
|
|
149
|
+
2. Install [Node.js](https://nodejs.org) and fetch the app dependencies:
|
|
150
|
+
`pgsui-gui-setup`
|
|
151
|
+
3. Launch the graphical interface:
|
|
152
|
+
`pgsui-gui`
|
|
153
|
+
|
|
154
|
+
The GUI shells out to the same CLI underneath, so presets, overrides, and YAML configs behave identically.
|
|
155
|
+
|
|
156
|
+
## Input Data
|
|
157
|
+
|
|
158
|
+
You can read your input files as a GenotypeData object from the [SNPio](https://snpio.readthedocs.io/en/latest/) package. SNPio supports the VCF, PHYLIP, STRUCTURE, and GENEPOP input file formats.
|
|
159
|
+
|
|
160
|
+
``` python
|
|
161
|
+
# Import snpio. Automatically installed with pg-sui.
|
|
162
|
+
from snpio import VCFReader
|
|
163
|
+
|
|
164
|
+
# Read in VCF alignment.
|
|
165
|
+
# SNPio also supports PHYLIP, STRUCTURE, and GENEPOP input file formats.
|
|
166
|
+
data = VCFReader(
|
|
167
|
+
filename="pgsui/example_data/phylogen_subset14K.vcf.gz",
|
|
168
|
+
popmapfile="pgsui/example_data/popmaps/phylogen_nomx.popmap", # optional
|
|
169
|
+
force_popmap=True, # optional
|
|
170
|
+
)
|
|
171
|
+
```
|
|
172
|
+
|
|
173
|
+
## Supported Imputation Methods
|
|
174
|
+
|
|
175
|
+
There are several supported algorithms PG-SUI uses to impute missing data. Each one can be run by calling the corresponding class. You must provide a GenotypeData instance as the first positional argument.
|
|
176
|
+
|
|
177
|
+
You can import all the supported methods with the following:
|
|
178
|
+
|
|
179
|
+
``` python
|
|
180
|
+
from pgsui import ImputeVAE, ImputeAutoencoder, ImputeRefAllele, ImputeMostFrequent, ImputeRandomForest, ImputeHistGradientBoosting
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
### Unsupervised Imputers
|
|
184
|
+
|
|
185
|
+
The four unsupervised imputers can be run by initializing them with the SNPio ``GenotypeData`` object and then calling ``fit()`` and ``transform()``.
|
|
186
|
+
|
|
187
|
+
``` python
|
|
188
|
+
# Initialize the models, then fit and impute
|
|
189
|
+
vae = ImputeVAE(data) # Variational autoencoder
|
|
190
|
+
vae.fit()
|
|
191
|
+
vae_imputed = vae.transform()
|
|
192
|
+
|
|
193
|
+
ae = ImputeAutoencoder(data) # standard autoencoder
|
|
194
|
+
ae.fit()
|
|
195
|
+
ae_imputed = ae.transform()
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
The ``*_imputed`` objects are NumPy arrays of IUPAC single-character codes that are compatible with SNPio's ``GenotypeData`` objects.
|
|
199
|
+
|
|
200
|
+
### Supervised Imputers
|
|
201
|
+
|
|
202
|
+
Various supervised imputation options are supported, and these use the same API design.
|
|
203
|
+
|
|
204
|
+
``` python
|
|
205
|
+
# Supervised IterativeImputer classifiers
|
|
206
|
+
|
|
207
|
+
# Random Forest
|
|
208
|
+
rf = ImputeRandomForest(data)
|
|
209
|
+
rf.fit()
|
|
210
|
+
imputed_rf = rf.transform()
|
|
211
|
+
|
|
212
|
+
# HistGradientBoosting
|
|
213
|
+
hgb = ImputeHistGradientBoosting(data)
|
|
214
|
+
hgb.fit()
|
|
215
|
+
imputed_hgb = hgb.transform()
|
|
216
|
+
```
|
|
217
|
+
|
|
218
|
+
### Non-machine learning methods
|
|
219
|
+
|
|
220
|
+
The following deterministic methods are supported. ``ImputeMostFrequent`` supports the mode-per-population or overall (global) mode options to inform imputation.
|
|
221
|
+
|
|
222
|
+
``` python
|
|
223
|
+
# Per-population, per-locus mode
|
|
224
|
+
pop_mode = ImputeMostFrequent(data, by_populations=True)
|
|
225
|
+
pop_mode.fit()
|
|
226
|
+
imputed_pop_mode = pop_mode.transform()
|
|
227
|
+
|
|
228
|
+
# Per-locus mode
|
|
229
|
+
mode = ImputeMostFrequent(data, by_populations=False)
|
|
230
|
+
mode.fit()
|
|
231
|
+
imputed_mode = mode.transform()
|
|
232
|
+
```
|
|
233
|
+
|
|
234
|
+
Or, always replace missing values with the reference allele.
|
|
235
|
+
|
|
236
|
+
``` python
|
|
237
|
+
ref = ImputeRefAllele(data)
|
|
238
|
+
ref.fit()
|
|
239
|
+
imputed_ref = ref.transform()
|
|
240
|
+
```
|
|
241
|
+
|
|
242
|
+
## Command-Line Interface
|
|
243
|
+
|
|
244
|
+
Run the PG-SUI CLI with ``pg-sui`` (installed alongside the library). The CLI follows the same precedence model as the Python API:
|
|
245
|
+
|
|
246
|
+
``code defaults < preset (--preset) < YAML (--config) < explicit CLI flags < --set key=value``.
|
|
247
|
+
|
|
248
|
+
Recent releases add explicit switches for the simulated-missingness workflow shared by the neural and supervised models:
|
|
249
|
+
|
|
250
|
+
+ ``--sim-strategy`` selects one of ``random``, ``random_weighted``, ``random_weighted_inv``, ``nonrandom``, ``nonrandom_weighted``.
|
|
251
|
+
+ ``--sim-prop`` sets the proportion of observed calls to temporarily mask when building the evaluation set.
|
|
252
|
+
|
|
253
|
+
Example:
|
|
254
|
+
|
|
255
|
+
``` shell
|
|
256
|
+
pg-sui \
|
|
257
|
+
--input data.vcf.gz \
|
|
258
|
+
--popmap pops.popmap \
|
|
259
|
+
--models ImputeVAE ImputeAutoencoder \
|
|
260
|
+
--preset balanced \
|
|
261
|
+
--sim-strategy random_weighted_inv \
|
|
262
|
+
--sim-prop 0.3 \
|
|
263
|
+
--prefix ae_and_vae \
|
|
264
|
+
--n-jobs 4 \
|
|
265
|
+
--tune-n-trials 100 \
|
|
266
|
+
--set tune.enabled=True
|
|
267
|
+
```
|
|
268
|
+
|
|
269
|
+
CLI overrides cascade into every selected model, so a single invocation can evaluate multiple imputers with a consistent simulation strategy and output prefix.
|
|
270
|
+
|
|
271
|
+
STRUCTURE inputs accept a few extra flags for parsing metadata:
|
|
272
|
+
|
|
273
|
+
``` shell
|
|
274
|
+
pg-sui \
|
|
275
|
+
--input data.str \
|
|
276
|
+
--format structure \
|
|
277
|
+
--structure-has-popids \
|
|
278
|
+
--structure-allele-start-col 2 \
|
|
279
|
+
--structure-allele-encoding '{"1":"A","2":"C","3":"G","4":"T","-9":"N"}'
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## References
|
|
283
|
+
|
|
284
|
+
1. Kingma, D.P. & Welling, M. (2013). Auto-encoding variational bayes. In: Proceedings of the International Conference on Learning Representations (ICLR). arXiv:1312.6114 [stat.ML].
|
|
285
|
+
|
|
286
|
+
2. Hinton, G.E., & Salakhutdinov, R.R. (2006). Reducing the dimensionality of data with neural networks. Science, 313(5786), 504-507.
|
|
287
|
+
|
|
288
|
+
3. Stef van Buuren, Karin Groothuis-Oudshoorn (2011). mice: Multivariate Imputation by Chained Equations in R. Journal of Statistical Software 45: 1-67.
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
pg_sui-1.
|
|
2
|
-
pgsui/__init__.py,sha256=
|
|
3
|
-
pgsui/_version.py,sha256=
|
|
4
|
-
pgsui/cli.py,sha256=
|
|
1
|
+
pg_sui-1.7.0.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
|
|
2
|
+
pgsui/__init__.py,sha256=6tzbl-QrduagDbNmXkohCKkcZEbuePLCW07QfN_rIZ8,1263
|
|
3
|
+
pgsui/_version.py,sha256=oGRWiKvEGHesjf5wCNHGVlYfAA3dInDJeL5EiMaru6A,704
|
|
4
|
+
pgsui/cli.py,sha256=oSL_2jpb2VhLgWjsVIv09zMLadXQqeNS7qF3E-qDOzc,47940
|
|
5
5
|
pgsui/data_processing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
6
|
-
pgsui/data_processing/config.py,sha256=
|
|
7
|
-
pgsui/data_processing/containers.py,sha256=
|
|
8
|
-
pgsui/data_processing/transformers.py,sha256=
|
|
6
|
+
pgsui/data_processing/config.py,sha256=_I9Kagr93HiILMk6tXQP3CvM2qT3_eBUYi4nmbNGhUM,20364
|
|
7
|
+
pgsui/data_processing/containers.py,sha256=VpwPsQDB6IrUlWPqp_0rXHRPEveT2Zj71SUBrSmQk9E,38331
|
|
8
|
+
pgsui/data_processing/transformers.py,sha256=Bzmapf9G0qC41o7qOYmAJhBnxnhbcdVK6z2t7ToDwuY,33522
|
|
9
9
|
pgsui/electron/bootstrap.py,sha256=wnrXgX-hiqrMMFE9WGoD-UC8zeK2ZP6Kupu68PodVWI,1185
|
|
10
10
|
pgsui/electron/launch.py,sha256=M60o_jub77kJL-B9d_sMB7LYuTzWlOnQXR09efmCX2o,1715
|
|
11
11
|
pgsui/electron/package.json,sha256=12hbBq7xincW5V4645TTC58jfkA2rPgFP_eLb_WbhKo,372
|
|
@@ -43,39 +43,35 @@ pgsui/example_data/vcf_files/phylogen_subset14K.vcf.gz,sha256=B9sxdIGPSbw4m4MTX_
|
|
|
43
43
|
pgsui/example_data/vcf_files/phylogen_subset14K.vcf.gz.tbi,sha256=0gHDvboDAEZLQbXdYfUOiJL3oDOr1mOlaQxdlcz_erg,106087
|
|
44
44
|
pgsui/impute/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
45
45
|
pgsui/impute/deterministic/imputers/allele_freq.py,sha256=tqaMggiNs6hxs4CN3No2d5llmmIPt0jQhHT0mHry2IM,29573
|
|
46
|
-
pgsui/impute/deterministic/imputers/mode.py,sha256=
|
|
46
|
+
pgsui/impute/deterministic/imputers/mode.py,sha256=3gx4gYIQ9WaxHpWmSs41aoMGhd_8aDngO5ZZj5w_mNU,46682
|
|
47
47
|
pgsui/impute/deterministic/imputers/nmf.py,sha256=171_TTDZAe1NFjbmKQTOlPDe_rA1aO8q2Th5z0w2RU8,8086
|
|
48
48
|
pgsui/impute/deterministic/imputers/phylo.py,sha256=uN86_L2TeiUFOZLdU8pwymRiQf0SI7Sl6SAnCbAywVQ,38873
|
|
49
|
-
pgsui/impute/deterministic/imputers/ref_allele.py,sha256=
|
|
49
|
+
pgsui/impute/deterministic/imputers/ref_allele.py,sha256=vVDDd5FPVxmiDT6atKJ5qKW8SJN17OzPvN9VwZGV5qU,40268
|
|
50
50
|
pgsui/impute/supervised/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
51
51
|
pgsui/impute/supervised/base.py,sha256=A92x1pS8DO0OwbhQem3KBAMbWs368KJcVl88zJ7wE10,13756
|
|
52
52
|
pgsui/impute/supervised/imputers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
53
|
-
pgsui/impute/supervised/imputers/hist_gradient_boosting.py,sha256=
|
|
54
|
-
pgsui/impute/supervised/imputers/random_forest.py,sha256
|
|
53
|
+
pgsui/impute/supervised/imputers/hist_gradient_boosting.py,sha256=lWd4h1UZdYinsvj2dyQLymDrs0f8XWmxzCMKhEG3OlE,11538
|
|
54
|
+
pgsui/impute/supervised/imputers/random_forest.py,sha256=--8p81vs4E9di9MXQThYthEZ_LFfB7ibdQ2-aUR1e0s,10423
|
|
55
55
|
pgsui/impute/unsupervised/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
56
|
-
pgsui/impute/unsupervised/base.py,sha256=
|
|
57
|
-
pgsui/impute/unsupervised/callbacks.py,sha256=
|
|
58
|
-
pgsui/impute/unsupervised/loss_functions.py,sha256=
|
|
59
|
-
pgsui/impute/unsupervised/nn_scorers.py,sha256
|
|
56
|
+
pgsui/impute/unsupervised/base.py,sha256=fPd552zfupvOssg_do_jRuzlhxZ6qwd-UkVrLYpDwN4,72591
|
|
57
|
+
pgsui/impute/unsupervised/callbacks.py,sha256=Ixt6Lp_DDNQIkw5lQzesyt8rj4aE1adEWa2YpSJg7C4,4827
|
|
58
|
+
pgsui/impute/unsupervised/loss_functions.py,sha256=aGDEHm2BIriz1R91fiRucOOlsiQ6MZgHG6bIvOiE3Cg,7724
|
|
59
|
+
pgsui/impute/unsupervised/nn_scorers.py,sha256=Ica6Vp3WQKAoXN4VOQtnyfACC-eHswCOKJq302Wwao8,11587
|
|
60
60
|
pgsui/impute/unsupervised/imputers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
61
|
-
pgsui/impute/unsupervised/imputers/autoencoder.py,sha256=
|
|
62
|
-
pgsui/impute/unsupervised/imputers/
|
|
63
|
-
pgsui/impute/unsupervised/imputers/ubp.py,sha256=ThJh8J-txNaP3JZENtJeQJQim18U3vc2kxOW3vvnyqA,67021
|
|
64
|
-
pgsui/impute/unsupervised/imputers/vae.py,sha256=zoOc9yEvAyUPGAew0x3clRvBb7SflMN0LPFuVO0rTsU,50598
|
|
61
|
+
pgsui/impute/unsupervised/imputers/autoencoder.py,sha256=eFlzwnPlSXiYluFRd6Wolfd4-wKh3dmGxqet-g19pmw,54429
|
|
62
|
+
pgsui/impute/unsupervised/imputers/vae.py,sha256=SiJXxTQYq8z_gEIUrB7IiQS5cRvGY9VtTI_jXLqb0ds,57814
|
|
65
63
|
pgsui/impute/unsupervised/models/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
66
|
-
pgsui/impute/unsupervised/models/autoencoder_model.py,sha256=
|
|
67
|
-
pgsui/impute/unsupervised/models/
|
|
68
|
-
pgsui/impute/unsupervised/models/ubp_model.py,sha256=4guGkQzCTIsDnImOjJV5kG1xc1ST9oO4aUeXrSBSpQg,8491
|
|
69
|
-
pgsui/impute/unsupervised/models/vae_model.py,sha256=hMG7K1OR95qLEEcprGSzIoTIISXHSu2yWDy6QkG93Lg,15576
|
|
64
|
+
pgsui/impute/unsupervised/models/autoencoder_model.py,sha256=nsUUvs4O6DuFgZj_Op9U5gJqf2-vGTfZZ6wuJqiYLHk,10575
|
|
65
|
+
pgsui/impute/unsupervised/models/vae_model.py,sha256=PqcnqaLdnSN3ngoKmD1sUnn6SeV5nhmeLVYxmGIWf0M,5348
|
|
70
66
|
pgsui/utils/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
71
|
-
pgsui/utils/classification_viz.py,sha256=
|
|
67
|
+
pgsui/utils/classification_viz.py,sha256=R5_wSp6tE1rKCVU7dXLDR2vI3gqm32QrEvGrWHoXjSI,27139
|
|
72
68
|
pgsui/utils/logging_utils.py,sha256=o_ElRL05B_DrbALYkuW8s_azfKQiN8kJ4oXwshyIMyI,521
|
|
73
|
-
pgsui/utils/misc.py,sha256=
|
|
74
|
-
pgsui/utils/plotting.py,sha256=
|
|
75
|
-
pgsui/utils/pretty_metrics.py,sha256=
|
|
76
|
-
pgsui/utils/scorers.py,sha256=
|
|
77
|
-
pg_sui-1.
|
|
78
|
-
pg_sui-1.
|
|
79
|
-
pg_sui-1.
|
|
80
|
-
pg_sui-1.
|
|
81
|
-
pg_sui-1.
|
|
69
|
+
pgsui/utils/misc.py,sha256=AzXJfq3W6uDbB-sqUOu3288ODkRXDK4PPdzTFeWKLOU,8943
|
|
70
|
+
pgsui/utils/plotting.py,sha256=hXbi5xFW2DHSTzT03wuwDIVNgWtzVuF4qImv_xhHoD4,43473
|
|
71
|
+
pgsui/utils/pretty_metrics.py,sha256=d3UaEcG1ilRmiVQ0wQ-Eu_6LMPv0BmEPqTBw8orgNpo,9796
|
|
72
|
+
pgsui/utils/scorers.py,sha256=jL0oZWRwXF0rIZs-lXt1bXN09vEi0JXR0lnaa9S3udA,14423
|
|
73
|
+
pg_sui-1.7.0.dist-info/METADATA,sha256=K6HpOveKHbAZTmCMH2QSz-3VG0uDdaUVhsXvazRsTnY,12004
|
|
74
|
+
pg_sui-1.7.0.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
|
|
75
|
+
pg_sui-1.7.0.dist-info/entry_points.txt,sha256=xidyl6yqQv7oj3XSzZC6Vv9l7aNgbHi_pjv-dJjGJds,129
|
|
76
|
+
pg_sui-1.7.0.dist-info/top_level.txt,sha256=87-oDpfY6sDY_uN-OM2lcnrgPesifhzwqFOajp9ukz0,6
|
|
77
|
+
pg_sui-1.7.0.dist-info/RECORD,,
|
pgsui/__init__.py
CHANGED
|
@@ -6,10 +6,8 @@ from pgsui.data_processing.containers import (
|
|
|
6
6
|
AutoencoderConfig,
|
|
7
7
|
HGBConfig,
|
|
8
8
|
MostFrequentConfig,
|
|
9
|
-
NLPCAConfig,
|
|
10
9
|
RefAlleleConfig,
|
|
11
10
|
RFConfig,
|
|
12
|
-
UBPConfig,
|
|
13
11
|
VAEConfig,
|
|
14
12
|
)
|
|
15
13
|
from pgsui.impute.deterministic.imputers.mode import ImputeMostFrequent
|
|
@@ -19,23 +17,17 @@ from pgsui.impute.supervised.imputers.hist_gradient_boosting import (
|
|
|
19
17
|
)
|
|
20
18
|
from pgsui.impute.supervised.imputers.random_forest import ImputeRandomForest
|
|
21
19
|
from pgsui.impute.unsupervised.imputers.autoencoder import ImputeAutoencoder
|
|
22
|
-
from pgsui.impute.unsupervised.imputers.nlpca import ImputeNLPCA
|
|
23
|
-
from pgsui.impute.unsupervised.imputers.ubp import ImputeUBP
|
|
24
20
|
from pgsui.impute.unsupervised.imputers.vae import ImputeVAE
|
|
25
21
|
|
|
26
22
|
__all__ = [
|
|
27
23
|
"ImputeAutoencoder", # Unsupervised imputer classes
|
|
28
24
|
"ImputeVAE",
|
|
29
|
-
"ImputeNLPCA",
|
|
30
|
-
"ImputeUBP",
|
|
31
25
|
"ImputeRandomForest", # Supervised imputer classes
|
|
32
26
|
"ImputeHistGradientBoosting",
|
|
33
27
|
"ImputeRefAllele", # Deterministic imputer classes
|
|
34
28
|
"ImputeMostFrequent",
|
|
35
29
|
"AutoencoderConfig", # Unsupervised imputer configs
|
|
36
30
|
"VAEConfig",
|
|
37
|
-
"NLPCAConfig",
|
|
38
|
-
"UBPConfig",
|
|
39
31
|
"MostFrequentConfig", # Deterministic imputer configs
|
|
40
32
|
"RefAlleleConfig",
|
|
41
33
|
"RFConfig", # Supervised imputer configs
|
pgsui/_version.py
CHANGED
|
@@ -28,7 +28,7 @@ version_tuple: VERSION_TUPLE
|
|
|
28
28
|
commit_id: COMMIT_ID
|
|
29
29
|
__commit_id__: COMMIT_ID
|
|
30
30
|
|
|
31
|
-
__version__ = version = '1.
|
|
32
|
-
__version_tuple__ = version_tuple = (1,
|
|
31
|
+
__version__ = version = '1.7.0'
|
|
32
|
+
__version_tuple__ = version_tuple = (1, 7, 0)
|
|
33
33
|
|
|
34
34
|
__commit_id__ = commit_id = None
|