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

Uploaded CPython 3.12Windows x86-64

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

Uploaded CPython 3.12macOS 15.0+ x86-64

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

Uploaded CPython 3.12macOS 15.0+ ARM64

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

Uploaded CPython 3.11Windows x86-64

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

Uploaded CPython 3.11macOS 15.0+ x86-64

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

Uploaded CPython 3.11macOS 15.0+ ARM64

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

Uploaded CPython 3.10Windows x86-64

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

Uploaded CPython 3.10macOS 15.0+ x86-64

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

File metadata

  • Download URL: xpongecpp-0.2.6.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.6.tar.gz
Algorithm Hash digest
SHA256 6e7b07b55ce386cced4665d36ac32939a05a8e52b745719d400e689a62ef7c21
MD5 ba76826b094b9850dcb00b92fc588953
BLAKE2b-256 a9ba63b12365a34b7cf4cc20747b8d0946b016bbe8e635e452a793c2954fcaf3

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.6-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.6-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 fd174a71fe1cabcf08ecb1350a25dfd250d2673b9b238180285808cd2cdb49c3
MD5 8d35712f93f391a4a67e5288d955b0d9
BLAKE2b-256 c19e6b8ad39008e9faa5f6602f03c28cfd4b4996333580284ef0c26d7384d250

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 b3bad2ed4b200999afacb0fb4abfcbb8af34a4b571d03c90b2f032993effa8ce
MD5 e505569adec12fd0118ad79a5375ce74
BLAKE2b-256 101d800797e882dd3a96ff1d93c76aba105fc04a4a46e50ce5d3604c410fc865

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 8e3bdc845747b9a62cdcdc1f7a8d466fd073d51dc62cd97f86b7a03f715d04ba
MD5 53a1294d1a79919e2f0fdabdac3322ec
BLAKE2b-256 71fe174031fad1cf4002f8f54bc0d9f6c8b893f64e94e76576e5bddaad9f107d

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 e0870be1e9e61381205ca6325416c76b7ca041e1645b7a391973ef97a45b6695
MD5 074cd52fccfe96865a8c9d5c2a616e52
BLAKE2b-256 bad8962656020c51bb244fed8fdeea5df0fc6dd271af8ede2fdc34622552cf11

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 8b4e523075b64b5c6b791c796ecc25df3c9872a81ab3f5b6bb6a1d29f14ad9b3
MD5 e4418ea0a9fbe62b1f7464259e43c3eb
BLAKE2b-256 50da0862df54054d36bc4f98d9befe57be50a609317294352b90cae2d9545379

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.6-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.6-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 b6a7ea001d710e0071dbb1b9d3c367642f33ff8aa2643748b6bf69499ca55883
MD5 5993262a96b866df5e638b476ac29f15
BLAKE2b-256 ecca6366dcc1c65d79fba0fae040e9cad2ef96f9a977b5afc6e73441a74b1dee

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 c5ebd947415832f7098c1a80766ac6562a2b209ba0fd3414eaf11312b4ac4f40
MD5 25b75193f9bd1df2a4282b3f709450ce
BLAKE2b-256 08645336c7431e7d967944b108c23d6c4faeb95de706d5356c1652b1751b4312

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 c6d9b1178529de0d087a0391491d460a50814a3633bfd427c6220b75eaabb890
MD5 9f1f3363bcd38bacff3e42629b177660
BLAKE2b-256 12a41acb5e05ce19aa3814990f1f9dd06860c4cc11c02ec3f054f22fc779141c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 d5a73a4049e9c53b2597b34cf967ac186fa41a17d9e6ef5b68cd6ec3fb012160
MD5 1500604b56d1802bfe1765b1427e4d6f
BLAKE2b-256 27ea99a314999199a7cb5e9589be5c9a94a9ed0c20e7dcc98a6d7a6098844640

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 0fa198aca5b835d3d38337c701517f5e8038df9a7fb70be70602ad0feb995ac0
MD5 9e7541ecfbc18c4728cb61513bd12597
BLAKE2b-256 6425e21a42e19eb4c653877f4bed26d75d36b18a9bf51f53fdf56422b2aca441

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.6-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.6-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 f157eda3553399ad7c84ee940b18d6cf332e0487c51c9bf2aa0044b2bd29d6e9
MD5 39385f3e108964d31b1842895cc492be
BLAKE2b-256 6d0eb4252dd01b0b91440615567413b21464616183ee836ae4e778048e762af0

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 7ae0c33172a72747e2b15e4a2747e3e7d063e1d5766b303abe6a109b4e1ce0f4
MD5 8ab4109b01b5cf17b8773724817a2591
BLAKE2b-256 55c8fc37639e537e4766ef054dec5fbdb405045dcefaa0aa52119a17c083fc55

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 d8459dbf92e5ae519a923bc06c4cfb65f8f358ecbb0464e671338c2b26cfcf45
MD5 0ff6778cab9e132f861ce5c84e26adce
BLAKE2b-256 f6045a4fc7f0232c9dcafc7e799655f391199f761e3cc5615fec7c67e44dad41

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 b9d53d31b160a494ad458f940c42bead5fcf6576f8d723dbba26045de4fe2e99
MD5 e5a2154eaa1e12f23ba743ba43328ba2
BLAKE2b-256 3c1845e7867d52471e998a05fe4c78ba1392d82bf8b07a02553b8c9b860c85c5

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.6-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 df851c88e5fdf8c424b1b6d0aca608fcb7f6fd075142d4d441d8fc9f628762b0
MD5 d18b18444aca95891a60da9428827f8f
BLAKE2b-256 11b3531df60c4973d978365bfb73f57dbccfd5006ffa5c5f0fa1358a9b0b5935

See more details on using hashes here.

Provenance

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

This release

0.2.6 This release

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