bindtools 0.3.2__tar.gz → 0.3.4__tar.gz
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.
- {bindtools-0.3.2 → bindtools-0.3.4}/PKG-INFO +11 -7
- {bindtools-0.3.2 → bindtools-0.3.4}/README.md +3 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/pyproject.toml +8 -7
- {bindtools-0.3.2 → bindtools-0.3.4}/pyproject.toml.orig +8 -8
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/models/binding_model.py +21 -3
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/binding.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/exceptions.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/io/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/io/export.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/mcmc/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/mcmc/helpers.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/mcmc/likelihood.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/mcmc/sampler.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/models/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/models/objective.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/models/simulation.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/observables/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/observables/transforms.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/observables/types.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/plotting/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/plotting/fit_plots.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/plotting/mcmc_plots.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/speciation/__init__.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/speciation/analytical.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/speciation/numerical.py +0 -0
- {bindtools-0.3.2 → bindtools-0.3.4}/src/bindtools/speciation/scipy_solver.py +0 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
Metadata-Version: 2.3
|
|
2
2
|
Name: bindtools
|
|
3
|
-
Version: 0.3.
|
|
3
|
+
Version: 0.3.4
|
|
4
4
|
Keywords: chemistry,analytical chemistry,binding constants,supramolecular
|
|
5
5
|
Author: Martin Peeks
|
|
6
6
|
Author-email: Martin Peeks <martinp23@googlemail.com>, m.peeks@unsw.edu.au
|
|
@@ -9,22 +9,23 @@ Classifier: Intended Audience :: Science/Research
|
|
|
9
9
|
Classifier: Programming Language :: Python :: 3.12
|
|
10
10
|
Classifier: Programming Language :: Python :: 3.13
|
|
11
11
|
Classifier: Programming Language :: Python :: 3.14
|
|
12
|
+
Classifier: Programming Language :: Python :: 3.15
|
|
12
13
|
Classifier: Topic :: Scientific/Engineering :: Chemistry
|
|
13
14
|
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
14
|
-
Requires-Dist: corner==2.
|
|
15
|
+
Requires-Dist: corner==2.3.0
|
|
15
16
|
Requires-Dist: emcee==3.1.6
|
|
16
17
|
Requires-Dist: h5py>=3.14.0
|
|
17
18
|
Requires-Dist: latex2mathml>=3.81.0
|
|
18
19
|
Requires-Dist: lmfit==1.3.4
|
|
19
|
-
Requires-Dist: matplotlib==3.11.
|
|
20
|
-
Requires-Dist: numba>=0.
|
|
20
|
+
Requires-Dist: matplotlib==3.11.2
|
|
21
|
+
Requires-Dist: numba>=0.68
|
|
21
22
|
Requires-Dist: numpy>=2.3.4
|
|
22
23
|
Requires-Dist: openpyxl>=3.1.5
|
|
23
24
|
Requires-Dist: pandas>=2.3.3
|
|
24
|
-
Requires-Dist: scipy==1.18.
|
|
25
|
-
Requires-Dist: tqdm==4.
|
|
25
|
+
Requires-Dist: scipy==1.18.1
|
|
26
|
+
Requires-Dist: tqdm==4.70.1
|
|
26
27
|
Requires-Dist: uncertainties==3.2.3
|
|
27
|
-
Requires-Python: >=3.12
|
|
28
|
+
Requires-Python: >=3.12, <3.16
|
|
28
29
|
Project-URL: Homepage, https://github.com/martinp23/bindtools
|
|
29
30
|
Project-URL: Documentation, https://readthedocs.org
|
|
30
31
|
Project-URL: Repository, https://github.com/martinp23/bindtools.git
|
|
@@ -36,6 +37,9 @@ Description-Content-Type: text/markdown
|
|
|
36
37
|
[](https://badge.fury.io/py/bindtools)
|
|
37
38
|
[](https://pypi.org/project/bindtools/)
|
|
38
39
|
[](https://opensource.org/licenses/MIT)
|
|
40
|
+
[](https://doi.org/10.5281/zenodo.23651650)
|
|
41
|
+
|
|
42
|
+
|
|
39
43
|
|
|
40
44
|
`bindtools` is a Python library for supramolecular chemistry designed for modeling, fitting, and analyzing binding equilibria. It provides numerical and analytical solvers for complex chemical systems, robust parameter optimization, and Bayesian parameter estimation.
|
|
41
45
|
|
|
@@ -3,6 +3,9 @@
|
|
|
3
3
|
[](https://badge.fury.io/py/bindtools)
|
|
4
4
|
[](https://pypi.org/project/bindtools/)
|
|
5
5
|
[](https://opensource.org/licenses/MIT)
|
|
6
|
+
[](https://doi.org/10.5281/zenodo.23651650)
|
|
7
|
+
|
|
8
|
+
|
|
6
9
|
|
|
7
10
|
`bindtools` is a Python library for supramolecular chemistry designed for modeling, fitting, and analyzing binding equilibria. It provides numerical and analytical solvers for complex chemical systems, robust parameter optimization, and Bayesian parameter estimation.
|
|
8
11
|
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bindtools"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.4"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
classifiers = [
|
|
10
10
|
"Development Status :: 3 - Alpha",
|
|
@@ -12,10 +12,11 @@ classifiers = [
|
|
|
12
12
|
"Programming Language :: Python :: 3.12",
|
|
13
13
|
"Programming Language :: Python :: 3.13",
|
|
14
14
|
"Programming Language :: Python :: 3.14",
|
|
15
|
+
"Programming Language :: Python :: 3.15",
|
|
15
16
|
"Topic :: Scientific/Engineering :: Chemistry",
|
|
16
17
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
17
18
|
]
|
|
18
|
-
requires-python = ">=3.12"
|
|
19
|
+
requires-python = ">=3.12,<3.16"
|
|
19
20
|
keywords = [
|
|
20
21
|
"chemistry",
|
|
21
22
|
"analytical chemistry",
|
|
@@ -23,18 +24,18 @@ keywords = [
|
|
|
23
24
|
"supramolecular",
|
|
24
25
|
]
|
|
25
26
|
dependencies = [
|
|
26
|
-
"corner==2.
|
|
27
|
+
"corner==2.3.0",
|
|
27
28
|
"emcee==3.1.6",
|
|
28
29
|
"h5py>=3.14.0",
|
|
29
30
|
"latex2mathml>=3.81.0",
|
|
30
31
|
"lmfit==1.3.4",
|
|
31
|
-
"matplotlib==3.11.
|
|
32
|
-
"numba>=0.
|
|
32
|
+
"matplotlib==3.11.2",
|
|
33
|
+
"numba>=0.68",
|
|
33
34
|
"numpy>=2.3.4",
|
|
34
35
|
"openpyxl>=3.1.5",
|
|
35
36
|
"pandas>=2.3.3",
|
|
36
|
-
"scipy==1.18.
|
|
37
|
-
"tqdm==4.
|
|
37
|
+
"scipy==1.18.1",
|
|
38
|
+
"tqdm==4.70.1",
|
|
38
39
|
"uncertainties==3.2.3",
|
|
39
40
|
]
|
|
40
41
|
|
|
@@ -4,7 +4,7 @@ build-backend = "uv_build"
|
|
|
4
4
|
|
|
5
5
|
[project]
|
|
6
6
|
name = "bindtools"
|
|
7
|
-
version = "0.3.
|
|
7
|
+
version = "0.3.4"
|
|
8
8
|
readme = "README.md"
|
|
9
9
|
classifiers = [
|
|
10
10
|
# How mature is this project? Common values are
|
|
@@ -20,25 +20,25 @@ classifiers = [
|
|
|
20
20
|
"Programming Language :: Python :: 3.12",
|
|
21
21
|
"Programming Language :: Python :: 3.13",
|
|
22
22
|
"Programming Language :: Python :: 3.14",
|
|
23
|
-
|
|
23
|
+
"Programming Language :: Python :: 3.15",
|
|
24
24
|
"Topic :: Scientific/Engineering :: Chemistry",
|
|
25
25
|
"Topic :: Scientific/Engineering :: Bio-Informatics",
|
|
26
26
|
]
|
|
27
|
-
requires-python = ">=3.12"
|
|
27
|
+
requires-python = ">=3.12,<3.16"
|
|
28
28
|
keywords = ["chemistry", "analytical chemistry", "binding constants", "supramolecular"]
|
|
29
29
|
dependencies = [
|
|
30
|
-
"corner==2.
|
|
30
|
+
"corner==2.3.0",
|
|
31
31
|
"emcee==3.1.6",
|
|
32
32
|
"h5py>=3.14.0",
|
|
33
33
|
"latex2mathml>=3.81.0",
|
|
34
34
|
"lmfit==1.3.4",
|
|
35
|
-
"matplotlib==3.11.
|
|
36
|
-
"numba>=0.
|
|
35
|
+
"matplotlib==3.11.2",
|
|
36
|
+
"numba>=0.68",
|
|
37
37
|
"numpy>=2.3.4",
|
|
38
38
|
"openpyxl>=3.1.5",
|
|
39
39
|
"pandas>=2.3.3",
|
|
40
|
-
"scipy==1.18.
|
|
41
|
-
"tqdm==4.
|
|
40
|
+
"scipy==1.18.1",
|
|
41
|
+
"tqdm==4.70.1",
|
|
42
42
|
"uncertainties==3.2.3",
|
|
43
43
|
]
|
|
44
44
|
authors = [
|
|
@@ -48,7 +48,7 @@ class bindingModel:
|
|
|
48
48
|
self.nConcs = np.shape(compConcs)[0]
|
|
49
49
|
|
|
50
50
|
self.concUnits = None # mM #TODO
|
|
51
|
-
self.specToDd = specToDd
|
|
51
|
+
self.specToDd = specToDd # (n_species, n_obs) object array for NMR chemical shifts
|
|
52
52
|
self.specToLinear: Optional[List] = specToLinear # (n_species, n_obs) object array for UV-vis / fluorescence
|
|
53
53
|
self.analytical_fast_exchange: bool = False
|
|
54
54
|
self.analytical_topology: Optional[str] = None
|
|
@@ -169,14 +169,32 @@ class bindingModel:
|
|
|
169
169
|
elif isinstance(x, lmfit.Parameter):
|
|
170
170
|
self._addExistingParam(x)
|
|
171
171
|
|
|
172
|
-
# add chemical shift fitting params
|
|
173
172
|
if self.specToDd is not None:
|
|
173
|
+
if not isinstance(self.specToDd, np.ndarray) or self.specToDd.dtype != object:
|
|
174
|
+
raw_list = list(self.specToDd)
|
|
175
|
+
if len(raw_list) > 0 and isinstance(raw_list[0], (list, tuple, np.ndarray)):
|
|
176
|
+
# Already 2D-like
|
|
177
|
+
rows, cols = len(raw_list), len(raw_list[0])
|
|
178
|
+
arr = np.empty((rows, cols), dtype=object)
|
|
179
|
+
for r in range(rows):
|
|
180
|
+
for c in range(cols):
|
|
181
|
+
arr[r, c] = raw_list[r][c]
|
|
182
|
+
else:
|
|
183
|
+
# 1D-like -> reshape to (n_species, 1)
|
|
184
|
+
arr = np.empty((len(raw_list), 1), dtype=object)
|
|
185
|
+
for r, val in enumerate(raw_list):
|
|
186
|
+
arr[r, 0] = val
|
|
187
|
+
self.specToDd = arr
|
|
188
|
+
elif self.specToDd.ndim == 1:
|
|
189
|
+
self.specToDd = self.specToDd[:, None]
|
|
190
|
+
|
|
191
|
+
|
|
174
192
|
for ii, x in np.ndenumerate(self.specToDd):
|
|
175
193
|
if isinstance(x, tuple):
|
|
176
194
|
self._addParam("shift_{}_{}".format(ii[0], ii[1]), x[1], min=x[0], max=x[2])
|
|
177
195
|
elif isinstance(x, lmfit.Parameter):
|
|
178
196
|
self._addExistingParam(x)
|
|
179
|
-
|
|
197
|
+
|
|
180
198
|
def runModel(self, sigma=1, skip_col=1, method="least_squares", ret=False, kwargs={}) -> Optional["bindingModel"]:
|
|
181
199
|
exptData = np.copy(self.rawData)
|
|
182
200
|
spec_to_integ = None
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|