pytme 0.3b0__cp311-cp311-macosx_15_0_arm64.whl → 0.3.1__cp311-cp311-macosx_15_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 (73) hide show
  1. {pytme-0.3b0.data → pytme-0.3.1.data}/scripts/estimate_memory_usage.py +1 -5
  2. {pytme-0.3b0.data → pytme-0.3.1.data}/scripts/match_template.py +177 -226
  3. {pytme-0.3b0.data → pytme-0.3.1.data}/scripts/postprocess.py +69 -47
  4. {pytme-0.3b0.data → pytme-0.3.1.data}/scripts/preprocess.py +10 -23
  5. {pytme-0.3b0.data → pytme-0.3.1.data}/scripts/preprocessor_gui.py +98 -28
  6. pytme-0.3.1.data/scripts/pytme_runner.py +1223 -0
  7. {pytme-0.3b0.dist-info → pytme-0.3.1.dist-info}/METADATA +15 -15
  8. pytme-0.3.1.dist-info/RECORD +133 -0
  9. {pytme-0.3b0.dist-info → pytme-0.3.1.dist-info}/entry_points.txt +1 -0
  10. pytme-0.3.1.dist-info/licenses/LICENSE +339 -0
  11. scripts/estimate_memory_usage.py +1 -5
  12. scripts/eval.py +93 -0
  13. scripts/extract_candidates.py +118 -99
  14. scripts/match_template.py +177 -226
  15. scripts/match_template_filters.py +1200 -0
  16. scripts/postprocess.py +69 -47
  17. scripts/preprocess.py +10 -23
  18. scripts/preprocessor_gui.py +98 -28
  19. scripts/pytme_runner.py +1223 -0
  20. scripts/refine_matches.py +156 -387
  21. tests/data/.DS_Store +0 -0
  22. tests/data/Blurring/.DS_Store +0 -0
  23. tests/data/Maps/.DS_Store +0 -0
  24. tests/data/Raw/.DS_Store +0 -0
  25. tests/data/Structures/.DS_Store +0 -0
  26. tests/preprocessing/test_frequency_filters.py +19 -10
  27. tests/preprocessing/test_utils.py +18 -0
  28. tests/test_analyzer.py +122 -122
  29. tests/test_backends.py +4 -9
  30. tests/test_density.py +0 -1
  31. tests/test_matching_cli.py +30 -30
  32. tests/test_matching_data.py +5 -5
  33. tests/test_matching_utils.py +11 -61
  34. tests/test_rotations.py +1 -1
  35. tme/__version__.py +1 -1
  36. tme/analyzer/__init__.py +1 -1
  37. tme/analyzer/_utils.py +5 -8
  38. tme/analyzer/aggregation.py +28 -9
  39. tme/analyzer/base.py +25 -36
  40. tme/analyzer/peaks.py +49 -122
  41. tme/analyzer/proxy.py +1 -0
  42. tme/backends/_jax_utils.py +31 -28
  43. tme/backends/_numpyfftw_utils.py +270 -0
  44. tme/backends/cupy_backend.py +11 -54
  45. tme/backends/jax_backend.py +72 -48
  46. tme/backends/matching_backend.py +6 -51
  47. tme/backends/mlx_backend.py +1 -27
  48. tme/backends/npfftw_backend.py +95 -90
  49. tme/backends/pytorch_backend.py +5 -26
  50. tme/density.py +7 -10
  51. tme/extensions.cpython-311-darwin.so +0 -0
  52. tme/filters/__init__.py +2 -2
  53. tme/filters/_utils.py +32 -7
  54. tme/filters/bandpass.py +225 -186
  55. tme/filters/ctf.py +138 -87
  56. tme/filters/reconstruction.py +38 -9
  57. tme/filters/wedge.py +98 -112
  58. tme/filters/whitening.py +1 -6
  59. tme/mask.py +341 -0
  60. tme/matching_data.py +20 -44
  61. tme/matching_exhaustive.py +46 -56
  62. tme/matching_optimization.py +2 -1
  63. tme/matching_scores.py +216 -412
  64. tme/matching_utils.py +82 -424
  65. tme/memory.py +1 -1
  66. tme/orientations.py +16 -8
  67. tme/parser.py +109 -29
  68. tme/preprocessor.py +2 -2
  69. tme/rotations.py +1 -1
  70. pytme-0.3b0.dist-info/RECORD +0 -122
  71. pytme-0.3b0.dist-info/licenses/LICENSE +0 -153
  72. {pytme-0.3b0.dist-info → pytme-0.3.1.dist-info}/WHEEL +0 -0
  73. {pytme-0.3b0.dist-info → pytme-0.3.1.dist-info}/top_level.txt +0 -0
tme/parser.py CHANGED
@@ -16,7 +16,14 @@ from typing import List, Dict, Union
16
16
 
17
17
  import numpy as np
18
18
 
19
- __all__ = ["PDBParser", "MMCIFParser", "GROParser", "StarParser", "XMLParser"]
19
+ __all__ = [
20
+ "PDBParser",
21
+ "MMCIFParser",
22
+ "GROParser",
23
+ "StarParser",
24
+ "XMLParser",
25
+ "MDOCParser",
26
+ ]
20
27
 
21
28
 
22
29
  class Parser(ABC):
@@ -85,6 +92,34 @@ class Parser(ABC):
85
92
  """
86
93
  return key in self._data
87
94
 
95
+ def __repr__(self) -> str:
96
+ """
97
+ String representation of the Parser showing available keys and their lengths.
98
+
99
+ Returns
100
+ -------
101
+ str
102
+ A formatted string showing each key and the length of its value.
103
+ """
104
+ if not self._data:
105
+ return f"{self.__class__.__name__}(empty)"
106
+
107
+ lines = [f"{self.__class__.__name__}:"]
108
+ try:
109
+ for key, value in sorted(self._data.items()):
110
+ if isinstance(value, (list, tuple)):
111
+ lines.append(f" {key}: length {len(value)}")
112
+ elif isinstance(value, dict):
113
+ lines.append(f" {key}: dict with {len(value)} keys")
114
+ elif isinstance(value, str):
115
+ lines.append(f" {key}: str")
116
+ else:
117
+ lines.append(f" {key}: {type(value).__name__}")
118
+ except Exception:
119
+ pass
120
+
121
+ return "\n".join(lines)
122
+
88
123
  def get(self, key, default=None):
89
124
  """
90
125
  Retrieve a value from the internal data using a given key. If the
@@ -248,19 +283,6 @@ class MMCIFParser(Parser):
248
283
  """
249
284
 
250
285
  def parse_input(self, lines: deque) -> Dict:
251
- """
252
- Parse a list of lines from an MMCIF file and convert the data into a dictionary.
253
-
254
- Parameters
255
- ----------
256
- lines : deque of str
257
- The lines of an MMCIF file to parse.
258
-
259
- Returns
260
- -------
261
- dict
262
- A dictionary containing the parsed data from the MMCIF file.
263
- """
264
286
  lines = self._consolidate_strings(lines)
265
287
  blocks = self._split_in_blocks(lines)
266
288
  mmcif_dict = {}
@@ -449,21 +471,6 @@ class GROParser(Parser):
449
471
  """
450
472
 
451
473
  def parse_input(self, lines, **kwargs) -> Dict:
452
- """
453
- Parse a list of lines from a GRO file and convert the data into a dictionary.
454
-
455
- Parameters
456
- ----------
457
- lines : deque of str
458
- The lines of a GRO file to parse.
459
- kwargs : Dict, optional
460
- Optional keyword arguments.
461
-
462
- Returns
463
- -------
464
- dict
465
- A dictionary containing the parsed data from the GRO file.
466
- """
467
474
  data = {
468
475
  "title": [],
469
476
  "num_atoms": [],
@@ -684,3 +691,76 @@ class XMLParser(Parser):
684
691
  pass
685
692
 
686
693
  return value_str
694
+
695
+
696
+ class MDOCParser(Parser):
697
+ """
698
+ Convert MDOC file (SerialEM metadata) into a dictionary representation.
699
+
700
+ MDOC files contain global parameters and per-tilt metadata for cryo-ET
701
+ tilt series, with sections marked by [ZValue = N] for individual tilts.
702
+ """
703
+
704
+ def parse_input(self, lines: deque, **kwargs) -> Dict:
705
+ data = {}
706
+ global_params = {}
707
+ in_zvalue_section = False
708
+ zvalue_pattern = re.compile(r"\[ZValue\s*=\s*(\d+)\]")
709
+ section_pattern = re.compile(r"\[T\s*=\s*(.*?)\]")
710
+
711
+ if not lines:
712
+ return data
713
+
714
+ while lines:
715
+ line = lines.popleft().strip()
716
+
717
+ if not line:
718
+ continue
719
+
720
+ # Check for ZValue section header
721
+ zvalue_match = zvalue_pattern.match(line)
722
+ if zvalue_match:
723
+ in_zvalue_section = True
724
+
725
+ zvalue = int(zvalue_match.group(1))
726
+ if "ZValue" not in data:
727
+ data["ZValue"] = []
728
+ data["ZValue"].append(zvalue)
729
+ continue
730
+
731
+ # Check for T section header (comments/metadata)
732
+ section_match = section_pattern.match(line)
733
+ if section_match:
734
+ section_content = section_match.group(1)
735
+ if "sections" not in global_params:
736
+ global_params["sections"] = []
737
+ global_params["sections"].append(section_content)
738
+ continue
739
+
740
+ # Parse key-value pairs
741
+ if "=" in line:
742
+ try:
743
+ key, value = line.split("=", 1)
744
+ key = key.strip()
745
+ value = value.strip()
746
+
747
+ try:
748
+ if "." not in value and "e" not in value.lower():
749
+ parsed_value = int(value)
750
+ else:
751
+ parsed_value = float(value)
752
+ except ValueError:
753
+ parsed_value = value
754
+
755
+ if not in_zvalue_section:
756
+ global_params[key] = parsed_value
757
+ else:
758
+ if key not in data:
759
+ data[key] = []
760
+ data[key].append(parsed_value)
761
+
762
+ except ValueError:
763
+ continue
764
+
765
+ data.update(global_params)
766
+ return data
tme/preprocessor.py CHANGED
@@ -670,9 +670,9 @@ class Preprocessor:
670
670
  NDArray
671
671
  Bandpass filtered.
672
672
  """
673
- from .filters import BandPassFilter
673
+ from .filters import BandPassReconstructed
674
674
 
675
- return BandPassFilter(
675
+ return BandPassReconstructed(
676
676
  sampling_rate=sampling_rate,
677
677
  lowpass=lowpass,
678
678
  highpass=highpass,
tme/rotations.py CHANGED
@@ -250,7 +250,7 @@ def get_rotation_matrices(
250
250
  """
251
251
  if dim == 3 and use_optimized_set:
252
252
  quaternions, *_ = _load_quaternions_by_angle(angular_sampling)
253
- ret = Rotation.from_quat(quaternions).as_matrix()
253
+ ret = Rotation.from_quat(quaternions, scalar_first=True).as_matrix()
254
254
  else:
255
255
  num_rotations = dim * (dim - 1) // 2
256
256
  k = int((360 / angular_sampling) ** num_rotations)
@@ -1,122 +0,0 @@
1
- pytme-0.3b0.data/scripts/estimate_memory_usage.py,sha256=ymDHkRcoFn0eXVHgJu3xh-y4bad5RV3CktH_v5lnDrI,2210
2
- pytme-0.3b0.data/scripts/match_template.py,sha256=_BSf2aCnJKYz0PKfagIUwFI4i8sFegWsvz-FSb99jp0,39405
3
- pytme-0.3b0.data/scripts/postprocess.py,sha256=itLpTUe6PtVPjJerL2ajsi4JFbi9n1Wqr8tN9H0z-BU,26964
4
- pytme-0.3b0.data/scripts/preprocess.py,sha256=Xq9e0on55QeWlAL-Eqo_NQZ2NXznUcj_19qKfIMdNVo,6686
5
- pytme-0.3b0.data/scripts/preprocessor_gui.py,sha256=gI4FrDOL0qDHdljZ8FWJ8J5V-nV6qccV0szfk4uwo6w,41859
6
- pytme-0.3b0.dist-info/licenses/LICENSE,sha256=K1IUNSVAz8BXbpH5EA8y5FpaHdvFXnAF2zeK95Lr2bY,18467
7
- scripts/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
8
- scripts/estimate_memory_usage.py,sha256=pAtEx0TRVjAPmd_Ea0-G4oICUyVdJGM03FgynjBBDPE,2211
9
- scripts/extract_candidates.py,sha256=GnJb7LI0z2UpMvOS3uY6oIXUJ90R4f2V1jPK5SvJbXg,7246
10
- scripts/match_template.py,sha256=mxnJhgXZoMJVcAHc0JgDanvwVyi2GGuc5G3DG9H9uKY,39406
11
- scripts/postprocess.py,sha256=m62N4LqQE2SWq93bHF_EgIpz136YXjSpunXNflSsEFw,26965
12
- scripts/preprocess.py,sha256=aDKBhv8NN8WAiP8LaHGm-eTfq3mcpNF5OBqMy8FcAmk,6687
13
- scripts/preprocessor_gui.py,sha256=MaIgt_0Mk-WNvXeJOrL1M41zgzjUgsdXXF5UJQ4xq54,41860
14
- scripts/refine_matches.py,sha256=Y17Ku_t0W9vglPNF2oU5EFrqoedJIm3lCGl-hXRHvjc,21920
15
- tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
16
- tests/test_analyzer.py,sha256=FczMo_S3Y1cIn4Z-U-iT_gsNTt9PJXYlIyvv3MX9i6o,8611
17
- tests/test_backends.py,sha256=29HlacgrX4fRjFXfzNNh3yDjqHRd7WvCFpTpRQwAsmA,17541
18
- tests/test_density.py,sha256=vzzy0Gk3uUR096aZgA-e5gOfLnw9qG3RH-xyXtHCO_I,18971
19
- tests/test_extensions.py,sha256=1Zv9dG_dmmC2mlbX91YIPyGLSToPC0202-ffLAfVcr4,5203
20
- tests/test_matching_cli.py,sha256=UxWQZD9gUSTFNdPsIumTr2bp2MFQKF2O4te0TT0Lxlk,11210
21
- tests/test_matching_data.py,sha256=TyvnSJPzdLPiXYWdz9coQ-m4H1tUS_cbD0WaBdvrevg,6062
22
- tests/test_matching_exhaustive.py,sha256=bRPCN0pyZk3DmXMrWRcEGAksYoch8P7fRiwE3g0yIf4,4039
23
- tests/test_matching_memory.py,sha256=XrBGRi4cIp3-4nN6s7tj0pBbFJrvJaG3vQdtK-6uzY0,1151
24
- tests/test_matching_optimization.py,sha256=bYt3d_nHewTRxKCXgGaMLhObkqBufGwrYL4gfinr_jE,7732
25
- tests/test_matching_utils.py,sha256=9wJPKh5LF_Vb75pKbXy-JT8u_FGLfWioA7nFcOkAto4,6356
26
- tests/test_orientations.py,sha256=ydqYZc3mOWSweFEGWMrMaygxX7-7in7forUtiNWfQKc,6767
27
- tests/test_parser.py,sha256=57oaksWrKNB4Z_22IxfW0nXMyQWLJFVsuvnJQPhMn10,993
28
- tests/test_rotations.py,sha256=CTEkpO8Z-6afgCIk2wGexXBaOqUeGJL2-krm1z4YRFY,5358
29
- tests/test_structure.py,sha256=Qgrex3wYl9TpFLcqMeUOkq-7w93bzEsMNStKdJdsbnw,8881
30
- tests/data/README.md,sha256=RMyG_mojKLo6AEIHUj40nTPI7ZGcs_6dRzWSRGxTgGY,83
31
- tests/data/Blurring/blob_width18.npy,sha256=_BVu5T2q_8N5lA2KCMUTLwknec8fHXh9Nsyoa4ov0wo,21408
32
- tests/data/Blurring/edgegaussian_sigma3.npy,sha256=OvxXAyJs5V_m7b91BFhBqS9BnisKWbckVcMlHuChQiY,21408
33
- tests/data/Blurring/gaussian_sigma2.npy,sha256=OS9sNpu0Y7l--X8dyB-mp-EE5eaNHISqiNkOOutllfc,21408
34
- tests/data/Blurring/hamming_width6.npy,sha256=yKdrOYGfHn-ER7GpTzASqfLZHkAR7AFeBcNRXrs4aIg,21408
35
- tests/data/Blurring/kaiserb_width18.npy,sha256=08grtR1E2dWRfksiPrEdN0nQwugd6o-TV5lKwnuLXQg,21408
36
- tests/data/Blurring/localgaussian_sigma0510.npy,sha256=KXASnlhxAnvvcgIDCniIHkak-NhsF_QmSV7j-p9kSk4,21408
37
- tests/data/Blurring/mean_size5.npy,sha256=2APwsCR_1fpwGIc_mG0dPegpcbgXhUbcEEeQo9Wa1iA,42688
38
- tests/data/Blurring/ntree_sigma0510.npy,sha256=HxYh_ItxdKulp8UiPMzQ0ze2iiQ3Oi7seWFvEzO1kWQ,21408
39
- tests/data/Blurring/rank_rank3.npy,sha256=MxCsomoNPmiV0Cd-5nl2S8TYCfLyEj-WV19gLH_xe0c,21408
40
- tests/data/Maps/emd_8621.mrc.gz,sha256=ZAlSOQRT9B_e8xpeodio9j0WBzygl2R1ctg9m8QhCRA,4572566
41
- tests/data/Raw/em_map.map,sha256=YeY_R0p-90-oZgxfbKGIsyE5bui_uWq9iGhWl0bLYZI,22304
42
- tests/data/Structures/1pdj.cif,sha256=QdO4e2ulO621PVoK3q9n0qDPDKnzJpV6sPeG6zQec1A,169343
43
- tests/data/Structures/1pdj.pdb,sha256=nTFGjecultoXNVUBDdsyho0CEzX5i1fSo_aBYDh5-pU,115749
44
- tests/data/Structures/5khe.cif,sha256=SnC0so37wyuoYwAX5UDTTLvQiknZXxeJrvkGai-11rw,214644
45
- tests/data/Structures/5khe.ent,sha256=AjXInxR_DgglZATzSNgB1rs7-LgAn2G1NdgnHb6fAmM,179010
46
- tests/data/Structures/5khe.pdb,sha256=AjXInxR_DgglZATzSNgB1rs7-LgAn2G1NdgnHb6fAmM,179010
47
- tests/data/Structures/5uz4.cif,sha256=KIcBaOf-RvOV4VRl1AU_EK4BsMxGXS8s8_UdlIhyeWk,6079401
48
- tests/preprocessing/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
49
- tests/preprocessing/test_compose.py,sha256=z44fgQhxJU0-zHSV0CLBMEJqwhK5gEFDhUCLuVsQpQc,2490
50
- tests/preprocessing/test_frequency_filters.py,sha256=EDSkQ8si5mZDEA8edqGBZSdTuooExjICSt5jGoOk3Ko,6705
51
- tests/preprocessing/test_preprocessor.py,sha256=XyR4xc4YM76PUKuTIiive76Q85DdcyDAvbXNGcoKL8w,4820
52
- tests/preprocessing/test_utils.py,sha256=2V1a9XtFZYmCyQzgsj0qWzWuXg-JAsOoG5_rtTwxvGg,3031
53
- tme/__init__.py,sha256=GXfIuzU4fh2KZfgUOIXnNeKlJ8kSp3EqoBr6bSik848,217
54
- tme/__version__.py,sha256=P5VZtc3R0HZUTa5n7H1OdUHLN6ZvKTYlVWMZKc0waOw,23
55
- tme/cli.py,sha256=48Q7QGIuCwNSms5wOnGmWjMSlZrXjAQUz_9zsIFT9tY,3652
56
- tme/density.py,sha256=5IGnbp7Lq8-N5mGPg_bmVIPTd5un63opD26qi8ZSke4,82416
57
- tme/extensions.cpython-311-darwin.so,sha256=vNaZYhhSrVlCjBlj5nzpKcnnJ_L_-84WhTRz2kWYK2Y,395696
58
- tme/matching_data.py,sha256=UIuFtu1yeNCaNfVUUsmnqV0zeMTcpW3s9ws6J2EBnP0,31230
59
- tme/matching_exhaustive.py,sha256=2cTWaqZo4_ZjJTQ0lHBmjmfQgwX3I60FrT1lUnkDsa8,18781
60
- tme/matching_optimization.py,sha256=xWWjCN_BsTEdHwkIs1-BgTh6ayh4e7SlwotSykDtix4,45687
61
- tme/matching_scores.py,sha256=AYbWqQmWdcK_7fEJ8keUsbACGg65RLqQea3CzsQ9_E4,41015
62
- tme/matching_utils.py,sha256=EqEmSppq6I6GXikBPKKmR14FYWOi4d8ki7juygX-sMs,37406
63
- tme/memory.py,sha256=UC8L00aINgz7po2xqwpZzKZRrnsoCJGp58rCjZSwGb4,9679
64
- tme/orientations.py,sha256=8t9QCLY4GkIOFZfUmqH_8v5ASFXLfRNweZJ4RXo_mfI,21060
65
- tme/parser.py,sha256=8FHO1meaoRqlM9bYuDqwqMKAQoQweO_BxYLIxOCQL0A,21557
66
- tme/preprocessor.py,sha256=Y2nYfEstuB7PSR-E_E5QgTDQh86Y5Ia2beIPDN_nP0Y,40363
67
- tme/rotations.py,sha256=VTWzVyfsih1qGeE5hHPvusAAsic2trWA7-bjyAizoYU,10622
68
- tme/structure.py,sha256=ojk-IQnIe1JrzxUVHlNlyLxtwzNkNykvxTaXvyBMmbs,72135
69
- tme/types.py,sha256=NAY7C4qxE6yz-DXVtClMvFfoOV-spWGLNfpLATZ1LcU,442
70
- tme/analyzer/__init__.py,sha256=nmGTRU9BWjBiqI1UOpuLCGbmXIi4ihtxDOmRUYZDW_M,88
71
- tme/analyzer/_utils.py,sha256=fYpobxbodYkMDNt8b5nGE5kce1TJq1ialS7dFq6oLsc,6404
72
- tme/analyzer/aggregation.py,sha256=knI_eqPBR48pIqqwxiVWlJDowr2oCkZ-QDT2eBr3Sys,27466
73
- tme/analyzer/base.py,sha256=1U9iKBZ3sFVuUsctpjcD37epKFaM30guBI7Z1xx8_Vk,4207
74
- tme/analyzer/peaks.py,sha256=qWm7r9cKb8cYLAIV63DK3xZ3SX3uO9srUb0DibL0WBg,34913
75
- tme/analyzer/proxy.py,sha256=lVPed8S0VVbyT2ZAdFMttW7razVX0azSsHyAmH2nKoo,4161
76
- tme/backends/__init__.py,sha256=VUvEnpfjmZQVn_9QHkLPBoa6y8M3gDyNNL9kq4OQNGE,5249
77
- tme/backends/_cupy_utils.py,sha256=scxCSK9BcsDaIbHR2mFxAJRIxdc0r5JTC1gCJmVJa64,24558
78
- tme/backends/_jax_utils.py,sha256=lKvRA-QbK661xd-xQYoqKsMYNT82gGd1VHGQse7krN0,5899
79
- tme/backends/cupy_backend.py,sha256=vpaDTw1gwit9zWrcTFtdt2LMPKEHB4LDDGsIFtcYCAA,9762
80
- tme/backends/jax_backend.py,sha256=GOIgoyLUOtMNBYOrxJmVrgkNnBNQEURq5pr6teuuYzg,10912
81
- tme/backends/matching_backend.py,sha256=eFBtFy4_kSoprFJugkXEZ8QYQsTFnJX46STRw6b70Aw,34856
82
- tme/backends/mlx_backend.py,sha256=DxcKJmORTDuFFJ6EVVhZOuuiYt88swc314M6MbmCfSw,7756
83
- tme/backends/npfftw_backend.py,sha256=RALpSuk3qXf7_MJhpgFTOT2oIJHnoYv_hovkSrcJGdY,19352
84
- tme/backends/pytorch_backend.py,sha256=C6VqgxajljhjjUbGz0C0bFq3nbQTzsqFl7POuwLYH24,15040
85
- tme/data/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
86
- tme/data/c48n309.npy,sha256=NwH64mOEbm3tStq5c98o81fY1vMOoq4nvXDAh7Z7iZg,296768
87
- tme/data/c48n527.npy,sha256=saSUMTa1R0MisPvgFL02a7IHQSwEZ-mJu0v3qJjg5AU,506048
88
- tme/data/c48n9.npy,sha256=bDVLV6mWjZHSQfeDc-MOCKKarfc1jaNeVvpoe2xMUy4,8768
89
- tme/data/c48u1.npy,sha256=JeXMFzFITs2ezdc3x5lp3jo1cHHHHVADSA1Tpf77kXs,1088
90
- tme/data/c48u1153.npy,sha256=ECiEximtYDWtIux3Fwe_EJlyn08gUqP85DN9gjkT9_k,1107008
91
- tme/data/c48u1201.npy,sha256=aceC_Jeienz_81X4520nPpZcg5tnRhbW795EqbpWkrg,1153088
92
- tme/data/c48u1641.npy,sha256=p4LwW3LzdTjrUUpA7H53RfNWxYfPX0XjeSwZ39Ac78Q,1575488
93
- tme/data/c48u181.npy,sha256=mLYXrv1YHLH6DsBp5MkxHkxlxgMnj1mw_KKI0udH-FY,173888
94
- tme/data/c48u2219.npy,sha256=p8TQeX8YHu4pdxnwJjEAlQWAPa66W7kpK96iZKZr9JE,2130368
95
- tme/data/c48u27.npy,sha256=k03ZNEsoPwBKCy8IeIa5G0WRZqjGZMtX6Ibu7EpJHvU,26048
96
- tme/data/c48u2947.npy,sha256=icI97ED6ct66y7FIaJAugmjzrIWk7CINCxtO3wDTnrU,2829248
97
- tme/data/c48u3733.npy,sha256=tla-__Pf-hpN6h04vtFIfkkFdCLple11VO06kr1dXkM,3583808
98
- tme/data/c48u4749.npy,sha256=tItOA4oV7SiqCCREwz3fyEpZoxM0lCq_jfEo5_-fp2s,4559168
99
- tme/data/c48u5879.npy,sha256=bFk89MllIFCX_sLXTYWFquSyN1NuahH4wwnEsPJLxzA,5643968
100
- tme/data/c48u7111.npy,sha256=CMy9kI2edH-q9eTIVdgUtXurplYNI7Uqp4dXfkkVdf8,6826688
101
- tme/data/c48u815.npy,sha256=bCuJxLtm0Sjg3GGxtyjGzRYZ1G0Gz79XHI-71GvqQnI,782528
102
- tme/data/c48u83.npy,sha256=7ODJYnsiuDjGbgd9GFopsyIW2IjrYI0J2X2f-cK868U,79808
103
- tme/data/c48u8649.npy,sha256=-IPlpR4zrPQZWhhSPu4zEulFdrCEVgTMFffCB5d-huE,8303168
104
- tme/data/c600v.npy,sha256=JqSu3ALoL1A9iguehc0YGUMFPsh2fprHHp76VXeFXIw,2528
105
- tme/data/c600vc.npy,sha256=Yht-GFXDSjjGvsjFBvyxxEZAI-ODADPd5gEgFNZQVTA,14528
106
- tme/data/metadata.yaml,sha256=fAgX-mEzB0QMHTEtYDG4cSMbJhYxBbDJH3sdvJvL7a8,750
107
- tme/data/quat_to_numpy.py,sha256=-gkDZb10fKBxwfYrSLCUWvMB76TzZWELCeKsYProwws,1333
108
- tme/data/scattering_factors.pickle,sha256=ZHktBc_AlS4H6uoER8AMmn5zOgjBwzgC92hUyww3Nik,38669
109
- tme/external/bindings.cpp,sha256=CIukugVf55LicY2uSCasHWQlrlO9GS2iUuCR3WLvncM,12912
110
- tme/filters/__init__.py,sha256=URdfFWPJrgHIHPbWZYkOV6BN4xTAOU41vMENyxgxxRw,261
111
- tme/filters/_utils.py,sha256=apH5Qgd3-YTA0a4DWPcsC0eg5zunqoVbMbCjPlbYupY,10098
112
- tme/filters/bandpass.py,sha256=7y0-7K8QNWDKVsHHWKjldk0CNgZjv8f5F7fmI0kvqZo,7837
113
- tme/filters/compose.py,sha256=yeC84D0HznqhRJ7guV6Cpxzq2UWpvV6nouhFECjIDEw,1980
114
- tme/filters/ctf.py,sha256=6NHOksV1yEs0KvG_nC5avdkhnJ0yVMJraGASYC4On4Y,21702
115
- tme/filters/reconstruction.py,sha256=BHcKPuz67tCS7wgoIzAihMiTNPuFAmKZfqIOBIlZoBA,6595
116
- tme/filters/wedge.py,sha256=bLawfE_oHWB1VvFpjb49GTkvxttq_FNLNWsvo4t1bCk,19920
117
- tme/filters/whitening.py,sha256=Wcepxg75M3hNtQ3NjCTdyjesZym3Cc52OAxztFdLsiE,6440
118
- pytme-0.3b0.dist-info/METADATA,sha256=lj3LgLZPoZf0yU_gMIXF-yLqFH4E--l8hiv2MhtksEA,5425
119
- pytme-0.3b0.dist-info/WHEEL,sha256=SPbiHAOPLnBtml4sk5MIwvWF6YnGfOfy9C__W6Bpeg4,109
120
- pytme-0.3b0.dist-info/entry_points.txt,sha256=elQ5JqLhmA3XX51WGIkm7hEdB_saxXKVMjqKqdHl--A,247
121
- pytme-0.3b0.dist-info/top_level.txt,sha256=ovCUR7UXXouH3zYt_fJLoqr_vtjp1wudFgjVAnztQLE,18
122
- pytme-0.3b0.dist-info/RECORD,,
@@ -1,153 +0,0 @@
1
- If you are not affiliated with a publicly funded academic, educational, or research institution, you must obtain a commercial license from EMBLEM (Info@embl-em.de).
2
-
3
- Software License Agreement
4
- (Academic Use Only)
5
-
6
-
7
- Agreed between
8
-
9
- The European Molecular Biology Laboratory, an intergovernmental institution under public international law established by treaty, headquartered at Meyerhofstraße 1, 69117 Heidelberg, Germany
10
- - hereinafter referred to as “EMBL” -
11
-
12
- and
13
-
14
- END-USERS AT PUBLIC FUNDED ACADEMIC, EDUCATION OR RESEARCH INSTITUTIONS
15
- - hereinafter referred to as “RECIPIENT” -
16
-
17
- EMBL and RECIPIENT each individually are referred to as a “Party” and collectively as the “Parties”.
18
-
19
-
20
- PREAMBLE
21
-
22
- EMBL is an intergovernmental institution under public international law having legal personality, and being granted a variety of privileges and immunities for itself and its staff necessary for the fulfilment of its objectives and for the exercise of its functions, including as established by the “Agreement establishing the European Molecular Biology Laboratory” concluded at Geneva on May 10, 1973, registered with UN-Treaty Series Volume 954, Nr. I-13668.
23
-
24
- EMBL has developed pyTME (Python Template Matching Engine), („Licensed Software“), a software library that generalizes template matching tasks with specialized tooling for cryo-electron microscopy data. The RECIPIENT intends to use the Licensed Software for research purposes only. For this purpose, the Parties agree on the following License Terms.
25
-
26
- 1. Licensed Software
27
-
28
- 1.1. EMBL will license the Licensed Software as agreed between the Parties in each individual case. The Licensed Software contains full access of all components of pyTME (excluding dependencies) and the respective documentation.
29
-
30
- 1.2. Any installation or configuration or training and further support are not part of these License Terms. The RECIPIENT can contact valentin.maurer@embl-hamburg.de for help with the installation of the Licensed Software.
31
-
32
- 2. Rights of Use
33
-
34
- 2.1. As of the Effective Date as defined in section 5 EMBL grants to RECIPIENT a royalty-free, non-exclusive, non-transferable, non-sublicensable right to use the Licensed Software for non-commercial research purposes. For the purposes of these License Terms commercial means any use that directly or indirectly serves the purpose of generating revenues of any kind, irrespective of any intention to make a profit (“Commercial Use”) and including the purpose of performing research projects contracted by third parties against any kind of compensation (“Contract Research”). In particular service projects and collaborative research with for-profit organizations are always considered Contract Research.
35
-
36
- 2.2. Commercial use of the Licensed Software, or derivative works based thereon, REQUIRES A COMMERCIAL LICENSE. Should RECIPIENT wish to make commercial use of the Licensed Software, RECIPIENT will contact EMBLEM (Info@embl-em.de) to negotiate an appropriate license for such use.
37
-
38
- 2.3. The user agrees that any reports or published results obtained with the Licensed Software will acknowledge its use by the citation of the publication associated with the Licensed Software.
39
-
40
- 2.4. The Parties agree that notwithstanding the above-mentioned granting of rights of use, EMBL shall remain the owner of all intellectual property rights in the Licensed Software, unless EMBL itself has licensed the Licensed Software from third parties.
41
-
42
- 2.5. Any derivative work should be clearly marked and renamed to notify users that it is a modified version and not the original Software distributed by EMBL.
43
-
44
- 2.6. RECIPIENT agrees to reproduce the copyright notice and other proprietary markings on any derivative work and to include in the documentation of such work the citation of the publication associated with the Licensed Software.
45
-
46
- 2.7. RECIPIENT who contributes their code to become an internal portion of the Licensed Software agrees that such code may be distributed by EMBL under the terms of this Software License Agreement and may, at EMBL’s sole discretion, be used or incorporated to make the basic operating framework of the Licensed Software a more stable, flexible, and/or useful product.
47
-
48
- 2.8. RECIPIENT is not entitled to:
49
-
50
- 2.8.1. use the Licensed Software for any Commercial Use including any Contract Research,
51
-
52
- 2.8.2. sell, rent or lend the Licensed Software to others,
53
-
54
- 2.8.3. to reverse engineer, edit, arrange, translate or decompile, decrypt, decode or otherwise attempt to discover any source code or trade secret related to the Licensed Software, unless for research purposes and at its own expense,
55
-
56
- 2.8.4. to use the Licensed Software or parts thereof to create an own comparable control software or to integrate the Licensed Software or parts thereof into own comparable control software, unless for research purposes and at its own expense,
57
-
58
- 2.8.5. to assign his rights and obligations resulting from these License Terms to third parties without directing such third parties to the GitHub page to this Software License Agreement and to obtain the Licensed Software themselves.
59
-
60
- 3. No Licensing Fee
61
-
62
- The Parties agree that the rights as described herein are granted without license fee.
63
-
64
- 4. No Warranty
65
-
66
- 4.1. EMBL does not assume any warranty for the Licensed Software itself or for the use or modification of the Licensed Software or any derivatives of the Licensed Software by RECIPIENT. EMBL will not assume any liability for damages occurring through the use or modification of the Licensed Software or its derivatives. EMBL does not guarantee the suitability of the Licensed Software or its derivatives for any applications.
67
-
68
- 4.2. The Licensed Software is provided “AS-IS” and “WITH ALL FAULTS”, without warranty of any kind or nature including, but not limited to, the implied warranties of merchantability or fitness for a particular purpose, which are expressly disclaimed. EMBL does not guarantee that the Licensed Software does not infringe any third party’s intellectual property rights (copyrights, patents, patent applications or other types of intellectual property rights). The RECIPIENT shall acquire on his own all necessary licenses for the use of the Licensed Software if not otherwise agreed in writing. RECIPIENT HEREBY ASSUMES ALL RESPONSIBILITY AND RISK FOR USE OF THE LICENSED SOFTWARE. IN NO EVENT SHALL EMBL (OR ANY OF ITS OFFICERS, DIRECTORS, SHAREHOLDERS, EMPLOYEES, SUBSIDIARIES, AFFILIATES, AGENTS OR ADVERTISERS), BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING, WITHOUT LIMITATION, INCIDENTAL AND CONSEQUENTIAL DAMAGES, LOST PROFITS, OR DAMAGES RESULTING FROM LOST DATA OR BUSINESS INTERRUPTION) RESULTING FROM OR ARISING UNDER OR IN CONNECTION WITH LICENSED SOFTWARE OR THE USE OR ACCESS TO, OR THE INABILITY TO USE OR ACCESS, THE LICENSED SOFTWARE, WHETHER BASED ON WARRANTY, CONTRACT, TORT, OR ANY OTHER LEGAL THEORY, AND WHETHER OR NOT EMBL IS ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.
69
-
70
- 4.3. The RECIPIENT is aware that the Licensed Software or its derivatives has no medical device approval and shall not used for any clinical purposes.
71
-
72
- The RECIPIENT will indemnify EMBL against any and all third party claims resulting from RECIPIENT’S use or modification of the Licensed Software and RECIPIENT will hold EMBL harmless for any claims on damages, which occur during or resulting from the RECIPIENT'S use or modification of the Licensed Software.
73
-
74
-
75
- 5. Effective Date, Term and Termination
76
-
77
- 5.1. These License Terms come into force after receipt of the Licensed Software by RECIPIENT or upon successful download of the Licensed Software, but no later than upon commencement of use by the RECIPIENT.
78
-
79
- 5.2. These License Terms shall be perpetual unless terminated in accordance with this Section 5
80
-
81
- 5.3. EMBL may, at its choice and without prejudice to any other legal right or remedy that it might otherwise have, terminate these License Terms for cause with immediate effect by written notice to the RECIPIENT upon the happening of any one of the following events:
82
-
83
- 5.3.1. any failure by the RECIPIENT to perform one or more of its obligations hereunder or any other breach hereof which shall not have been cured within sixty (60) days after receipt of written notice specifying the nature of such failure or breach;
84
-
85
- 5.3.2. the RECIPIENT makes a general assignment for the benefit of creditors or becomes insolvent or enters into liquidation or files bankruptcy;
86
-
87
- 5.3.3. a liquidator, trustee or similar person is appointed for all or substantially all of RECIPIENT property and is not removed within ninety (90) days.
88
-
89
-
90
- 5.4. Termination shall not release the Parties from any obligations arising from this Software License Agreement prior to the date of effectiveness of the termination.
91
-
92
- 5.5. Within ten (10) business days after termination of these License Terms, RECIPIENT shall delete or destroy all versions of the Licensed Software. Upon request of EMBL, the RECIPIENT must confirm in writing that the Licensed Software has been deleted or destroyed.
93
-
94
- 6. Confidentiality
95
-
96
- 6.1. The RECIPIENT agrees to maintain secrecy with regard to Confidential Information of EMBL, which RECIPIENT becomes aware of in connection with this Software License Agreement, and not to disclose such information to third parties or otherwise use it outside the scope of this Software License Agreement. This obligation shall survive the term of this Software License Agreement.
97
-
98
- 6.2. Confidential Information within the meaning of this Software License Agreement shall mean all information (whether in writing, electronically, orally, digitally embodied or in any other form) that is provided from EMBL to the RECIPIENT in connection with the performance of this Software License Agreement. Confidential information shall be deemed to include in particular:
99
-
100
- 6.2.1. Trade Secrets within the meaning of section 2 no. 1 German Trade Secrets Act (Gesetz zum Schutz von Geschäftsgeheimnissen) or corresponding regulations of foreign jurisdictions to the Receiving Party in an unauthorized manner., products, manufacturing processes, know-how, inventions, business relations, business strategies, business plans, financial planning, personnel matters, digitally embodied information (data);
101
-
102
- 6.2.2. any documents and information of EMBL which are subject to technical and organizational secrecy measures and which are marked as confidential or are to be considered confidential according to the nature of the information or the circumstances of the transmission;
103
-
104
-
105
- 6.3. The RECIPIENT is aware that the Confidential Information described above has not previously been generally known or readily accessible, either in its entirety or in its details, and is therefore of commercial value and is protected by EMBL through appropriate confidentiality measures. If a Confidential Information under this section 6 does not meet the requirements of a Trade Secret within the meaning of the Trade Secret Act (Geschäftsgeheimnisschutzgesetz), such information shall nevertheless be subject to the obligations of this section 6.
106
-
107
- 6.4. The obligations set out in this Software License Agreement do not apply if and to the extent that the respective Confidential Information,
108
-
109
-
110
- 6.4.1. that was known or generally accessible to the public prior to notification or transfer by EMBL or that becomes so at a later date without breach of any confidentiality obligation;
111
-
112
- 6.4.2. that was demonstrably already known to the RECIPIENT before disclosure by EMBL and without any breach of confidentiality obligation;
113
-
114
- 6.4.3. that was independently discovered or developed by the RECIPIENT without use or reference to Confidential Information by EMBL itself; or
115
-
116
- 6.4.4. that has been provided or made accessible to the RECIPIENT by an authorized third party without violation of a confidentiality obligation.
117
-
118
- 6.5. The RECIPIENT undertakes:
119
-
120
- 6.5.1. to keep the Confidential Information strictly confidential and to use it only in connection with the purpose of this Software License Agreement;
121
-
122
- 6.5.2. to disclose the Confidential Information only to such third parties who rely on the knowledge of such information for the performance of this Software License Agreement, provided that the RECIPIENT ensures that such third parties comply with this Software License Agreement as if they themselves were bound by this Software License Agreement;
123
-
124
- 6.5.3. to also secure the Confidential Information against unauthorized access by third parties by taking appropriate confidentiality measures and to comply with legal and contractual provisions on data protection when processing the Confidential Information. This also includes technical and organizational security measures adapted to the current state of the art (Art. 32 GDPR) and the obligation of the employees to maintain confidentiality and observe data protection (Art. 28 para. 3 lit. b) GDPR);
125
-
126
- 6.5.4. if the Recipient is obliged to disclose some or all of the Confidential Information due to applicable legal provisions, court or official orders or due to relevant stock exchange regulations, to inform the EMBL thereof (to the extent legally possible and practicable) immediately in writing and to make all reasonable efforts to keep the scope of disclosure to a minimum and, if necessary, to provide the EMBL with all reasonable assistance seeking a protective order (Schutzanordnung) against the disclosure of all or part of the Confidential Information.
127
-
128
- 6.6. Without prejudice to any rights it may have under the Trade Secret Act (Geschäftsgeheimnisschutzgesetz), EMBL shall have all property rights, rights of use and exploitation rights with respect to its Confidential Information, unless otherwise provided in this Software License Agreement. EMBL reserves the exclusive right to apply for (intellectual) property rights. The RECIPIENT shall not acquire any ownership or – with the exception of use for the purpose described in this Software License Agreement – any other rights of use to the Confidential Information (in particular know-how, patents applied for or granted thereon, copyrights or other property rights) on the basis of this Software License Agreement or otherwise on account of implied conduct.
129
-
130
- 6.7. The RECIPIENT shall refrain from exploiting or imitating Confidential Information outside the scope of its purpose in any manner whatsoever (in particular by means of reverse engineering) or having it exploited or imitated by third parties and, in particular, from applying for intellectual property rights – in particular trademarks, designs, patents or utility models (Gebrauchsmuster) – to the Confidential Information.
131
-
132
- 7. Miscellaneous
133
-
134
- 7.1. This Software License Agreement is written in the English language which shall be binding. Terms to which a German term has been added in parentheses and italics shall be interpreted throughout this Software License Agreement in accordance with the German term.
135
-
136
- 7.2. These License Terms constitute the complete understanding between the Parties regarding the subject matter. No oral or subsidiary agreements have been concluded or entered into. All previous agreements between the Parties with regard to the subject matter are replaced by these License Terms. Amendments, supplements and notices of termination of these License Terms must be made in writing. The rescission of these License Terms or an alteration of the requirement of the written form must also be made in writing. This written form requirement also applies to any changes of this section.
137
-
138
- 7.3. If individual provisions of these License Terms are ineffective, then this shall not affect the effectiveness of the remaining terms. However, the ineffective provision shall be deemed to be replaced by an effective provision, which is as close as possible to the commercially desired purpose of the ineffective provision; the same shall apply in the case of a gap.
139
-
140
- 7.4. The legal relations between the Parties regarding the subject matter shall be governed and construed by the laws of the Federal Republic of Germany excluding the United Nations Convention on Contracts for the International Sale of Goods (CISG) and German Private International Law.
141
-
142
- 7.5. In the event of any dispute or controversy arising from these License Terms or any breach thereof, the Parties shall attempt in good faith to settle the dispute amicably by negotiation. If the dispute or controversy cannot be solved amicably, the place of jurisdiction for all disputes arising from or in connection with the subject matter is Mannheim, Germany. The Parties agree that the arbitration shall be conducted as Expedited Proceedings and that Annex 4 of the DIS Arbitration Rules shall apply. In addition, EMBL can bring an action against RECIPIENT at the general place of jurisdiction of RECIPIENT.
143
-
144
- 7.6. Nothing in this Software License Agreement nor any document or activity under or in relation thereto shall be deemed or interpreted as a waiver, express or implied, of any privileges or immunities accorded to EMBL by its constituent documents or international law, or as the acceptance by EMBL of the jurisdiction of (i) the courts of any country, including in case of injunctive relief sought, or (ii) any national regulatory authority. Any references to any sets of rules, including, but not limited to, national laws, statutes, regulations and guidelines, shall, with respect to EMBL, be understood to refer to those sets of rules only to the extent these rules are applicable to EMBL as an intergovernmental institution, and, where EMBL has adopted its own sets of rules, to those sets of rules instead.
145
-
146
- 7.7. In accepting the terms of this Software License Agreement, the Recipient certifies their ownership of the Licensed Software’s dependencies, including but not limited to: FFTW3 (http://www.fftw.org/doc/License-and-Copyright.html).
147
-
148
-
149
- IN WITNESS WHEREOF, the RECIPIENT hereto has accepted the terms of this Software License Agreement and caused this Software License Agreement to be duly executed on the date of access to the Licensed Software service and by using the Licensed Software, downloading or installing this Licensed Software or data obtained with this Licensed Software.
150
-
151
- The RECIPIENT has read this Software License Agreement and agrees to uphold the terms and conditions of this Software License Agreement.
152
-
153
- UNDERSTOOD AND AGREED.
File without changes