duello 0.1.4__py3-none-macosx_11_0_arm64.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
Binary file
|
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
Metadata-Version: 2.4
|
|
2
|
+
Name: duello
|
|
3
|
+
Version: 0.1.4
|
|
4
|
+
Summary: 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.
|
|
5
|
+
Keywords: pairwise_interaction,bioinformatics,virial_coefficient,dissociation_constant
|
|
6
|
+
Author: Mikael Lund <lyssky@icloud.com>
|
|
7
|
+
Author-email: Mikael Lund <lyssky@icloud.com>
|
|
8
|
+
License: Apache-2.0
|
|
9
|
+
Description-Content-Type: text/markdown; charset=UTF-8; variant=GFM
|
|
10
|
+
Project-URL: Source Code, https://github.com/mlund/duello
|
|
11
|
+
|
|
12
|
+
<p align="center">
|
|
13
|
+
<img src="assets/duello-logo.png" alt="crates.io", height="300">
|
|
14
|
+
</p>
|
|
15
|
+
<p align="center">
|
|
16
|
+
<a href="https://colab.research.google.com/github/mlund/duello/blob/master/scripts/colab.ipynb">
|
|
17
|
+
<img src="https://colab.research.google.com/assets/colab-badge.svg" alt="Open In Colab">
|
|
18
|
+
</a>
|
|
19
|
+
<a href="https://opensource.org/licenses/Apache-2.0">
|
|
20
|
+
<img src="https://img.shields.io/badge/License-Apache%202.0-blue.svg">
|
|
21
|
+
</a>
|
|
22
|
+
<a href="https://github.com/mlund/duello/actions/workflows/rust.yml">
|
|
23
|
+
<img src="https://github.com/mlund/duello/actions/workflows/rust.yml/badge.svg">
|
|
24
|
+
</a>
|
|
25
|
+
</p>
|
|
26
|
+
|
|
27
|
+
-----
|
|
28
|
+
|
|
29
|
+
<p align = "center">
|
|
30
|
+
<b>Duello</b></br>
|
|
31
|
+
<i>Virial Coefficient and Dissociation Constant Estimation for Rigid Macromolecules</i>
|
|
32
|
+
</p>
|
|
33
|
+
|
|
34
|
+
-----
|
|
35
|
+
|
|
36
|
+
# Introduction
|
|
37
|
+
|
|
38
|
+
Duello is a tool to calculate the potential of mean force (PMF) between two ridig bodies, performing a
|
|
39
|
+
statistical mechanical average over inter-molecular orientations using subdivided icosahedrons.
|
|
40
|
+
For each mass center separation, _R_, the static contribution to the partition function,
|
|
41
|
+
$\mathcal{Z}(R) = \sum_{\mathbf{\Omega}} e^{-V(R,\mathbf{\Omega})/k_BT}$, is explicitly
|
|
42
|
+
evaluated to obtain the potential of mean force,
|
|
43
|
+
$w(R) = -k_BT \ln \mathcal{Z}(R)$
|
|
44
|
+
and the thermally averaged energy,
|
|
45
|
+
|
|
46
|
+
$$
|
|
47
|
+
U(R) = \frac{\sum V(R,\mathbf{\Omega}) e^{-V(R,\mathbf{\Omega})/k_BT}} {\mathcal{Z}(R)}
|
|
48
|
+
$$
|
|
49
|
+
|
|
50
|
+
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).
|
|
51
|
+
|
|
52
|
+
The osmotic second virial coefficient, which has dimensions of _volume_, reports on exactly two-body interactions:
|
|
53
|
+
|
|
54
|
+
$$
|
|
55
|
+
\begin{align}
|
|
56
|
+
B_2 & = -\frac{1}{16\pi^2} \int_{\mathbf{\Omega}} \int_0^{\infty}
|
|
57
|
+
\left (
|
|
58
|
+
e^{-V(R,\mathbf{\Omega})/k_BT} - 1
|
|
59
|
+
\right )
|
|
60
|
+
R^2 dR d\mathbf{\Omega}\\
|
|
61
|
+
& = -2\pi \int_0^{\infty} \left ( e^{-w(R)/k_BT} -1 \right )R^2 dR \\
|
|
62
|
+
& = B_2^{hs} -2\pi \int_{\sigma}^{\infty} \left ( e^{-w(R)/k_BT} -1 \right )R^2 dR\\
|
|
63
|
+
\end{align}
|
|
64
|
+
$$
|
|
65
|
+
where $B_2^{hs} = 2\pi\sigma^3/3$ is the hard-sphere contribution and $\sigma$ is a distance
|
|
66
|
+
of closest approach where $w(R\lt \sigma)=\infty$ is assumed.
|
|
67
|
+
For systems with net attractive interactions, the dissociation constant, $K_d$, can be estimated by,
|
|
68
|
+
|
|
69
|
+
$$
|
|
70
|
+
K_d^{-1} = 2 N_A\left (B_2^{hs} - B_2\right )
|
|
71
|
+
$$
|
|
72
|
+
|
|
73
|
+
<p align="center">
|
|
74
|
+
<img src="assets/illustration.png" alt="crates.io", height="200">
|
|
75
|
+
</p>
|
|
76
|
+
|
|
77
|
+
# Installation
|
|
78
|
+
|
|
79
|
+
## Using pip (linux x86)
|
|
80
|
+
|
|
81
|
+
```console
|
|
82
|
+
pip install duello
|
|
83
|
+
```
|
|
84
|
+
|
|
85
|
+
## Using Cargo (all platforms)
|
|
86
|
+
|
|
87
|
+
This requires prior installation of the [Rust](https://www.rust-lang.org/learn/get-started) toolchain.
|
|
88
|
+
|
|
89
|
+
```sh
|
|
90
|
+
cargo install duello
|
|
91
|
+
```
|
|
92
|
+
|
|
93
|
+
Alternatively you may compile and run directly from the source code:
|
|
94
|
+
|
|
95
|
+
```sh
|
|
96
|
+
git clone https://github.com/mlund/duello
|
|
97
|
+
cd duello/
|
|
98
|
+
cargo run --release -- <args...>
|
|
99
|
+
```
|
|
100
|
+
|
|
101
|
+
# Usage
|
|
102
|
+
|
|
103
|
+
The command-line tool `duello` does the 6D scanning and calculates
|
|
104
|
+
the angularly averaged potential of mean force, _A(R)_ which
|
|
105
|
+
is used to derive the 2nd virial coefficient and twobody dissociation constant, $K_d$.
|
|
106
|
+
The two input structures should be in `.xyz` format and all particle names must
|
|
107
|
+
be defined in the topology file under `atoms`.
|
|
108
|
+
The topology also defines the particular pair-potential to use.
|
|
109
|
+
Note that currently, a coulomb potential is automatically added and should
|
|
110
|
+
hence _not_ be specified in the topology.
|
|
111
|
+
The program is written in Rust and attempts to use all available CPU cores.
|
|
112
|
+
|
|
113
|
+
```sh
|
|
114
|
+
duello scan \
|
|
115
|
+
--icotable \
|
|
116
|
+
--mol1 cppm-p18.xyz \
|
|
117
|
+
--mol2 cppm-p18.xyz \
|
|
118
|
+
--rmin 37 --rmax 50 --dr 0.5 \
|
|
119
|
+
--top topology.yaml \
|
|
120
|
+
--resolution 0.8 \
|
|
121
|
+
--cutoff 1000 \
|
|
122
|
+
--molarity 0.05 \
|
|
123
|
+
--temperature 298.15
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
## Examples
|
|
127
|
+
|
|
128
|
+
Ready run scripts examples are provided in the `scripts/` directory:
|
|
129
|
+
|
|
130
|
+
Command | Description
|
|
131
|
+
---------------------- | ------------------------------------------------------------
|
|
132
|
+
`scripts/cppm.sh` | Spherical, multipolar particles using the CPPM model
|
|
133
|
+
`scripts/calvados3.sh` | Two coarse grained lysozyme molecules w. Calvados3 interactions
|
|
134
|
+
|
|
135
|
+
## Interaction models
|
|
136
|
+
|
|
137
|
+
Each macromolecule is represented by a rigid constellation of beads with
|
|
138
|
+
properties defined under `atoms` in the topology file.
|
|
139
|
+
The inter-molecular energy, $V(R,\Omega)$ is calculated by summing all pairwise interactions
|
|
140
|
+
between beads using a customizable pair potential, $u_{ij}$.
|
|
141
|
+
If needed, different pair-potentials can be explicitly defined for
|
|
142
|
+
specific atom pairs.
|
|
143
|
+
|
|
144
|
+
The provided examples illustrate the following schemes:
|
|
145
|
+
|
|
146
|
+
- Screened `Coulomb` + `AshbaughHatch`, for the Calvados model.
|
|
147
|
+
- Screened `Coulomb` + `WeeksChandlerAndersen` for the CPPM model.
|
|
148
|
+
|
|
149
|
+
Many more pair-potentials are available through the
|
|
150
|
+
[`interatomic`](https://crates.io/crates/interatomic) library,
|
|
151
|
+
_e.g._ `LennardJones`, `HardSphere` etc.
|
|
152
|
+
|
|
153
|
+
__Warning:__ The electrostatic term, `Coulomb` is
|
|
154
|
+
always automatically added and should therefore _not_ be specified in the topology.
|
|
155
|
+
|
|
156
|
+
# Development
|
|
157
|
+
|
|
158
|
+
This is for development purposes only.
|
|
159
|
+
|
|
160
|
+
## Create `pip` package using Maturin
|
|
161
|
+
|
|
162
|
+
```sh
|
|
163
|
+
pip install ziglang pipx
|
|
164
|
+
pipx install maturin # on ubuntu; then restart shell
|
|
165
|
+
maturin publish --target=x86_64-unknown-linux-gnu --zig
|
|
166
|
+
```
|
|
167
|
+
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
duello-0.1.4.dist-info/METADATA,sha256=NFVOsi3zVL3pEf27ktAbKHuLQVfTf_RuImPWhMww0eU,5990
|
|
2
|
+
duello-0.1.4.dist-info/WHEEL,sha256=kZa2AJPQTDmndETGEqExjvAJdFgQXIAry5haCtjamfI,101
|
|
3
|
+
duello-0.1.4.data/scripts/duello,sha256=3ZcsEN5MwdAK0Z20s4N9k8hiBNi7VK2DlIGVklOJe1U,5137304
|
|
4
|
+
duello-0.1.4.dist-info/RECORD,,
|