emdbva 0.0.1.dev153__tar.gz → 0.0.1.dev156__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.
Files changed (58) hide show
  1. {emdbva-0.0.1.dev153/emdbva.egg-info → emdbva-0.0.1.dev156}/PKG-INFO +1 -1
  2. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156/emdbva.egg-info}/PKG-INFO +1 -1
  3. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/phenix_locres.py +25 -7
  4. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/chimerax_combined_locres.py +7 -8
  5. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/version.py +1 -1
  6. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/LICENSE +0 -0
  7. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/MANIFEST.in +0 -0
  8. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/README.rst +0 -0
  9. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/emdbva.egg-info/SOURCES.txt +0 -0
  10. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/emdbva.egg-info/dependency_links.txt +0 -0
  11. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/emdbva.egg-info/entry_points.txt +0 -0
  12. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/emdbva.egg-info/requires.txt +0 -0
  13. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/emdbva.egg-info/top_level.txt +0 -0
  14. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/setup.cfg +0 -0
  15. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/setup.py +0 -0
  16. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/PATHS_codon_airflow.py +0 -0
  17. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/__init__.py +0 -0
  18. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/audit/__init__.py +0 -0
  19. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/audit/cif_revision.py +0 -0
  20. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/mainva.py +0 -0
  21. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/__init__.py +0 -0
  22. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/bars.py +0 -0
  23. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/connected_percentage.py +0 -0
  24. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/contour_level_predicator.py +0 -0
  25. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/emda_mmcc.py +0 -0
  26. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/emringer.py +0 -0
  27. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/inclusion.py +0 -0
  28. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/map_data_validation.py +0 -0
  29. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/map_map_cc.py +0 -0
  30. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/overlap_percentage.py +0 -0
  31. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/phaserandomization.py +0 -0
  32. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/phenix_cc.py +0 -0
  33. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/phenix_mm.py +0 -0
  34. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/projections.py +0 -0
  35. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/qscore.py +0 -0
  36. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/residue_locres.py +0 -0
  37. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/resmap.py +0 -0
  38. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/smoc.py +0 -0
  39. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/strudel.py +0 -0
  40. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/surfaces.py +0 -0
  41. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/metrics/threedfsc.py +0 -0
  42. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/preparation.py +0 -0
  43. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/prepareandrun_codon_airflow.py +0 -0
  44. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/qscores.csv +0 -0
  45. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/schemas/__init__.py +0 -0
  46. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/schemas/emdb_entry_full.schema.json +0 -0
  47. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/schemas/loader.py +0 -0
  48. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/Checker.py +0 -0
  49. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/ChimeraxViews.py +0 -0
  50. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/MapProcessor.py +0 -0
  51. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/Model.py +0 -0
  52. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/__init__.py +0 -0
  53. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/cl_weights.pth +0 -0
  54. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/log_utils.py +0 -0
  55. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/misc.py +0 -0
  56. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/rescolor.py +0 -0
  57. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/utils/stars.py +0 -0
  58. {emdbva-0.0.1.dev153 → emdbva-0.0.1.dev156}/va/validationanalysis.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emdbva
3
- Version: 0.0.1.dev153
3
+ Version: 0.0.1.dev156
4
4
  Summary: CryoEM validation toolkit
5
5
  Home-page: https://test.pypi.org/project/va/
6
6
  Author: Zhe Wang
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: emdbva
3
- Version: 0.0.1.dev153
3
+ Version: 0.0.1.dev156
4
4
  Summary: CryoEM validation toolkit
5
5
  Home-page: https://test.pypi.org/project/va/
6
6
  Author: Zhe Wang
@@ -222,17 +222,23 @@ def create_local_resolution_views(chimerax, map_path, resolution_map, contour, o
222
222
  return '"{}"'.format(os.path.abspath(path).replace('\\', '\\\\').replace('"', '\\"'))
223
223
 
224
224
  script_path = os.path.join(output_dir, prefix + '_chimerax.cxc')
225
- images = {axis: prefix + '_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')}
225
+ images = {
226
+ 'original': {axis: prefix + '_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')},
227
+ 'scaled': {axis: prefix + '_scaled_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')},
228
+ }
226
229
  with open(script_path, 'w', encoding='utf-8') as script:
227
230
  script.write('open {}\nvolume #1 style surface\nvolume #1 step 1\n'.format(quoted(map_path)))
228
231
  script.write('volume #1 level {}\n'.format(float(contour)))
229
232
  script.write('open {}\nvolume #2 style surface\nvolume #2 step 1\n'.format(quoted(resolution_map)))
230
233
  script.write('hide #2 models\nset bgColor #B8B8B8\ncolor sample #1 map #2 palette blue:white:red range full key true\n')
231
- script.write('key pos 0.25,0.05 size 0.53,0.015 labelSide right/bottom fontSize 9 border false labelColor black\n')
234
+ script.write('key pos 0.25,0.12 size 0.53,0.015 labelSide right/bottom fontSize 9 border false labelColor black\n')
232
235
  for axis, rotation in (('z', ''), ('x', 'turn y 90\n'), ('y', 'turn x -90\n')):
233
236
  script.write('view orient\n' + rotation)
234
237
  script.write('view #1 pad 0.25 cofr true\n')
235
- script.write('save {} width 1200 height 1200\n'.format(quoted(os.path.join(output_dir, images[axis]))))
238
+ script.write('save {} width 1200 height 1200\n'.format(
239
+ quoted(os.path.join(output_dir, images['original'][axis]))))
240
+ script.write('save {} width 300 height 300\n'.format(
241
+ quoted(os.path.join(output_dir, images['scaled'][axis]))))
236
242
  script.write('exit\n')
237
243
  has_display = bool(os.environ.get('DISPLAY') or os.environ.get('WAYLAND_DISPLAY'))
238
244
  if sys.platform == 'darwin' and not os.environ.get('SSH_CONNECTION'):
@@ -242,7 +248,10 @@ def create_local_resolution_views(chimerax, map_path, resolution_map, contour, o
242
248
  command.extend(['--offscreen', '--nogui'])
243
249
  command.append(script_path)
244
250
  subprocess.run(command, cwd=output_dir, check=True)
245
- missing = [name for name in images.values() if not os.path.isfile(os.path.join(output_dir, name))]
251
+ missing = [
252
+ name for size_images in images.values() for name in size_images.values()
253
+ if not os.path.isfile(os.path.join(output_dir, name))
254
+ ]
246
255
  if missing:
247
256
  raise RuntimeError('ChimeraX did not produce images: {}'.format(', '.join(missing)))
248
257
  return images
@@ -276,7 +285,10 @@ def create_combined_local_resolution_views(chimerax, map_path, resolution_map, m
276
285
  raise ValueError('Residue identifiers and local-resolution values do not match.')
277
286
  with open(config_path, 'w', encoding='utf-8') as config_file:
278
287
  json.dump({'residues': residue_specs, 'values': values}, config_file, allow_nan=False)
279
- images = {axis: prefix + '_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')}
288
+ images = {
289
+ 'original': {axis: prefix + '_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')},
290
+ 'scaled': {axis: prefix + '_scaled_' + axis.upper() + '.png' for axis in ('x', 'y', 'z')},
291
+ }
280
292
  with open(script_path, 'w', encoding='utf-8') as script:
281
293
  script.write('open {}\nvolume #1 style surface\nvolume #1 step 1\n'.format(quoted(map_path)))
282
294
  script.write('volume #1 level {}\n'.format(float(contour)))
@@ -291,7 +303,10 @@ def create_combined_local_resolution_views(chimerax, map_path, resolution_map, m
291
303
  script.write('set bgColor #B8B8B8\n')
292
304
  for axis, rotation in (('z', ''), ('x', 'turn y 90\n'), ('y', 'turn x -90\n')):
293
305
  script.write('view orient\n' + rotation + 'view #1 pad 0.25 cofr true\n')
294
- script.write('save {} width 1200 height 1200\n'.format(quoted(os.path.join(output_dir, images[axis]))))
306
+ script.write('save {} width 1200 height 1200\n'.format(
307
+ quoted(os.path.join(output_dir, images['original'][axis]))))
308
+ script.write('save {} width 300 height 300\n'.format(
309
+ quoted(os.path.join(output_dir, images['scaled'][axis]))))
295
310
  script.write('exit\n')
296
311
  has_display = bool(os.environ.get('DISPLAY') or os.environ.get('WAYLAND_DISPLAY'))
297
312
  if sys.platform == 'darwin' and not os.environ.get('SSH_CONNECTION'):
@@ -300,7 +315,10 @@ def create_combined_local_resolution_views(chimerax, map_path, resolution_map, m
300
315
  if not has_display:
301
316
  command.extend(['--offscreen', '--nogui'])
302
317
  subprocess.run(command + [script_path], cwd=output_dir, check=True)
303
- missing = [name for name in images.values() if not os.path.isfile(os.path.join(output_dir, name))]
318
+ missing = [
319
+ name for size_images in images.values() for name in size_images.values()
320
+ if not os.path.isfile(os.path.join(output_dir, name))
321
+ ]
304
322
  if missing:
305
323
  raise RuntimeError('ChimeraX did not produce images: {}'.format(', '.join(missing)))
306
324
  return images
@@ -44,21 +44,20 @@ def color_combined_view(session, config):
44
44
  lower, upper = lower - 0.01, upper + 0.01
45
45
 
46
46
  run(session, 'color sample #1 map #2 palette blue:white:red range {},{} key true'.format(lower, upper))
47
- run(session, 'key blue: white: red: pos 0.25,0.08 size 0.5,0.02 border false')
48
- for label, limits, text_y, arrow_start, arrow_end in (
49
- ('Map', (map_lower, map_upper), 0.073, 0.074, 0.08),
50
- ('Model', (model_lower, model_upper), 0.110, 0.110, 0.10),
47
+ run(session, 'key blue: white: red: pos 0.25,0.14 size 0.5,0.02 '
48
+ 'labelSide right/bottom fontSize 9 labelColor black border false')
49
+ for label, limits, text_y in (
50
+ ('Map', (map_lower, map_upper), 0.105),
51
+ ('Model', (model_lower, model_upper), 0.185),
51
52
  ):
52
- run(session, '2dlabels text "{}" color black size 9 xpos 0.16 ypos {}'.format(label, text_y))
53
+ run(session, '2dlabels text "{}" color black size 6 xpos 0.16 ypos {}'.format(label, text_y))
53
54
  values = (limits[0], (limits[0] + limits[1]) / 2, limits[1])
54
55
  for value in sorted(set(values)):
55
56
  xpos = 0.25 + 0.5 * (value - lower) / (upper - lower)
56
- run(session, '2dlabels arrow start {},{} end {},{} color black weight 0.3 headStyle pointer'.format(
57
- xpos, arrow_start, xpos, arrow_end))
58
57
  label_x = xpos
59
58
  if label == 'Map' and value == map_lower:
60
59
  label_x = 0.25 + 0.5 * (model_lower - lower) / (upper - lower)
61
- run(session, '2dlabels text "{:.2f}" color black size 9 xpos {} ypos {}'.format(
60
+ run(session, '2dlabels text "{:.2f}" color black size 6 xpos {} ypos {}'.format(
62
61
  value, max(0.0, label_x - 0.012), text_y))
63
62
  colors = []
64
63
  for spec, value in zip(config['residues'], config['values']):
@@ -18,5 +18,5 @@ under the License.
18
18
 
19
19
  """
20
20
 
21
- __version__ = '0.0.1.dev153'
21
+ __version__ = '0.0.1.dev156'
22
22
  __em_statistics_version__ = '202505.v01'
File without changes
File without changes
File without changes
File without changes
File without changes