pytme 0.2.1__cp311-cp311-macosx_14_0_arm64.whl → 0.2.2__cp311-cp311-macosx_14_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.
Files changed (49) hide show
  1. {pytme-0.2.1.data → pytme-0.2.2.data}/scripts/match_template.py +147 -93
  2. {pytme-0.2.1.data → pytme-0.2.2.data}/scripts/postprocess.py +67 -26
  3. {pytme-0.2.1.data → pytme-0.2.2.data}/scripts/preprocessor_gui.py +175 -85
  4. pytme-0.2.2.dist-info/METADATA +91 -0
  5. pytme-0.2.2.dist-info/RECORD +74 -0
  6. {pytme-0.2.1.dist-info → pytme-0.2.2.dist-info}/WHEEL +1 -1
  7. scripts/extract_candidates.py +20 -13
  8. scripts/match_template.py +147 -93
  9. scripts/match_template_filters.py +154 -95
  10. scripts/postprocess.py +67 -26
  11. scripts/preprocessor_gui.py +175 -85
  12. scripts/refine_matches.py +265 -61
  13. tme/__init__.py +0 -1
  14. tme/__version__.py +1 -1
  15. tme/analyzer.py +451 -809
  16. tme/backends/__init__.py +40 -11
  17. tme/backends/_jax_utils.py +185 -0
  18. tme/backends/cupy_backend.py +111 -223
  19. tme/backends/jax_backend.py +214 -150
  20. tme/backends/matching_backend.py +445 -384
  21. tme/backends/mlx_backend.py +32 -59
  22. tme/backends/npfftw_backend.py +239 -507
  23. tme/backends/pytorch_backend.py +21 -145
  24. tme/density.py +233 -363
  25. tme/extensions.cpython-311-darwin.so +0 -0
  26. tme/matching_data.py +322 -285
  27. tme/matching_exhaustive.py +172 -1493
  28. tme/matching_optimization.py +143 -106
  29. tme/matching_scores.py +884 -0
  30. tme/matching_utils.py +280 -386
  31. tme/memory.py +377 -0
  32. tme/orientations.py +52 -12
  33. tme/parser.py +3 -4
  34. tme/preprocessing/_utils.py +61 -32
  35. tme/preprocessing/compose.py +7 -3
  36. tme/preprocessing/frequency_filters.py +49 -39
  37. tme/preprocessing/tilt_series.py +34 -40
  38. tme/preprocessor.py +560 -526
  39. tme/structure.py +491 -188
  40. tme/types.py +5 -3
  41. pytme-0.2.1.dist-info/METADATA +0 -73
  42. pytme-0.2.1.dist-info/RECORD +0 -73
  43. tme/helpers.py +0 -881
  44. tme/matching_constrained.py +0 -195
  45. {pytme-0.2.1.data → pytme-0.2.2.data}/scripts/estimate_ram_usage.py +0 -0
  46. {pytme-0.2.1.data → pytme-0.2.2.data}/scripts/preprocess.py +0 -0
  47. {pytme-0.2.1.dist-info → pytme-0.2.2.dist-info}/LICENSE +0 -0
  48. {pytme-0.2.1.dist-info → pytme-0.2.2.dist-info}/entry_points.txt +0 -0
  49. {pytme-0.2.1.dist-info → pytme-0.2.2.dist-info}/top_level.txt +0 -0
tme/types.py CHANGED
@@ -1,11 +1,13 @@
1
- from typing import Union, TypeVar
1
+ from typing import Union, TypeVar, Tuple
2
2
 
3
+ BackendArray = TypeVar("backend_array")
3
4
  NDArray = TypeVar("numpy.ndarray")
4
5
  CupyArray = TypeVar("cupy.ndarray")
5
6
  TorchTensor = TypeVar("torch.Tensor")
6
7
  MlxArray = TypeVar("mlx.core.array")
8
+ ArrayLike = TypeVar("array_like")
7
9
 
8
10
  Scalar = Union[int, float, complex]
9
-
10
- ArrayLike = TypeVar("array_like")
11
+ shm_type = Union[Tuple[type, Tuple[int], type], BackendArray]
12
+ MatchingData = TypeVar("MatchingData")
11
13
  CallbackClass = TypeVar("callback_class")
@@ -1,73 +0,0 @@
1
- Metadata-Version: 2.1
2
- Name: pytme
3
- Version: 0.2.1
4
- Summary: Python Template Matching Engine
5
- Author: Valentin Maurer
6
- Author-email: Valentin Maurer <valentin.maurer@embl-hamburg.de>
7
- License: Proprietary
8
- Project-URL: Homepage, https://github.com/KosinskiLab/pyTME
9
- Classifier: Programming Language :: Python :: 3
10
- Classifier: Operating System :: OS Independent
11
- Requires-Python: >=3.11
12
- Description-Content-Type: text/markdown
13
- License-File: LICENSE
14
- Requires-Dist: mrcfile >=1.4.3
15
- Requires-Dist: numpy >=1.22.2
16
- Requires-Dist: pyfftw >=0.13.1
17
- Requires-Dist: pytest >=6.2.5
18
- Requires-Dist: PyWavelets >=1.2.0
19
- Requires-Dist: PyYAML >=6.0
20
- Requires-Dist: scikit-image >=0.19.0
21
- Requires-Dist: scikit-learn >=1.2.1
22
- Requires-Dist: scipy >=1.9.1
23
- Requires-Dist: pybind11
24
- Requires-Dist: psutil
25
- Requires-Dist: tifffile
26
- Requires-Dist: h5py
27
-
28
- # Python Template Matching Engine (PyTME)
29
-
30
- A software for template matching on electron microscopy data.
31
-
32
- 📖 **[Official Documentation](https://kosinskilab.github.io/pyTME/)** | 🚀 **[Installation Guide](https://kosinskilab.github.io/pyTME/quickstart/installation.html)** | 📚 **[API Reference](https://kosinskilab.github.io/pyTME/reference/index.html)**
33
-
34
- ### Installation
35
-
36
- There are three ways to get pyTME up and running:
37
-
38
- 1. **Install from Source:**
39
- ```bash
40
- pip install git+https://github.com/KosinskiLab/pyTME
41
- ```
42
-
43
- 2. **Install from PyPi:**
44
- ```bash
45
- pip install pytme
46
- ```
47
-
48
- 3. **Docker Container:**
49
- Build and use the pyTME container from Docker. This assumes a linux/amd64 platform.
50
- ```bash
51
- docker build \
52
- -t pytme \
53
- --platform linux/amd64 \
54
- -f docker/Dockerfile \
55
- .
56
- ```
57
- 🔗 For more on the Docker container, visit the [Docker Hub page](https://hub.docker.com).
58
-
59
- ---
60
-
61
- ### Publication
62
-
63
- The pyTME publication is available on [SoftwareX](https://www.sciencedirect.com/science/article/pii/S2352711024000074).
64
-
65
- ```
66
- @article{Maurer:2024aa,
67
- author = {Maurer, Valentin J. and Siggel, Marc and Kosinski, Jan},
68
- journal = {SoftwareX},
69
- pages = {101636},
70
- title = {PyTME (Python Template Matching Engine): A fast, flexible, and multi-purpose template matching library for cryogenic electron microscopy data},
71
- volume = {25},
72
- year = {2024}}
73
- ```
@@ -1,73 +0,0 @@
1
- pytme-0.2.1.data/scripts/estimate_ram_usage.py,sha256=R1NDpFajcF-MonJ4a43SfDlA-nxBYwK7D2quzCdsVFM,2767
2
- pytme-0.2.1.data/scripts/match_template.py,sha256=d9c_014dy4X9jFtulHkypuRqcDTCJsddA5-tt2ZUw6g,39833
3
- pytme-0.2.1.data/scripts/postprocess.py,sha256=dg2TQpoTiQFDm1Q-l-WH3g0kIqwBEvKk-hX1QhhgjoI,23132
4
- pytme-0.2.1.data/scripts/preprocess.py,sha256=zog-l2Je-GeouJ6SnamOMuHgTn7fFPiGnO5X03y5qSY,2527
5
- pytme-0.2.1.data/scripts/preprocessor_gui.py,sha256=-lYdd9--xvgZghhuPE43JGycventc3tPoG4JF1wkXo0,35254
6
- scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
7
- scripts/estimate_ram_usage.py,sha256=rN7haobnHg3YcgGJIp81FNiCzy8-saJGeEurQlmQmNQ,2768
8
- scripts/extract_candidates.py,sha256=j8SZNw4-F73_7o0_NorioQcyH8LatrbNX4pwfe-XC9A,8139
9
- scripts/match_template.py,sha256=yTFtX0cZqk6Q38wtlDDTzHRRJsGLNnoVTXQeXWBH8Rc,39834
10
- scripts/match_template_filters.py,sha256=-QnSZsGgLP5k6nH5DXINO2Yd7c1zEq_qyIDwfGB0w8o,40272
11
- scripts/postprocess.py,sha256=L67WF7A9RIWEjr04KzHjHDg4LUpbn6h19JFKh_OyonI,23133
12
- scripts/preprocess.py,sha256=ebJVLxbRlB6TI5YHNr0VavZ4lmaRdf8QVafyiDhh_oU,2528
13
- scripts/preprocessor_gui.py,sha256=2-IKFVwztnvOa_G6fZ4SYsk1g6rFb3_-LMDmWSHqCno,35255
14
- scripts/refine_matches.py,sha256=BlQqZFYdatAUAPly14xobDgqJOWvwEidjTz4pW4QBlg,14628
15
- tme/__init__.py,sha256=MGVeRX1f5k6RwExBcffZtCM7igNNtpoIr2G2yJZ4OHI,251
16
- tme/__version__.py,sha256=HfjVOrpTnmZ-xVFCYSVmX50EXaBQeJteUHG-PD6iQs8,22
17
- tme/analyzer.py,sha256=esp23U15jsctbtDy1QMcUwsiBCwXbapiRfH3ZEVvwOg,61500
18
- tme/density.py,sha256=cMfHfZSY8Ff9w7HfE-Sqigo4XKT_naht3jMtdWg4sKk,88846
19
- tme/extensions.cpython-311-darwin.so,sha256=nIqjOFVGoKxod55SSK7hNvHxk6uTnTQ-oqkYdSsmn6Y,411792
20
- tme/helpers.py,sha256=TMtBuJoZk6q4M_rfkr8yPpGzJD74ycqyN3yXMuU9mr4,23625
21
- tme/matching_constrained.py,sha256=NAJnZpusjQs5rKabHiNyrclXSPm27K0V8HVFjTQ2zB0,6725
22
- tme/matching_data.py,sha256=QeAhwgqiwCpQIghlj9wN0jCbW1UpZH55DOZWFudtXSw,24869
23
- tme/matching_exhaustive.py,sha256=YidMx0RGnV-YdAK-tEdG9aHg06sSE3QgV-D2KMTKcZE,63676
24
- tme/matching_memory.py,sha256=bmCAUYyXWEet-1XXhldtc0irio2ytMSsAzWYyFI5LNM,11273
25
- tme/matching_optimization.py,sha256=wil0-5DYrqLzgFMhi-uClkt5mzp15AE_--zmmhJbdkw,43530
26
- tme/matching_utils.py,sha256=qLcRcfMCURsA5vFvJDUBa7xIAHsICWn_PB_jOYK3Pb0,42520
27
- tme/orientations.py,sha256=3SuKZhscTGnclOfNJCz2Rq1KiePHFytPdjuHiQi7m5Q,23929
28
- tme/parser.py,sha256=tA9ABeV95cZn8lJCukVUaocQ9RguR6ZZzQsMXf_-ud0,13887
29
- tme/preprocessor.py,sha256=ylVO-D1o9lpvvApXEymkmtdRrvaFd2HrJSn9nsWcMTs,51225
30
- tme/structure.py,sha256=mIhDhGksMf8cSARr0ofNhJQUpQIdpKZtJsX63Law2z0,52503
31
- tme/types.py,sha256=2Tyh_xnMLxIWYb3aJDAUb6GWpaL6gcYMUm2YNbJlAPI,295
32
- tme/backends/__init__.py,sha256=xNX4Vx182F57AwZjb0DwLJA-sps6DixnDRWPcMlOvWw,4397
33
- tme/backends/cupy_backend.py,sha256=1Wsnoo0HiIELRGb8wT9VZJ5spVEU5-DVbyyY092RixI,13230
34
- tme/backends/jax_backend.py,sha256=uq_Vk_ofb5JG9IGg3SfHn3YqcBD9c4wWypgdCu9HTno,7372
35
- tme/backends/matching_backend.py,sha256=eFoowia-uzc1UYAq9AnDN3CMN31rWAT1ilCskH6sruw,29876
36
- tme/backends/mlx_backend.py,sha256=pq4U3m3-dAkSC5y6P0R1CayvVKwi5rZjTVoeG4XOQ8g,8569
37
- tme/backends/npfftw_backend.py,sha256=_PzGKO6fuo20RofChRqq7WlfqVm-6Ne6tMPEyxB3fvE,27856
38
- tme/backends/pytorch_backend.py,sha256=cY3KSQdLy80NVvKSMy5Jj6HzD1UDsLRQTeC2WA70Abo,18694
39
- tme/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
40
- tme/data/c48n309.npy,sha256=NwH64mOEbm3tStq5c98o81fY1vMOoq4nvXDAh7Z7iZg,296768
41
- tme/data/c48n527.npy,sha256=saSUMTa1R0MisPvgFL02a7IHQSwEZ-mJu0v3qJjg5AU,506048
42
- tme/data/c48n9.npy,sha256=bDVLV6mWjZHSQfeDc-MOCKKarfc1jaNeVvpoe2xMUy4,8768
43
- tme/data/c48u1.npy,sha256=JeXMFzFITs2ezdc3x5lp3jo1cHHHHVADSA1Tpf77kXs,1088
44
- tme/data/c48u1153.npy,sha256=ECiEximtYDWtIux3Fwe_EJlyn08gUqP85DN9gjkT9_k,1107008
45
- tme/data/c48u1201.npy,sha256=aceC_Jeienz_81X4520nPpZcg5tnRhbW795EqbpWkrg,1153088
46
- tme/data/c48u1641.npy,sha256=p4LwW3LzdTjrUUpA7H53RfNWxYfPX0XjeSwZ39Ac78Q,1575488
47
- tme/data/c48u181.npy,sha256=mLYXrv1YHLH6DsBp5MkxHkxlxgMnj1mw_KKI0udH-FY,173888
48
- tme/data/c48u2219.npy,sha256=p8TQeX8YHu4pdxnwJjEAlQWAPa66W7kpK96iZKZr9JE,2130368
49
- tme/data/c48u27.npy,sha256=k03ZNEsoPwBKCy8IeIa5G0WRZqjGZMtX6Ibu7EpJHvU,26048
50
- tme/data/c48u2947.npy,sha256=icI97ED6ct66y7FIaJAugmjzrIWk7CINCxtO3wDTnrU,2829248
51
- tme/data/c48u3733.npy,sha256=tla-__Pf-hpN6h04vtFIfkkFdCLple11VO06kr1dXkM,3583808
52
- tme/data/c48u4749.npy,sha256=tItOA4oV7SiqCCREwz3fyEpZoxM0lCq_jfEo5_-fp2s,4559168
53
- tme/data/c48u5879.npy,sha256=bFk89MllIFCX_sLXTYWFquSyN1NuahH4wwnEsPJLxzA,5643968
54
- tme/data/c48u7111.npy,sha256=CMy9kI2edH-q9eTIVdgUtXurplYNI7Uqp4dXfkkVdf8,6826688
55
- tme/data/c48u815.npy,sha256=bCuJxLtm0Sjg3GGxtyjGzRYZ1G0Gz79XHI-71GvqQnI,782528
56
- tme/data/c48u83.npy,sha256=7ODJYnsiuDjGbgd9GFopsyIW2IjrYI0J2X2f-cK868U,79808
57
- tme/data/c48u8649.npy,sha256=-IPlpR4zrPQZWhhSPu4zEulFdrCEVgTMFffCB5d-huE,8303168
58
- tme/data/c600v.npy,sha256=JqSu3ALoL1A9iguehc0YGUMFPsh2fprHHp76VXeFXIw,2528
59
- tme/data/c600vc.npy,sha256=Yht-GFXDSjjGvsjFBvyxxEZAI-ODADPd5gEgFNZQVTA,14528
60
- tme/data/metadata.yaml,sha256=fAgX-mEzB0QMHTEtYDG4cSMbJhYxBbDJH3sdvJvL7a8,750
61
- tme/data/quat_to_numpy.py,sha256=-gkDZb10fKBxwfYrSLCUWvMB76TzZWELCeKsYProwws,1333
62
- tme/preprocessing/__init__.py,sha256=7O3vDzJcIfxovJkf7avWSPtzaIVlTbmsW7egQFukC_s,98
63
- tme/preprocessing/_utils.py,sha256=jj5VSRLewO4uk0cHoEhpw2rTU9taT8iuZCijvbFcrw0,5190
64
- tme/preprocessing/composable_filter.py,sha256=sp3bN8JeFB2r384cEIgvN6yXjC53GCoPhBmGI0S0kbI,781
65
- tme/preprocessing/compose.py,sha256=tbQMo3LaKRBnOFKoqZ64as3i0t6U6312s76Csz0FPvk,1324
66
- tme/preprocessing/frequency_filters.py,sha256=k3MvXTBeoETTp5WINpqxEcmhiHSFh90QyAJBXe-fGxs,12614
67
- tme/preprocessing/tilt_series.py,sha256=OaYMuN4e0F5Z7tuNVwG_kn69E4zPAU6_xIoA5B-IQUw,34747
68
- pytme-0.2.1.dist-info/LICENSE,sha256=K1IUNSVAz8BXbpH5EA8y5FpaHdvFXnAF2zeK95Lr2bY,18467
69
- pytme-0.2.1.dist-info/METADATA,sha256=pTq0YVA2oWM7Zo8p-lk6ynkuZsEHAPnDDEbzcbEon_4,2165
70
- pytme-0.2.1.dist-info/WHEEL,sha256=BDgKu9_KNfDn85ptly0T56JpX4avXH07X_ZCqAJnQwY,110
71
- pytme-0.2.1.dist-info/entry_points.txt,sha256=ff3LQL3FCWfCYOwFiP9zatm7laUbnwCkuPELkQVyUO4,241
72
- pytme-0.2.1.dist-info/top_level.txt,sha256=J8FUkazOb2fZ0n_KexnqCGyNOtie2bwisFSUBiM5-0w,12
73
- pytme-0.2.1.dist-info/RECORD,,