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.0.tar.gz (7.0 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.0-cp312-cp312-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.12Windows x86-64

xpongecpp-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.1 MB view details)

Uploaded CPython 3.12manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.0-cp312-cp312-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.12macOS 15.0+ x86-64

xpongecpp-0.2.0-cp312-cp312-macosx_15_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.12macOS 15.0+ ARM64

xpongecpp-0.2.0-cp311-cp311-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.11Windows x86-64

xpongecpp-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.1 MB view details)

Uploaded CPython 3.11manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.0-cp311-cp311-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.11macOS 15.0+ x86-64

xpongecpp-0.2.0-cp311-cp311-macosx_15_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.11macOS 15.0+ ARM64

xpongecpp-0.2.0-cp310-cp310-win_amd64.whl (4.5 MB view details)

Uploaded CPython 3.10Windows x86-64

xpongecpp-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ x86-64manylinux: glibc 2.28+ x86-64

xpongecpp-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl (4.1 MB view details)

Uploaded CPython 3.10manylinux: glibc 2.27+ ARM64manylinux: glibc 2.28+ ARM64

xpongecpp-0.2.0-cp310-cp310-macosx_15_0_x86_64.whl (4.3 MB view details)

Uploaded CPython 3.10macOS 15.0+ x86-64

xpongecpp-0.2.0-cp310-cp310-macosx_15_0_arm64.whl (4.0 MB view details)

Uploaded CPython 3.10macOS 15.0+ ARM64

File details

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

File metadata

  • Download URL: xpongecpp-0.2.0.tar.gz
  • Upload date:
  • Size: 7.0 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.0.tar.gz
Algorithm Hash digest
SHA256 65faeadc56691bb0d1faf919247e21489c97a275059d71dee4355ca089e54e8d
MD5 9097ed8149c6b17de9e5e552529ca567
BLAKE2b-256 8b29c7ce8e59695cdcdcf78043cc7d5d4acf4e21f277f01a38891ca74918a9da

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.0-cp312-cp312-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.12, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.0-cp312-cp312-win_amd64.whl
Algorithm Hash digest
SHA256 7bdafd6f7d82d67a771079d9b0dc298be12df7bf99b1a1fc06221e60b75815ab
MD5 713f89892fe9b675bcb52e2c43aaa7a2
BLAKE2b-256 2dec00e1baa660a85a94faad014f5a3f8f05f5a1a1a52859743253b1a9f64155

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 3990434462eff21c741d74f2f58f985c73bfc919ac0948575862d1cacf406873
MD5 956cdd36deceed6c274fd95cd68434db
BLAKE2b-256 1ad179f2f0ff731ebbbcc5a1b8042d2f1e6a928c2dc582cfceb1884ff59dffc9

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 9ee8216dd3e9a81d5dd89971452dc9544602301896b0f9d4b9e6d611604461fc
MD5 e430a03dbfc80ef713613e48970e891d
BLAKE2b-256 9e07860aa9703cbc3a97810885f269433c91af9ddb00ed73076aaaf1a88b8f68

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp312-cp312-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 ec1015cc7bbce57e3cf425657ef1962bb67582cba3797cff19ef847d6f99e97c
MD5 4c9c8a871d65a63e76362f8efa287f05
BLAKE2b-256 5eb85db7d7c7564997dbca8f30534fded6e4b0fc746ca986f45927b4fadefffa

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp312-cp312-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4002d677dab8bae620d305ee73022aade16f94e469aefbcdf39d2670d45509f7
MD5 d18ae7a3a348eb20c3b0f798d0bb0cea
BLAKE2b-256 59e498cf91648d7ab5c53a7fc11897a0e57272e6f9e54cc7442ea07683ebeae0

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.0-cp311-cp311-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.11, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.0-cp311-cp311-win_amd64.whl
Algorithm Hash digest
SHA256 12d55d326ae1f9cdaa724de935da6330b81915d1f809f72e5c08a9709dbcf6d6
MD5 9557be2f4211f9490715a0be6098fa05
BLAKE2b-256 a3d10afead28621379d288f334b776cbf6d3e8f27df3427ac07ac83f7d3be1e6

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 77f270770236691c2a3e1511a0c5628a9ae3f283ef156918e1021e81e85775de
MD5 88627ef35cdbd1a1998831c5fc6d60a3
BLAKE2b-256 432dea8dba57948e719f7e7186c4617b79290963b2cf627b4b849782ab7036ff

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 745b0e5c726e885d468d17da7ce0e56cf85ca66a620fa4842b02f6e1683112af
MD5 19402064be7f78a9c95f66811db053ec
BLAKE2b-256 69548d1371a5bd9626b6dc53c1c03a84a2966f96a5e706e0a3b7d124b8b9a88b

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp311-cp311-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 3af8210f286de16a7d6e66d676ac110ae57bc7af5ee03f4d2723dd0e92fce083
MD5 2273a5375f2480917b143079ce293d2b
BLAKE2b-256 411a27163786bf2ae64ba73dcccae831ab529662a0c1342d4ec8cf4d341d3031

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp311-cp311-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 6beb656f243b2931f28bb57c91911a38959643d1a1c800cf1274cacea8b4ccd1
MD5 d987286b8044b7fcb2f35c9db1b2d21b
BLAKE2b-256 e67afe1edb92717ebe370efbcd98385fb1068067452bc3aff7f36f894748f6de

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: xpongecpp-0.2.0-cp310-cp310-win_amd64.whl
  • Upload date:
  • Size: 4.5 MB
  • Tags: CPython 3.10, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for xpongecpp-0.2.0-cp310-cp310-win_amd64.whl
Algorithm Hash digest
SHA256 1716745a3963e7a52b25a18bac6ff3965f87a7c56c822faddc39874eba201bdf
MD5 938af512e374353c87367ada1774451d
BLAKE2b-256 3943e73d3d254dce6b454567b169ffdfe1ef445df41296b25e8e8247a3a6b67f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Algorithm Hash digest
SHA256 5c289d92d65fe870f7dfc60b99373e7e9f638c9d7845c40540d8b5927338d95a
MD5 0b522d8bf13981c386e0fa66311ace52
BLAKE2b-256 fc684286e53fb32e5a9ca5283761dea9302f2a6f0489fad9bbb8df789c03e04c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Algorithm Hash digest
SHA256 39a50d3c6af8520b2721fd2efc3f4f3abdaaa80affd65368afe2e2833531e0d8
MD5 69ed734795485093ffee99e6c640c2d7
BLAKE2b-256 9f25b1600cd8100df3bdf30764ea7ae5e17d3aeec022dd68e543cd6905bf15ed

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp310-cp310-macosx_15_0_x86_64.whl
Algorithm Hash digest
SHA256 f2471d0cd1b33db486a1efad8ac04ddc656ac16ed650f850c65f74f06609129d
MD5 7a670cd2f3a5982d2430bd8992393877
BLAKE2b-256 a34d9237e6401fd98e98766ecc49afb7aef6db12ac1ef346028ebaf935d9704e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for xpongecpp-0.2.0-cp310-cp310-macosx_15_0_arm64.whl
Algorithm Hash digest
SHA256 4080ea159d3951f835cca58419470fd8dc2a2725e4954b969ed13ea55e81dc3d
MD5 28b7831b1936195d6c6e4d9a8845e66c
BLAKE2b-256 93ab1df3ec04fb80e00f8e506bb4c2119cc84421ebc0fdbf1ca69606ae2cde0b

See more details on using hashes here.

Provenance

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

0.2.5

16 files

0.2.4

16 files

0.2.1

16 files

This release

0.2.0 This release

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