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.
Files changed (34) hide show
  1. pg_sui-1.7.0.dist-info/METADATA +288 -0
  2. {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/RECORD +29 -33
  3. pgsui/__init__.py +0 -8
  4. pgsui/_version.py +2 -2
  5. pgsui/cli.py +591 -126
  6. pgsui/data_processing/config.py +1 -2
  7. pgsui/data_processing/containers.py +218 -533
  8. pgsui/data_processing/transformers.py +44 -20
  9. pgsui/impute/deterministic/imputers/mode.py +475 -182
  10. pgsui/impute/deterministic/imputers/ref_allele.py +454 -147
  11. pgsui/impute/supervised/imputers/hist_gradient_boosting.py +4 -3
  12. pgsui/impute/supervised/imputers/random_forest.py +3 -2
  13. pgsui/impute/unsupervised/base.py +1268 -530
  14. pgsui/impute/unsupervised/callbacks.py +28 -33
  15. pgsui/impute/unsupervised/imputers/autoencoder.py +869 -764
  16. pgsui/impute/unsupervised/imputers/vae.py +928 -696
  17. pgsui/impute/unsupervised/loss_functions.py +156 -202
  18. pgsui/impute/unsupervised/models/autoencoder_model.py +7 -49
  19. pgsui/impute/unsupervised/models/vae_model.py +40 -221
  20. pgsui/impute/unsupervised/nn_scorers.py +53 -13
  21. pgsui/utils/classification_viz.py +240 -97
  22. pgsui/utils/misc.py +201 -3
  23. pgsui/utils/plotting.py +73 -58
  24. pgsui/utils/pretty_metrics.py +2 -6
  25. pgsui/utils/scorers.py +39 -0
  26. pg_sui-1.6.14.dev9.dist-info/METADATA +0 -344
  27. pgsui/impute/unsupervised/imputers/nlpca.py +0 -1554
  28. pgsui/impute/unsupervised/imputers/ubp.py +0 -1575
  29. pgsui/impute/unsupervised/models/nlpca_model.py +0 -206
  30. pgsui/impute/unsupervised/models/ubp_model.py +0 -200
  31. {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/WHEEL +0 -0
  32. {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/entry_points.txt +0 -0
  33. {pg_sui-1.6.14.dev9.dist-info → pg_sui-1.7.0.dist-info}/licenses/LICENSE +0 -0
  34. {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
+ ![PG-SUI Logo: Stylized blue and purple gradient design with faded appearance representing PG-SUI - Population Genomic Supervised and Unsupervised Imputation](https://github.com/btmartin721/PG-SUI/blob/master/img/pgsui-logo-faded.png)
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
+ ![Side-by-side comparison of two neural network architectures for genomic imputation. Left diagram with blue boxes shows ImputeAutoencoder workflow: input genotypes with missing data encoded as 0=REF, 1=HET, 2=ALT, -9 or -1=Missing flows through gamma Schedule, Encoder Network, Latent Space, Decoder Network, Reconstruction Loss, to produce Imputed Genotype Output. Right diagram with orange boxes shows ImputeVAE architecture: genotype input flows through Encoder Network to Mean and Log Variance outputs, then Sampling with Reparameterization, KL-beta Schedule, KL Divergence Loss, Decoder Network, Reconstruction Loss, producing Imputed Genotype Output. Both models output refilled missing values. The comparison illustrates how the autoencoder differs from VAE through additional scheduled parameters and loss components in the variational model.](./img/autoencoder_vae_model_diagrams.png)
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.6.14.dev9.dist-info/licenses/LICENSE,sha256=OXLcl0T2SZ8Pmy2_dmlvKuetivmyPd5m1q-Gyd-zaYY,35149
2
- pgsui/__init__.py,sha256=wQFzVX6vh8aUva1LCvP42jS7rcKCpkaU52YfZIy61q8,1493
3
- pgsui/_version.py,sha256=wKIKHCX5SmsO-4sA-OpkKAHVYuXeZ-aL_K4jO6bGQPU,719
4
- pgsui/cli.py,sha256=tYSXK_BvBv_8rpDEFGcqrV1OCwN48vMervVV-C-6H_A,29675
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=g5G7pjWG4uU2BRvBu_DpO0J_4X1Foa11X69imBWjaKA,20483
7
- pgsui/data_processing/containers.py,sha256=5bGA_u3czuTr8TMq6ZmQ-Wc1l-4Qh8-O2siBi3h-owc,51558
8
- pgsui/data_processing/transformers.py,sha256=kdwOTmfDjgQ3RmiwQIK7LYL4vQUpgA4bob7NHYgnYRM,30998
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=lQmrOYEyfQidqGaG86QB5HeM66IeOFLK1UoCvh-iDno,35049
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=OGdv4n1avIArItZ-V0kqX2g4OOZc2felh7HM1ikY2iU,28075
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=5LZsee2R9tbshmgVvLDIjGDihiQPvp9XfbaGwzL35E8,11509
54
- pgsui/impute/supervised/imputers/random_forest.py,sha256=jpeaLjhzYrwRPc9nPasLgwOqBoHlBlymHMc3x5OkBWA,10393
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=ev9sWIMTB7WwKgkPW5MkSGrGr_BZaxvhkKiUUmvI5jo,46794
57
- pgsui/impute/unsupervised/callbacks.py,sha256=jkxncpKNRdssImv4N5c-Hq8VcA07QvxLoct7EqDW9RE,5026
58
- pgsui/impute/unsupervised/loss_functions.py,sha256=f18uQnerj0KF9xcU2I1_Y2OCKKguXXaEDaYhJg0XElY,10089
59
- pgsui/impute/unsupervised/nn_scorers.py,sha256=-rl5MBJm2GN6E1wPBIe1wMgdrHEHhYooUUxVbfcf1Z8,9758
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=fREEWDcmL4DEpFTXFDQjb84sdf2yHSDoCLNWMDhHqe8,54018
62
- pgsui/impute/unsupervised/imputers/nlpca.py,sha256=fboE4gLv6M-mq2PPHSejtpSfShrhUfUSsngAinHgzVw,63797
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=mHmfTkldJNpN7Dy7RTS2RnkE2L_K1rChNjpjDvzRlEQ,12333
67
- pgsui/impute/unsupervised/models/nlpca_model.py,sha256=1NathvhsirBtd9UcmeJzRoVf7oi7PfDmRpt18Di63Cg,8021
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=WkGQkEIkpTMLQvGdGoU53kn1iNUO9ipeg5stSY1rcFg,22012
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=Mw5CsspFJkDAcCRufk-lO7fKyVoYK7PRYXkLXKswUjI,3065
74
- pgsui/utils/plotting.py,sha256=d5CTzGIpanu3j6rEB6fq_F1g8w_A2Ti_XiedRjIFFII,42444
75
- pgsui/utils/pretty_metrics.py,sha256=dtN7Ohcx3qJYCw4JeJCXvthGDdSV7bgE8v6EGwHSAE0,9862
76
- pgsui/utils/scorers.py,sha256=sL2upL2ZZMFBTMM4DiGiWeXrqc_fp1RRbleYCnuRUhw,12564
77
- pg_sui-1.6.14.dev9.dist-info/METADATA,sha256=F_9XvBZpZqKvrMnmD9TnwRuOkjXPEtnsUyGnRQu9orE,14443
78
- pg_sui-1.6.14.dev9.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
79
- pg_sui-1.6.14.dev9.dist-info/entry_points.txt,sha256=xidyl6yqQv7oj3XSzZC6Vv9l7aNgbHi_pjv-dJjGJds,129
80
- pg_sui-1.6.14.dev9.dist-info/top_level.txt,sha256=87-oDpfY6sDY_uN-OM2lcnrgPesifhzwqFOajp9ukz0,6
81
- pg_sui-1.6.14.dev9.dist-info/RECORD,,
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.6.14.dev9'
32
- __version_tuple__ = version_tuple = (1, 6, 14, 'dev9')
31
+ __version__ = version = '1.7.0'
32
+ __version_tuple__ = version_tuple = (1, 7, 0)
33
33
 
34
34
  __commit_id__ = commit_id = None