{"id":31917439,"url":"https://github.com/moldyn/gp-tempest","last_synced_at":"2026-07-11T06:31:21.706Z","repository":{"id":307464575,"uuid":"836620593","full_name":"moldyn/GP-TEMPEST","owner":"moldyn","description":"Gaussian Process Temporal Embedding for Protein Simulations and Transitions","archived":false,"fork":false,"pushed_at":"2026-05-04T07:17:55.000Z","size":9865,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-04T09:30:45.227Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/moldyn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":"CITATION.cff","codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-08-01T08:18:36.000Z","updated_at":"2026-05-04T07:16:57.000Z","dependencies_parsed_at":"2025-07-31T13:13:33.483Z","dependency_job_id":null,"html_url":"https://github.com/moldyn/GP-TEMPEST","commit_stats":null,"previous_names":["moldyn/gp-tempest"],"tags_count":2,"template":false,"template_full_name":null,"purl":"pkg:github/moldyn/GP-TEMPEST","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FGP-TEMPEST","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FGP-TEMPEST/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FGP-TEMPEST/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FGP-TEMPEST/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/moldyn","download_url":"https://codeload.github.com/moldyn/GP-TEMPEST/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/moldyn%2FGP-TEMPEST/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35353668,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-11T02:00:05.354Z","response_time":104,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2025-10-13T20:29:48.542Z","updated_at":"2026-07-11T06:31:21.700Z","avatar_url":"https://github.com/moldyn.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cp align=\"center\"\u003e\n  \u003cpicture\u003e\n    \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"docs/hero_dark.png\"\u003e\n    \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"docs/hero_light.png\"\u003e\n    \u003cimg alt=\"GP-TEMPEST\" src=\"docs/hero_light.png\" width=\"800\"\u003e\n  \u003c/picture\u003e\n\u003c/p\u003e\n\n# GP-TEMPEST\n\n**Gaussian Process Temporal Embedding for Protein Simulations and Transitions**\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://doi.org/10.1063/5.0282147\"\u003e\u003cimg src=\"https://img.shields.io/badge/DOI-10.1063%2F5.0282147-blue\" alt=\"DOI\"\u003e\u003c/a\u003e\n  \u003ca href=\"LICENSE\"\u003e\u003cimg src=\"https://img.shields.io/badge/license-MIT-green\" alt=\"License: MIT\"\u003e\u003c/a\u003e\n  \u003ca href=\".github/workflows/pytest.yml\"\u003e\u003cimg src=\"https://github.com/moldyn/GP-TEMPEST/actions/workflows/pytest.yml/badge.svg\" alt=\"Tests\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://codecov.io/gh/moldyn/GP-TEMPEST\"\u003e\u003cimg src=\"https://codecov.io/gh/moldyn/GP-TEMPEST/branch/main/graph/badge.svg\" alt=\"Coverage\"\u003e\u003c/a\u003e\n  \u003cimg src=\"https://img.shields.io/badge/python-3.9%2B-blue\" alt=\"Python 3.9+\"\u003e\n  \u003cimg src=\"https://img.shields.io/badge/PyTorch-2.0%2B-EE4C2C?logo=pytorch\" alt=\"PyTorch\"\u003e\n  \u003ca href=\"https://moldyn.github.io/GP-TEMPEST\"\u003e\u003cimg src=\"https://img.shields.io/badge/docs-MkDocs-526CFE?logo=materialformkdocs\" alt=\"Docs\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pypi.org/project/gp-tempest\"\u003e\u003cimg src=\"https://img.shields.io/pypi/v/gp-tempest\" alt=\"PyPI\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://pepy.tech/projects/gp-tempest\"\u003e\u003cimg src=\"https://static.pepy.tech/badge/gp-tempest\" alt=\"Total Downloads\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://moldyn.github.io/GP-TEMPEST/tutorial/tutorial/\"\u003e\u003cimg src=\"https://img.shields.io/badge/tutorial-notebook-orange?logo=jupyter\" alt=\"Tutorial\"\u003e\u003c/a\u003e\n  \u003ca href=\"https://anaconda.org/conda-forge/gp-tempest\"\u003e\u003cimg src=\"https://img.shields.io/conda/vn/conda-forge/gp-tempest\" alt=\"conda-forge\"\u003e\u003c/a\u003e\n\u003c/p\u003e\n\n\u003cp align=\"center\"\u003e\n  \u003ca href=\"https://moldyn.github.io/GP-TEMPEST\"\u003eDocumentation\u003c/a\u003e •\n  \u003ca href=\"https://moldyn.github.io/GP-TEMPEST/tutorial/tutorial/\"\u003eTutorial\u003c/a\u003e •\n  \u003ca href=\"#features\"\u003eFeatures\u003c/a\u003e •\n  \u003ca href=\"#installation\"\u003eInstallation\u003c/a\u003e •\n  \u003ca href=\"#usage\"\u003eUsage\u003c/a\u003e •\n  \u003ca href=\"#citation\"\u003eCitation\u003c/a\u003e\n\u003c/p\u003e\n\n---\n\nGP-TEMPEST is a PyTorch implementation of the Gaussian Process Variational\nAutoencoder (GP-VAE) framework for time-aware dimensionality reduction of\nmolecular dynamics (MD) simulations. The method leverages physics-informed\nGaussian Process priors to capture temporal correlations in the latent space,\nenabling the recovery of hidden or kinetically relevant degrees of freedom in\ncomplex biomolecular systems.\n\n## Features\n\n- **Physics-informed dimensionality reduction** using Gaussian Processes as temporal priors\n- **Flexible kernel selection** with support for the Matérn kernel \n(ν = 0.5, 1.5, 2.5)\n- **Sparse GP inference** with inducing points for scalability to large \nmolecular trajectories\n- **Recovery of hidden degrees of freedom** not accessible in any projection \nof the input data\n- **Free-energy landscapes and kinetic insight** from GP-smoothed, physically interpretable latent coordinates\n\n## Installation\n\n**Via pip:**\n```bash\npip install gp-tempest\n```\n\n**Via conda:**\n```bash\nconda install -c conda-forge gp-tempest\n```\n\n\u003e **Note:** PyTorch is listed as a dependency but pip will install the CPU version by default. For GPU support install torch manually first:\n\u003e ```bash\n\u003e pip install torch --index-url https://download.pytorch.org/whl/cu118\n\u003e pip install gp-tempest\n\u003e ```\n\n**From source:**\n```bash\ngit clone https://github.com/moldyn/GP-TEMPEST.git\ncd GP-TEMPEST\npip install -e .\n```\n\n## Usage\n\n### Command-line interface\n\n**Fully-connected variant:**\n```bash\n# Generate a default config file\npython tempest_main.py --generate_config\n\n# Run with your config\npython tempest_main.py --config my_config.yaml\n```\n\n### Python API\n\n```python\nimport numpy as np\nimport torch\nfrom gptempest import TEMPEST, MaternKernel, load_prepare_data\n\n# Set up kernel and model\nkernel = MaternKernel(scale=10.0, nu=1.5, dtype=torch.float64)\ninducing_points = np.linspace(0, 1, 50)\n\nmodel = TEMPEST(\n    cuda=False,\n    kernel=kernel,\n    dim_input=dim_input,\n    dim_latent=2,\n    layers_hidden_encoder=[128, 64],\n    layers_hidden_decoder=[64, 128],\n    inducing_points=inducing_points,\n    beta=1.0,\n    N_data=N_data,\n    dtype=torch.float64,\n)\n\n# Train\nmodel.train_model(dataset, train_size=1.0, learning_rate=1e-3,\n                  weight_decay=1e-5, batch_size=512, n_epochs=100)\n\n# Extract latent space\nembedding = model.extract_latent_space(dataset, batch_size=512)\n```\n\n### Configuration file\n\nGP-TEMPEST is configured via YAML files. Generate a template with `--generate_config` and adjust the following key parameters.\nThe discussion of these parameters can be found in the paper.\n\n| Parameter | Description |\n|-----------|-------------|\n| `dim_latent` | Dimensionality of the latent space (typically 2) |\n| `layers_hidden` | Hidden layer sizes for encoder/decoder |\n| `kernel_nu` | Matérn kernel smoothness (0.5, 1.5, or 2.5) |\n| `kernel_scale` | Time-scale of the GP prior |\n| `beta` | Weight of the GP regularization term |\n| `inducing_points` | Path to inducing point time coordinates |\n\n## Citation\n\nIf you use GP-TEMPEST in your research, please cite:\n\n```bibtex\n@article{diez2025gptempest,\n  title   = {Recovering Hidden Degrees of Freedom Using Gaussian Processes},\n  author  = {Diez, Georg and Dethloff, Nele and Stock, Gerhard},\n  journal = {J. Chem. Phys.},\n  volume  = {163},\n  pages   = {124105},\n  year    = {2025},\n  doi     = {10.1063/5.0282147}\n}\n```\n\n\u003e G. Diez, N. Dethloff, G. Stock,\n\u003e \"Recovering Hidden Degrees of Freedom Using Gaussian Processes,\"\n\u003e *J. Chem. Phys.* **163**, 124105 (2025), https://doi.org/10.1063/5.0282147\n\n## License\n\nThis project is licensed under the MIT License — see the [LICENSE](LICENSE) file for details.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoldyn%2Fgp-tempest","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmoldyn%2Fgp-tempest","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmoldyn%2Fgp-tempest/lists"}