scipion-em-xmipp 24.6.0.0__tar.gz → 24.12.2__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 (225) hide show
  1. scipion-em-xmipp-24.6.0.0/CHANGES.md → scipion-em-xmipp-24.12.2/CHANGELOG.md +44 -2
  2. {scipion-em-xmipp-24.6.0.0/scipion_em_xmipp.egg-info → scipion-em-xmipp-24.12.2}/PKG-INFO +3 -3
  3. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/requirements.txt +4 -2
  4. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2/scipion_em_xmipp.egg-info}/PKG-INFO +3 -3
  5. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/scipion_em_xmipp.egg-info/SOURCES.txt +10 -6
  6. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/scipion_em_xmipp.egg-info/requires.txt +3 -2
  7. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/setup.py +5 -4
  8. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/__init__.py +110 -92
  9. scipion-em-xmipp-24.12.2/xmipp3/checkProtocolsConf.py +117 -0
  10. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/constants.py +3 -0
  11. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/convert/convert.py +31 -10
  12. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/__init__.py +4 -2
  13. scipion-em-xmipp-24.12.2/xmipp3/protocols/protocol_apply_tilt_to_ctf.py +114 -0
  14. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_cl2d.py +1 -1
  15. scipion-em-xmipp-24.12.2/xmipp3/protocols/protocol_cl2d_clustering.py +303 -0
  16. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_classify_pca.py +3 -1
  17. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_classify_pca_streaming.py +1 -0
  18. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_compare_reprojections.py +2 -2
  19. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_convert_pdb.py +9 -4
  20. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_create_gallery.py +84 -12
  21. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ctf_consensus.py +186 -273
  22. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ctf_defocus_group.py +4 -4
  23. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ctf_micrographs.py +12 -1
  24. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_deep_center.py +2 -2
  25. scipion-em-xmipp-24.12.2/xmipp3/protocols/protocol_deep_center_predict.py +140 -0
  26. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_extract_particles.py +1 -1
  27. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_flexalign.py +46 -47
  28. scipion-em-xmipp-24.12.2/xmipp3/protocols/protocol_mics_defocus_balancer.py +341 -0
  29. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_movie_alignment_consensus.py +1 -1
  30. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_movie_dose_analysis.py +159 -77
  31. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_movie_gain.py +5 -1
  32. scipion-em-xmipp-24.12.2/xmipp3/protocols/protocol_movie_max_shift.py +459 -0
  33. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_reconstruct_fourier.py +29 -14
  34. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_reconstruct_highres.py +15 -2
  35. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_simulate_ctf.py +1 -1
  36. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_subtract_projection.py +89 -28
  37. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_tilt_analysis.py +95 -191
  38. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_trigger_data.py +22 -12
  39. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_validate_fscq.py +1 -1
  40. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_adjust_sub.py +0 -4
  41. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_local_sharpening.py +34 -24
  42. scipion-em-xmipp-24.12.2/xmipp3/protocols.conf +233 -0
  43. scipion-em-xmipp-24.12.2/xmipp3/tests/test_protocols_deepcenter_predict.py +66 -0
  44. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_xmipp_2d.py +27 -7
  45. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_xmipp_3d.py +16 -755
  46. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_xmipp_mics.py +43 -4
  47. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_xmipp_movies.py +0 -169
  48. scipion-em-xmipp-24.12.2/xmipp3/version.py +38 -0
  49. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/__init__.py +3 -1
  50. scipion-em-xmipp-24.12.2/xmipp3/viewers/viewer_apply_tilt_to_ctf.py +81 -0
  51. scipion-em-xmipp-24.12.2/xmipp3/viewers/viewer_cl2d_clustering.py +131 -0
  52. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_movie_alignment.py +3 -9
  53. scipion-em-xmipp-24.6.0.0/xmipp3/protocols/protocol_angular_resolution_alignment.py +0 -204
  54. scipion-em-xmipp-24.6.0.0/xmipp3/protocols/protocol_movie_max_shift.py +0 -391
  55. scipion-em-xmipp-24.6.0.0/xmipp3/protocols/protocol_movie_opticalflow.py +0 -416
  56. scipion-em-xmipp-24.6.0.0/xmipp3/protocols.conf +0 -207
  57. scipion-em-xmipp-24.6.0.0/xmipp3/tests/test_protocols_angular_resolution_alignment.py +0 -88
  58. scipion-em-xmipp-24.6.0.0/xmipp3/tests/test_protocols_mixed_movies.py +0 -149
  59. scipion-em-xmipp-24.6.0.0/xmipp3/viewers/viewer_angular_resolution_alignment.py +0 -148
  60. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/LICENSE +0 -0
  61. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/MANIFEST.in +0 -0
  62. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/README.md +0 -0
  63. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/scipion_em_xmipp.egg-info/dependency_links.txt +0 -0
  64. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/scipion_em_xmipp.egg-info/entry_points.txt +0 -0
  65. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/scipion_em_xmipp.egg-info/top_level.txt +0 -0
  66. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/setup.cfg +0 -0
  67. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/base.py +0 -0
  68. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/bibtex.py +0 -0
  69. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/convert/__init__.py +0 -0
  70. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/convert/dataimport.py +0 -0
  71. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/convert/io_coordinates.py +0 -0
  72. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/programs.py +0 -0
  73. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_align_volume.py +0 -0
  74. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_align_volume_and_particles.py +0 -0
  75. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_analyze_local_ctf.py +0 -0
  76. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_angular_graph_consistency.py +0 -0
  77. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_apply_alignment.py +0 -0
  78. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_apply_transformation_matrix.py +0 -0
  79. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_apply_zernike3d.py +0 -0
  80. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_assignment_tilt_pair.py +0 -0
  81. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_break_symmetry.py +0 -0
  82. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_center_particles.py +0 -0
  83. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_cl2d_align.py +0 -0
  84. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_classes_2d_mapping.py +0 -0
  85. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_compare_angles.py +0 -0
  86. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_consensus_classes.py +0 -0
  87. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_consensus_local_ctf.py +0 -0
  88. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_core_analysis.py +0 -0
  89. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ctf_correct_wiener2d.py +0 -0
  90. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_deep_hand.py +0 -0
  91. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_deep_micrograph_screen.py +0 -0
  92. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_denoise_particles.py +0 -0
  93. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_eliminate_empty_images.py +0 -0
  94. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_enrich.py +0 -0
  95. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_extract_asymmetric_unit.py +0 -0
  96. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_extract_particles_movies.py +0 -0
  97. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_extract_particles_pairs.py +0 -0
  98. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_generate_reprojections.py +0 -0
  99. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_helical_parameters.py +0 -0
  100. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_kerdensom.py +0 -0
  101. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_local_ctf.py +0 -0
  102. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ml2d.py +0 -0
  103. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_movie_split_frames.py +0 -0
  104. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_multiple_fscs.py +0 -0
  105. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_multireference_alignability.py +0 -0
  106. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_normalize_strain.py +0 -0
  107. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_particle_pick.py +0 -0
  108. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_particle_pick_automatic.py +0 -0
  109. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_particle_pick_consensus.py +0 -0
  110. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_particle_pick_pairs.py +0 -0
  111. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_particle_pick_remove_duplicates.py +0 -0
  112. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_phantom_create.py +0 -0
  113. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_pick_noise.py +0 -0
  114. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_postProcessing_deepPostProcessing.py +0 -0
  115. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/__init__.py +0 -0
  116. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/geometrical_mask.py +0 -0
  117. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_add_noise.py +0 -0
  118. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_create_mask2d.py +0 -0
  119. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_create_mask3d.py +0 -0
  120. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_crop_resize.py +0 -0
  121. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_filter.py +0 -0
  122. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_image_operate.py +0 -0
  123. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_mask.py +0 -0
  124. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_movie_resize.py +0 -0
  125. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_preprocess.py +0 -0
  126. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess/protocol_process.py +0 -0
  127. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_preprocess_micrographs.py +0 -0
  128. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_projmatch/__init__.py +0 -0
  129. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_projmatch/projmatch_form.py +0 -0
  130. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_projmatch/projmatch_initialize.py +0 -0
  131. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_projmatch/projmatch_steps.py +0 -0
  132. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_projmatch/protocol_projmatch.py +0 -0
  133. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_random_conical_tilt.py +0 -0
  134. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_ransac.py +0 -0
  135. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_reconstruct_significant.py +0 -0
  136. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_reconstruct_swarm.py +0 -0
  137. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution3d.py +0 -0
  138. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution_bfactor.py +0 -0
  139. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution_deepres.py +0 -0
  140. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution_directional.py +0 -0
  141. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution_fso.py +0 -0
  142. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_resolution_monogenic_signal.py +0 -0
  143. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_rotate_volume.py +0 -0
  144. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_rotational_symmetry.py +0 -0
  145. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_screen_deepConsensus.py +0 -0
  146. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_screen_deeplearning.py +0 -0
  147. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_screen_particles.py +0 -0
  148. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_shift_particles.py +0 -0
  149. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_shift_volume.py +0 -0
  150. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_structure_map.py +0 -0
  151. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_structure_map_zernike3d.py +0 -0
  152. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_validate_nontilt.py +0 -0
  153. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_validate_overfitting.py +0 -0
  154. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_consensus.py +0 -0
  155. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_deform_zernike3d.py +0 -0
  156. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_local_adjust.py +0 -0
  157. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_volume_strain.py +0 -0
  158. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_write_testC.py +0 -0
  159. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/protocols/protocol_write_testP.py +0 -0
  160. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/__init__.py +0 -0
  161. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_convert_xmipp.py +0 -0
  162. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_angular_graph_consistency.py +0 -0
  163. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_apply_transformation_matrix.py +0 -0
  164. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_compare_angles.py +0 -0
  165. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_consensus_classes3D.py +0 -0
  166. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_ctf_consensus.py +0 -0
  167. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_extract_asymmetric_unit.py +0 -0
  168. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_monodir.py +0 -0
  169. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_multiple_fsc.py +0 -0
  170. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_multireference_alignability.py +0 -0
  171. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_reconstruct_fourier.py +0 -0
  172. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_screen_deepConsensus.py +0 -0
  173. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_simulate_ctf.py +0 -0
  174. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_validate_fscq.py +0 -0
  175. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocol_validate_overfitting.py +0 -0
  176. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_add_noise.py +0 -0
  177. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_continuousflex.py +0 -0
  178. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_deepVolPostprocessing.py +0 -0
  179. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_deepres.py +0 -0
  180. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_fso.py +0 -0
  181. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_highres.py +0 -0
  182. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_local_defocus.py +0 -0
  183. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_localdeblur.py +0 -0
  184. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_monores.py +0 -0
  185. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_realignment_classes.py +0 -0
  186. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_xmipp_movie_resize.py +0 -0
  187. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/tests/test_protocols_zernike3d.py +0 -0
  188. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/utils.py +0 -0
  189. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/plotter.py +0 -0
  190. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer.py +0 -0
  191. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_analyze_local_ctf.py +0 -0
  192. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_cl2d.py +0 -0
  193. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_consensus_classes.py +0 -0
  194. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_ctf_consensus.py +0 -0
  195. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_deepEMHancer.py +0 -0
  196. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_deep_consensus.py +0 -0
  197. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_deep_micrograph_cleaner.py +0 -0
  198. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_dose_analysis.py +0 -0
  199. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_eliminate_empty_images.py +0 -0
  200. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_extract_asymmetric_unit.py +0 -0
  201. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_local_sharpening.py +0 -0
  202. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_ml2d.py +0 -0
  203. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_normalize_strain.py +0 -0
  204. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_pdb_deform_zernike3d.py +0 -0
  205. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_projmatch.py +0 -0
  206. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_ransac.py +0 -0
  207. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_reconstruct_highres.py +0 -0
  208. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution3d.py +0 -0
  209. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution_bfactor.py +0 -0
  210. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution_deepres.py +0 -0
  211. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution_directional.py +0 -0
  212. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution_fso.py +0 -0
  213. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_resolution_monogenic_signal.py +0 -0
  214. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_structure_map.py +0 -0
  215. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_subtract_projection.py +0 -0
  216. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_swarm.py +0 -0
  217. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_validate_fscq.py +0 -0
  218. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_validate_nontilt.py +0 -0
  219. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_validate_overfitting.py +0 -0
  220. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_volume_consensus.py +0 -0
  221. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_volume_deform_zernike3d.py +0 -0
  222. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_volume_strain.py +0 -0
  223. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/viewers/viewer_volume_subtraction.py +0 -0
  224. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/wizards.py +0 -0
  225. {scipion-em-xmipp-24.6.0.0 → scipion-em-xmipp-24.12.2}/xmipp3/xmipp_logo.png +0 -0
@@ -1,3 +1,45 @@
1
+ ## Release 3.24.12.2 - Poseidon
2
+ - More scipion-em-xmipp
3
+ - Updating version for pypi requirements
4
+ - Bug cloning tag
5
+ ## Release 3.24.12 - Poseidon
6
+ - New protocols
7
+ - apply_tilt_to_ctf: Apply a local deviation to the CTF based on the micrograph's tilt
8
+ angle
9
+ - mics_defocus_balancer: It takes as input a certain number of CTFs and makes a balanced sampling of N images based on the defocus U values
10
+ - deep_center_predict: Center a set of particles in 2D using a neural network
11
+ - cl2d_clustering: 2D clustering protocol to group similar images (2D Averages or 2D Classes)
12
+
13
+ - Protocols updated
14
+ - flexalign: Added support for reading EER. Optimized and refactor the streaming, the continue action stabilized. FlexAlign can run multiple times in a single GPU or in multiple GPUs from within Scipion3.
15
+ - convert_pdb: now can read cif
16
+ - create_gallery: Allow Scipion protocol create gallery to access missing projection options
17
+ - ctf_consensus: optimized and refactor the streaming, the continue action stabilized. Remove parallelization
18
+ - movie_dose_analysis: optimized and refactor the streaming, the continue action stabilized
19
+ - movie_max_shift: optimized and refactor the streaming, the continue action stabilized, Remove parallelization
20
+ - tilt_analysis: optimized and refactor the streaming, the continue action stabilized
21
+ - subtract_projection: Adaptations for new logic in Xmipp program
22
+ - reconstruct_highres: Add GPU use for local angle assignment
23
+
24
+ - Protocols fixed
25
+ - trigger_data: Fix the way we split the output
26
+ - subtract_projection: fnMask sub
27
+ - classify_pca: Bug fix in the validate function
28
+ - reconstruct_fourier: Fourier reconstruction now allows performing the CTF correction inside the same protocol.
29
+ - volume_local_sharpening: local deblur performs now a single iteration by defaul
30
+ - movie_max_shift: fixed with several parallel threads in streaming
31
+ - reconstruct_highres: add unassigned vars fnVol1 fnVol2 to set loop
32
+ - ctf_defocus_group: fix when testing multiple downsampling factors
33
+ - ctf_micrographs: fix when testing multiple downsampling factors
34
+
35
+ - Protocols deprecated (For more details visit [this](https://github.com/I2PC/xmipp/wiki/Deprecating-programs-and-protocols))
36
+ - angular_resolution_alignment
37
+ - movie_opticalflow.py
38
+
39
+ - More scipion-em-xmipp
40
+ - scikit-learn updated to 1.2
41
+ - protocols.conf list completed. All protocols are listed and clustered in Scipion
42
+
1
43
  ## Release 3.24.06 - Oceanus
2
44
  - New protocols
3
45
  - movie_alignment_consensus: protocol for the comparison of two global alignments
@@ -28,7 +70,7 @@
28
70
  - metaprotocol_golden_highres
29
71
  - solid_angle
30
72
  - split_volume
31
- - More scipio-em-xmipp
73
+ - More scipion-em-xmipp
32
74
  - Solve Sonar Cloud reported bugs
33
75
  - Flexible import of pyQT on chimera script
34
76
  - Removing tkAgg matplotlib requirement in viewer_structure_map
@@ -58,7 +100,7 @@
58
100
  - classification_gpuCorr
59
101
  - classification_gpuCorr_full
60
102
  - classification_gpuCorr_semi
61
- - More scipio-em-xmipp
103
+ - More scipion-em-xmipp
62
104
  - Updated Nvidia driver required version
63
105
 
64
106
 
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: scipion-em-xmipp
3
- Version: 24.6.0.0
4
- Summary: Plugin to use Xmipp programs within the Scipion framework (see https://scipion-em.github.io/docs/).
3
+ Version: 24.12.2
4
+ Summary: Plugin to use Xmipp programs within the Scipion framework (see https://xmipp.i2pc.es/).
5
5
  Home-page: https://github.com/i2pc/scipion-em-xmipp
6
6
  Author: I2PC
7
- Author-email: scipion@cnb.csic.es
7
+ Author-email: xmipp@cnb.csic.es
8
8
  License: UNKNOWN
9
9
  Description: [![Build](https://github.com/I2PC/scipion-em-xmipp/actions/workflows/build.yml/badge.svg)](https://github.com/I2PC/scipion-em-xmipp/actions/workflows/build.yml)
10
10
 
@@ -1,9 +1,11 @@
1
1
  scipion-pyworkflow>=3.0.31
2
- scikit-learn==0.22
2
+ scikit-learn>=1.2
3
+ scikit-image
3
4
  scipion-em
5
+ scipion-app
4
6
  scipy<=1.10.0
5
7
  joblib
6
8
  peppercorn
7
9
  plotter
8
- scons
9
10
  PyWavelets
11
+
@@ -1,10 +1,10 @@
1
1
  Metadata-Version: 1.0
2
2
  Name: scipion-em-xmipp
3
- Version: 24.6.0.0
4
- Summary: Plugin to use Xmipp programs within the Scipion framework (see https://scipion-em.github.io/docs/).
3
+ Version: 24.12.2
4
+ Summary: Plugin to use Xmipp programs within the Scipion framework (see https://xmipp.i2pc.es/).
5
5
  Home-page: https://github.com/i2pc/scipion-em-xmipp
6
6
  Author: I2PC
7
- Author-email: scipion@cnb.csic.es
7
+ Author-email: xmipp@cnb.csic.es
8
8
  License: UNKNOWN
9
9
  Description: [![Build](https://github.com/I2PC/scipion-em-xmipp/actions/workflows/build.yml/badge.svg)](https://github.com/I2PC/scipion-em-xmipp/actions/workflows/build.yml)
10
10
 
@@ -1,4 +1,4 @@
1
- CHANGES.md
1
+ CHANGELOG.md
2
2
  LICENSE
3
3
  MANIFEST.in
4
4
  README.md
@@ -13,10 +13,12 @@ scipion_em_xmipp.egg-info/top_level.txt
13
13
  xmipp3/__init__.py
14
14
  xmipp3/base.py
15
15
  xmipp3/bibtex.py
16
+ xmipp3/checkProtocolsConf.py
16
17
  xmipp3/constants.py
17
18
  xmipp3/programs.py
18
19
  xmipp3/protocols.conf
19
20
  xmipp3/utils.py
21
+ xmipp3/version.py
20
22
  xmipp3/wizards.py
21
23
  xmipp3/xmipp_logo.png
22
24
  xmipp3/convert/__init__.py
@@ -28,8 +30,8 @@ xmipp3/protocols/protocol_align_volume.py
28
30
  xmipp3/protocols/protocol_align_volume_and_particles.py
29
31
  xmipp3/protocols/protocol_analyze_local_ctf.py
30
32
  xmipp3/protocols/protocol_angular_graph_consistency.py
31
- xmipp3/protocols/protocol_angular_resolution_alignment.py
32
33
  xmipp3/protocols/protocol_apply_alignment.py
34
+ xmipp3/protocols/protocol_apply_tilt_to_ctf.py
33
35
  xmipp3/protocols/protocol_apply_transformation_matrix.py
34
36
  xmipp3/protocols/protocol_apply_zernike3d.py
35
37
  xmipp3/protocols/protocol_assignment_tilt_pair.py
@@ -37,6 +39,7 @@ xmipp3/protocols/protocol_break_symmetry.py
37
39
  xmipp3/protocols/protocol_center_particles.py
38
40
  xmipp3/protocols/protocol_cl2d.py
39
41
  xmipp3/protocols/protocol_cl2d_align.py
42
+ xmipp3/protocols/protocol_cl2d_clustering.py
40
43
  xmipp3/protocols/protocol_classes_2d_mapping.py
41
44
  xmipp3/protocols/protocol_classify_pca.py
42
45
  xmipp3/protocols/protocol_classify_pca_streaming.py
@@ -52,6 +55,7 @@ xmipp3/protocols/protocol_ctf_correct_wiener2d.py
52
55
  xmipp3/protocols/protocol_ctf_defocus_group.py
53
56
  xmipp3/protocols/protocol_ctf_micrographs.py
54
57
  xmipp3/protocols/protocol_deep_center.py
58
+ xmipp3/protocols/protocol_deep_center_predict.py
55
59
  xmipp3/protocols/protocol_deep_hand.py
56
60
  xmipp3/protocols/protocol_deep_micrograph_screen.py
57
61
  xmipp3/protocols/protocol_denoise_particles.py
@@ -66,12 +70,12 @@ xmipp3/protocols/protocol_generate_reprojections.py
66
70
  xmipp3/protocols/protocol_helical_parameters.py
67
71
  xmipp3/protocols/protocol_kerdensom.py
68
72
  xmipp3/protocols/protocol_local_ctf.py
73
+ xmipp3/protocols/protocol_mics_defocus_balancer.py
69
74
  xmipp3/protocols/protocol_ml2d.py
70
75
  xmipp3/protocols/protocol_movie_alignment_consensus.py
71
76
  xmipp3/protocols/protocol_movie_dose_analysis.py
72
77
  xmipp3/protocols/protocol_movie_gain.py
73
78
  xmipp3/protocols/protocol_movie_max_shift.py
74
- xmipp3/protocols/protocol_movie_opticalflow.py
75
79
  xmipp3/protocols/protocol_movie_split_frames.py
76
80
  xmipp3/protocols/protocol_multiple_fscs.py
77
81
  xmipp3/protocols/protocol_multireference_alignability.py
@@ -155,15 +159,14 @@ xmipp3/tests/test_protocol_simulate_ctf.py
155
159
  xmipp3/tests/test_protocol_validate_fscq.py
156
160
  xmipp3/tests/test_protocol_validate_overfitting.py
157
161
  xmipp3/tests/test_protocols_add_noise.py
158
- xmipp3/tests/test_protocols_angular_resolution_alignment.py
159
162
  xmipp3/tests/test_protocols_continuousflex.py
160
163
  xmipp3/tests/test_protocols_deepVolPostprocessing.py
164
+ xmipp3/tests/test_protocols_deepcenter_predict.py
161
165
  xmipp3/tests/test_protocols_deepres.py
162
166
  xmipp3/tests/test_protocols_fso.py
163
167
  xmipp3/tests/test_protocols_highres.py
164
168
  xmipp3/tests/test_protocols_local_defocus.py
165
169
  xmipp3/tests/test_protocols_localdeblur.py
166
- xmipp3/tests/test_protocols_mixed_movies.py
167
170
  xmipp3/tests/test_protocols_monores.py
168
171
  xmipp3/tests/test_protocols_realignment_classes.py
169
172
  xmipp3/tests/test_protocols_xmipp_2d.py
@@ -176,8 +179,9 @@ xmipp3/viewers/__init__.py
176
179
  xmipp3/viewers/plotter.py
177
180
  xmipp3/viewers/viewer.py
178
181
  xmipp3/viewers/viewer_analyze_local_ctf.py
179
- xmipp3/viewers/viewer_angular_resolution_alignment.py
182
+ xmipp3/viewers/viewer_apply_tilt_to_ctf.py
180
183
  xmipp3/viewers/viewer_cl2d.py
184
+ xmipp3/viewers/viewer_cl2d_clustering.py
181
185
  xmipp3/viewers/viewer_consensus_classes.py
182
186
  xmipp3/viewers/viewer_ctf_consensus.py
183
187
  xmipp3/viewers/viewer_deepEMHancer.py
@@ -1,9 +1,10 @@
1
1
  scipion-pyworkflow>=3.0.31
2
- scikit-learn==0.22
2
+ scikit-learn>=1.2
3
+ scikit-image
3
4
  scipion-em
5
+ scipion-app
4
6
  scipy<=1.10.0
5
7
  joblib
6
8
  peppercorn
7
9
  plotter
8
- scons
9
10
  PyWavelets
@@ -11,7 +11,8 @@ from setuptools import setup, find_packages
11
11
  from codecs import open
12
12
  from os import path
13
13
 
14
- from xmipp3 import XMIPP_URL, __version__
14
+ from xmipp3 import XMIPP_URL
15
+ from xmipp3.version import __version__
15
16
 
16
17
  here = path.abspath(path.dirname(__file__))
17
18
 
@@ -46,12 +47,12 @@ setup(
46
47
  # For a discussion on single-sourcing the version across setup.py and the
47
48
  # project code, see
48
49
  # https://packaging.python.org/en/latest/single_source_version.html
49
- version=__version__, # Required
50
+ version=__version__[3:], # Remove the "3" from the number version
50
51
 
51
52
  # This is a one-line description or tagline of what your project does. This
52
53
  # corresponds to the "Summary" metadata field:
53
54
  # https://packaging.python.org/specifications/core-metadata/#summary
54
- description='Plugin to use Xmipp programs within the Scipion framework (see https://scipion-em.github.io/docs/).',
55
+ description='Plugin to use Xmipp programs within the Scipion framework (see https://xmipp.i2pc.es/).',
55
56
 
56
57
  # This is an optional longer description of your project that represents
57
58
  # the body of text which users will see when they visit PyPI.
@@ -75,7 +76,7 @@ setup(
75
76
 
76
77
  # This should be a valid email address corresponding to the author listed
77
78
  # above.
78
- author_email='scipion@cnb.csic.es', # Optional
79
+ author_email='xmipp@cnb.csic.es', # Optional
79
80
 
80
81
  # Classifiers help users find your project by categorizing it.
81
82
  #
@@ -27,36 +27,59 @@
27
27
  # **************************************************************************
28
28
 
29
29
  import json
30
- import subprocess
31
30
  from datetime import datetime
32
-
33
- from pyworkflow import Config
34
31
  import pwem
32
+ from pyworkflow import Config
35
33
  import pyworkflow.utils as pwutils
36
-
34
+ from scipion.install.funcs import CommandDef
35
+ from scipion import __version__ as scipionAppVersion
36
+ from packaging.version import Version
37
37
  from .base import *
38
- from .constants import XMIPP_HOME, XMIPP_URL, XMIPP_DLTK_NAME
38
+ from .version import *
39
+ from .constants import XMIPP_HOME, XMIPP_URL, XMIPP_DLTK_NAME, XMIPP_CUDA_BIN, XMIPP_CUDA_LIB, XMIPP_GIT_URL
39
40
 
40
- type_of_version = 'release' #'devel'
41
- _logo = "xmipp_logo" + ("" if type_of_version == 'release' else '_devel') + '.png'
42
41
 
43
42
  _references = ['delaRosaTrevin2013', 'Sorzano2013', 'Strelak2021']
44
- _currentBinVersion = '3.24.06.0'
45
- __version__ = _currentBinVersion[2:] + ".0" # Set this to ".0" on each xmipp binary release, otherwise increase it --> ".1", ".2", ...
46
-
43
+ _currentDepVersion = '1.0'
47
44
  # Requirement version variables
48
45
  NVIDIA_DRIVERS_MINIMUM_VERSION = 450
49
46
 
47
+ type_of_version = version.type_of_version
48
+ _logo = version._logo
49
+ _binTagVersion = version._binTagVersion
50
+ _pluginTagVersion= version._pluginTagVersion
51
+ _currentDepVersion = version._currentDepVersion
52
+ __version__ = version.__version__
53
+
54
+
50
55
  class Plugin(pwem.Plugin):
51
56
  _homeVar = XMIPP_HOME
52
57
  _pathVars = [XMIPP_HOME]
53
58
  _supportedVersions = []
54
59
  _url = XMIPP_URL
55
60
  _condaRootPath = None
56
-
61
+ # Refressing the plugin
62
+ # Inspects the call stack to find 'installPipModule' and sets 'self._plugin' to None.
63
+ # Uses CPython's internal API 'PyFrame_LocalsToFast' to sync changes.
64
+ # Risky and CPython-specific; use only if redesign is not possible.
65
+ try:
66
+ import inspect
67
+ import ctypes
68
+ for frameInfo in inspect.stack():
69
+ if frameInfo.function == "installPipModule":
70
+ frame = frameInfo[0]
71
+ frame.f_locals['self']._plugin = None
72
+ ctypes.pythonapi.PyFrame_LocalsToFast(
73
+ ctypes.py_object(frame),
74
+ ctypes.c_int(1))
75
+ except Exception as e:
76
+ print(e)
77
+
57
78
  @classmethod
58
79
  def _defineVariables(cls):
59
- cls._addVar(XMIPP_HOME, pwem.Config.XMIPP_HOME)
80
+ cls._defineEmVar(XMIPP_HOME, pwem.Config.XMIPP_HOME)
81
+ cls._defineVar(XMIPP_CUDA_BIN, pwem.Config.CUDA_BIN)
82
+ cls._defineVar(XMIPP_CUDA_LIB, pwem.Config.CUDA_LIB)
60
83
 
61
84
  @classmethod
62
85
  def getEnviron(cls, xmippFirst=True):
@@ -65,8 +88,8 @@ class Plugin(pwem.Plugin):
65
88
  pos = pwutils.Environ.BEGIN if xmippFirst else pwutils.Environ.END
66
89
 
67
90
  environ.update({
68
- 'PATH': pwem.Config.CUDA_BIN,
69
- 'LD_LIBRARY_PATH': pwem.Config.CUDA_LIB
91
+ 'PATH': cls.getVar(XMIPP_CUDA_BIN),
92
+ 'LD_LIBRARY_PATH': cls.getVar(XMIPP_CUDA_LIB)
70
93
  }, position=pwutils.Environ.END)
71
94
 
72
95
  if os.path.isfile(getXmippPath('xmippEnv.json')):
@@ -117,94 +140,88 @@ class Plugin(pwem.Plugin):
117
140
  Scipion-defined software can be used as dependencies
118
141
  by using its name as string.
119
142
  """
143
+
144
+ # Determine if we are on a development
145
+ bundleDir = cls.__getBundleDirectory()
146
+ develMode = bundleDir is not None
147
+
148
+ COMPILE_TARGETS = [
149
+ 'dist/bin/xmipp_image_header',
150
+ 'dist/xmipp.bashrc'
151
+ ]
152
+
153
+ # When changing dependencies, increment _currentDepVersion
154
+ CONDA_DEPENDENCIES = [
155
+ 'cmake>=3.17',
156
+ 'hdf5>=1.18',
157
+ 'sqlite>=3',
158
+ 'fftw>=3',
159
+ 'mpich-mpicxx',
160
+ 'c-compiler',
161
+ 'cxx-compiler',
162
+ 'make',
163
+ 'openjdk',
164
+ 'libtiff',
165
+ 'libjpeg-turbo'
166
+ ]
167
+
168
+ if os.environ['CONDA_PREFIX'] is not None: # TODO replace with pyworkflow method when available.
169
+ commands = CommandDef('conda install -c conda-forge ' + ' '.join(CONDA_DEPENDENCIES))
170
+ env.addPackage(
171
+ 'xmippDep', version=_currentDepVersion,
172
+ tar='void.tgz',
173
+ commands=commands.getCommands(),
174
+ neededProgs=['conda'],
175
+ default=False
176
+ )
177
+
178
+ if develMode:
179
+ env.addPackage(
180
+ 'xmippDev',
181
+ tar='void.tgz',
182
+ commands=[(f'cd {bundleDir} && ./xmipp', COMPILE_TARGETS)],
183
+ neededProgs=['git', 'gcc', 'g++', 'cmake', 'make'],
184
+ updateCuda=True,
185
+ default=False
186
+ )
187
+
188
+ xmippSrc = f'xmippSrc-{version._binTagVersion}'
189
+ installCommands = [
190
+ (f'cd .. && rm -rf {xmippSrc} && '
191
+ f'git clone {XMIPP_GIT_URL} {xmippSrc} && '
192
+ f'cd {xmippSrc} && '
193
+ f'git checkout {version._binTagVersion} && '
194
+ f'./xmipp --production True ', COMPILE_TARGETS)
195
+ ]
196
+ env.addPackage(
197
+ 'xmippSrc', version=version._binTagVersion,
198
+ tar='void.tgz',
199
+ commands=installCommands,
200
+ neededProgs=['git', 'gcc', 'g++', 'cmake', 'make'],
201
+ updateCuda=True,
202
+ default=not develMode
203
+ )
204
+
205
+ ## EXTRA PACKAGES ##
206
+ installDeepLearningToolkit(cls, env)
120
207
 
121
- ## XMIPP SOFTWARE ##
122
- xmippDeps = [] # Deps should be at requirements.txt (old: scons, joblib, scikit_learn)
123
-
124
- # Installation vars for commands formating
125
- verToken = getXmippPath('v%s' % _currentBinVersion)
126
- confToken = getXmippPath("xmipp.conf")
127
- installVars = {'installedToken': "installation_finished",
128
- 'bindingsToken': "bindings_linked",
129
- 'verToken': verToken,
130
- 'nProcessors': env.getProcessors(),
131
- 'xmippHome': getXmippPath(),
132
- 'bindingsSrc': getXmippPath('bindings', 'python'),
133
- 'bindingsDst': Config.getBindingsFolder(),
134
- 'xmippLib': getXmippPath('lib', 'libXmipp.so'),
135
- 'coreLib': getXmippPath('lib', 'libXmippCore.so'),
136
- 'libsDst': Config.getLibFolder(),
137
- 'confToken': confToken,
138
- 'strPlaceHolder': '%s', # to be replaced in the future
139
- 'currVersion': _currentBinVersion
140
- }
141
-
142
- ## Installation commands (removing bindingsToken)
143
- installCmd = ("cd {cwd} && {configCmd} && {compileCmd} N={nProcessors:d} && "
144
- "ln -srfn build {xmippHome} && cd - && "
145
- "touch {installedToken} && rm {bindingsToken} 2> /dev/null")
146
- installTgt = [getXmippPath('bin', 'xmipp_reconstruct_significant'),
147
- getXmippPath("lib/libXmippJNI.so"),
148
- installVars['installedToken']]
149
-
150
- ## Linking bindings (removing installationToken)
151
- bindingsAndLibsCmd = ("find {bindingsSrc} -maxdepth 1 -mindepth 1 "
152
- r"! -name __pycache__ -exec ln -srfn {{}} {bindingsDst} \; && "
153
- "ln -srfn {coreLib} {libsDst} && "
154
- "touch {bindingsToken} && "
155
- "rm {installedToken} 2> /dev/null")
156
- bindingsAndLibsTgt = [os.path.join(Config.getBindingsFolder(), 'xmipp_base.py'),
157
- os.path.join(Config.getBindingsFolder(), 'xmippLib.so'),
158
- os.path.join(Config.getLibFolder(), 'libXmipp.so'),
159
- installVars['bindingsToken']]
160
-
161
- sourceTgt = [getXmippPath('xmipp.bashrc')] # Target for xmippSrc and xmippDev
162
- ## Allowing xmippDev if devel mode detected
208
+ @classmethod
209
+ def __getBundleDirectory(cls):
163
210
  # plugin = scipion-em-xmipp <-- xmipp3 <-- __init__.py
164
211
  pluginDir = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
165
212
  # bundle = xmipp-bundle <- src <- scipion-em-xmipp
166
213
  bundleDir = os.path.dirname(os.path.dirname(pluginDir))
167
214
 
168
- isPypiDev = os.path.isfile(os.path.join(pluginDir, 'setup.py'))
169
- isXmippBu = (os.path.isdir(os.path.join(bundleDir, 'src')) and
170
- os.path.isfile(os.path.join(bundleDir, 'xmipp')))
171
- develMode = isPypiDev and isXmippBu
172
- if develMode:
173
- env.addPackage('xmippDev', tar='void.tgz',
174
- commands=[(installCmd.format(**installVars,
175
- cwd=bundleDir,
176
- configCmd='pwd',
177
- compileCmd='./xmipp all'),
178
- installTgt+sourceTgt),
179
- (bindingsAndLibsCmd.format(**installVars),
180
- bindingsAndLibsTgt)],
181
- deps=xmippDeps, default=False)
182
-
183
- avoidConfig = os.environ.get('XMIPP_NOCONFIG', 'False') == 'True'
184
- alreadyCompiled = os.path.isfile(getXmippPath('v' + _currentBinVersion)) # compilation token (see the xmipp script)
185
- configSrc = ('./xmipp check_config' if avoidConfig
186
- else './xmipp config noAsk && ./xmipp check_config')
187
- env.addPackage('xmippSrc', version=_currentBinVersion,
188
- # adding 'v' before version to fix a package target (post-link)
189
- tar='xmippSrc-v' + _currentBinVersion + '.tgz',
190
- commands=[(installCmd.format(**installVars, cwd='.',
191
- configCmd=configSrc,
192
- compileCmd='./xmipp compileAndInstall'),
193
- installTgt + sourceTgt),
194
- (bindingsAndLibsCmd.format(**installVars),
195
- bindingsAndLibsTgt)],
196
- deps=xmippDeps, default=not (develMode or alreadyCompiled))
197
-
198
- ## EXTRA PACKAGES ##
199
- installDeepLearningToolkit(cls, env)
200
-
201
-
215
+ isBundle = (os.path.isdir(os.path.join(bundleDir, 'src')) and
216
+ os.path.isfile(os.path.join(bundleDir, 'xmipp')))
217
+
218
+ return bundleDir if isBundle else None
219
+
202
220
  def installDeepLearningToolkit(plugin, env):
203
221
 
204
222
  preMsgs = []
205
223
  cudaMsgs = []
206
224
  nvidiaDriverVer = None
207
- useGpu = False
208
225
  if os.environ.get('CUDA', 'True') == 'True':
209
226
  try:
210
227
  nvidiaDriverVer = subprocess.Popen(["nvidia-smi",
@@ -221,7 +238,7 @@ def installDeepLearningToolkit(plugin, env):
221
238
  f"To enable CUDA (drivers>{NVIDIA_DRIVERS_MINIMUM_VERSION} needed), "
222
239
  "set CUDA=True in 'scipion.conf' file")
223
240
  nvidiaDriverVer = None
224
- except (ValueError, TypeError):
241
+ except (ValueError, TypeError, FileNotFoundError):
225
242
  nvidiaDriverVer = None
226
243
  preMsgs.append("Not nvidia driver found. Type: "
227
244
  " nvidia-smi --query-gpu=driver_version --format=csv,noheader")
@@ -230,6 +247,7 @@ def installDeepLearningToolkit(plugin, env):
230
247
  msg = ("Tensorflow installed without GPU. Just CPU computations "
231
248
  "enabled (slow computations).")
232
249
  cudaMsgs.append(msg)
250
+ useGpu = False
233
251
 
234
252
  if nvidiaDriverVer is not None:
235
253
  preMsgs.append("CUDA support found. Driver version: %s" % nvidiaDriverVer)
@@ -0,0 +1,117 @@
1
+ # ***************************************************************************
2
+ # * Authors: Carlos Oscar Sorzano (coss@cnb.csic.es)
3
+ # *
4
+ # *
5
+ # * This program is free software; you can redistribute it and/or modify
6
+ # * it under the terms of the GNU General Public License as published by
7
+ # * the Free Software Foundation; either version 2 of the License, or
8
+ # * (at your option) any later version.
9
+ # *
10
+ # * This program is distributed in the hope that it will be useful,
11
+ # * but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # * GNU General Public License for more details.
14
+ # *
15
+ # * You should have received a copy of the GNU General Public License
16
+ # * along with this program; if not, write to the Free Software
17
+ # * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
18
+ # * 02111-1307 USA
19
+ # *
20
+ # * All comments concerning this program package may be sent to the
21
+ # * e-mail address 'scipion@cnb.csic.es'
22
+ # ***************************************************************************/
23
+ '''
24
+ Description: This script checks for any protocols missing in the file
25
+ protocols.conf and lists them for further action.
26
+
27
+ Usage: python check_missing_protocols.py
28
+ '''
29
+
30
+ import ast
31
+ import glob
32
+ import os
33
+
34
+ def get_classes_from_file(file_path):
35
+ with open(file_path, 'r', encoding='utf-8') as file:
36
+ file_content = file.read()
37
+ tree = ast.parse(file_content)
38
+ class_names = [node.name for node in ast.walk(tree) if isinstance(node, ast.ClassDef)]
39
+ return class_names
40
+
41
+ with open("protocols.conf", 'r', encoding='utf-8') as file:
42
+ protocolsConf = file.read()
43
+
44
+ blackList = ['ScatterImageMarker','XMIPPCOLUMNS', 'XmippProtVolAdjBase', 'AlignVolPartOutputs','ProtPickingConsensusOutput',
45
+ 'XmippProtEliminateEmptyBase', 'XmippProtDeepConsSubSet', 'XmippProtWriteTestP', 'NoOutputGenerated','XmippProtSubtractProjectionBase',
46
+ 'XmippProtWriteTestC','KendersomBaseClassify','XmippProtAlignVolumeForWeb', 'XMIPPCOLUMNS', 'NoOutputGenerated', 'ScatterImageMarker',
47
+ 'AlignVolPartOutputs']
48
+
49
+
50
+ #######Missing classes
51
+ missingCounter = 0
52
+ classCounter = 0
53
+ for py_file in glob.glob("protocols/*.py"):
54
+ for class_name in get_classes_from_file(py_file):
55
+ classCounter+=1
56
+ if not class_name in blackList:
57
+ if not class_name in protocolsConf:
58
+ print(f"Missing: {class_name} from {py_file}")
59
+ missingCounter +=1
60
+ print(f"Missing classes: {missingCounter}/{classCounter}")
61
+
62
+
63
+
64
+ #######Missing tests
65
+
66
+ def extract_protocols_from_file(file_path):
67
+ """Extrae las llamadas a self.newProtocol en un archivo."""
68
+ protocols = []
69
+ with open(file_path, 'r', encoding='utf-8') as f:
70
+ source_code = f.read()
71
+ tree = ast.parse(source_code)
72
+ for node in ast.walk(tree):
73
+ if isinstance(node, ast.Call):
74
+ if (isinstance(node.func, ast.Attribute) and
75
+ node.func.attr == "newProtocol" and
76
+ isinstance(node.func.value, ast.Name) and
77
+ node.func.value.id == "self"):
78
+ if node.args:
79
+ protocol_node = node.args[0]
80
+ if isinstance(protocol_node, ast.Name):
81
+ protocol = protocol_node.id
82
+ elif isinstance(protocol_node, ast.Attribute):
83
+ protocol = protocol_node.attr
84
+ elif isinstance(protocol_node, ast.Constant):
85
+ protocol = protocol_node.value
86
+ if protocol not in protocols:
87
+ protocols.append(protocol)
88
+ return protocols
89
+
90
+
91
+ def extract_protocols_from_folder(folder_path):
92
+ """Extrae todos los protocolos de los archivos .py en una carpeta."""
93
+ protocolsFull= []
94
+ for root, _, files in os.walk(folder_path):
95
+ for file in files:
96
+ if file.endswith(".py"):
97
+ file_path = os.path.join(root, file)
98
+ protocols = extract_protocols_from_file(file_path)
99
+ for protocol in protocols:
100
+ if protocol not in protocolsFull:
101
+ protocolsFull.append(protocol)
102
+ return protocolsFull
103
+
104
+ folder_path = "tests/"
105
+ protocols = extract_protocols_from_folder(folder_path)
106
+ partProt = protocols.index('xpsp')
107
+ protocols[partProt] = 'XmippProtScreenParticles'
108
+
109
+ protocolsWithoutTest = []
110
+ for py_file in glob.glob("protocols/*.py"):
111
+ for class_name in get_classes_from_file(py_file):
112
+ if not class_name in blackList:
113
+ if class_name not in protocols:
114
+ protocolsWithoutTest.append(class_name)
115
+
116
+ print(f"\nProtocolos without test ({len(protocolsWithoutTest)}/{len(protocols)})")
117
+ print('\n'.join(protocolsWithoutTest))
@@ -28,10 +28,13 @@ This modules contains constants related to Xmipp3 protocols
28
28
  """
29
29
 
30
30
  # ------------------ Constants values --------------------------------------
31
+ XMIPP_GIT_URL = 'https://github.com/I2PC/xmipp.git'
31
32
  XMIPP_URL = 'https://github.com/i2pc/scipion-em-xmipp'
32
33
  XMIPP_HOME = 'XMIPP_HOME'
33
34
  NMA_HOME = 'NMA_HOME'
34
35
  XMIPP_DLTK_NAME = 'deepLearningToolkit' # consider to change it to xmipp_DLTK to make short it
36
+ XMIPP_CUDA_BIN = 'XMIPP_CUDA_BIN'
37
+ XMIPP_CUDA_LIB = 'XMIPP_CUDA_LIB'
35
38
 
36
39
  MASK_FILL_VALUE = 0
37
40
  MASK_FILL_MIN = 1