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

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.9-cp312-cp312-macosx_15_0_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

xpongecpp-0.2.9-cp312-cp312-macosx_15_0_arm64.whl (10.5 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

xpongecpp-0.2.9-cp311-cp311-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.9-cp311-cp311-macosx_15_0_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

xpongecpp-0.2.9-cp311-cp311-macosx_15_0_arm64.whl (10.5 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

xpongecpp-0.2.9-cp310-cp310-win_amd64.whl (11.6 MB view details)

Uploaded CPython 3.10Windows x86-64

xpongecpp-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl (10.8 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl (11.2 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.9-cp310-cp310-macosx_15_0_x86_64.whl (10.1 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

xpongecpp-0.2.9-cp310-cp310-macosx_15_0_arm64.whl (10.5 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: xpongecpp-0.2.9.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.9.tar.gz
Algorithm Hash digest
SHA256 59437a17962126a5a3348012db4e5d8b58467cb2f06bb3e3782969bf2a2e874e
MD5 0eec8a0d77f7ae1be438a1dc9380ce42
BLAKE2b-256 724047a419b43a4453e6360010f581f317f8935e198316211f6b90903e01ee73

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.9-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 11.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.9-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 8fc32c46b19c8e078ebdabc258576fb6f1006507eed1ed146e58891e1ce71f4c
MD5 82556b14bde045b875392071ae115dcd
BLAKE2b-256 239de37a2202bfd762603a561674219c95b94d1773d5ba19723a0d335cd29374

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp312-cp312-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b56f755112381a6620c09db399bcfdd7b70af941c9bc71b4bd2aa5e31165ad76
MD5 d33f4aeec727d3ac46980442fcb8921a
BLAKE2b-256 dedaf648e0445a409541995115f0ccd21121d7f14a516ed92de047ae4321e136

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp312-cp312-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 7ee94b47bacca402151563bff99a24e11c5d30e7e9327d7c68ef98e67327078e
MD5 32c0510afca2c1c17aa9f2731f966fc5
BLAKE2b-256 7b6acff93aa898c5007b6615db8503b7a7bc2c4b2d8eca0e0e5e0991f9292adf

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 609e9eb997bfb624ec652ca3894e0f2723a7d431b978c1dc31581209b06f9ca3
MD5 9bc3af9d1cae41fb7497ca7e420c2e42
BLAKE2b-256 40cfe195fd4e70d049698f121d440c0eb041ac21012f51bb0f22dad4c4ca92a8

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 08c21c3beea94bb44bdf1896559b8c0306709267bcc4df7b718ff26741ff4ac6
MD5 0404534e7935348a5fd0e3ff6a47c458
BLAKE2b-256 1d86ade883637f40f2f2ff24ee420d1abbcc3a180794b8740e64abd460c9923e

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.9-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 11.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.9-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 30ffc5db118fd4dd4958cc37eaecb86ff4f9d63898d74a803ea06b39ea4e1f61
MD5 6b4717dcd030c458f6fa5c4e4445ebec
BLAKE2b-256 596361e651d46c78fe4f0e9554f8e7900a4fdde1cafd32bcfc662ad3f153a617

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp311-cp311-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 dc86163f90a9f1ef69005c82699cc88f534e40871473bf149879a5247cdf04a5
MD5 f5ed219ebc78754057322b80eead3548
BLAKE2b-256 172818e5dc1ddb7613978945d1acf632f13712ee75c77471dada4e2ed6f569eb

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp311-cp311-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 df7be477ff743dfa69c8323b1fef51c443023694c87e3e60a81074cdb0d9cdcd
MD5 452b613f0eea262416b350890fa9eee5
BLAKE2b-256 c6d00de6749137221dcf3e59c4ebf475e61d4cb522a18f6ceea05ada70dce4da

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b47155fea61863ff85fe490f6c357d6f52e7c9d1d391611374dad5f27b533642
MD5 9d9b11b2f1bdeea862db26c8b1bef4b8
BLAKE2b-256 2e065911db200b53dea602f364eaffdc109fe99412a4434adf0523323a4028e9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 03b114779c58ca106d2cd82059c9d07195d5d969d775feab3d73349aa70eccdd
MD5 13f18ddc2992c88a6a93f1bea8a7ebee
BLAKE2b-256 4b28af34ead3654837b74886d8a8f0cb9d1b94b1130dcf208f37f91ae7de2d2c

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.9-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 11.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.9-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 997220dbdd62808838ee9e1ea144a0227d91f783a76b8c7e27f9a672cf500fb3
MD5 87e6fb74f16bd3938f10ea947a821758
BLAKE2b-256 fcd594936b9140320fec086877f4abc3e42dec27c08276ddef076b867c5c9578

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp310-cp310-manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 166f2581bc9ec59f1e60f115a2526b4f97d8776b3a07374afd7fe030662206f0
MD5 c37b9a346d30c74b60f6504a202d2e7c
BLAKE2b-256 25cde704e1a002fa24fc112afc348a59325798e0e2bc5ea2d83638e9f6335c5c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp310-cp310-manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c362a4b72d077e71dacae4f683c61eda2342dc7a4096b6503e7e5ea77ecf8836
MD5 1da6426a03aff67ba4700508ef6a9086
BLAKE2b-256 0af02f9ee4e2574fa2ad4a208550521484e075a9a5baad9efd69209db79d9efc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 cc0a9f8652248d2dabcd8efec993234a063774891e8ba5bdbec6db77f61af3a3
MD5 98419de370a0bf4f87cabfa1cb199fe9
BLAKE2b-256 c5ddaf7b4bdd4c6dcbbac3d135e120bd80d94196658b5705396838362b641da3

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.9-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 ebfd29a11963e1833fdf72c448999adc91542c186c2b06f1ab383a328cd37156
MD5 60dd40b046ad7cec81e998dff917d27a
BLAKE2b-256 64279044d147bee18b7de43a795fab7c1ee66ca8e92b82e0e7686feb62ef0300

See more details on using hashes here.

Provenance

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

This release

0.2.9 This release

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

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