Skip to main content

xGPR

xGPR is a library for fitting approximate Gaussian process regression models and approximate kernel classification models to datasets ranging in size from thousands to millions of datapoints. It can also be used for efficient approximate kernel k-means and approximate kernel PCA.

The docs provide a number of examples for how to use xGPR for fitting protein sequences, small molecule structures, and tabular data for regression (classification is also available in v0.4.8).

xGPR uses a fast Hadamard transform-based implementation of the random features approximation (aka random Fourier features). It is designed to run on either CPU or GPU (GPU is better for training, either is fine for inference), to model tabular data, sequence & time series data and graph data, and to fit datasets too large to load into memory in a straightforward way.

Unlike exact Gaussian processes, which exhibit O(N^2) scaling and are impractical for large datasets, xGPR can scale easily; it is straightforward to quickly fit a few million datapoints on a GPU. The approximation we use provides improved accuracy compared with variational or sparse GP approximations. Unlike other libraries for Gaussian processes, which only provide kernels for fixed-vector data, xGPR provides convolution kernels for variable-length time series, sequences and graphs.

What's new in v0.4.8

An approximate kernel classifier is now included. Unlike the xGPRegression object, this does not currently however compute marginal likelihood, so to tune hyperparameters for this you will have to evaluate performance on a validation set. We hope to implement approximate marginal likelihood calculations for this soon.

You can now build custom Datasets (similar to the Dataloader in PyTorch) so that you can use any kind of data (SQLite db, HDF5 etc.) as input when training with minor tweaks.

In most cases, installation should typically be as simple as:

pip install xGPR

See the documentation for important information about installation and requirements.

Documentation

The documentation covers a variety of use cases, including tabular data, sequences and graphs, installation requirements and much more.

Citations

If using xGPR for research intended for publication, please cite either:

Linear-Scaling Kernels for Protein Sequences and Small Molecules Outperform Deep Learning While Providing Uncertainty Quantitation and Improved Interpretability Jonathan Parkinson and Wei Wang Journal of Chemical Information and Modeling 2023 63 (15), 4589-4601 DOI: 10.1021/acs.jcim.3c00601

The preprint is available at:

Jonathan Parkinson, & Wei Wang. (2023). Linear Scaling Kernels for Protein Sequences and Small Molecules Outperform Deep Learning while Providing Uncertainty Quantitation and Improved Interpretability https://arxiv.org/abs/2302.03294

Metadata

Release files for xGPR 0.4.8.5

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xGPR 0.4.8.5
File Size Uploaded
xgpr-0.4.8.5.tar.gz 5.1 MB Details

Built distributions (wheels)

Table of built distributions (wheels) for xGPR 0.4.8.5
File
xgpr-0.4.8.5-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.12 abi3 Linux glibc 2.17+ x86-64 Details
xgpr-0.4.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.17+ x86-64 Details
xgpr-0.4.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.17+ x86-64 Details
xgpr-0.4.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl CPython 3.9 CPython 3.9 Linux glibc 2.17+ x86-64 Details

Total release size: 7.8 MB

Release files / xgpr-0.4.8.5.tar.gz

Download URL xgpr-0.4.8.5.tar.gz
Size 5.1 MB
Tags Source
SHA-256 checksum
How to use checksums
f682e78f211f1836ae0558bb8ad17b02a8da563809122fcc643f3a336c4c79cb
BLAKE2b-256 checksum
How to use checksums
9a8c92acaed8859cba39a5bd7b765a8778e040abd65b8f428bca31c169b22643
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / xgpr-0.4.8.5-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xgpr-0.4.8.5-cp312-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 665.0 kB
Tags CPython 3.12 Linux glibc 2.17+ x86-64 abi3
SHA-256 checksum
How to use checksums
28c920381ddc0d0728aae050e0f77585f1854beb3c49995491a8f6778854cafa
BLAKE2b-256 checksum
How to use checksums
6f12a6ea33e40a0a1bf670507e12c6028cfb5c9a71d34940e3a871de3442ccb4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / xgpr-0.4.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xgpr-0.4.8.5-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 666.4 kB
Tags CPython 3.11 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
02fcb7870c8d182098523012a1f2e4e7446e8bf86332cbc8d5d33c1a5a156e03
BLAKE2b-256 checksum
How to use checksums
cf6d8c87378c36b5f23b985f8c0aa91057aa68e3bccfa744817d4d4732eb3f5f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / xgpr-0.4.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xgpr-0.4.8.5-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 666.7 kB
Tags CPython 3.10 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
fb708346730d59fba3611cd9d75a56b4e9d3bc7689e820d95382f7d362bb106c
BLAKE2b-256 checksum
How to use checksums
447808620ae5add850e966e8bab9355caa8b2546b221060dfbaccaaf3777b434
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release files / xgpr-0.4.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl

Download URL xgpr-0.4.8.5-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Size 666.9 kB
Tags CPython 3.9 Linux glibc 2.17+ x86-64
SHA-256 checksum
How to use checksums
ed9c8fcad702307e53899d71e05bb29b29f1d2db0601e479dcebd1f6a377eeda
BLAKE2b-256 checksum
How to use checksums
166fdb845182da146ec1ae7843f19acfe15364556922b802dc36a3160d8a46d4
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.0.1 CPython/3.10.12

Release history Release notifications | RSS feed

This release

0.4.8.5 This release

5 release files

0.4.8

5 release files

0.4.7

5 release files

0.4.6

5 release files

0.4.5

5 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page