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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 15.0+ x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 15.0+ x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 15.0+ x86-64

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

File metadata

  • Download URL: xpongecpp-0.2.8.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.8.tar.gz
Algorithm Hash digest
SHA256 519a9f464beaf4d36e932079914f3732caa797c157fa5a9c8f2965d058c09aab
MD5 93bc1a9a4ca85f657b4229f82c71eb8d
BLAKE2b-256 c0462356c02eb0e0a35df833f5b6a0970a7d212a48cb0e7d5b8440f927fc6a6d

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.8-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.8-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 5de0e499ab810e0d1f4fb6f3b85769f6f384453c24c53d182b8eff6054470739
MD5 c0404b38aa6c3fb3f8c1a1f4d67679ba
BLAKE2b-256 ff56189abd5bc559b8f2319a33302200470365b45cdfdf5e430fa0d2e05ad242

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 ac145ce834fcde56b497d6f0d6e23fb0b0dd0b8af1f1b2029777bd98baa08a3d
MD5 ad5b29ce320ed939e9f4f78a15213ff4
BLAKE2b-256 6830d50682428b6c659765417cef919bf73ba9c593ddfb83aab29fc3ab5dddd2

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 fd105f97fa914eafb3f1dd37012b4187904f86cee39f0a960f19dc1808000139
MD5 70564a02fd44262f89d1d80161de12f5
BLAKE2b-256 33fc7011f7b34d49d042aee6e38789866701c99a34e02b251d8dde344afbe425

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 a37a437c16d3907089a2d4439f53be4ef48ef8d15f9a40a312d75d8d9e142f5a
MD5 1130386a34aa326fa70ad0ef87a02fb0
BLAKE2b-256 08b165b1fad04aaaf3d75359e6ddb4abfb717d3e45c5285a2fe99b15eaa9ee57

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6ed5e68d9a1724742954643ebef630aed1199e7eb877abc7b311e7ef90ccc9b8
MD5 e2a9e69baac1362c15d7dc22e3dad917
BLAKE2b-256 c88905b56516d42e8778f89757eb1f32359948baeb449e011e4be2c5803fa355

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.8-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.8-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 f32c0c86698ddd8fd467d4a1895f6215ae6e37f8fb6e562fb464ee41cde0ec4f
MD5 55c6e7a9c2a6fdfe000724047c9b0e85
BLAKE2b-256 ebe9bde5bdfc47fcf5ed6121be27da259f35b735441cb983fab3102a2221164a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c8749c96bebfb7a804d5581dfd7a3d7513f12f23f9528fe134f981471f018e40
MD5 fdcd9f97037784a1a25ed7a0e3d467d4
BLAKE2b-256 d2a46dad3dbdc285554f005c42d005d9d337a79913d0c20ec014f499aeb2116a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 edcf45ed1f8dd929816d10cc46bbc4d550cc1fa7a4f902a420892d08f97cdac4
MD5 3977b29a45d9323d87a77dfd7915055a
BLAKE2b-256 0fa53cadb7e855336b6b72cf493b781f0c3b31127458cac5f186885c0937f034

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f8ddc319d06101db3c60b1d6f13765c14ea76a1b74a9c2a85e8ae815b99c4c35
MD5 259e36d1923b54e3d9dbad2e5740da47
BLAKE2b-256 efafe63ac98989c29041f2381eae06bd349e13cbb674138f8e8bdc3a7fbdc784

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4efc657a4dfceb3d87a3b22bb022d3b9977b0ebecfd7799c7e75f1673344e4e9
MD5 1d706c6ef07b429b58bb3e1973680024
BLAKE2b-256 cf4d5adb0ff0c3cb858f2fc65507c18dc9560ae3ed9757d77a92746f5a978327

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.8-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.8-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 2fd68054f36200d4f49a9780ea2fd8aabb33d86d85c5cd5782490386116fffee
MD5 a70187c9d6e531f531f8a0494531e302
BLAKE2b-256 bc6e35ff194d58359f5601ba0c2e80894f6562a3614d87bac48d8ad7c0e066b4

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c71a8732aa46b2d4f5bd88bcbe26ed0a8fce05cd836931f5b6b12676e2669652
MD5 3a25263499154733ccb57441ba2441e8
BLAKE2b-256 8e3337ea81159c34ac1c79958bea38248fc592e433478966de9783e8ec3f1221

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 b7e6aabdb9bd37519b1fec28683e42ec95b7492f197fc6f0da80ff450d2b05c2
MD5 29d59965968ca540983d31acb450ab85
BLAKE2b-256 c083036cfb50c893f15fc73c467140bbd2e975ea8e092f0918a79d4dc60ecc6a

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 35e44e29fbd00664977ab7d169972358026eaf1e6998b8832b29cc4f970fbb1c
MD5 8716c724673c0054d7aa6073c3f0f472
BLAKE2b-256 e1dd767c88285fae8e1dc5fdd51f908bf24abcfaf09678841de838889c707838

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.8-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6493c1832465c61801096054392f00d5bc5887b92ea1ffb0ba6039cb7f30d17b
MD5 644b7d1bcfe9e3d9ea9a89b1648742dd
BLAKE2b-256 d6f610a2d3a220bce13546af02bafaea13c6c8a56498ad6bc73311374944b4a7

See more details on using hashes here.

Provenance

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

This release

0.2.8 This release

16 files

0.2.7

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