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.4.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.4-cp312-cp312-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

xpongecpp-0.2.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.5 MB view details)

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

xpongecpp-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

xpongecpp-0.2.4-cp312-cp312-macosx_15_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

xpongecpp-0.2.4-cp311-cp311-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

xpongecpp-0.2.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.5 MB view details)

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

xpongecpp-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

xpongecpp-0.2.4-cp311-cp311-macosx_15_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

xpongecpp-0.2.4-cp310-cp310-win_amd64.whl (7.9 MB view details)

Uploaded CPython 3.10Windows x86-64

xpongecpp-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (7.7 MB view details)

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

xpongecpp-0.2.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (7.5 MB view details)

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

xpongecpp-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

xpongecpp-0.2.4-cp310-cp310-macosx_15_0_arm64.whl (7.5 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: xpongecpp-0.2.4.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.4.tar.gz
Algorithm Hash digest
SHA256 4a97aafa4905cb23c49aa6b2fa426bb467f925ac6a653ba43a02411c8b8c2e5d
MD5 5da42fcdd7b2abbe66a72d7e1218a32c
BLAKE2b-256 bb490d800f49657664d58ffb37da049b1e4efeb777a9ca4c705f0ecea867bc42

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4.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.4-cp312-cp312-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.4-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.4-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 59a862538d8bfb86723dfa4d4541ea972e14e3c37243955efb52c2fefc2723ad
MD5 3cbf99e92175e3d95ac12c7b8a45af83
BLAKE2b-256 619ca82f915359a98c6b3175d017b9c0969305e099892e819ea20458ea4f9a21

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 e51595186bd1911662baf47d582312ebe62e6648bc9461cc2c97794cd653d0e6
MD5 00a1d8431c2747f56642c4acc0b0e1a0
BLAKE2b-256 ccc7336cf7e875b57d7a39f1d1384988bfb3b655e213d1f027b39cf684523248

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 f4979067c3e38ada0df22d259af4cd71253622faa7a5c0145e0f4661eaae96f9
MD5 c03f7662759aac918c2cde3c42a3093a
BLAKE2b-256 215fa6489a5943e70fb087738b68d6eb6a0526c22ad5642eb39b6d883b3d8b98

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp312-cp312-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 bd4aae87f3430d2b6067f7cfb5fecead69a8eac9914c87dbea8261346dea0539
MD5 748bf0a899ae31c6fdf7deb75f294863
BLAKE2b-256 f01f20bc6d24a6899e5bb8f0b9f10f739979ce9fcfe0515208b1aa9e639d25ad

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp312-cp312-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 99df564c1c93a3160f92c832131d2a6c0ad3d16ea9d5b7028d8908cd37f01085
MD5 b2692764ff9fb8ae2cf36e2d94d3d2f6
BLAKE2b-256 2f1c75808222013c41196015383e63f57968bb081da0c0789dd50de7d99299f5

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp311-cp311-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.4-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.4-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 7b2929d001b2b7d8dfbe3c532453dcfff7b48cfafc8461256ae7c413cf476aa3
MD5 d86ec978fbd330af07179f77de6515f6
BLAKE2b-256 d8f1b8a390e75141e10ae6fda3241babbebbd028e8675b9aa1edd23d57d39f64

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 99b1166bc1c00b4a85de93f798470fba4e82775f0b8fdfbc531ee40f1c851922
MD5 f7d479e3c78cab1ec1b53bc1ad64b16d
BLAKE2b-256 34008974d91b08199bc4b96dd9c20c276c36d778ff1439e2108b2f9d5a6d93a2

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 e9b773fb5305202b13f5140477aad4c156fc20b4b33baf768674d6abd0f91c12
MD5 f6802a897e29cb8b4467642922fa8c7a
BLAKE2b-256 09bbf7c8aec75cf4e86043384cdc5f3834db07288489711657247a809a9c419c

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp311-cp311-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 858495cd9860f53737970d29e33e072f141087dfc41f38e9e227b26e6a739e5e
MD5 b16d8149f4681a0a6dc3b5347cb5e8ef
BLAKE2b-256 d0ce476c77a922d357a1a3fe21c0d0066b2bded4e1aba9b0b66b96d7d2bc1875

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp311-cp311-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 9ab074a3cb58c1fb1e9dad841e12283cf862c29eb539feff98d1a1f2f1e6727e
MD5 82461f906ff9ddce74c0d8e55399f68c
BLAKE2b-256 901c3ab6cce78e98a717dfd7e59e01c3ab696ea640045e38a26daa2132496253

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp310-cp310-win_amd64.whl.

File metadata

  • Download URL: xpongecpp-0.2.4-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 7.9 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.4-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 0ec0953ef0245a33c77fe1023e871cc8df108fa4cfc8174aa3a3989cbd158d76
MD5 88aed2ec0c90914a1dba4bb5c9fd4063
BLAKE2b-256 223b0827ecef262cd12e4a01ea992c75a98dce87b62e39752e9149126f585e58

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 457b994e667a3af3667ca87a56f5786952b5abddeced7481f6f0da7488726192
MD5 88a803e59d88f6a6eefcfa2d0a1083a6
BLAKE2b-256 166aff16aa4d40bf3123c48ab3d67b074fa8f0a25a23e8239c51180e8bd19ab7

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 3fe2362f3e161dcb3075e16f113c0f30b588153cb2a3596bae489846a347ebe7
MD5 b0f2b557d217fe5eb9edd4434f4f7e92
BLAKE2b-256 e2d241e2466a65197120d8b866f5251f1100a36f878a09d77895e997c807c2c7

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp310-cp310-macosx_15_0_x86_64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6f07094aae5daf95e21f4ae27b14efbc6bf646a127c244cd76e6c8ece75f0ab9
MD5 b18e161dbe4261e1b4ccaebce488d551
BLAKE2b-256 08d0331d9cee54545999d3fbdd61402e8ce9df35e39d9864cafc33ac22708592

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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.4-cp310-cp310-macosx_15_0_arm64.whl.

File metadata

File hashes

Hashes for xpongecpp-0.2.4-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 81436e6f7779795a9db163b42eaab0203d2ecbf7e0c1f5479aa7c714460a0f29
MD5 a5a221707b8fc104f7dabcd059647676
BLAKE2b-256 9175659e93c75d878a2842c8556552c21d43b6f3a438077e696d7497911ed77b

See more details on using hashes here.

Provenance

The following attestation bundles were made for xpongecpp-0.2.4-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

This release

0.2.4 This release

16 files

0.2.1

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