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 automatically selects the first available backend:

  • preferred backend: PySCF
  • fallback 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")

Windows does not install PySCF automatically. If a compatible PySCF is available, it is selected; otherwise install Psi4 separately as the fallback:

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

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.7-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.7-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.7-cp312-cp312-macosx_15_0_x86_64.whl (7.8 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 15.0+ x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 15.0+ x86-64

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

File metadata

  • Download URL: xpongecpp-0.2.7.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.7.tar.gz
Algorithm Hash digest
SHA256 45933e34afbb61e5b9bec5e61254df0375fb795aad0c20144378c0e2b62f59d9
MD5 0f217fb8684d6847950a8bb33a495277
BLAKE2b-256 adcf02a7f099ac5bbe681fdde9053db376cd8dee5ac945443c313f5005dcbbc1

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.7-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.7-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 1622b8ffa931c98e5d370e96a45d2188137de20ae05b0e1ede827cf9494be64e
MD5 e5f10fca55ad5894d30bc1f1c5b78691
BLAKE2b-256 e543ef282bd41aa476d7ed780f93ff80b0e21c4eea0030bd2d3ce5f2dea870f5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 6f2c41b31228dde99214c41cf8d0918e0aeae2680ed10e0e93e4403a5e3417d5
MD5 3f60af086d109082d2a43dee9758c8d8
BLAKE2b-256 365d822c8c16c21d0f1f1e2d0ae2e8f6fcb08d610d157bdf8bbb8116daa6ecb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c21711f7a31db21e49708e21f0c1146c7ac39f8b8cd9cf8113ce30c27758c6b1
MD5 185e5d9fb0f9eaf0be3fd745d7bdb6dc
BLAKE2b-256 2708e302028de3019a7a02b40cafa8b499303e997a6bc2ca91e0fb4669019da7

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d82289357bf732dfce42d422c21a9be33dce5d99ed11540404bbc35fa5024a31
MD5 11782420f2f3d41f2ac539dd25e660ed
BLAKE2b-256 a2380887e6e257d4275c27cedf62e928cc0bebf2ad88f02cd3702cd635c88329

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0ccf223c884fb1c051249046f588406ebb7a7a5dc128bcbb8d4dfc9194ab84b7
MD5 a34a012674f8ce544b2b48bca0af1557
BLAKE2b-256 b5defe223068645c8bed3f84516bdf2ad9252743f34d9e792d594f91ce817db6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.7-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.7-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b0fb4fa548b7d439f54e3d75e4b2ba1fc52420b5d65adcfd202851beff7c2975
MD5 4a51125be23450bddc76a4028e43b6b3
BLAKE2b-256 68603f5df3e1c464a84479f03a8eaec711126503338aec9186027b6caa3b2219

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 496b92b2d6197706856d5ff96c5e0fdb732aac34375f9007f61af17a4aae6f8c
MD5 07079b256fbc63c550e2e24adc877850
BLAKE2b-256 9219f66d7224d1a801759f18ba0366ab8ae6f8bdc8741248f939dc07607ff505

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 443e7db99e5a5c89c33df86a4c79ff3b382badbcb339e8ccad556ed16436bc78
MD5 2f11351866dfedfdff9965ec4f78b0df
BLAKE2b-256 9e66e9bdda9273b6962a25aead33eacf01d29e8e0770db0392c2c366498f13fc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 95f6a537eb2424dc28289c7c91acc493c855f500fe35ebf8abd956206a48cd70
MD5 e90abdf075b76d831f23c1a619dbe2ac
BLAKE2b-256 df4951165ff292146451297fdfdda724b400871cc282cc612c0e088a24020cec

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5095102ac35566787dc5ccb024b29e7c49aa133d0b9d1d570db761164619c8a3
MD5 f9b96e077afdf0f6740ca3a63fcdc136
BLAKE2b-256 1cc464d4602c5552fcabbdbc91f818e1f67127662e5703d6a043e8c849bc6ab6

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.7-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.7-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 fbc4b67d445312b9f89881999c3da547e58e4034062bc8515ab2a457a30e5bb4
MD5 8d5b14c6837b15e7b1b6dec491d94d6c
BLAKE2b-256 90029f928b91840074ef4496053a86cb53d31cc90829f9715c7c401ad0008a0c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 f750ea7ecbc288e776a0899ffa0fb599c796214d434a249888cf3d7324fe64f0
MD5 1bcfab90ccf674fb36aaa14b9c120acc
BLAKE2b-256 cca90ac5f42fd453a153514048b9ee207077fde51c6edc4ce3f3469d2733b7b6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 02dbc0ba82c43eb4a9e56f38e86a5b48e06afe54639e4b0721fe25d2d881cd4b
MD5 48840645db1686208c080dbd024f1b88
BLAKE2b-256 90c62d228759b3d11987e3f1c53a96a853e91132b5019779463f8935987b5c16

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 efff474204db14d5b919a7c659f519deec1ec5118847174e60c6cd8fd14ec040
MD5 d7a52fc5c104c6526cb0e448f5c754e0
BLAKE2b-256 f127a4a9683bd06b96ec85a0ccf1476386abd797a52c3fdb8e30a005194c17f8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.7-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 5b763f44c310f0008bf1ed43ca7018d2edff546c0e7398e9acab16039a933949
MD5 af7dbd713677e6de7cc1ba5717855019
BLAKE2b-256 38e566c6d9d14ff6a4dd47bd39414d199dc77efc2a43911a2d54a1d2b1899cea

See more details on using hashes here.

Provenance

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

This release

0.2.7 This release

16 files

0.2.6

16 files

0.2.5

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