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

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.5-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.5-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.5-cp312-cp312-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.2.5-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.5-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.5-cp311-cp311-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

xpongecpp-0.2.5-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.5-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.5-cp310-cp310-macosx_15_0_x86_64.whl (7.7 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

xpongecpp-0.2.5-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.5.tar.gz.

File metadata

  • Download URL: xpongecpp-0.2.5.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.5.tar.gz
Algorithm Hash digest
SHA256 c584629313bff3a49802a802278e41e64528bc5d39c7999c67b80e95557ff495
MD5 f84a4d05203a872c4977d11ec9934686
BLAKE2b-256 18031d4ab5765fdc08ad2bf31da5f7806fcb106ff75611fee03e8fb1d0480f96

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.5-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.5-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8da16b5812b1461e576e794e44d7d9fe7c76a59d2710ab129be52cb24cb68766
MD5 a3ed3bb4cfe4da3a65c8007463e24004
BLAKE2b-256 95ab7bd39ac1b2d92cbad1b7cb2e53113fea89a7b3550c06d59c32527d923cb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 17c233196609265b735b00b8bd7f36749a31afb05f0080885bce79f013119222
MD5 f6c15188eb152ac5bb96c8cdcaf6d3ac
BLAKE2b-256 0b8bd5b0971e84cd6c76977447b174fc39382719d9565fe2c98f8a0afbfc5b39

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 2a0dd6dfed40bb46cfaa94d54f10334bc61a0b6bd28ef134fbad859ae5f58e11
MD5 aff6705183647215e6913b86072d48ea
BLAKE2b-256 3c8c09f19b4bebe9b893a00a2417a8be493f4434ccbf222e153d2b2a6d051910

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 6652eab7ff76529417e19a4c45477a9a129fe2451979a8b9299765a284307b62
MD5 c3ac3f82ef69d2cd641b3efc63e7a64f
BLAKE2b-256 b50bc8e36858f8b82aa353963716838f1ca9b9fe9825b9fdd9bb8822e02fc178

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 06cfbe3a19913d42ebd88289212b8e0bb0e40ba4f26c54cb1b872efb6109f050
MD5 80107fd094d96b8b5fef78e8256427a0
BLAKE2b-256 9d2aa9b65d3a57be2805b887e00942c2c200c0a793aa44c41f057f050c1bccdc

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.5-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.5-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 ce1d2793cbc5d251f03db25e4750aef58fb8f2dd4634aa7a46d173456e70d99a
MD5 88f715d428b246fac47ebdaf5df707c0
BLAKE2b-256 3ee36888a9859a16c0a6908de316917ac8954f2e3c0dd0df6c632950533835ae

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 11733e7a170422575f5eef37d7afd607dafa812efce86b5c6f9c9e77cf3db05b
MD5 d3677292589f1e287dd5306b04e10624
BLAKE2b-256 d1a61870ce47b870fc61d74495b5c30702201ad14e9b01356867f577d5861a4c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 beed2926a9bd252efaa2c600227f001593fe10a24f65fa2dd6ea6fb0f392e141
MD5 eff4c069cc53832acc9074f2278aab05
BLAKE2b-256 fdc1d505dff52d999b72f8f9e05d37bfa58de6d9b5d37338829b52872f073a87

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 101801484046a4ce76c330577bfd173584cd586ca769bff669bd4390ce9844d3
MD5 16954c0d83e9c20a58d9314ce9a0ba5a
BLAKE2b-256 a0699ffbe8705295e0dbe265807b8399118df85e5ff041deffea4caf3a388fbc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0f5244a5e1a74cbde32d3f0a94fc4e19eca8ca221f87e8b696aa06e50b626d70
MD5 8244b781a4f17690008cc2c89d2cdfe9
BLAKE2b-256 ef5724638e76fa43179ea1da53e4335230b7846d5606d51aa78919cdcf6ffd43

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.5-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.5-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 300aabcb9f716daeeecfc9b0b4883e6b044fa4079d1df6126389a259c62b6507
MD5 8a2677ad3b668002cdd8dc4d116a3e86
BLAKE2b-256 4dcd481856fcf60158b4dbaa2d7837c5c4dfb6c029606d7806be87c18185f33d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 2569db991c142e731cc612b40f9e4bfce8d4dbe62dc13fa903f6e5321f5b2e6c
MD5 359ba69529db6eb6e9370dd15949e43a
BLAKE2b-256 79553b31af1b5ef57154fafa60e928ba62a24fc25323c5d893fb46e2c661b023

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7e63eb8ab98287e164cad4e469ee8fb3cdd5c62ef6443369079f68d1ad505d6c
MD5 a3c1c72247d29a0ce7f9d61e3142b9d2
BLAKE2b-256 72e84cdae8542cd49957aa0b86f20d6531c0f0059e0cd03004da0143bc04ff6a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 20cab09e6abec67719a54337384becbff96754060c683fb22bb7aa8ddfc5ac4b
MD5 1cbc516e3326bb26d9d3a6d250a5e260
BLAKE2b-256 85745eb6feec561be5dd2c5dd7b252ea3b052a3f8ae6383f074238ea5092e34f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.5-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ab527aee431ca22661d72ecf3ac3f4b64ec8295f0aaf35af9a729451b6369d4a
MD5 a41ffda21946787dd7e1855dbaa9f8e6
BLAKE2b-256 4e371981feb7b1780103011cb5dd8becf98e237ce0a5da312b61d7ac20575754

See more details on using hashes here.

Provenance

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

This release

0.2.5 This release

16 files

0.2.4

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