pyjess 0.7.0__cp38-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.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.
Potentially problematic release.
This version of pyjess might be problematic. Click here for more details.
- pyjess/.gitignore +2 -0
- pyjess/CMakeLists.txt +1 -0
- pyjess/__init__.py +21 -0
- pyjess/__main__.py +4 -0
- pyjess/_jess.abi3.so +0 -0
- pyjess/_jess.pyi +268 -0
- pyjess/_jess.pyx +2371 -0
- pyjess/cli.py +281 -0
- pyjess/py.typed +0 -0
- pyjess/tests/__init__.py +20 -0
- pyjess/tests/data/1.3.3.tpl +23 -0
- pyjess/tests/data/1AMY+1.3.3.txt +1872 -0
- pyjess/tests/data/1AMY.cif +6259 -0
- pyjess/tests/data/1AMY.pdb +3941 -0
- pyjess/tests/data/1sur.qry +26 -0
- pyjess/tests/data/4.1.2.tpl +23 -0
- pyjess/tests/data/5ayx.EF.pdb +63 -0
- pyjess/tests/data/__init__.py +0 -0
- pyjess/tests/data/pdb1lnb.pdb +3334 -0
- pyjess/tests/data/template_01.qry +11 -0
- pyjess/tests/data/template_02.qry +11 -0
- pyjess/tests/test_atom.py +111 -0
- pyjess/tests/test_doctest.py +78 -0
- pyjess/tests/test_hit.py +57 -0
- pyjess/tests/test_jess.py +374 -0
- pyjess/tests/test_molecule.py +287 -0
- pyjess/tests/test_template.py +126 -0
- pyjess/tests/test_template_atom.py +92 -0
- pyjess/tests/utils.py +7 -0
- pyjess-0.7.0.dist-info/METADATA +282 -0
- pyjess-0.7.0.dist-info/RECORD +34 -0
- pyjess-0.7.0.dist-info/WHEEL +6 -0
- pyjess-0.7.0.dist-info/entry_points.txt +3 -0
- pyjess-0.7.0.dist-info/licenses/COPYING +21 -0
|
@@ -0,0 +1,282 @@
|
|
|
1
|
+
Metadata-Version: 2.2
|
|
2
|
+
Name: pyjess
|
|
3
|
+
Version: 0.7.0
|
|
4
|
+
Summary: Cython bindings and Python interface to JESS, a 3D template matching software.
|
|
5
|
+
Keywords: bioinformatics,structure,template,matching
|
|
6
|
+
Author-Email: Martin Larralde <martin.larralde@embl.de>
|
|
7
|
+
License: MIT License
|
|
8
|
+
|
|
9
|
+
Copyright (c) 2024-2025 Martin Larralde <martin.larralde@embl.de>
|
|
10
|
+
|
|
11
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
12
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
13
|
+
in the Software without restriction, including without limitation the rights
|
|
14
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
15
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
16
|
+
furnished to do so, subject to the following conditions:
|
|
17
|
+
|
|
18
|
+
The above copyright notice and this permission notice shall be included in all
|
|
19
|
+
copies or substantial portions of the Software.
|
|
20
|
+
|
|
21
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
22
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
23
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
24
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
25
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
26
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
27
|
+
SOFTWARE.
|
|
28
|
+
|
|
29
|
+
Classifier: Development Status :: 4 - Beta
|
|
30
|
+
Classifier: Intended Audience :: Developers
|
|
31
|
+
Classifier: Intended Audience :: Science/Research
|
|
32
|
+
Classifier: License :: OSI Approved :: MIT License
|
|
33
|
+
Classifier: Operating System :: OS Independent
|
|
34
|
+
Classifier: Programming Language :: C
|
|
35
|
+
Classifier: Programming Language :: Cython
|
|
36
|
+
Classifier: Programming Language :: Python :: 3.7
|
|
37
|
+
Classifier: Programming Language :: Python :: 3.8
|
|
38
|
+
Classifier: Programming Language :: Python :: 3.9
|
|
39
|
+
Classifier: Programming Language :: Python :: 3.10
|
|
40
|
+
Classifier: Programming Language :: Python :: 3.11
|
|
41
|
+
Classifier: Programming Language :: Python :: 3.12
|
|
42
|
+
Classifier: Programming Language :: Python :: 3.13
|
|
43
|
+
Classifier: Programming Language :: Python :: Implementation :: CPython
|
|
44
|
+
Classifier: Programming Language :: Python :: Implementation :: PyPy
|
|
45
|
+
Classifier: Topic :: Scientific/Engineering :: Bio-Informatics
|
|
46
|
+
Classifier: Topic :: Scientific/Engineering :: Medical Science Apps.
|
|
47
|
+
Classifier: Typing :: Typed
|
|
48
|
+
Project-URL: Homepage, https://github.com/althonos/pyjess/
|
|
49
|
+
Project-URL: Documentation, https://pyjess.readthedocs.io/en/stable/
|
|
50
|
+
Project-URL: Bug Tracker, https://github.com/althonos/pyjess/issues
|
|
51
|
+
Project-URL: Changelog, https://github.com/althonos/pyjess/blob/master/CHANGELOG.md
|
|
52
|
+
Project-URL: Coverage, https://codecov.io/gh/althonos/pyjess/
|
|
53
|
+
Project-URL: Builds, https://github.com/althonos/pyjess/actions
|
|
54
|
+
Project-URL: PyPI, https://pypi.org/project/pyjess
|
|
55
|
+
Project-URL: PiWheels, https://piwheels.org/project/pyjess/
|
|
56
|
+
Requires-Python: >=3.7
|
|
57
|
+
Provides-Extra: test
|
|
58
|
+
Requires-Dist: importlib-resources; python_version < "3.9" and extra == "test"
|
|
59
|
+
Provides-Extra: cif
|
|
60
|
+
Requires-Dist: gemmi~=0.7.0; extra == "cif"
|
|
61
|
+
Description-Content-Type: text/markdown
|
|
62
|
+
|
|
63
|
+
# 🐍🔍 PyJess [](https://github.com/althonos/pyjess/stargazers)
|
|
64
|
+
|
|
65
|
+
*[Cython](https://cython.org/) bindings and Python interface to [Jess](https://github.com/iriziotis/jess), a 3D template matching software.*
|
|
66
|
+
|
|
67
|
+
[](https://github.com/althonos/pyjess/actions)
|
|
68
|
+
[](https://codecov.io/gh/althonos/pyjess/)
|
|
69
|
+
[](https://choosealicense.com/licenses/mit/)
|
|
70
|
+
[](https://pypi.org/project/pyjess)
|
|
71
|
+
[](https://anaconda.org/bioconda/pyjess)
|
|
72
|
+
[](https://aur.archlinux.org/packages/python-pyjess)
|
|
73
|
+
[](https://pypi.org/project/pyjess/#files)
|
|
74
|
+
[](https://pypi.org/project/pyjess/#files)
|
|
75
|
+
[](https://pypi.org/project/pyjess/#files)
|
|
76
|
+
[](https://github.com/althonos/pyjess/)
|
|
77
|
+
[](https://git.lumc.nl/mflarralde/pyjess/)
|
|
78
|
+
[](https://github.com/althonos/pyjess/issues)
|
|
79
|
+
[](https://pyjess.readthedocs.io)
|
|
80
|
+
[](https://github.com/althonos/pyjess/blob/main/CHANGELOG.md)
|
|
81
|
+
[&style=flat-square&label=downloads&color=303f9f&cacheSeconds=86400)](https://pepy.tech/project/pyjess)
|
|
82
|
+
|
|
83
|
+
|
|
84
|
+
## 🗺️ Overview
|
|
85
|
+
|
|
86
|
+
Jess is an algorithm for constraint-based structural template matching
|
|
87
|
+
proposed by Jonathan Barker *et al.*[\[1\]](#ref1). It can be used to identify
|
|
88
|
+
catalytic residues from a known template inside a protein structure. Jess
|
|
89
|
+
is an evolution of TESS, a geometric hashing algorithm developed by
|
|
90
|
+
Andrew Wallace *et al.*[\[2\]](#ref2), removing some pre-computation and
|
|
91
|
+
structural requirements from the original algorithm. Jess was further
|
|
92
|
+
updated and maintained by [Ioannis Riziotis](https://github.com/iriziotis)
|
|
93
|
+
during his PhD in the [Thornton group](https://www.ebi.ac.uk/research/thornton/).
|
|
94
|
+
|
|
95
|
+
PyJess is a Python module that provides bindings to Jess using
|
|
96
|
+
[Cython](https://cython.org/). It allows creating templates, querying them
|
|
97
|
+
with protein structures, and retrieving the hits using a Python API without
|
|
98
|
+
performing any external I/O. It's also more than 10x faster than Jess thanks to
|
|
99
|
+
[algorithmic optimizations](https://pyjess.readthedocs.io/en/latest/guide/optimizations.html)
|
|
100
|
+
added to improve the original Jess code while producing consistent results.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
## 🔧 Installing
|
|
104
|
+
|
|
105
|
+
PyJess is available for all modern Python versions (3.7+).
|
|
106
|
+
|
|
107
|
+
It can be installed directly from [PyPI](https://pypi.org/project/pyjess/),
|
|
108
|
+
which hosts some pre-built x86-64 wheels for Linux, MacOS, and Windows,
|
|
109
|
+
as well as the code required to compile from source with Cython:
|
|
110
|
+
```console
|
|
111
|
+
$ pip install pyjess
|
|
112
|
+
```
|
|
113
|
+
|
|
114
|
+
Otherwise, PyJess is also available as a [Bioconda](https://bioconda.github.io/)
|
|
115
|
+
package:
|
|
116
|
+
```console
|
|
117
|
+
$ conda install -c bioconda pyjess
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Check the [*install* page](https://pyjess.readthedocs.io/en/stable/guide/install.html)
|
|
121
|
+
of the documentation for other ways to install PyJess on your machine.
|
|
122
|
+
|
|
123
|
+
|
|
124
|
+
## 🔖 Citation
|
|
125
|
+
|
|
126
|
+
PyJess is scientific software, and builds on top of Jess. Please cite
|
|
127
|
+
Jess if you are using it in an academic work, for instance as:
|
|
128
|
+
|
|
129
|
+
> PyJess, a Python library binding to Jess (Barker *et al.*, 2003).
|
|
130
|
+
|
|
131
|
+
|
|
132
|
+
## 💡 Example
|
|
133
|
+
|
|
134
|
+
#### Prepare templates
|
|
135
|
+
|
|
136
|
+
Load [`Template`](https://pyjess.readthedocs.io/en/latest/api/template.html#pyjess.Template)
|
|
137
|
+
objects to be used as references from different template files:
|
|
138
|
+
|
|
139
|
+
```python
|
|
140
|
+
import pathlib
|
|
141
|
+
import pyjess
|
|
142
|
+
|
|
143
|
+
templates = []
|
|
144
|
+
for path in sorted(pathlib.Path("vendor/jess/examples").glob("template_*.qry")):
|
|
145
|
+
templates.append(pyjess.Template.load(path, id=path.stem))
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
#### Prepare query structures
|
|
149
|
+
|
|
150
|
+
Load a [`Molecule`](https://pyjess.readthedocs.io/en/latest/api/molecule.html#pyjess.Molecule)
|
|
151
|
+
(a PDB structure) from a PDB file, create one with the Python API, or
|
|
152
|
+
convert it from a [`Bio.Model`](https://biopython.org/docs/1.76/api/Bio.PDB.Model.html),
|
|
153
|
+
[`gemmi.Model`](https://gemmi.readthedocs.io/en/latest/mol.html#model),
|
|
154
|
+
or [`biotite.structure.AtomArray`](https://www.biotite-python.org/latest/apidoc/biotite.structure.AtomArray.html)
|
|
155
|
+
object:
|
|
156
|
+
|
|
157
|
+
```python
|
|
158
|
+
# load from PDB file or mmCIF file
|
|
159
|
+
mol = pyjess.Molecule.load("vendor/jess/examples/test_pdbs/pdb1a0p.ent")
|
|
160
|
+
|
|
161
|
+
# load with BioPython
|
|
162
|
+
parser = Bio.PDB.PDBParser()
|
|
163
|
+
structure = parser.get_structure('pdb1a0p', "vendor/jess/examples/test_pdbs/pdb1a0p.ent")
|
|
164
|
+
mol = Molecule.from_biopython(structure, id="1a0p")
|
|
165
|
+
|
|
166
|
+
# load with Gemmi
|
|
167
|
+
structure = gemmi.read_pdb_string("vendor/jess/examples/test_pdbs/pdb1a0p.ent")
|
|
168
|
+
mol = Molecule.from_gemmi(structure[0], id="1a0p")
|
|
169
|
+
|
|
170
|
+
# load with Biotite
|
|
171
|
+
pdb_file = biotite.structure.io.pdb.PDBFile.read(f)
|
|
172
|
+
structure = pdb_file.get_structure(altloc="all", extra_fields=["atom_id", "b_factor", "occupancy", "charge"])
|
|
173
|
+
mol = Molecule.from_biotite(structure[0])
|
|
174
|
+
```
|
|
175
|
+
|
|
176
|
+
### Match templates
|
|
177
|
+
|
|
178
|
+
Create a [`Jess`](https://pyjess.readthedocs.io/en/latest/api/jess.html#pyjess.Jess)
|
|
179
|
+
instance and use it to query a against the stored templates:
|
|
180
|
+
|
|
181
|
+
```python
|
|
182
|
+
jess = pyjess.Jess(templates)
|
|
183
|
+
query = jess.query(mol, rmsd_threshold=2.0, distance_cutoff=3.0, max_dynamic_distance=3.0)
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Process hits
|
|
187
|
+
|
|
188
|
+
The hits are computed iteratively, and the different output statistics are
|
|
189
|
+
computed on-the-fly when requested:
|
|
190
|
+
|
|
191
|
+
```python
|
|
192
|
+
for hit in query:
|
|
193
|
+
print(hit.molecule.id, hit.template.id, hit.rmsd, hit.log_evalue)
|
|
194
|
+
for atom in hit.atoms():
|
|
195
|
+
print(atom.name, atom.x, atom.y, atom.z)
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Hits can also be rendered in PDB format like in the original Jess output,
|
|
199
|
+
either by writing to a file directly, or to a Python string:
|
|
200
|
+
```python
|
|
201
|
+
for hit in query:
|
|
202
|
+
hit.dump(sys.stdout, format="pdb")
|
|
203
|
+
```
|
|
204
|
+
|
|
205
|
+
## 🧶 Thread-safety
|
|
206
|
+
|
|
207
|
+
Once a [`Jess`](https://pyjess.readthedocs.io/en/latest/api/jess.html#pyjess.Jess)
|
|
208
|
+
instance has been created, the templates cannot be edited anymore,
|
|
209
|
+
making the [`Jess.query`](https://pyjess.readthedocs.io/en/latest/api/jess.html#pyjess.Jess.query) method re-entrant and thread-safe. This allows querying
|
|
210
|
+
several molecules against the same templates in parallel using e.g a
|
|
211
|
+
[`ThreadPool`](https://docs.python.org/3/library/multiprocessing.html#multiprocessing.pool.ThreadPool):
|
|
212
|
+
|
|
213
|
+
```python
|
|
214
|
+
molecules = []
|
|
215
|
+
for path in glob.glob("vendor/jess/examples/test_pdbs/*.ent"):
|
|
216
|
+
molecules.append(Molecule.load(path))
|
|
217
|
+
|
|
218
|
+
with multiprocessing.ThreadPool() as pool:
|
|
219
|
+
hits = pool.map(jess.query, molecules)
|
|
220
|
+
```
|
|
221
|
+
|
|
222
|
+
*⚠️ Prior to PyJess `v0.2.1`, the Jess code was running some thread-unsafe operations which have now been patched.
|
|
223
|
+
If running Jess in parallel, make sure to use `v0.2.1` or later to use the code patched with re-entrant functions*.
|
|
224
|
+
|
|
225
|
+
## ⏱️ Benchmarks
|
|
226
|
+
|
|
227
|
+
The following table reports the runtime of PyJess to match N=132 protein
|
|
228
|
+
structures to the M=7607 templates of
|
|
229
|
+
[EnzyMM](https://github.com/RayHackett/enzymm), using J=12 threads to parallelize.
|
|
230
|
+
|
|
231
|
+
| Version | Runtime (s) | Match Speed (N * M / s * J) | Speedup |
|
|
232
|
+
| ----------- | ----------- | --------------------------- | ----------- |
|
|
233
|
+
| ``v0.4.2`` | 618.1 | 135.4 | N/A |
|
|
234
|
+
| ``v0.5.0`` | 586.3 | 142.7 | x1.05 |
|
|
235
|
+
| ``v0.5.1`` | 365.6 | 228.9 | x1.69 |
|
|
236
|
+
| ``v0.5.2`` | 327.2 | 255.7 | x1.88 |
|
|
237
|
+
| ``v0.6.0`` | 54.5 | 1535.4 | x11.34 |
|
|
238
|
+
| ``v0.7.0`` | 52.4 | 1597.5 | **x11.80** |
|
|
239
|
+
|
|
240
|
+
*Benchmarks were run on a quiet [i7-1255U](https://www.intel.com/content/www/us/en/products/sku/226259/intel-core-i71255u-processor-12m-cache-up-to-4-70-ghz/specifications.html)
|
|
241
|
+
CPU running @4.70GHz with 10 physical cores / 12 logical cores.*
|
|
242
|
+
|
|
243
|
+
## 💭 Feedback
|
|
244
|
+
|
|
245
|
+
### ⚠️ Issue Tracker
|
|
246
|
+
|
|
247
|
+
Found a bug ? Have an enhancement request ? Head over to the [GitHub issue tracker](https://github.com/althonos/pyjess/issues)
|
|
248
|
+
if you need to report or ask something. If you are filing in on a bug,
|
|
249
|
+
please include as much information as you can about the issue, and try to
|
|
250
|
+
recreate the same bug in a simple, easily reproducible situation.
|
|
251
|
+
|
|
252
|
+
|
|
253
|
+
### 🏗️ Contributing
|
|
254
|
+
|
|
255
|
+
Contributions are more than welcome! See
|
|
256
|
+
[`CONTRIBUTING.md`](https://github.com/althonos/pyjess/blob/main/CONTRIBUTING.md)
|
|
257
|
+
for more details.
|
|
258
|
+
|
|
259
|
+
|
|
260
|
+
## 📋 Changelog
|
|
261
|
+
|
|
262
|
+
This project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html)
|
|
263
|
+
and provides a [changelog](https://github.com/althonos/pyjess/blob/main/CHANGELOG.md)
|
|
264
|
+
in the [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) format.
|
|
265
|
+
|
|
266
|
+
|
|
267
|
+
## ⚖️ License
|
|
268
|
+
|
|
269
|
+
This library is provided under the [MIT License](https://choosealicense.com/licenses/mit/).
|
|
270
|
+
The JESS code is distributed under the [MIT License](https://choosealicense.com/licenses/mit/) as well.
|
|
271
|
+
|
|
272
|
+
*This project is in no way not affiliated, sponsored, or otherwise endorsed
|
|
273
|
+
by the JESS authors. It was developed
|
|
274
|
+
by [Martin Larralde](https://github.com/althonos/) during his PhD project
|
|
275
|
+
at the [Leiden University Medical Center](https://www.lumc.nl/en/) in
|
|
276
|
+
the [Zeller team](https://github.com/zellerlab).*
|
|
277
|
+
|
|
278
|
+
|
|
279
|
+
## 📚 References
|
|
280
|
+
|
|
281
|
+
- <a id="ref1">\[1\]</a> Barker, J. A., & Thornton, J. M. (2003). An algorithm for constraint-based structural template matching: application to 3D templates with statistical analysis. Bioinformatics (Oxford, England), 19(13), 1644–1649. [doi:10.1093/bioinformatics/btg226](https://doi.org/10.1093/bioinformatics/btg226).
|
|
282
|
+
- <a id="ref2">\[2\]</a> Wallace, A. C., Borkakoti, N., & Thornton, J. M. (1997). TESS: a geometric hashing algorithm for deriving 3D coordinate templates for searching structural databases. Application to enzyme active sites. Protein science : a publication of the Protein Society, 6(11), 2308–2323. [doi:10.1002/pro.5560061104](https://doi.org/10.1002/pro.5560061104).
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
pyjess-0.7.0.dist-info/entry_points.txt,sha256=5dgYfglg8P5hPTIyrKAnOBmYqs2GRR0kb6x0BncaHbA,44
|
|
2
|
+
pyjess-0.7.0.dist-info/RECORD,,
|
|
3
|
+
pyjess-0.7.0.dist-info/WHEEL,sha256=bhctIvcctBf1JWdCsc1LxQ-kr7y4RFUtW4uMAdKuMQM,152
|
|
4
|
+
pyjess-0.7.0.dist-info/METADATA,sha256=5dzLVyfgSMsKIpC5os1TXVIGZIAw7yAKGLurBegAC3M,14276
|
|
5
|
+
pyjess-0.7.0.dist-info/licenses/COPYING,sha256=gLCfHtBLTrghVX7GkpmZqoozWMNN46502m_OUiYy01Y,1103
|
|
6
|
+
pyjess/CMakeLists.txt,sha256=Oa0pniEQx9jXyFCJGyrswn9ahWSSVuW1madyeP6StoI,35
|
|
7
|
+
pyjess/__init__.py,sha256=h4XXLdS4FnyVa-MBs_k3eZMG1jWxeiOJnwfBaJA9gyQ,745
|
|
8
|
+
pyjess/__main__.py,sha256=ta7kfEb_2NW90moR7hNco1SYcPy4Hm-QWziP3IBERFU,50
|
|
9
|
+
pyjess/.gitignore,sha256=uQBOufp4v50qn0aZKv6zbSo00cjfB-v9KySog7rlmIU,19
|
|
10
|
+
pyjess/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
11
|
+
pyjess/_jess.pyi,sha256=_yTjIk2kXMNxzdPOoq4mM94Haj__ZrUO-Bpf3alr3yI,8320
|
|
12
|
+
pyjess/_jess.pyx,sha256=6L3ZLEiZ-TeBSeTAjgIyJW0EiL4uAWya1phXi-wHeEg,80573
|
|
13
|
+
pyjess/cli.py,sha256=rKu5Aou8RV-VPn1ZCg-3cTnwnJmJljr860e9IaUTFBM,8931
|
|
14
|
+
pyjess/_jess.abi3.so,sha256=xWV4C1dTvaErFftlsADdAwXjZtTjlPmqIFR6KypN3Nc,489232
|
|
15
|
+
pyjess/tests/test_hit.py,sha256=ZAhyQlVczao3sDYdFIBR0Mulczz0NsykJt9pR9QM-AI,2412
|
|
16
|
+
pyjess/tests/__init__.py,sha256=wn5ZgE-uCW1iOnhyd6TaLZiAuvCWLli-u2XbSPZAvno,678
|
|
17
|
+
pyjess/tests/test_atom.py,sha256=omNznNbRXMDt2j1plAUlfWPGCfmtkYpj2jysEX1zQuY,4631
|
|
18
|
+
pyjess/tests/test_jess.py,sha256=czpu8k9rtR_cJCjnk2c5S69eB4_bCgCW8WZkH0pU0Ow,17296
|
|
19
|
+
pyjess/tests/test_template.py,sha256=SRCjvxDamqG55oS95lHBxiEsmHlzh_qTFt9LvVsCVsw,4900
|
|
20
|
+
pyjess/tests/test_doctest.py,sha256=S8TZnbCFTBqArwjuNwLiIPKY0zVsHIl_5i8elR0MXCY,2554
|
|
21
|
+
pyjess/tests/test_molecule.py,sha256=r4cdPMjb-sCxP9HHGO3Zf9V3haW5KJqQ9ce0pEAb1iM,12547
|
|
22
|
+
pyjess/tests/test_template_atom.py,sha256=s9tJ_SAgvKeGwbVjaTWY-EtsUeQp3eu4NF5ja3oO_84,3405
|
|
23
|
+
pyjess/tests/utils.py,sha256=dsaphex7qomJCvSHWnVy79iYDPGiL59xqGAtRoVAeWc,196
|
|
24
|
+
pyjess/tests/data/4.1.2.tpl,sha256=6-N137e64dNXbJe1qveh8OzaOd4W0k1FXrzyM0aXLgk,1054
|
|
25
|
+
pyjess/tests/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
|
|
26
|
+
pyjess/tests/data/template_02.qry,sha256=IAI6eiDA-Qji7cFYW9S8e0XYNTlHb8XtJibP3PVGuHw,607
|
|
27
|
+
pyjess/tests/data/pdb1lnb.pdb,sha256=E9Jjy4qQ75O1UKIXcVyVJHE1XDNx1Rb7ENPVrehW6N8,270054
|
|
28
|
+
pyjess/tests/data/1AMY.cif,sha256=cWRy1GqqWzC_07j5fh8dgw-th7KHKTp2EESEyjr16Z8,393628
|
|
29
|
+
pyjess/tests/data/5ayx.EF.pdb,sha256=iLOz_7YE4luwTv99sQi7-ZY4qVazwIgyAWux6oBjPT4,5159
|
|
30
|
+
pyjess/tests/data/1sur.qry,sha256=Rj8zM_K-gNZdSYhxDwB0ib0TjOuZ8cSJQ_FFhBzLGfs,1158
|
|
31
|
+
pyjess/tests/data/template_01.qry,sha256=y3jTNf-WH2wL7OizKGJEPvLIlF3qHDAyR3LdKqWjy60,605
|
|
32
|
+
pyjess/tests/data/1AMY.pdb,sha256=t2CaGLdOyPrhyeMpe1TbwZ8u7QmfxCIG1Pit8-vzvgo,319221
|
|
33
|
+
pyjess/tests/data/1AMY+1.3.3.txt,sha256=41R3aa6jozzSSfzboxhyK5xfX8e47aiq2U4W7aCzRm8,103584
|
|
34
|
+
pyjess/tests/data/1.3.3.tpl,sha256=mg3STlRiNESM0chuOQ8CodW3Ohnxbt1_nx4PId63iOI,988
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2024-2025 Martin Larralde <martin.larralde@embl.de>
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|