Skip to main content

Calculates the osmotic second virial coefficient (B2), and dissociation constant (Kd), for two rigid (macro)molecules, e.g. globular proteins. Done by explicit summation of the partition function in six dimensions (angular space and rigid-body separation). Calvados 3 parameters for use with coarsed grained amino acids are provided, but any pair-wise additivie potential can be used.

Project description

crates.io

Open In Colab


Duello
Virial Coefficient and Dissociation Constant Estimation for Rigid Macromolecules


Introduction

Duello is a tool to calculate the potential of mean force (PMF) between two ridig bodies, performing a statistical mechanical average over inter-molecular orientations using subdivided icosahedrons. For each mass center separation, R, the static contribution to the partition function, $\mathcal{Z}(R) = \sum_{\mathbf{\Omega}} e^{-V(R,\mathbf{\Omega})/k_BT}$, is explicitly evaluated to obtain the potential of mean force, $w(R) = -k_BT \ln \mathcal{Z}(R)$ and the thermally averaged energy,

$$ U(R) = \frac{\sum V(R,\mathbf{\Omega}) e^{-V(R,\mathbf{\Omega})/k_BT}} {\mathcal{Z}(R)} $$

where $V(R,\mathbf{\Omega})$ is the total inter-body interaction energy and $\mathbf{\Omega}$ represents a 5D angular space (e.g. two spherical coordinates for each body plus a dihedral angle around the connection line).

The osmotic second virial coefficient, which has dimensions of volume, reports on exactly two-body interactions:

$$ \begin{align} B_2 & = -\frac{1}{16\pi^2} \int_{\mathbf{\Omega}} \int_0^{\infty} \left ( e^{-V(R,\mathbf{\Omega})/k_BT} - 1 \right ) R^2 dR d\mathbf{\Omega}\ & = -2\pi \int_0^{\infty} \left ( e^{-w(R)/k_BT} -1 \right )R^2 dR \ & = B_2^{hs} -2\pi \int_{\sigma}^{\infty} \left ( e^{-w(R)/k_BT} -1 \right )R^2 dR\ \end{align} $$ where $B_2^{hs} = 2\pi\sigma^3/3$ is the hard-sphere contribution and $\sigma$ is a distance of closest approach where $w(R\lt \sigma)=\infty$ is assumed. For systems with net attractive interactions, the dissociation constant, $K_d$, can be estimated by,

$$ K_d^{-1} = 2 N_A\left (B_2^{hs} - B_2\right ) $$

crates.io

Installation

Using pip (linux x86)

pip install duello

Using Cargo (all platforms)

This requires prior installation of the Rust toolchain.

cargo install duello

Alternatively you may compile and run directly from the source code:

git clone https://github.com/mlund/duello
cd duello/
cargo run --release -- <args...>

Usage

The command-line tool duello does the 6D scanning and calculates the angularly averaged potential of mean force, A(R) which is used to derive the 2nd virial coefficient and twobody dissociation constant, $K_d$. The two input structures should be in .xyz format and all particle names must be defined in the topology file under atoms. The topology also defines the particular pair-potential to use. Note that currently, a coulomb potential is automatically added and should hence not be specified in the topology. The program is written in Rust and attempts to use all available CPU cores.

duello scan \
    --icotable \
    --mol1 cppm-p18.xyz \
    --mol2 cppm-p18.xyz \
    --rmin 37 --rmax 50 --dr 0.5 \
    --top topology.yaml \
    --resolution 0.8 \
    --cutoff 1000 \
    --molarity 0.05 \
    --temperature 298.15

Examples

Ready run scripts examples are provided in the scripts/ directory:

Command Description
scripts/cppm.sh Spherical, multipolar particles using the CPPM model
scripts/calvados3.sh Two coarse grained lysozyme molecules w. Calvados3 interactions

Interaction models

Each macromolecule is represented by a rigid constellation of beads with properties defined under atoms in the topology file. The inter-molecular energy, $V(R,\Omega)$ is calculated by summing all pairwise interactions between beads using a customizable pair potential, $u_{ij}$. If needed, different pair-potentials can be explicitly defined for specific atom pairs.

The provided examples illustrate the following schemes:

  • Screened Coulomb + AshbaughHatch, for the Calvados model.
  • Screened Coulomb + WeeksChandlerAndersen for the CPPM model.

Many more pair-potentials are available through the interatomic library, e.g. LennardJones, HardSphere etc.

Warning: The electrostatic term, Coulomb is always automatically added and should therefore not be specified in the topology.

Development

This is for development purposes only.

Create pip package using Maturin

pip install ziglang pipx
pipx install maturin # on ubuntu; then restart shell
maturin publish --target=x86_64-unknown-linux-gnu --zig

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

duello-0.1.4.tar.gz (1.1 MB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

duello-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (3.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

duello-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (3.1 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

duello-0.1.4-py3-none-macosx_11_0_arm64.whl (1.8 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

duello-0.1.4-py3-none-macosx_10_12_x86_64.whl (1.9 MB view details)

Uploaded Python 3macOS 10.12+ x86-64

File details

Details for the file duello-0.1.4.tar.gz.

File metadata

  • Download URL: duello-0.1.4.tar.gz
  • Upload date:
  • Size: 1.1 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: maturin/1.7.6

File hashes

Hashes for duello-0.1.4.tar.gz
Algorithm Hash digest
SHA256 306ff909ed0ce99bcf67081217219fc481e3e9b8b3e89e5c157b618fb3b37062
MD5 25b5488ab91d93d996e155bc43c70e9f
BLAKE2b-256 70638a129c57c5b839fed7479937bb2fd41591a21ecb3a4e3e0fb6b732b961d5

See more details on using hashes here.

File details

Details for the file duello-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for duello-0.1.4-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 1aaec2213e5deeabe1492930ec51994b1ddc987014108952ceb3a3945cd32113
MD5 fe69d633de318d416c31bdd708d1d9c4
BLAKE2b-256 5338937dcc5c14101f4a41de6d92833d30432621a672f2889e2230510dca75e5

See more details on using hashes here.

File details

Details for the file duello-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for duello-0.1.4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 b8a8dda522a4730a5c17dcbed8f817449a46eef7f25fad5a78c504fbb7d075bb
MD5 799887ef18a4d64158ef7fae1e40a4d9
BLAKE2b-256 bfd07a855a912e4d84ffb2344d1009f85c7cc6fc485f4d12bff90db841b8211a

See more details on using hashes here.

File details

Details for the file duello-0.1.4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for duello-0.1.4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 d0d0d737396e611b3117f2b1a709716bb35ad36ab6c94df0b30e2e02ea1fb0c9
MD5 e77a4f0bddea1fdc93f7a9a8afc2f6ac
BLAKE2b-256 9e732d79825e753e4932c1c9c80ed0ee5ec2aa4fa57cc0f973008237c7b56836

See more details on using hashes here.

File details

Details for the file duello-0.1.4-py3-none-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for duello-0.1.4-py3-none-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 44155a8a0318f5cc2000f5b5aa3dd6fbde595e154a15538c3cb515b4802bc321
MD5 21949efc4574a7968fb801599c1d4e0e
BLAKE2b-256 3182142a1081174c549e16a0c9369777862e8f23c2e62dffff44e2429bac3056

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page