Skip to main content

XpongeCPP

Preview beta: XpongeCPP is currently a preview release and is under active beta testing.

预览版说明:XpongeCPP 当前仍处于预览阶段,正在进行 Beta 测试。

Docs / 文档入口

XpongeCPP is a new C++ implementation of common Xponge workflows with a thin Python compatibility layer.

The original Xponge repository is used only as a reference implementation and regression baseline. This repository does not share the original Python object model internally.

Installation

PyPI-style installation target

The packaging target is:

pip install XpongeCPP

After installation, both of these should work:

import XpongeCPP
import Xponge

The wheel is configured to include both:

  • src/XpongeCPP
  • src/Xponge

so old Xponge package-name imports can continue to work after installation.

Automatic optional chemistry dependencies

The package now declares a practical default dependency set for pip users:

  • numpy
  • geometric
  • matplotlib
  • PubChemPy
  • MDAnalysis
  • rdkit
  • pyscf on non-Windows platforms
  • mokda-xpongelib (imported as XpongeLib)

Windows automatically skips pyscf through environment markers.

mokda-xpongelib is included so legacy gaff.parmchk2_gaff(...) workflows can resolve the XpongeLib bridge automatically after installation.

See:

GitHub Actions packaging matrix

The repository CI currently builds packages on:

  • Linux x64: ubuntu-24.04
  • Linux arm64: ubuntu-24.04-arm
  • macOS Intel: macos-15-intel
  • macOS arm64: macos-15
  • Windows x64: windows-2025

Validation is split into two layers:

  • all platforms run a minimal wheel smoke test with numpy installed
  • Linux x64 additionally runs a full dependency install smoke test

This keeps wheel validation broad across operating systems and CPU architectures without making every matrix job depend on the full optional chemistry stack.

v1 Scope

  • Amber-first force-field workflows.
  • Flat C++ storage with Molecule, Residue, and ResidueType view semantics.
  • Common Python entry points such as load_pdb, load_mol2, Add_Solvent_Box, Set_Box_Padding, Save_SPONGE_Input, and Assign.
  • Numeric equivalence goals for SPONGE input, not byte-for-byte compatibility.

Amber lipid force fields

Both Lipid17 and Lipid21 are packaged. Import exactly one lipid base family:

import XpongeCPP.forcefield.amber.ff14sb
import XpongeCPP.forcefield.amber.gaff2
import XpongeCPP.forcefield.amber.lipid21  # or lipid17

Either lipid import automatically registers the shared PI/phosphoinositide/LysoPL extension. Input remains Amber's split-residue representation, such as PA + SPM + SA; full lipid names such as PSM and POPC are not automatically split. The extension's mixed Lipid/GLYCAM/phosphate/GAFF2 provenance is reported when it is loaded.

Within one Python process, ff14sb/ff19sb, gaff/gaff2, and lipid17/lipid21 are mutually exclusive pairs. Different families may be combined; use separate processes to compare alternatives in the same family.

Development Environments

The lightweight development path still uses rtk uv:

rtk uv pip install -e . --force-reinstall --no-cache-dir
rtk uv run pytest -q

Full Assign validation needs optional chemistry backends. Use pixi for a reproducible environment with RDKit, PubChemPy, and PySCF:

pixi run install-dev
pixi run test-assign-full
pixi run test-resp
pixi run test

Bundled SPONGE HDF5 I/O is implemented in the native C++ backend. Its build dependencies match SPONGE: HighFive and the HDF5 C library. The pixi environment installs both automatically. Manual source builds must provide a discoverable HDF5 C installation; when HighFive is unavailable, CMake fetches the pinned HighFive 3.3.0 source archive automatically.

The default SPONGE input format remains the legacy raw-text layout. Bundled input v2 can be selected from the common API, while both format-specific entry points remain available:

XpongeCPP.save_sponge_input(molecule, "system", "inputs", format="bundle")
XpongeCPP.save_sponge_input_raw(molecule, "system", "inputs")
XpongeCPP.save_sponge_input_bundle(molecule, "system", "inputs")

RESP supports a multi-backend strategy:

  • default backend: PySCF
  • optional backend: Psi4
  • shared dispatch layer: XpongeCPP.qm

Example:

assign.calculate_charge("resp", backend="pyscf")
assign.calculate_charge("resp", backend="psi4")

from XpongeCPP import qm

qm.run_scf(assign, backend="pyscf")
qm.optimize_geometry(assign, backend="pyscf")

For Windows RESP workflows, install Psi4 separately and select it explicitly:

conda install -c conda-forge psi4
pip install XpongeCPP

PubChem network tests remain opt-in through the test environment; default Pixi tests use local mocks or dependency checks and do not require live network access.

Documentation

Packaging roadmap note

The current repository uses a hand-written GitHub Actions workflow plus scripts/build_pypi.py for packaging validation. We are deliberately keeping this simpler workflow for now because it makes the Xponge/XpongeCPP dual package layout and the minimal-vs-full smoke split easy to audit.

cibuildwheel is still a good future option once the wheel matrix and release policy stabilize further, but it is not the current default.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xpongecpp-0.2.1.tar.gz (7.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

xpongecpp-0.2.1-cp312-cp312-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.1-cp312-cp312-macosx_15_0_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

xpongecpp-0.2.1-cp312-cp312-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

xpongecpp-0.2.1-cp311-cp311-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.1-cp311-cp311-macosx_15_0_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

xpongecpp-0.2.1-cp311-cp311-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

xpongecpp-0.2.1-cp310-cp310-win_amd64.whl (4.6 MB view details)

Uploaded CPython 3.10Windows x86-64

xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.1-cp310-cp310-macosx_15_0_x86_64.whl (4.4 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

xpongecpp-0.2.1-cp310-cp310-macosx_15_0_arm64.whl (4.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

Details for the file xpongecpp-0.2.1.tar.gz.

File metadata

  • Download URL: xpongecpp-0.2.1.tar.gz
  • Upload date:
  • Size: 7.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.1.tar.gz
Algorithm Hash digest
SHA256 ee875f26eb24d11ffef59152eaa3b83694c017269facc7385f5b86a89a603a1e
MD5 feb30faee2249e8ecd09114ab071cb64
BLAKE2b-256 5942ef35d01a7940273c7436a402b301973b61707b758ceb81f754c1ca2173ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1.tar.gz:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.1-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.1-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 429e0783eef3d950b5e1956c705e5b732896e287f4e140939fd8c33d201264af
MD5 ed0aa825ae1112f2eb6b6420f5107984
BLAKE2b-256 cf616289c946bde5fa291c43167c6132de7793066562e190e44dc6858c1dbd78

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp312-cp312-win_amd64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 153dca3941135a3a55527354139f2e6feaadff470acfe77b37c6b0e1bce91909
MD5 b0f9418900e2187bf7830e291653c724
BLAKE2b-256 6ea2da1d1b3ed93c4713dedf7b6248514874571e00f14bb2c6c013900ff73de2

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2bde2208493838edbe96b4faae62c20f39ae56a0a12659bf7ac866b849b93f62
MD5 cd2938e3c04269fed1a980302bd2b4c3
BLAKE2b-256 5c818a32c963f32102ad7c06ff284b4a4f0cc063a81efc5bbb5c6dbba27cf17f

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f7ca86aa23a268c2b32617f8e30482ecbfc67c237d7a6ef61970f0e5224051f4
MD5 4506a1aa2fd89a7ebfca7c5e07341d67
BLAKE2b-256 270e36394bf590a6f17fd3d23058e620d74e40cb1d37d5c55f4262ba744ad9f6

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp312-cp312-macosx_15_0_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 77b779b5dabf87e074ab801f2c58c63a4e821bb8ab05cbf82d059f463eb76eaf
MD5 e5b1af3d6ada1d2b1729a319f51e9087
BLAKE2b-256 59f2da02b7871cc89e778477c70f090fd1bcc34a7db1f74f77531a40f1cd98fd

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp312-cp312-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.1-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.1-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f946fbe354c2d66beffaa86cc7bb552dee5f1670acd087633adfda8f5d00ebea
MD5 ea069142d70e6d5af88c819e0e0b29b7
BLAKE2b-256 e33ff9972741c0e9f3632387a90c18e84c7ea19a69d92697b9428c916bd5770e

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp311-cp311-win_amd64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 852a1cc48d9a4073796b7b7b6d660bc11a44293dcbd4630a558534f353aec5cb
MD5 9001a44392595a035fac0778d8ba9ffd
BLAKE2b-256 79decebb328487bfbac724aa095a0d5382429eab70e980bc6054c2ced794cac1

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f7173de6c7a76015e810ce6d1de1fc93c998323bfe485e60ab376a097a2a32fa
MD5 1102f49144d3faf21bc6b55d8e067156
BLAKE2b-256 7c963088b87cc6e41622e22fef4e41a979bfeb7f21fa6f2522bfb02fcc64caf8

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6ff663d77cab27201678b2c978fd20f915592a6e50ce4609d2bb3e99dedfc2e1
MD5 8dcecd86d0f04309b7ac9e8b3c2b6471
BLAKE2b-256 43a81fbf9584ea4ce318e7c7706ff805f99dc1af3c6722f0e074d0c570d7b794

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp311-cp311-macosx_15_0_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 a9cb893c3d2214b2376eb90ef06579e656d7f20023b59e6d95fabe4326fb0a1c
MD5 3e2b4a989e2ae8b285b713133453adb1
BLAKE2b-256 6bb1704341979fdf66a1aeeb8231b945a10706eb787597a1806600feb013fa8b

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp311-cp311-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.1-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.6 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.1-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 5019dba8c589e998e0aa28a27c544c183dd803b4f924443bd4042a9cdc8c59b0
MD5 994dd2387ce2a5196c3865cb3b3f8b0f
BLAKE2b-256 5831b9a55b8c7b72a6c584f69c16dfe2328bb42450a1a7557337d1b393298a0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp310-cp310-win_amd64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b1f9e5b734c3a85d8756e38124d51665d62a487ec146020efb113f9a814ee8f4
MD5 8213b21c41b735803e374587d3e3db26
BLAKE2b-256 39c633481f9612a61f59e545ee4e38435b214f7d657cbf74d37053a70364f8b4

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 04a3e3b1b8d378d759ea048ddbf31c0af924f4091fa93bf97caebbfe5f0d6547
MD5 01564adc3918821bf537381fbcf5b8ef
BLAKE2b-256 f556edebbc55d724da46f9979cc4b3143fb57c7c532d17024baf5623ac7f0a0c

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 5718943dde2e2c0f2efc6245e5dd595aed0cbf1778e2685898b7382daef87be0
MD5 da07f3f7922d152cee9b2bc978857fd7
BLAKE2b-256 60e743f0fec138cd4916e199a1dc652ac49075828bfc99ad11e7bcc478d53975

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp310-cp310-macosx_15_0_x86_64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file xpongecpp-0.2.1-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.1-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 f84e4c5412fb186aebad32ff110945fadb490caf5acb2196019c5b634a7b2f44
MD5 5e28852472bd2cc1c475a2c954d544b8
BLAKE2b-256 d2a646bf2e03cb22f388c5e1fd3d69039afb7ca25c8110d7c080e0dda13f3f29

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.1-cp310-cp310-macosx_15_0_arm64.whl:

Publisher: publish-pypi.yml on SPONGEMM/XpongeCPP

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.9

16 files

0.2.8

16 files

0.2.7

16 files

0.2.6

16 files

0.2.5

16 files

0.2.4

16 files

This release

0.2.1 This release

16 files

0.2.0

16 files

0.1.5

6 files

0.1.4

6 files

0.1.3

6 files

0.1.2

6 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page